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.

[RELEASED] Rukhanka - ECS (DOTS) Animation System

Discussion in 'Assets and Asset Store' started by Rukhanka, Feb 9, 2023.

  1. Rukhanka

    Rukhanka

    Joined:
    Dec 14, 2022
    Posts:
    95
    Rukhanka is an animation system for the Entities Component System (ECS). It works (and requires) Entities and Entities Graphics packages. Rukhanka animates skinned meshes and passes prepared data to the Entities Graphics package which renders animated objects. There is only Generic animation type support for now.


    It is made with three main principles in mind:
    • Complex inside - simple outside. Usage and setup are trivial. Use familiar Unity animation tools such as Mecanim and Animation Clips as authoring components. Rukhanka converts them during the baking phase and internally processes the animator state machine and plays all required animations.
    • Performance in all aspects. Everything is fully bursted. ISystem-based and fully parallel with per-bone granularity (not per-skeleton). This allows achieving high thread utilization for low-bone and high-bone meshes.
    • Behavior is nearly 100% similar to Unity Mecanim. Although I try to achieve 100% behavior identity, I am not a Unity employee and have no access to the Unity Animation system source code. Everything in Rukhanka is achieved by reading public documentation and investigating Unity's behavior.


    Getting started video:


    IMPORTANT: Make sure to refer to Feature Support Tables to figure out what functionality is supported before purchase.
     
    Last edited: May 8, 2023
    apkdev, Antypodish, lclemens and 4 others like this.
  2. Enzi

    Enzi

    Joined:
    Jan 28, 2013
    Posts:
    879
    Very nice!
    I couldn't find explicit info. Your animation system doesn't require a compute shader, right?

    How long did you work on this asset?
    Unity devs, why is this dev out-pacing you in one of the most crucial parts of a game? :eek:
     
    Rukhanka likes this.
  3. Rukhanka

    Rukhanka

    Joined:
    Dec 14, 2022
    Posts:
    95
    Hi. You are right, compute shaders don't required. Pure Entities + Burst. I am worked approximately 4 monthes till v1.0.0 release.
     
    Last edited: Feb 11, 2023
  4. Rukhanka

    Rukhanka

    Joined:
    Dec 14, 2022
    Posts:
    95
    Version 1.0.1 is released.

    Changelog:
    Changed
    • Crowd and Stress Test samples now have control for skeleton visualization enabling (with RUKHANKA_DEBUG_INFO defined).
    • Crowd and Stress Test samples now show total number of animated bones in scene.
    Added
    • IEnableableComponent interface for AnimatorControllerLayerComponent and RigDefinitionComponent.
    • Description of main Rukhanka entity components.
    Fixed
    • Incorrect handling handling of uniform scale in animations.
     
  5. Rukhanka

    Rukhanka

    Joined:
    Dec 14, 2022
    Posts:
    95
    Version 1.0.3 is released.

    Changelog:
    Fixed
    • Incorrect handling of very small transition exit time during state loops.
    • Preventing NANs (division by zero) when transition duration is zero.
    • Memory allocation error in PerfectHash tests.
    • Controller parameters order in authoring animator does not coincide with generated AnimatorControllerParameter buffer.
    • Empty animations to process buffer were handled incorrectly.
    • Exit states of state machines are now handled properly.
    • Animator state `Cycle Offset` treated as animation normalized time offset as in Unity.Animator.
    Added
    • Adding authoring Unity.Animator and all used Unity.Animation in the baker dependency list.
    • Extended animator controller logging with RUKHANKA_DEBUG_INFO which displays all states parameters and transitions of baked state machines.
     
  6. Rukhanka

    Rukhanka

    Joined:
    Dec 14, 2022
    Posts:
    95
    Version 1.1.0 is released.

    Changelog:
    Added

    • 'Unity Netcode for Entities' package support. Animations and controllers can be synchronized using interpolated and predicted modes.
    • New 'Netcode Demo' sample with 'Rukhanka' and 'Netcode for Entities' collaboration showcase.
    • Animator parameter aspect to simplify animator controller parameter data manipulation.
    Changed
    • Minimum 'Entities' and 'Entities.Graphics' packages version is 1.0.10.
    Fixed
    • State machine transitions with exit time 0 were handled incorrectly.
    • Transitions with exit time 1 are looped contrary to Unity documentation. 'Rukhanka' behavior changed to match 'Mecanim' in this aspect.
    • Various deprecated API usage warnings.
     
  7. ashwinFEC

    ashwinFEC

    Joined:
    May 19, 2013
    Posts:
    44
    Just bought it. Looks promising. Though I do notice that the skeleton Rukhanka creates ignores the "Scale Factor" in the Mesh import settings. So the scaled mesh gets applied to the unscaled skeleton and thus looks deformed. Is this by design?
     
  8. Rukhanka

    Rukhanka

    Joined:
    Dec 14, 2022
    Posts:
    95
    Thank you for using Rukhanka. No, this behavior is not by design, but I have not so many test animated meshes with various scale setups. Would you be so kind as send me one example mesh plus one animation, please? I will do necessary fixes. support@rukhanka.com
     
    Last edited: Jun 5, 2023 at 10:22 PM
  9. ashwinFEC

    ashwinFEC

    Joined:
    May 19, 2013
    Posts:
    44
    You can test this on any skinned mesh. Since the Scale Factor is a setting in
    the import settings of the mesh, not scaling on the mesh or skeleton themselves.




    This is what happens when I set the Scale Factor to 2 on the Ellen asset of the sample scene

     
    Last edited: Jun 6, 2023 at 12:35 AM
    Rukhanka likes this.