LogoLogo
  • 🌍Welcome
    • 🀝Support & Community
    • ❓FAQ
  • QuickStart
    • πŸ•ΊAnimate Anything Quickstart
      • πŸ’ͺGetting the Best Possible Results for your Model
      • ⁉️FAQ
      • πŸ€Έβ€β™‚οΈAnimations by Category
    • πŸ¦†Generate Anything Quickstart
      • πŸ₯‡Best Practices for Best Results
      • ⁉️FAQ
      • πŸ’«Expected Results by Category
    • πŸƒβ€β™‚οΈUnity Quickstart
      • πŸ”Anything Browser
      • 🌍My World
      • πŸ€–AI Creator
    • 🚲Unreal Library Quickstart
      • 🍎MacOS Installation
      • πŸ€–AI Creator
      • πŸ“¦Importing models in a packaged project
      • 🚢Animate Anything
    • ⛰️Unreal Procedural Environments Quickstart
  • Unity
    • πŸ“¦Download SDK
      • πŸ““Unity Release Notes
        • Anything World for Unity v1.1.0.2
        • Anything World for Unity v1.1.0.1
        • Anything World for Unity v1.0.2.5
        • Anything World for Unity v1.0.2.4
        • Anything World for Unity v1.0.2.3
        • Anything World for Unity v1.0.2.2
        • Anything World for Unity v1.0.2.1
        • Anything World for Unity v1.0.2.0
        • Anything World for Unity v1.0.1.0EA
        • Anything World for Unity v1.0.0.1EA
        • Anything World for Unity v1.0.0.0EA
        • Anything World for Unity v3.1.20.1
        • Anything World for Unity v3.1.20
        • Anything World for Unity v3.1.19
        • Anything World for Unity v3.1.18
        • Anything World for Unity v3.1.17
        • Anything World for Unity v3.1.16
        • Anything World for Unity v3.1.15
      • βš™οΈTroubles Updating? Upgrade Guide
    • πŸ“„Documentation
      • 🌐AnythingWorld API
        • AnythingAnimate
          • βš™οΈAnimate
          • βš™οΈPoll
        • AnythingMaker
          • βš™οΈMake
        • RequestParameter
          • AddCollider
          • AddRigidbody
          • AddScripts
          • ClampDatabaseScale
          • IsAnimated
          • LegacyAnimatorInEditorOption
          • OnFailAction
          • OnSuccessAction
          • Parent
          • PlaceOnGrid
          • PlaceOnGround
          • Position
          • Rotation
          • Scale
          • ScaleMultiplier
          • ScaleType
          • SerializeAsset
          • SetDefaultBehaviourPreset
          • TransformSpace
        • 🌐Voice
          • CommandRequester
            • RequestCommand
            • RequestAndReturnCommand
        • 🌐Utilities
          • UtilityEnum
            • ScaleType
        • 🌐Animation
          • LegacyAnimationController
            • MovementJumpLegacyController
              • BlendAnimationOnSpeed
              • Idle
              • JumpStart
              • JumpFall
              • Land
              • Run
              • Walk
            • FlyingAnimationController
              • Fly
              • Idle
            • CrossFadeAnimation
            • PlayAnimation
            • StopAnimations
            • Wait
      • Behaviour Tree Editor
        • What is a Behaviour Tree?
        • How to use Behaviour Tree Editor
      • Path Creator
      • πŸ”¨Building Your Project
    • πŸ“šTutorials
    • πŸƒLegacy vs. Modern Animation System
    • ❗Known Issues
  • Unreal
    • πŸ“”Unreal Release Notes
      • Anything World for Unreal v1.2.0.0EA
      • Anything World for Unreal v1.1.0.0EA
    • πŸ“–Unreal Plugin Codebase: Intro and FAQs
    • πŸ”¬Packaged project runtime loading of AW models
  • REST API
    • πŸ“„Documentation
    • βš’οΈService Status
    • πŸ’…Preparing your 3D model
  • Unity Legacy Documentation
    • πŸ§“Legacy Package API References
      • πŸ“„API References (Legacy)
        • AnythingCreator
        • AnythingSpeech
        • AnythingHabitat
      • ❓Troubleshooting (Legacy)
    • πŸƒUnity Quickstart - Classic Version
    • 🎀Voice Creator - Classic Version
    • πŸ‘“Examples
  • Animate Anything 3D software plugins
    • 🧊Animate Anything Blender Add-on Manual
    • 🧊Animate Anything Maya Plugin Manual
    • 🧊Animate Anything 3D Studio Max Plugin Manual
    • 🧊Animate Anything Roblox Plugin Manual
