TeamRizu / OutFox

The Bug Reporting Repository for OutFox LTS 0.4, Alpha V and Steam Early Access Builds
https://projectoutfox.com
Apache License 2.0
187 stars 3 forks source link

[Feature Request] Behavior control of arrows passing through receptors #647

Open waiei opened 1 year ago

waiei commented 1 year ago

Please Select the game mode your feature request is about.

All Game Modes

Is your feature request related to a problem?

Currently, when a tap passes through a receptor in dance mode due to a miss decision or other reasons, it is painted black This behavior is similar to that of DDR EXTREME and earlier, and is very difficult to see in the case of dense music

image

Describe the solution you'd like

In DDR SuperNOVA and later, arrows that pass through receptors gradually become transparent Since Project OutFox supports a variety of game modes It would be useful to be able to control this behavior on the note skin side

Since the behavior differs depending on the type of arrow, it is important to consider how much control should be available

Reference video in the case of DDR https://www.youtube.com/watch?v=-MB3i81YUrg

Describe alternatives you've considered

I think it would be good to be able to freely control the behavior of filling in black with NoteSkin commands, even if it is not possible to control it so finely

Implementation I imagine

metrics.ini

# Count or Time (Time: seconds/Count: beats)
PassedReceptorEffectType=Count
# 0.5 beats after the arrow passes through the receptor, diffusealpha,0
PassedReceptorEffectTime=0.5
PassedReceptorEffectCommand=diffusealpha,0
I have no sense of naming, so I need you to come up with a good name

Additional context

No response

Scraticus commented 1 year ago

This is a good idea, we will look into it

JoseVarelaP commented 1 year ago

Testing out the implementation. I am unsure how the engine could behave with adding a NOTESKIN command on the threshold, so I made a fadeout system instead.

Using Beat timing to fade out

PassedReceptorTransparentNote=1
PassedReceptorBeatsUntilZeroColor=1
PassedReceptorUseTime=0

https://github.com/TeamRizu/OutFox/assets/23246027/57e6ba99-748f-4415-97ba-959691e76f8e

Using Seconds timing to fade out

PassedReceptorTransparentNote=1
PassedReceptorBeatsUntilZeroColor=1
PassedReceptorUseTime=1

https://github.com/TeamRizu/OutFox/assets/23246027/441543e2-a237-4816-92d5-920dc0e86c0c

waiei commented 1 year ago

@JoseVarelaP Thank you, I think it is very good! By the way, if I want to fill it with black as before, is it ok to use assedReceptorTransparentNote=0? I was a little concerned that in Dance mode, either black paint or transparency is fine, but in other game modes, we may see a different pattern In that case, =2,=3, ... and will it be extended? Nevertheless, I think most games will be fine with the behavior you have addressed, and I look forward to seeing the implementation reflected!

JoseVarelaP commented 1 year ago

@waiei

I was a little concerned that in Dance mode, either black paint or transparency is fine, but in other game modes, we may see a different pattern

So they way I've implemented is dependent on the NoteSkin. So each noteskin can decide for itself if it wants to draw missed notes transparently or opaque.

By the way, if I want to fill it with black as before, is it ok to use PassedReceptorTransparentNote=0?

Yes, by default it is 0, which is the "fade to black" logic.

In that case, =2,=3, ... and will it be extended?

Not currently, it is just a boolean value.

waiei commented 1 year ago

Okay, I will try different things once the implementation is reflected Thanks!