Forum rules - please read before posting.

Spine problem with ActionList action : Character: Face direction

Hey there, I've been trying to use Spine with Adventure Creator but some actions don't work correctly for me. I used the three scripts from the wiki: https://adventure-creator.fandom.com/wiki/Spine_Integration

I'm using AC version: 1.75.0
Unity 2021.5f1
I'm using the latest version of Spine 4.0.61

The Walk-, Idle- and custom animations work perfectly but at the point I use the action 'Character: Face direction' in the 'ActionList Editor' and change the face direction, the action 'Character:Animate' - 'Play Custom Method' play the animation but do not continue to the next action in the action list if the 'wait until finish' option is checked. If the option 'wait until finish' is unchecked at this point the ActionList continues. But If I don't use the action 'Character: Face direction' before, everything work perfectly without any problems although the 'wait until finish' option is checked.

https://imgur.com/a/jlt5vDy

Thank you all!

Comments

  • Welcome to the community, @Essilias_Crow.

    To clarify: you're saying that the Character: Animate Action runs indefinitely if there was a Character: Set direction Action before it?

    Does the animation itself play?

    I'm not the author of the Spine integration, but it looks like the issue comes down to the CompletionListener script not running its callback function.

    You should find that your character's root object is given a CompletionListener component at the time the issue occurs. A couple of minor changes to this script may help diagnose the issue.

    If you open up the integration's CompletionListener.cs file, change the waitingAnimation string from private to public, and remove the pair of "if (skeletonAnimation != null)" lines. See if the game then runs without any error message, and when the issue occurs, check the component's Inspector - what is the value of the "Waiting Animation" field that then appears?

  • Thank you and very much for your help,

    The animation itself play but freeze after it is finished if there was a Character: Face direction Action before it if the 'waiting until finish?' option is checked.

    I've done the the waitingAnimation string from private to public and removed the pair of "if (skeletonAnimation != null)" lines but if I remove these lines every custom played animation freeze now after it was played.

    In both cases the 'waiting animation' show the name of the current played animation

  • Thanks for the details. It sounds like its a case of the Spine state callback not firing. I can't tell how this would be related to the presence of the "Character: Face direction", though.

    I'll try to see if I can recreate this issue on my end.

  • Oddly, I can't recreate such an issue on my end.

    By way of debugging, though, the end of the CompletionListener script looks like this:

    private void OnCompleteAnimation (TrackEntry trackEntry)
    {
        if (trackEntry.Animation.Name == waitingAnimation)
        {
            waitingAnimation = string.Empty;
        }
    }
    

    Try replacing it with this:

    private void OnCompleteAnimation (TrackEntry trackEntry)
    {
        if (trackEntry.Animation.Name == waitingAnimation)
        {
            waitingAnimation = string.Empty;
        }
        else Debug.LogWarning (this + " completed animation " + trackEntry.Animation.Name + ", But expected: " + waitingAnimation, this);
    }
    

    See if that spits out a Warning message in the Console after the animation Action has begun - if so, what does it say?

  • Maybe because I use 8 directions(8skeletons) with 2skins - 'withClothes' and 'withoutClothes'?

    The warning message say:
    Jack (AC.Spine.CompletionListener) completed animation Talk, But expected:
    UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
    AC.Spine.CompletionListener:OnCompleteAnimation (Spine.TrackEntry) (at Assets/Textues/Jack/Jack Spine/Scripts/CompletionListener.cs:155)
    Spine.AnimationState:OnComplete (Spine.TrackEntry) (at Assets/Spine/Runtime/spine-csharp/AnimationState.cs:86)
    Spine.EventQueue:Drain () (at Assets/Spine/Runtime/spine-csharp/AnimationState.cs:1360)
    Spine.AnimationState:Apply (Spine.Skeleton) (at Assets/Spine/Runtime/spine-csharp/AnimationState.cs:308)
    Spine.Unity.SkeletonAnimation:ApplyAnimation () (at Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs:227)
    Spine.Unity.SkeletonAnimation:Update (single) (at Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs:213)
    Spine.Unity.SkeletonAnimation:Update () (at Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs:196)

    For every working animation it spitted out this warning message except the freezing one. It's the last warining message before the custom animation 'Scarred_DL' has started where the ActionList stucks

  • Thanks for the details - I believe I've recreated the issue.

    It's still unclear where the issue lies, but I shall investigate further and update this thread.

  • I've updated the wiki page's CompletionListener script - give it a go and see if it helps.

  • Awesome, it works without any problems!!! :D
    Thank you so much! <3

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.