Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

Feature Request Animation Playable Feature Requests

Discussion in 'Animation' started by SolarianZ, Mar 7, 2023.

  1. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    245
    I've been trying to develop a new animation system and have encountered and solved many problems, many of which come from the limitations of Playable. I've compiled a list of APIs that I believe are necessary and would greatly enhance the power and usability of Playable. I hope Unity will consider adding these APIs in future updates!
    • Add AnimationStream.CopyAnimationStreamPose method, just like the
      AnimationStream.CopyAnimationStreamMotion
      method.
    • Add AnimationClip.SetPoseTime method, which can jump an animation clip to a specified progress without affecting RootMotion, or add another method to make the AnimationClipPlayable ignore RootMotion once. See: https://forum.unity.com/threads/how...ut-affecting-the-characters-position.1408411/ .
    • Add SaveAnimationCachePlayable and UseAnimationCachePlayable methods to support caching an animation(pose, motion and curves) and then use it in other place.
    • Add AnimationClipPlayable.SetAnimationClip method. I found there is a SetAnimatedProperties method but it doesn't do anything.
    • Add support for blending animations between Animator and Timeline.
     
    Last edited: Mar 7, 2023
    Yuchen_Chang likes this.
  2. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    245
    Also:
    • AnimationClipPlayable.SetMirror method
    • AnimationClipPlayable.SetLooped method
     
  3. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    245
    • float AnimationClipPlayable.ReadCurve(int curveNameHash, float normalizedTime) method
    • Generic animation retargeting
    • Add support for Animation Markup, this is useful for achieving Pose Matching (like UE's Marker Based Syncing)
     
  4. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    245
    • Stop executing the
      ProcessAnimation
      and
      ProcessRootMotion
      methods of the paused animation job
    When a
    ScriptPlayable
    (or its parent Playable) is paused,
    PlayableBehaviour
    will no longer execute the
    PrepareFrame
    and
    ProcessFrame
    methods.
    However, when an
    AnimationScriptPlayable
    (or its parent Playable) is paused,
    IAnimationJob
    will continue to execute the
    PrepareFrame
    and
    ProcessFrame
    methods. It should stop calling the methods like other Playables.
    Additionally, animation job needs to constantly read and write skeleton data, and retrieve input stream, which are high-performance operations. In a relatively large PlayableGraph, if these behaviors cannot be stopped when the Playable is paused, it will cause significant performance overhead.​
     
    mandisaw likes this.