Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NewCommand 2052 - AnimateVariable #3132

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

jetrotal
Copy link
Contributor

@jetrotal jetrotal commented Oct 25, 2023

Video Demo
image

The idea is to generate and execute a sequence of variables command changes that goes from
a start value to an end value. Following Motion Easing, Time Duration and a pause between frames.

@raw 2052, "linear/bounceOut", 0, 1, 0, 0, 0, 240, 0, 640, 0, 0 
@raw 2052, "easeTypeStart/easeTypeEnd", targetVariableIsVar, targetVariable, startIsVar, start, endIsVar, end, durationIsVar, duration, pauseIsVar, pause

You can also write only bounceInOut instead of bounceIn/bounceOut
easeTypeStart and easeTypeEnd can be:

"linear"
"ease", "easeIn", "easeOut", "easeInOut"

"quadIn", "quadOut", "quadInOut" //quadratic easing
"cubicIn", "cubicOut", "cubicInOut"
"quartIn", "quartOut", "quartInOut"
"quintIn", "quintOut", "quintInOut"

"sineIn", "sineOut", "sineInOut" //sinusoidal easing
"ExpoIn", "expoOut", "expoInOut"  //exponential easing
"circIn", "circOut", "circInOut"  //circular easing
"backIn", "backOut", "backInOut"

"elasticIn", "elasticOut", "elasticInOut"
"bounceIn", "bounceOut", "bounceInOut"

bezier(x1, y1, x2, y2) //cubic Bezier(curveHandle1_x, curveHandle1_y, curveHandle2_x, curveHandle2_y,)

cubic bezier works!!!!!!!!!!
References for getting bezier values:
https://matthewlein.com/tools/ceaser
https://cubic-bezier.com/

image
bezier(0.9, -0.3, 0.03, 1.3) - Black dots position representx x1, y1 and x2, y2.

@raw 2052, "linear/bounceOut", 0, 1, 0, 0, 0, 240, 0, 640, 0, 0
` CommandInterpolateVariable("easeTypeStart/easeTypeEnd",[targetIsVar, target, StartIsVar, start, endIsVar, end, durationIsVar, duration, pauseIsVar, pause]) `

cubic bezier is broken. There are some libraries about it, I'll see what to do.

I'll need help with this one. It's almost fully working.
@Ghabry Ghabry marked this pull request as draft November 2, 2023 15:18
@fdelapena fdelapena added the Awaiting Rebase Pull requests with conflicting files due to former merge label Nov 20, 2023
@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from e788dfc to c4f589b Compare November 24, 2023 23:32
@jetrotal
Copy link
Contributor Author

jetrotal commented Nov 25, 2023

I learned what I needed to know about setting up cubic bezier, clean interpolation and correct event event pushing.
Everything is fully functional and a little cleaner to read.

@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from 481cb6b to 0f98189 Compare November 26, 2023 03:48
@jetrotal jetrotal marked this pull request as ready for review November 28, 2023 10:50
@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from 0f98189 to 4479a7e Compare November 30, 2023 08:24
@jetrotal
Copy link
Contributor Author

This one is properly rebased and fully working.

@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from 4479a7e to 4c7930c Compare November 30, 2023 10:21
@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from 4c7930c to 77093e7 Compare January 4, 2024 19:54
@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from 77093e7 to 1428fdb Compare March 30, 2024 12:32
@Ghabry
Copy link
Member

Ghabry commented May 10, 2024

any idea in which file that cubicBezir function could be relocated? Is 150 lines so do not really want that much extra lines in this already far-too-complex cpp file 😅 .

Oh, and a camel walked through your code ;).

// this is a fix, again, with post-increment operators <- Can you explain why this is needed?

@jetrotal
Copy link
Contributor Author

Cubic bezier stuff could be realocated to a new file, maybe called: animation_helper. Since this could be ported for pictures, or whatever moves between points if needed.

Those comments I wrote while fighting some annoying bugs that I can't remember anymore xD
I should delete them.

- Moved 2 longer functions to a file called animation_helper.
- Snake_Case and removal of useless comments.

Update Makefile.am
@jetrotal
Copy link
Contributor Author

Changed the code, feel free to rename the newer files if "animation_helper" is not a good name convention.

btw, there's a minor issue that I wasn't able to fix but it's not a problem if this isn't fixed at all:

image

I failed to make the the InOut interpolation work exactly as the In/Out interpolation

The picture A above use linear/linear, then ElasticIn/ElasticOut
The picture B above use linear, then ElasticInOut

The issue may be related to the // use 2 interpolations: start and end. area of the code.

Here's the map with this demo: Talk to the Dog to start it:
Map0007.zip

@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch 2 times, most recently from 541864f to be57749 Compare May 12, 2024 16:04
@Ghabry Ghabry removed the Awaiting Rebase Pull requests with conflicting files due to former merge label May 12, 2024
@fdelapena fdelapena added the Awaiting Rebase Pull requests with conflicting files due to former merge label Jul 2, 2024
@jetrotal jetrotal force-pushed the NewCommand-AnimateVariable branch from 1fbdeea to 8aed735 Compare July 13, 2024 02:56
@jetrotal
Copy link
Contributor Author

Rebased.

@Ghabry Ghabry added this to the 0.8.1 milestone Aug 1, 2024
@Ghabry Ghabry added the EasyRPG New functionality exclusive to EasyRPG Player label Sep 1, 2024
@Ghabry Ghabry force-pushed the NewCommand-AnimateVariable branch from 8aed735 to 7bd16bb Compare November 3, 2024 20:52
@Ghabry Ghabry removed the Awaiting Rebase Pull requests with conflicting files due to former merge label Nov 3, 2024
@fdelapena fdelapena requested a review from Ghabry November 10, 2024 00:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EasyRPG New functionality exclusive to EasyRPG Player Enhancement
Development

Successfully merging this pull request may close these issues.

3 participants