Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

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.

(2 edits)

(uploader url)

(1 edit)

Sent. I managed to freeze the frame with the engine tools. This is achieved by separating the start by pressing, and playing on other triggers. But then there is a problem with the cancellation of the animation, and their alternation.

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.

(2 edits)

Yeah, okay.
Is this what you want to do?
(Test_spine.zip)

I understand the intent.

The two animations are not working together.
I will look into it.

They work. A solution in a set of global values. For each animation channel. Example below.

(1 edit)

Good time. I noticed that the animation channel with a superior id overlaps the previous channel. Is it possible to reset to the previous channel?

This will avoid separating the animation into different parts to run on two channels at the same time.

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.

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".

Within the framework of a single id, I can interrupt the animation. The question is the ability to switch id from 2 to 1. I don't find the tools for this.

At the moment, if id 2 is playing, then 1 is completely blocked.

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.

(1 edit)

It seems that the problem is hidden in the launch by holding the button of different animation channels in parallel. For example, when I need to combine the animation of walking and aiming at the same time. They conflict.

Details.
Line 113.
"getAnimationEndTime( "hal_platform", 0 )" is
"getAnimationEndTime( "hal_platform", 2 )"

is the corresponding track ID, I think.
Although it is conceivable that it is the keyframes that are the cause, just in case

Thanks for the tip. The solution turned out to be simpler. Each animation channel needs its own global value. Keys and time doubtfully play a role, I tried different things. It remains to figure out how to reset the animation to inactivity.

https://skrinshoter.ru/vMvKyPAIiQV?a

The linkage problem we have identified here is
AIM animation set on line 68 was always running.

It appears that the animation value changes were not changing correctly.

I am glad to hear that it worked.

I found this to be the case on line 68.

It seems that the animation that has already been set is frozen when it tries to be set again.

I tried to play multiple animations and SpineBoy did not freeze.

It seems to be a combination of factors, such as keyframes not being registered.

(1 edit)

I tried to operate on it. But the point is to play at the same time. Combining channels to global values by holding down a key is the solution. It would be nice to make this case into a built-in function. This allows you to control the character in real time, combining any actions.

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)

-----