⌚
Timeflow
  • ⌚Introduction
  • 📗User Guide
    • â–ļī¸Getting Started
      • ✅Requirements
      • âŦ‡ī¸Installation
      • 🚀Quick Start
      • âœī¸Workflow
      • đŸŽŦRender Pipeline
      • â¯ī¸Editor vs Runtime
      • đŸĻŋHow it Works
      • â›‘ī¸Potential Issues
      • ⚡Optimization
      • 🔨3rd Party Tools
      • đŸ”ĸUpgrading Guide
    • â„šī¸Timeflow Editor
      • đŸŽ›ī¸Menu Bar
      • â˛ī¸Time
      • Local Time Scope
      • 🧰Work Area
      • âš™ī¸Settings
      • âŗUpdate Settings
      • đŸ“ēDisplay Lists
      • đŸ”ģMarkers
      • đŸ”ĩObject
      • 🏭Managed Objects
      • ⚡Quick Select Objects
      • âš’ī¸Tools
    • đŸŽŦTimeflow View
      • 🔩Toolbar
        • 🔑Auto Keyframing
        • â¯ī¸Play Controls
        • đŸĨ…Work Area
        • â¯ī¸Current Time
        • đŸŽŧMusical Timing
        • 🌐Grid and Snap
        • 🔸Keyframe Values
        • đŸ”ģMarkers
      • â˛ī¸Timeline
      • 📐Time Navigation
      • Local Time Scope
      • 🎏Track View
      • â†˜ī¸Selection
      • 📰Object Panel
      • đŸ“ēDisplay Lists
      • 🍱Channels
      • đŸŖProperties
      • 🔗Channel Link
      • đŸšĨSwitches
      • 📅Values Column
      • đŸ›¤ī¸Tracks
      • 🔸Keyframes
      • đŸ“ļAlignment Tools
      • ⌛Time Offset
      • đŸ”ĸInfo Panel
      • 📉Graph View
      • âœ‚ī¸Keyframe Tools
    • 🍰Menus & Shortcuts
      • 📃Context Menus
        • â†–ī¸Select Menu
        • 📰Object Menu
        • 🍱Channel Menu
        • đŸ›¤ī¸Tracks Menu
        • 🔸Keyframes Menu
        • đŸ”ģMarkers Menu
        • 📰View Menu
        • 📰Events Menu
        • đŸĨ…Work Area Menu
      • đŸ—ƒī¸File Menu
      • âš’ī¸Timeflow Menu
        • đŸ•ēAdd Behavior
        • đŸ”ļAnimation
        • 🍱Composition
        • đŸ“ēDisplay
        • ⏊Jump To
        • 👨‍đŸ‘Ļ‍đŸ‘ĻHierarchy
        • 🌐Mesh
        • 👉Select
        • 📚Tracks
        • 🌈Track Colors
        • â†”ī¸Transform
        • đŸ‘ī¸Visibility
        • đŸ› ī¸Editor
      • đŸ”ĩGame Objects Menu
      • đŸŽ›ī¸Presets
      • âš™ī¸Preferences
        • Assets
        • ⌛Time
        • đŸŗī¸â€đŸŒˆTracks
        • âšĒObjects
        • 🧮Channels
        • đŸ”ļKeyframes
        • 🔠Input
        • đŸ“ĨImport
        • đŸ–ŧī¸Rendering
        • đŸŽ›ī¸Overrides
        • 🍱Extras
      • *ī¸âƒŖKeyboard Shortcuts
        • Managing Shortcuts
      • âœ´ī¸Quick Menu
  • Reference
    • đŸ”ĩTimeflow Object
      • đŸĸTracks
      • 🏭Behaviors
      • ⏰Events
      • đŸ—ƒī¸Channels
    • 💃Timeflow Controller
      • đŸŽžī¸Timeflow Playback
    • đŸĒ„Behaviors
      • đŸŽžī¸Animation
        • 🔸Keyframer
        • â†”ī¸Tween
        • 🔀Blend
        • đŸŽĸMotion Path
        • đŸ‘¯Animation Clips
        • 🌴Animator Blend Trees
        • 😁Blend Shapes
      • 🤖Automation
        • 🛸Auto Bank
        • 🧭Auto Rotate
        • 📐Distance
        • ⏰Event
        • đŸ›Šī¸Flyby
        • 🏃Follow
        • 👀Look At
        • đŸŽ¯Look At Target
        • 🎲Noise
        • 🚊Place On Path
        • đŸī¸Place On Surface
      • 🔊Audio
        • 🔊Audio Track
        • đŸŽŧAudio Spectrum
        • đŸŽĩAudio Sample
        • đŸŽ™ī¸Audio Reactive
      • 🎹MIDI
        • 🎹Midi File
        • đŸĨMidi Tween
        • 📡Midi Receiver
          • đŸŽ›ī¸Minis Setup (New Input System)
          • đŸšĨMidiJack Setup (Legacy Input)
      • 🏁Rendering
        • đŸŽžī¸Render To Disk
        • 📋Render Queue
        • đŸ“Ŋī¸Video Encoding
        • 💡Tips & Optimizations
        • âēī¸Unity Recorder
      • 🔧Tools
        • â„šī¸Animator Info
        • 🧮Align Children
        • đŸ’ŦComment
        • #ī¸âƒŖFPS Counter
        • 📈Graph
        • 🔗Property Link
        • 🔄Rotator
        • ✨Particle System Update
        • 🌈Trail Renderer Update
        • đŸ“ēVideo Player Update
    • đŸ—ƒī¸Precomposing
    • 🏭Prefabs
    • đŸŽ›ī¸Editor Overrides
      • 🏹Transform Editor Override
    • 🔌Integrations
      • đŸ§™â€â™‚ī¸Adventure Creator
      • đŸŽ›ī¸MIDI Jack | Minis
      • đŸ¤ēSpine Animation
      • đŸ“Ŋī¸Unity Timeline
      • ➰Unity Splines
    • đŸĒSamples
      • đŸ•šī¸Demo App
      • đŸŽžī¸Cutscenes
      • 🏓Physics
      • 🍧Shader Properties
      • ⚡Visual Effect Graph (VFX)
    • 📖Glossary
    • 📗Scripting
    • đŸ“ŖPublished Works
    • âš ī¸Known Issues
    • 🆘Support
    • đŸ§ĒBeta
    • Roadmap
    • đŸ”ĸVersion History
    • ÂŠī¸Terms & Privacy
