🦿How it Works
A brief overview of how Timeflow operates
Last updated
A brief overview of how Timeflow operates
Last updated
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.
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.
Animation channels update in specific order as listed in the Timeflow view or as displayed in the channel list of the containing TimeflowObject.
The order may be reversed to display channels top-to-bottom rather than first-to-last in the Timeflow Preferences, 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 Update Settings.
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.
Please see the Scripting 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 Glossary section for definitions of common terms and features.
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.