Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Animancer - Less Animator Controller, More Animator Control

Discussion in 'Assets and Asset Store' started by Kybernetik, Oct 8, 2018.

  1. ogglynator

    ogglynator

    Joined:
    May 2, 2014
    Posts:
    12
    Thanks for the quick reply! Animation Jobs sounds interesting. I also like using tweening systems, I am just trying to find a workflow where I can let our artists work on the UI-animations with out having to involve me :p
     
  2. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,877
    @Kybernetik using the latest version of animancer (both lite and pro), we are experiencing a bug where a state gets stuck when it gets to the end of the animation, and no subsequent animancer calls make the state change.

    We are literally just using _animancer.Play(animation) and cannot understand why this is happening or how to fix it as the problem is obviously internal if calling said function ceases to work. Its currently a serious issue for us.

    Do you have any insight into what is going on and why this is happening? The animation is a one shot animation (no loop), as soon as it gets to the end it freezes and on the animancer component it shows as still on that animation, with ever advancing time beyond the end of the clip, with calls to change animation doing nothing (despite all debugging showing the calls after ARE getting called...).

    Any help you can provide ASAP would be great, I will write to our CTO to get him to also contact you via support email
     
    Last edited: Jan 29, 2022
  3. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Time continuing to increase is normal if you don't end the animation, but I've never seen an issue where the Play method would just stop working.

    Can you send a minimal reproduction project to animancer@kybernetik.com.au so I can take a look at it?
     
  4. GoldFireStudios

    GoldFireStudios

    Joined:
    Nov 21, 2018
    Posts:
    154
    Should multiple levels of nested mixers work or would that be a bug? I've got two sets of walk/jog animations that are blended based on parameters, and inside of those are multiple idle animations that are switched between in another mixer. This worked when this was just one set of walk/jog and the idle mixer, but as soon as the idle mixer went another level deep, it stopped working.

     
  5. skinny_

    skinny_

    Joined:
    Feb 3, 2018
    Posts:
    6
    Hi,

    want to ask probably a silly question.
    Could it be that Pack Texture Utility doesn’t work? If I use it generates me 1x1 pixel texture regardless how many sprites I add to the list. Padding and Maximum Size have default values. Animancer Pro v 7.2.

    Thanks in advance.
     
  6. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    @GoldFireStudios Nested mixers should work as you would expect, though I've never tried them that deep so there could be a bug I don't know about. What's it actually doing wrong? For something that complex, it might be best if you make a minimal reproduction project and send it to animancer@kybernetik.com.au so I can take a look at it.

    @skinny_ It's working fine for me, but there could be a bug relating to the settings of the textures you're trying to pack. As a test, try packing the Critters.png and Mage.png in Assets\Plugins\Animancer\Examples\04 Directional Sprites\01 Basic Movement. If that doesn't work then something odd is happening, but if it does work then try to narrow down what's different between those textures and your ones to see if you can find the cause of the problem.
     
  7. skinny_

    skinny_

    Joined:
    Feb 3, 2018
    Posts:
    6
    Thanks for your fast reply.

    It was layer 8 problem . I used already sliced images from one sprite sheet and thought, thar I could pack some of them into another sprite sheet. So I get rid of not used ones. In the ‘Pack Textures’-Editor I can add them to the list without any warnings regarding this. As a result you get 1x1 pixel texture pack.
     
  8. GoldFireStudios

    GoldFireStudios

    Joined:
    Nov 21, 2018
    Posts:
    154
    The parameter value is set on the state (I've logged it to confirm), but nothing happens as a result of the parameter changes. It just always stays on the default param animation. We've got a demo submission deadline tomorrow, but I can try to put together a test case next week.
     
  9. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    @skinny_ I still can't replicate the issue. Can you give a bit more detail on the textures/sprites you're trying to pack?
     
  10. msmsm

    msmsm

    Joined:
    Feb 1, 2014
    Posts:
    49
    Is there any way to do 2 passes of the IK with animancer? I adjust my body position using SetLookAtWeight and also have a hand position that gets updated with IK. The hand position gets moved by the lookAt IK, so I need its position after teh first lookAt IK it has been applied. Using mechanim I could get 2 calls, one for each layer, but can't with animancer. Is there any way to implement the above that I have missed?
     
  11. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Unfortunately not with Unity's inbuilt IK system. When using the Playables API it will only ever call OnAnimatorIK with 0 because a custom PlayableGraph could have any arbitrary structure with no layers at all or multiple layer mixers.

    The Animation Rigging package might have a solution to the problem.

    Otherwise, it should be possible using Animation Jobs within Animancer if you use Two Bone IK and the Look At system from the Animation Jobs Samples.
     
  12. skinny_

    skinny_

    Joined:
    Feb 3, 2018
    Posts:
    6
    Hi, sorry for such a late response. PackTextures.gif
    Here is a gif with my replication of that issue.
     
  13. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Looks like the issue is likely caused by the fact that you're only giving it one texture to pack since all those sprites are in the same texture. It will need to copy each sprite out to its own texture then combine those, which will be a bit tricky to get right but should give better packing in the end.
     
  14. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    @skinny_ I've fixed the texture packing issue and it now packs each individual Sprite instead of packing each whole source texture. It will be in the next version of Animancer which I hope to release in the next few weeks, though I have been very busy with other stuff lately. If anyone wants to try it, just email your Invoice Number to animancer@kybernetik.com.au.
     
    skinny_ likes this.
  15. elchristopher

    elchristopher

    Joined:
    Nov 19, 2018
    Posts:
    1
    I am trying to make a fighting game and have two of the same characters fight each other. They use the same animation set. I was wondering why my animation will play twice when the other player starts the same animation before the OnEnd event is called. I am using the NamedAnimancerComponent to trigger animations and the components are on completely different objects. I am using the PluggableSM suggested in the Docs. Here is the code that causes issues. I have tried using _animancerComponent.States.GetOrCreate(controller, _attackAnimation)... etc. but it did not seem to fix the problem. When I print in the onEnd event, it says that Fighter 1 is completing the onEnd event for the Fighter2 animation state key.


    Code (CSharp):
    1. using UnityEngine;
    2. using Animancer;
    3.  
    4. [CreateAssetMenu (menuName = "PluggableSM/Actions/Attack")]
    5. public class AttackAction : Action
    6. {
    7.     [SerializeField] private State _idleState;
    8.     [SerializeField] private AnimationClip _attackAnimation;
    9.     [SerializeField] private AttackData _attackData;
    10.     [SerializeField] private AnimationCurve _velocityY;
    11.     [SerializeField] private AnimationCurve _velocityZ;
    12.  
    13.     private AnimancerState _attackAnimationState;
    14.     private AnimancerComponent _animancerComponent;
    15.     private Fighter _fighter;
    16.     private Rigidbody _rb;
    17.  
    18.     public override void StartAct(StateController controller)
    19.     {
    20.         _fighter = controller.GetComponent<Fighter>();
    21.         _animancerComponent = controller.GetComponent<AnimancerComponent>();
    22.         _fighter.attackAnimState = _animancerComponent.Play(_attackAnimation, 0, FadeMode.FromStart);
    23.         _fighter.attackAnimState.Time = 0;
    24.         _fighter.attackAnimState.Events.OnEnd = () =>
    25.         {
    26.             if (!_fighter.hitOtherPlayer)
    27.             {
    28.                 _fighter.ClearAttackQ();
    29.             }
    30.             controller.TransitionToState(_idleState);
    31.         };
    32.         _rb = controller.GetComponent<Rigidbody>();
    33.     }
    34.  
    35.     public override void Act(StateController controller)
    36.     {
    37.         float multiplier = _fighter.isFacingLeft ? -1 : 1;
    38.         float velocityY = _velocityY.Evaluate(_fighter.attackAnimState.NormalizedTime);
    39.         float velocityZ = _velocityZ.Evaluate(_fighter.attackAnimState.NormalizedTime);
    40.         _rb.velocity = new Vector3(0, velocityY, velocityZ * multiplier);
    41.     }
    42.  
    43.     public override void EndAct(StateController controller)
    44.     {
    45.      
    46.     }
    47. }
     
    Last edited: Feb 12, 2022
  16. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Are you sure both characters are using different StateControllers? If they're both referencing the same one that could explain the behaviour you're describing.

    Otherwise, try to narrow down the problem. Is the end event not being set on both characters? Is the end event set but not triggering? Is the end time wrong? Selecting a character and watching the AnimancerComponent Inspector while the animations play might help. And you can check what events are assigned to a state by Right Clicking on it.
     
  17. techniquea2z

    techniquea2z

    Joined:
    Jun 3, 2017
    Posts:
    37
    Hey!

    Having my first issue with Animancer, it's odd.

    I'm trying to play a clip from a DirectionalAnimationSet, but instead of the specified clip, it seems to play whatever the Animator default state is.



    As you can see here, battle_idle_down IS playing in Animancer, but not in the native Animator. In the native Animator, it's playing the default state run_down.

    First time I've run into this.

    I assume it's something super simple that I'm missing.

    What seems to be happening is that none of the states in the overrides by Animancer are playing. Even if I try to play a different clip after this, it still falls back to the Animator's default state.

    Only seems to break when playing this one DirectionalAnimationSet.... no idea why though

    EDIT:

    It's not Animancer's fault. It was PowerSpriteAnimator's fault... or my poor usage of it.

    I checked the AnimationClip, the sprites were missing... why? Because PowerSpriteAnimator told Unity they were UI Images instead of Sprites (I did just finish animated some UI Images... oops).

    Fixed that and it works.

    Guess I'll leave this for posterity, in case anyone runs into anything similar.

    Animancer is godly!
     
    Last edited: Feb 13, 2022
    Kybernetik likes this.
  18. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    I'm glad you figured it out.

    I'll try to add an Inspector warning in the next version for when you play an animation with missing references, similar to the Animation Types warning.

    Please let me know if you come across any other issues like this where there's potentially something Animancer could detect and show a warning for in the Inspector or log an Optional Warning in the console.
     
  19. hibbzy

    hibbzy

    Joined:
    Jul 30, 2018
    Posts:
    5
    hello, I'm very new to animancer and don't really understand mixers at all but hopefully you can help me.

    i currently have LegsAnimator script that is responsible for playing the movement animations.

    Code (CSharp):
    1.     [SerializeField] private MixerState.Transition2D _Move;
    2.     ITransition MovementAnimation => _Move;
    3.  
    4.     private void Start()
    5.     {
    6.         animancer.Layers[LegLayer].Play(MovementAnimation);
    7.     }
    8.  
    9.     void Update()
    10.     {
    11.         var mov = new Vector2(forward, sideways);
    12.         _Move.State.Parameter = mov;
    13.     }
    that's not the whole script, just the important parts,

    the complete script works perfectly but i want to add crouching as a separate component.

    id like a Crouch component that i can slap on the same game object and when i hold my crouch key have it override the default animations, and then restore them when i release the crouch key.

    how would i accomplish this?
     
  20. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    animancer.Layers[x].CurrentState will give you the most recently played state on that layer so you could just grab it and store it in a field, play your crouch animation, then play the previous animation when it's done.

    Note that calling animancer.Play(state) won't have any connection to the transition that created the state so you'll need to specify the fade duration manually, i.e. animancer.Play(state, fadeDuration).
     
  21. tidnelx

    tidnelx

    Joined:
    Dec 7, 2020
    Posts:
    2
    Hi, I really like your project and am doing a migration for mine. Now there is a question:
    When I play an action with an expression, the blendshape channel of the vrm avatar is locked, and I can't drag it manually to modify it. Is there any mechanism here?
     
  22. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    I've never worked with animated Blend Shapes, but that is how most animated properties work. If the animation controls something then it's setting that value every frame so any changes you would make manually are being immediately replaced by the animation.

    Do you get different behaviour if you play your animation using an Animator Controller?
     
  23. tidnelx

    tidnelx

    Joined:
    Dec 7, 2020
    Posts:
    2
    Yes, when I use the original Aniamtor Controller, after playing the action. I can immediately manually drag and drop to modify the Avatar's BlendShape value.
    The difference here is causing a problem that I can't solve right now, so wanted to ask if there is some setting
     
  24. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Unfortunately there isn't. Applying the animation data to objects is handled internally by the Playables API and Unity doesn't give us any control over how it works.
     
  25. msmsm

    msmsm

    Joined:
    Feb 1, 2014
    Posts:
    49
    First off, thank you so much for continuing to support your product in such an amazing way. I would be lost without Animancer! Is there a way that multiple players can use the same MixerTransition2D instance at the same time? Currently I use animancer.States.GetOrCreate(transition) to get the state, but when another player makes that call they get the state. Is there a way to have a state per player?
     
  26. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Each AnimancerComponent instance will create its own state when you play a transition on it (it's not actually possible to share states between characters).

    But if you're sharing the transition and trying to access the transition.State from multiple characters, it's only a reference to the most recently played state so all characters would be controlling the same one. UnShared Transition Assets solve this problem if you're using Transition Assets, but I haven't come up with a similar solution for regular Transitions.
     
  27. msmsm

    msmsm

    Joined:
    Feb 1, 2014
    Posts:
    49
    Thanks. Sharing the transition and grabbing the state is exactly what I am doing.Will look into Unshared Transition Assets and see if I can use them.
     
  28. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Are you sure you linked the right page? That page doesn't actually show any effect or problem, its just diagrams of blend weight fields and descriptions of how they work.

    Can you post a video to show what effect you're seeing and explain how that's different from what you want? Animancer's Mixers have full control over the Weight of each animation so it's likely possible to do what you want, I'm just not sure what that is yet.
     
  29. msmsm

    msmsm

    Joined:
    Feb 1, 2014
    Posts:
    49
    I have had a play with this and think I am misunderstanding something. I have changed my transitions to be UnShared.
    The transition asset is referenced on a prefab (a).
    I use that prefab (a) in an inspector variable of another prefab (b) .
    Prefab (b) is instantiated at run-time, so prefab (a) is always just a prefab instance.

    I am using this code:

    Code (CSharp):
    1.  
    2.     public void Play(MixerTransition2DAsset.UnShared transition, int layer, Vector2 velocity, float fadeDuration, int priority = 0)
    3.     {
    4.         if (priority >= currentPriority[layer])
    5.         {
    6.             animancer.States.GetOrCreate(transition);
    7.             transition.State.Parameter = velocity;
    8.             currentPriority[layer] = priority;
    9.             AnimancerState state = animancer.Layers[layer].Play(transition, fadeDuration);
    10.             state.Events.OnEnd = () => { currentPriority[layer] = 0; state.Events.OnEnd = null; };
    11.         }
    12.     }
    But still get the animations being applied to the incorrect object when two objects are sharing the same transition. I am misunderstanding how this should be used?
     
  30. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    That code looks like it should work. Try putting in
    Debug.Log("Play", animancer);
    then if you click on that message in the Console it will highlight the object you're playing it on (that's what the 2nd parameter does). If that doesn't help you track down the issue, feel free to send a minimal reproduction project to animancer@kybernetik.com.au and I'll take a look at it.

    I can also suggest a few improvements:
    • You could put the Parameter = Velocity after calling Play and remove the call to GetOrCreate (since Play will be doing that internally anyway).
    • When using transitions, you should set up the transition.Events on startup so that you don't have to waste performance every time you play it. And if you're clearing the End Event like that, you might as well just use a regular event, i.e.
      ...Events.Add(1, () => ...

    • The transition already has a Fade Duration field so you don't need to pass it in separately in code unless you specifically want to override the transition's value.
     
  31. msmsm

    msmsm

    Joined:
    Feb 1, 2014
    Posts:
    49
    Ok thanks, and thanks for the pointers! Will give it a go once I finish my day job :D
     
  32. msmsm

    msmsm

    Joined:
    Feb 1, 2014
    Posts:
    49
    It was the velocity call. It was being assigned to the wrong state, so the animation state was correct but because velocity was assigned before play it was being assigned to the state of the other player. So they were walking whilst stationary, and my moving player was playing the idle animation! Thanks for your help
     
  33. killer1171090

    killer1171090

    Joined:
    Feb 23, 2013
    Posts:
    145
    Just ported everything over to using Controller states and quickly noticed an issue.
    When playing in slow motion aka low TimeScale, the animation rather than slowing down looks like it's just playing at a really low fps. Any idea why this might be happening?
     
  34. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Is your Animator set to Animate Physics? Low time scale means physics updates will also happen less often unless you change the Time.fixedDeltaTime.
     
    killer1171090 likes this.
  35. killer1171090

    killer1171090

    Joined:
    Feb 23, 2013
    Posts:
    145
    It is, thanks not sure when that changed.
     
  36. ncorns

    ncorns

    Joined:
    Jan 15, 2017
    Posts:
    10
    Hi - I've been using Animancer for a few months now and it's worked exactly how I need it to in all my use cases apart from one that I recently came across in relation to DirectionalMixerState. I currently assign 4 animation clips to a DirectionalMixerState with appropriate thresholds which works as expected however, when I try to associate an event to one of the child states, the event fires for an unrelated state.

    For example, my DirectionalMixerState has "Idle", "Run Forwards" and "Run Backwards". I am adding an event to the "Run Forwards" child state like so:

    mixer = new DirectionalMixerState();
    mixer.ChildStates[1].Events.Add(new AnimancerEvent(validEvent.Time, rightFootStepCallback));

    However, the event is firing when the first child state is playing (Idle). Can you please advise if I am taking the wrong approach to this? Essentially I'm trying to use events to capture footsteps for each of the states apart from idle.

    Thanks


    Edit: I have come to understand that i can use an alternative approach which is to add the event directly to the animation via Unity Editor rather than use the events on Animancer. This works around the problem I was having but it bypasses a wrapper I put in place to define events which is unfortunate.
     
    Last edited: Feb 26, 2022
  37. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    With Animancer Events, you can use AnimancerEvent.CurrentState to access whatever state is triggering the event, so you could just check its Weight to decide whether you want to play the sound or not.
     
  38. ncorns

    ncorns

    Joined:
    Jan 15, 2017
    Posts:
    10
    Thanks and for the quick response, that helped me work around the issue for mixers!
     
  39. cowj

    cowj

    Joined:
    Mar 10, 2019
    Posts:
    17
    sorry,yes The old link is wrong, it has been updated with the new link
    https://arrowinmyknee.com/2021/03/05/blend-to-target-in-unity/
     
  40. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Mixers don't currently have a feature like that, but fortunately all the weight calculations are done in C# in the MixerState classes so it's definitely possible to implement. Might actually be pretty easy:
    1. Make two float arrays for the number of states in the mixer. PreviousWeights and NextWeights.
    2. For each state, store mixer.ChildStates[x].Weight in PreviousWeights[x].
    3. Set the mixer.Parameter to the target value.
    4. Call mixer.RecalculateWeights(); to make it calculate the new weights immediately (instead of during the next animation update).
    5. For each state, store the newly calculated mixer.ChildStates[x].Weight in NextWeights[x].
    6. For each state, set mixer.ChildStates[x].Weight = PreviousWeights[x] to return them all to where they were before.
    7. For each state, call mixer.ChildStates[x].StartFade(NextWeights[x], fadeDuration). Then they should all just fade linearly using the regular fade system. The Custom Fade system might even still work on top of that if you don't want it linear.
    Let me know if you have any issues getting it to work (and if it works and you don't mind sharing your script then that would be awesome). Normally I'd try to implement it for you since it sounds like a desirable feature, but I've been fighting flood water whole day and then had to evacuate once the water reached ankle height inside the house so I'm too tired to do any real work now and probably won't have any real free time in the next few days while I sort everything out. At least I've got a new roof over my head though.

    20220228_155024.jpg

    20220228_132454.jpg
     
    Willbkool_FPCS likes this.
  41. cowj

    cowj

    Joined:
    Mar 10, 2019
    Posts:
    17
    Thanks for your reply, I will try to see if it works The flood looks bad, hope you safe
     
  42. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,033
    Hi, with the latest version SetEditorName method is no longer present. I tried SetDebugName, but it's not doing anything.
    What is the new method to name the states in the editor? It is very hard to debug without it since I don't know what part of the script fired the animation.

    EDIT
    Just saw the flood picture, hope everything is fine.

    EDIT 2
    Actually I just noticed it works for ControllerState but not for Float1ControllerState
     
    Last edited: Feb 28, 2022
  43. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,681
    //SOLVED:
    SOLUTION
    Code (csharp):
    1.  
    2. animancer.Playable.Speed = x;
    3.  






    /////////////////////////////////////////////////////////////////
    @Kybernetik
    Hi there,
    I just noticed your flooding!! Damnn.... where are you?? Hope you are ok.


    I am wondering about dynamically adjusting the clipSpeed, without interrupting the animation itself. Your examples seem to use animancer.Play(clip), but I am using animancer.Play(transition).

    https://kybernetik.com.au/animancer/docs/introduction/mecanim-vs-animancer/comparison/speed-and-time
    Thank you
     
    Last edited: Mar 4, 2022
  44. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Thanks for the well wishes. I'm in Chinderah (Australia). The waters still rose another meter inside the house after those photos I posted, so it was definitely the right decision to leave when we did instead of trying to wait it out. I've been occupied with cleaning up and salvaging what possessions we could whole week (lost a lot, but could have definitely been worse) so this is the first time I've even had my computer on since my last post.

    Unfortunately, after hitting my area, the rain continued south and wrecked heaps of other regions too, including part of the main internet connection between my area and Sydney which means that we basically don't have internet right now and no one is quite sure how long it will take for them to fix it. On top of that, mobile internet is terrible too because apparently 3 out of the 4 phone towers in my area were damaged by the floods so everyone is over stressing the very limited bandwidth and it's almost impossible to even load a simple web page during the day (I'm writing this at 1am). So I should be able to get on more often, but won't be back to my previous responsiveness for a while.

    @00christian00 Float1ControllerState inherits from ControllerState and I just tried it in the Linear Blending example and it seemed to work properly.

    @renman3000 animancer.Playable.Speed controls the speed of all animations at once which is often undesirable. But you can control the speed of a state played using a transition exactly the same as a state played using an AnimationClip. Or you can also set the transition.Speed before playing it.
     
    renman3000 and Willbkool_FPCS like this.
  45. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,625
    Sounds like your house needs to be 2m higher. Not sure how that is managed. :(
     
  46. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Playing an animation on its own with Animancer should give the exact same result as playing that animation in an Animator Controller. Reading the animation data and applying it to the character is handled entirely within the Playables API so Animancer has no control over that part.

    Are you using multiple layers or anything complex? What does your AnimancerComponent Inspector look like?

    Do you get the same result if you use a SoloAnimation component instead of an AnimancerComponent?
     
  47. One_Learning_Man

    One_Learning_Man

    Joined:
    Sep 30, 2021
    Posts:
    80
    Yea I forgot to delete the post but a hard restart of Unity fixed it. I simply chalked it up to a hiccup. Thanks.
     
  48. abhin7993

    abhin7993

    Joined:
    Aug 23, 2019
    Posts:
    7
    i am able to run the animation in unity by using _AnimancerState Play() method , and in this _Animancer.Play(animation) function.
    The issue which i am facing here is that my Animation is not running fully, it is switching to another animation file without the first file getting finished.
    Is there anyone who can help me with that?
     
  49. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,486
    Animancer doesn't do anything on its own, so if it's playing another animation then one of your scripts must be telling it to do so. You will need to debug your scripts to find out what's telling it to play that animation.
     
  50. One_Learning_Man

    One_Learning_Man

    Joined:
    Sep 30, 2021
    Posts:
    80
    Hi Kybernetik, I have questions surrounding the context behind your 3d game kit Animancer conversion example:

    So you have made drastic improvements over the Mecanim example but there is still two problems you had to leave in:

    1) Problem 1: Unity's character controller component is terrible: What would your suggestion be here then? I think I'm interpreting it's to either build your own or to find a decent solution on the Unity Asset store (which I don't mind). Is this interpretation correct?

    2) Problem 2: Acceleration is inconsistent: I know you made a disclaimer that you didn't want to deviate too much from Mecanim's example and decided to keep this strange behavior in but how would you resolve this issue?