Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Other Phase Control and Inertial Blending

Discussion in 'DOTS Animation' started by kite3h, May 7, 2021.

  1. kite3h

    kite3h

    Joined:
    Aug 27, 2012
    Posts:
    197
    Despite some minor bugs, I think DOTS.Animation is a fast package that stays true to the current trend of game animation.

    Among them, it's amazing that the sample presented a solution to the phase matching and transition spikes that bothered me when making a recent game.

    Inertial blending is the method adopted by Unreal Engine.

    It is an excellent solution to the load in transition blending, and it seems to be of great help in solving the problems that occur in kinematica.

    For the phase control function, I have been wondering whether to use kinematica or not, but it eliminated the trouble. I don't think I need to use kinematica.

    And today, when I installed a new version of Unity, the damn NaN Exception disappeared.
     
    NT_Ninetails likes this.
  2. CybeRock

    CybeRock

    Joined:
    Jul 14, 2021
    Posts:
    5
    hi there can you share some of your experience using the DOTS Animations Package

    If That's Possible Of course.....
     
  3. Vacummus

    Vacummus

    Joined:
    Dec 18, 2013
    Posts:
    191
    Kinematica is using a version of inertial blending. Source: https://forum.unity.com/threads/uni...-for-character-animation.878761/#post-5817196
    The Phase Matching samples are really cool and for your use case it may be appropriate to use it over Kinematica, but I want to share my thoughts on using Kinematica vs Phase Matching.

    The Phase Matching samples only work for accurately synchronizing/interpolating between clips that have similar motion (like walk, sprint, run). Kinematica on the other is able to do this synchronization between a much much broader array of clips with different motions (walk, run, twist, strife left, etc) using pose/trajectory matching.

    The only advantage the Phase Matching samples have is the ability to interpolate between similar motions. However, I can see unity making DFG nodes for Kinematica's pose/trajectory matching tasks. This means that we'll be able to use pose/trajectory nodes for the pose/motion matching, and then use the output (animationData) of that to find the best match from similar motion candidates to interpolate between using the NMixerNode, which would look something like this for the case when moving from Walk to Sprint animation:
    Code (CSharp):
    1.  
    2. EnityNode --(animData["Walk"])--> MatchTrajectoryNode
    3. MatchTrajectoryNode --(animData["Sprint"])--> MatchClosestMotionNode
    4. MatchTrajectoryNode--(animData["Sprint"])--> NMixerNode
    5. MatchClosestMotionNode --(animData["Walk"])--> NMixerNode
    6. NMixerNode --(animData["interpolated between Walk and Sprint"])--> EnityNode
    7.  
    This is all theoretical. But having Kinematica DFG Nodes would make for a very very powerful animation workflow.