I will look into it.
This one may take a little longer.
Confirmed.
Some native libraries required for some actual device operation were missing.
(It was hard to notice since it was working in the simulator on the PC)
We will update the data later, but we remember the circumstances that prevented us from downloading the data immediately.
We have placed the adjusted version directly at the following address, if you would like to use it.
It is possible to erase lines with Debug_DrawSurfaceArea(0).
(This is a function to check the area where the object exists)
Of course, if you do so, the display order will be out of order, which is the problem in this case.
It is also unexpected that the display order has been normalised by Debug_DrawSurfaceArea(1).
We'll hurry up and fix it.
Basically, it should work if you use the same track number and call a different motion only once.
The intermediate animation until the motion is changed is then also reproduced.
https://ugken.com/ext/Spine/change_motion.zip
The reason for the animation being slow (or the behaviour being different to that intended)
If multiple motions are ordered, this may be due to a large number of intermediate motions being generated.
Is this what you mean?
See sample for details
http://ugken.com/ext/Spine/MultiResource.zip
You can get the value when the event occurs.
I hope this will be of some help.
http://ugken.com/ext/Spine/EventCheck.zip
That is indeed the case.
However, it is difficult to make special changes to the composite animation behavior for channel IDs because it is part of the SpineSDK specification.
(If the animations manipulate the same material, the latter ID's animation is stronger and overrides the former.)
I think it is appropriate to deal with this in the way events are organized.
A new instruction has been added to clear the animation.
Here is a sample example of how it is applied.
http://ugken.com/ext/Spine/Test_spine.zip
It can be represented by a combination of "ClearAnimation" and "SetUpdate".
It is certainly conceivable that there may be times when you want to switch animations without animation completion.
Prepare an instruction that allows the animation to be changed without completion.
This was a point that I would not have noticed without actually working on the piece in depth.
Thanks for the report.
I did a little research to see what was going on.
Basically, when multiple SetAnimation calls are made
The animation does not switch immediately.
The intermediate animation is complemented, and then the motion set later on is applied.
In this case, when SetAnimation("17_aim") is called for the second time
SetAnimationSpeed(0) interferes with the transition from the first motion to the second motion, causing the animation to freeze.
However, when I try to reproduce this under the same conditions using SpineBoy, it works fine.
Therefore, it seems to me that the structure of the file (existence of keyframes?) is not the only thing that needs to be taken into account.
It is highly possible that this is a bug in the SpineRuntimeSDK, including the structure of the file
In the meantime, it is possible to protect the animation by preventing it from playing back when the same animation is attempted to be played back.
I think it can be handled by using an instruction on the CF2.5 side to let the same animation not be performed.
(Or perhaps adding some kind of keyframe to the file?)
-----
+ getAnimationName$( "hal_platform", 1 ) <> "17_aim"
hal_platform : SetAnimation( 1 , "17_aim" , loop=0)
-----
It seems that the json output is missing the time key.
For example, if you look at spineboy-pro.json
The time following the "run" item has keys up to 0.8 ("time": 0.8), and its status is recorded.
And this is the EndTime.
In the file you gave me,
The key recorded in "04_walk_spec" that you are trying to play is
"time":0.6667
and it looks like there are not enough keyframes.
The reference time inside Spine is 0.0166.
This is the value of (1.0sec / 60frame).
http://ugken.com/ext/Spine/AnimationTime.zip
*Updated.
In addition, it is possible to obtain events at specific times.
3 of the included sample file (Motion event), there is a sample of a function that can catch specific events when they occur during an animation.
I am not sure about specific animation freezes.
If you have reproducible data, I would appreciate it.
Registration in the binary space is a necessary thing.
And although the binary data was to be extracted without an extraction instruction (the extraction instruction is executed inside the Extension)
The extraction function was not working well depending on the environment.
(I believe this has been fixed in the 20231116 version)
Thanks for the report.
This function requires that you first select the target of the change with Select_Slot.
http://ugken.com/ext/Spine/rgb_slot.zip
RGB coefficient can be set via the editor properties
or from standard commands
Here is a sample
http://ugken.com/ext/Spine/rgb_sample.zip
The binary is not extracted, maybe the mfa file of the project is corrupted.
The sample you gave me failed to read the binaries when I built it over here.
In the project where I copied the frames from the sample into a new project, the binaries also worked.
(There is no visible difference, so it is a very strange behavior.)
http://ugken.com/ext/Spine/sample2_mfa.zip