⌚
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
  • Structure
  • Execution Order
  • Code Structure
  • Terminology
  • Data Serialization
  1. User Guide
  2. Getting Started

How it Works

A brief overview of how Timeflow operates

PreviousEditor vs RuntimeNextPotential Issues

Last updated 7 months ago

Timeflow defines its own independent timing system which works hierarchically and performs a specific order of updating. Each channel and object in Timeflow has its own local time and can inherit time offsets from parent objects.

Structure

Timeflow is designed to work with any scene setup, whether it be for a game, app, or creative project. Timeflow manages object structure hierarchically with timing updates flowing from the top down through the branches of the tree to each of the channels in order.

Note that any object not parented under Timeflow is automatically managed by the active instance. It is not required to make objects children of Timeflow, unless to ensure that it belongs to that specific instance.

Execution Order

Animation channels update in specific order as listed in the Timeflow view or as displayed in the channel list of the containing TimeflowObject.

Code Structure

For those interested in scripting Timeflow, the full source code is included. Timeflow uses base classes to abstract Unity's MonoBehaviour with customized updating methods that take advantage of class inheritance. All code design has been carefully considered to balance optimal functionality and performance and operates well within Unity's scripting guidelines.

Terminology

Data Serialization

Timeflow implements most features through component behaviors, which serializes data to game objects directly, saved in the scene file. Therefore, no additional assets are used with Timeflow. This allows greater creative control making it easier to do things such as duplicating an object and modifying its animation to rapidly create variations without additional asset management.

While Timeflow does contribute to the size of the scene on disk and in memory, in most cases it accounts for a small amount. Users should feel no restriction in the use or performance of the tools for even large complex scenes, though keeping an eye on resource usage and profiling your project is encouraged.

The data structure of Timeflow behaviors is designed for greater creative flexibility and not specifically optimized for high volumes of data, such as motion capture or other baked animation. Those types of data are best suited for Unity’s built-in animation system, which is more optimally designed for it.

The order may be reversed to display channels top-to-bottom rather than first-to-last in the , according to your own personal preference.

Timeflow objects and behaviors also have additional update settings to fully customize the order and timing of updates. This allows channels to operate as layers, dependent on a specific order of execution, with other special use cases such as forcing frame rates and creating dependency chains. This is discussed in more detail in

Please see the section for a quick start into custom coding with Timeflow.

Timeflow employs a unique strategy to animation specifically designed for the challenges of Unity, which may be similar but also differ in key ways from other animation systems. Please refer to the section for definitions of common terms and features.

📗
▶️
🦿
Timeflow Preferences
Update Settings.
Scripting
Glossary
The gray lines denote separate game objects.