Powered by GitBook
On this page
  • Intro to the Animation Systems
  • Legacy Animation System
  • Modern Animation System
  • Pros & Cons
  • Legacy Animation System
  • Modern Animation System
  • Using the systems
  • Legacy Animation System
  • Modern Animation System

Was this helpful?

Export as PDF
  1. Unity

Legacy vs. Modern Animation System

Understanding the difference between the two systems, and which might be the right one for you.

Intro to the Animation Systems

Legacy Animation System

The legacy animation system uses Unity's Animation component and Anything World's LegacyAnimationController component which blends between the different animation clips depending on parameters and function calls by the developer. It is primarily used when an object is being created at runtime and requires a transition between multiple animations.

Modern Animation System

The modern animation system uses Unity's own Animator component. This solution serializes all of the animation components and uses an Animator Override Controller to structure the transition links and parameters, which come together to make a fully structure animator. This system cannot be used at runtime, and requires you to have created the override controller in editor mode.

Pros & Cons

Legacy Animation System

Pros
Cons

Can be created both in Editor Mode and Play Mode

Is not directly compatible with the traditional animator

Simple to transition between different states

More rigid, as the legacy animation controllers strictly follow the animation state transitions set up on the object being loaded

Modern Animation System

Pros
Cons

Naturally integrates into the already existing systems in Unity

Can only be created in Editor Mode

Can be modified after creation through the created Animator Controller

Requires serialization, which could increase application build size

Using the systems

Legacy Animation System

Example

using UnityEngine;
using AnythingWorld.Animation;

public class ExampleClass : MonoBehaviour
{
    public float speed = 0.0167f;
    private float velocity;

    private GameObject createdGameObject;
    private RunWalkIdleController controller;

    public void Start()
    {
        createdGameObject = AnythingMaker.Make("Cat", RequestParameter.UseLegacyAnimatorInEditor(true));
    }

    public void Update()
    {
        if (Input.GetKeyDown(KeyCode.W)) velocity += speed;
        if (Input.GetKeyDown(KeyCode.S)) velocity -= speed;
        velocity = Mathf.Clamp(velocity, 0, speed * 2);

        if (controller == null)
        {
            controller = createdGameObject.GetComponentInChildren<RunWalkIdleController>();
        }
        else
        {
            controller.walkThreshold = 0;
            controller.runThreshold = speed;
            createdGameObject.transform.Translate(0, 0, velocity);
            controller.BlendAnimationOnSpeed(velocity);
        }
    }
}

Modern Animation System

PreviousTutorialsNextKnown Issues

Last updated 1 year ago

Was this helpful?

To use the legacy animation system in editor, you can pass into your call as a . Doing so tells the Anything World system to use the legacy animation system rather than the modern animation system. At runtime, the system will automatically default to creating an object using the legacy animator.

A created object, depending on its typing will come with a different legacy animation controller. Most animals by default are created with the , whereas flying birds are created with the .

Anything World uses the modern animation system by default for any objects that are created in editor. As this system uses the built-in Unity animator, you can use their to modify and read from the controller created.

πŸƒ
LegacyAnimatorInEditorOption(true)
AnythingMaker.Make()
RequestParameter
RunWalkIdleController
FlyingAnimationController
scripting API