I designed this system around equations because an equation is easy for me to work with. I look at a sine wave, and I know how often it repeats and the range it covers. This is honestly the same as screwing around with your graphic calculator in high school. The intent is that you pick one simple effect to start with and learn to do that. Then as you learn each part of the system, you can apply what you know to anything similar. Start by adding a constant value to a position:
Then as you understand each aspect, you can pick another to learn.
Each element is separate to allow effects that are out of sync with each other. Imagine you have an actor, and you want it to wave back and forth every 3 beats, and up and down every 4 beats. With tweens, you have to wrap an ActorFrame around it for the second motion, which brings in extra overhead.
Then there's the problem of shaking effects. A common thing I see in gimmick files is having notes shake back and forth at a high frequency. If you look at mod files, you'll see the code setting a mod to a high value, then a low value a very short time later. This means that shaking the notes for 2 seconds can turn into 60 mod settings or tweens for a simple 30 Hz shake. With wave function equations, it's a single efficient line of code.
Each element is also identical. Once you understand how to change the x position, you apply the same knowledge to change the zoom or the rotation or the quantization or any other mod.
In my examples, I loop through all the columns with a loop because I felt like it. Because each column has its own mods, if you want something that only affects one column, you can do that. Most mods are not evaluated for every note. Only the ones that are really needed for every note are actually evaluated for every note.
If you downloaded 5.1.-2 before this post, you have a version with broken autogen. Turns out it was broken for 5 months and nobody noticed.
col:get_note_pos_x():add_mod{"ModFunctionType_Constant", 16}
Then as you understand each aspect, you can pick another to learn.
Each element is separate to allow effects that are out of sync with each other. Imagine you have an actor, and you want it to wave back and forth every 3 beats, and up and down every 4 beats. With tweens, you have to wrap an ActorFrame around it for the second motion, which brings in extra overhead.
Then there's the problem of shaking effects. A common thing I see in gimmick files is having notes shake back and forth at a high frequency. If you look at mod files, you'll see the code setting a mod to a high value, then a low value a very short time later. This means that shaking the notes for 2 seconds can turn into 60 mod settings or tweens for a simple 30 Hz shake. With wave function equations, it's a single efficient line of code.
Each element is also identical. Once you understand how to change the x position, you apply the same knowledge to change the zoom or the rotation or the quantization or any other mod.
In my examples, I loop through all the columns with a loop because I felt like it. Because each column has its own mods, if you want something that only affects one column, you can do that. Most mods are not evaluated for every note. Only the ones that are really needed for every note are actually evaluated for every note.
If you downloaded 5.1.-2 before this post, you have a version with broken autogen. Turns out it was broken for 5 months and nobody noticed.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit