kshootmania / ksm-chart-format

Music game chart format (.ksh/.kson) specifications for K-Shoot MANIA
Creative Commons Zero v1.0 Universal
8 stars 0 forks source link

Lane spins invoked by multiple laser slams at the same position are unclear in KSON #2

Closed m4saka closed 2 years ago

m4saka commented 4 years ago

Derived from: m4saka/ksm-chart-format-spec#1

@123jimin wrote:

Talking about slams, it seems that KSH slam rotations can't be translated to KSON easily.

I guess that camera.cam.pattern.note_event is the intended way, but it is unclear what to do when there is a pair of slam at the same tick.

1. Add an invocation to each slam: handling two slams gives twice as much spin; bad.

2. Add an invocation to one slam: most feasible way but not satisfactory

3. Use `pulse_event` instead: not handling any slam gives a spin; bad.

@m4saka wrote:

You are correct. We have to consider a spin assigned to two slams having the same direction.

One possible solution is to have the dom (=domination) flag also for the camera pattern invocation by note_event. If dom is true, it stops the same pattern playing. In this way, two spins are not played at the same time. But the problem is there can be a lag between two slam judgments, and then camera value jumps after the second slam...

m4saka commented 4 years ago

I still think having dom in camera.cam.pattern.note_event would be the way to go.

In my previous post, this dom flag will have a different meaning from the dom in audio.audio_effect.note_event. While dom stops all active audio effects in audio_effect, it stops only the same patterns invoked by other notes in cam.pattern. For example, a spin with dom:true will stop all other spins but does not stop other active patterns.

But maybe we need to choose the way stopping all other patterns in cam.pattern as well, because spin and half_spin should not be played simultaneously.

In the current KSM, spin & half_spin are not played simultaneously, but spin & swing (or half_spin & swing) can be played simultaneously. This behavior cannot be reproduced in KSON unless we have something like "camera pattern groups" for domination, but it is too much for this small issue...

m4saka commented 2 years ago

In the current KSM, spin & half_spin are not played simultaneously, but spin & swing (or half_spin & swing) can be played simultaneously. This behavior cannot be reproduced in KSON unless we have something like "camera pattern groups" for domination, but it is too much for this small issue...

It will work fine if the "dom" flag works for each cam parameter. This is because spin (and half_spin) refers only to rotation_z and swing refers only to shift_x.

m4saka commented 2 years ago

Since the specification of note_event by laser point is still unclear, it's better to remove note_event and replace it with two events: fx_event, which supports only FX lanes, and laser_slam_event, which supports only laser slam.

m4saka commented 2 years ago

Solved in v0.2.0.