Powered by GitBook
On this page
  • Switching Between Player Input and Timeflow Control
  • Using Track Sections
  1. Reference
  2. Behaviors
  3. Animation

Animator Blend Trees

Animate and choreograph characters with smooth transitions

PreviousAnimation ClipsNextBlend Shapes

Last updated 7 months ago

Unity Animator provides an excellent system for complex animations using blend trees and control parameters to smoothly transition from one state to another. This is often used to control characters with player input, however can also be controlled by Timeflow animation channels.

This documentation assumes you are already familiar with using Animator components and blend trees. Please refer to the Unity documentation on for further information.

Find the included example in:

Assets/AxonGenesis/Timeflow/Samples/Demo/Scenes/Animation/AnimatorBlendTrees.unity

Following is an example blend tree with several animation states and conditional transitions leading from one to another. Notice that it's possible to blend from the idle animation to any of the other states, but some states cannot directly transition to one another. Keep this in mind when animating parameters.

Parameters animated in Timeflow are applied to the Animator, with data being sent frame-by-frame to each parameter, similar to how player input is processed each frame. This allows full or partial control over character animations that can override or blend with player input.

While player input is only available at runtime, Timeflow can play Animator sequences in edit mode so you can easily preview and edit animations.

Please note that you must play the Timeflow view to see animations. When manually moving or jumping in time, animation isn't updated. This is due to the way Animator handles updating, which isn't fixed in time but rather responds to events and requires continuous playing to function.

Switching Between Player Input and Timeflow Control

The example scene included (see above) demonstrates the use of a simplified script to switch between player input and sequenced animation using Timeflow.

This example enables and disables the TimeflowObject, allowing player input to pass through when it is no longer updating in Timeflow. The script also includes example code to get references to behaviors and channels.

When the scene starts, the animation sequence plays automatically until any one of the input keys shown above is pressed, allowing the player to take control over the character. Timeflow animation can then be resumed by pressing the spacebar.

Using Track Sections

Alternatively or in addition to disabling animation objects via scripting, you can also use tracks to choreograph sequences at specific times in the scene. For example, this could be used to begin a scene with an animated sequenced, and then allow the player to take control.

As shown in the screenshot above, channels are only updated during active track areas, so the parameters are unaffected between tracks, allowing player input or other control to take over. Animation then resumes at the next track section, looping the animation within each channel.

If both player input and Timeflow animation are occurring at the same time on the same parameter, it is likely to cause issues and produce unexpected results. Make sure whichever method you use that only one thing is controlling each parameter at a time.

Animator is not playing an AnimatorController

If you see this warning in the console, it means that the Animator component is not ready for playback. If this occurs, starting and stopping playback in the Timeflow view usually resolves it, or alternatively you can try clicking the Axon Genesis logo in the Timeflow view to force refresh the scene. If the problem persists, check that the Animator component is enabled.

In the Timeflow view, Animator parameters are automatically listed as properties that can be added as animation channels or other behaviors such as and .

Please note that Animator parameters cannot be used with on the same object, since playing clips directly requires that the Animator component is disabled.

You can also use and the to create choreographed sections of time which can be played in sequence, or jumped to dynamically. This makes it possible with minimal scripting to integrate Timeflow animation sequences with a scene controller to have an intro, outro, and any number of cut scenes or other triggered animation layers overriding or layering on top of any player input and other game mechanics.

đŸĒ„
đŸŽžī¸
🌴
Animation Clips
Markers
Work Area
Blend Trees
Tween
Blend
Timeflow supports bool, int, and float parameters.
You must enter play mode to test player input. Use the key mappings above or assign your own.
Animation channels in Timeflow are only updated during active track sections, with any empty areas bypassing the channels.