# Table of Contents - [Introduction | Timeflow](#introduction-timeflow) - [Getting Started | Timeflow](#getting-started-timeflow) - [Requirements | Timeflow](#requirements-timeflow) - [Installation | Timeflow](#installation-timeflow) - [Workflow | Timeflow](#workflow-timeflow) - [Render Pipeline | Timeflow](#render-pipeline-timeflow) - [Upgrading Guide | Timeflow](#upgrading-guide-timeflow) - [3rd Party Tools | Timeflow](#3rd-party-tools-timeflow) - [Editor vs Runtime | Timeflow](#editor-vs-runtime-timeflow) - [How it Works | Timeflow](#how-it-works-timeflow) - [Potential Issues | Timeflow](#potential-issues-timeflow) - [Quick Start | Timeflow](#quick-start-timeflow) - [Local Time Scope | Timeflow](#local-time-scope-timeflow) - [Optimization | Timeflow](#optimization-timeflow) - [Timeflow Editor | Timeflow](#timeflow-editor-timeflow) - [Managed Objects | Timeflow](#managed-objects-timeflow) - [Object | Timeflow](#object-timeflow) --- # Introduction | Timeflow ![Page cover](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FnxUktT0zSCmtCPwYN6Pk%252FTimeflowLogo.jpg%3Falt%3Dmedia%26token%3Dfb6a7398-afc7-43a6-be3f-3c4083fa5a89&width=1248&dpr=4&quality=100&sign=d6895721&sv=2) [](https://axongenesis.gitbook.io/timeflow#what-is-timeflow) What is Timeflow? ----------------------------------------------------------------------------------- Timeflow is a powerful and flexible animation system built from the ground up, offering a new range of creative possibilities for designers and developers. With a focus on motion graphics, cutscenes, and music synchronization, Timeflow offers a robust integrated track and channel based timeline with advanced curve editing tools, procedural animations, dynamic behaviors, and much more. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252Fp9Y3h7694qrsWMQ1rgcg%252Fimage.png%3Falt%3Dmedia%26token%3D6a43e3c1-ee72-4833-b6ae-7f0d43d620aa&width=768&dpr=4&quality=100&sign=4282f394&sv=2) [](https://axongenesis.gitbook.io/timeflow#get-timeflow-in-the-unity-asset-store) **Get Timeflow in the Unity Asset Store** -------------------------------------------------------------------------------------------------------------------------------- [![Logo](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2Funity-assetstorev2-prd.storage.googleapis.com%2Fcdn-origin%2Fimages%2Ffavicons%2Fapple-touch-icon.png%3Fv%3D1&width=20&dpr=4&quality=100&sign=c04200f2&sv=2)Timeflow Animation SystemUnityAssetStore](https://assetstore.unity.com/packages/tools/animation/timeflow-animation-system-247895) [](https://axongenesis.gitbook.io/timeflow#try-the-demo) **Try the Demo** ------------------------------------------------------------------------------ Be sure to check out the Demo App showcasing the animation features Timeflow has to offer. View it now in WebGL or download for select platforms. The demo includes full source code and assets with a buildable app and dozens of example scenes. For more information, see [Demo App](https://axongenesis.gitbook.io/timeflow/reference/samples/demo-app) [](https://axongenesis.gitbook.io/timeflow#undefined) [Click here to try the Demo App in your web browser!](https://axongenesis.com/timeflowdemo/) -------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axongenesis.gitbook.io/timeflow#quick-start) Quick Start ------------------------------------------------------------------------ If you are new to Timeflow, please be sure to see [Getting Started](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started) for essential tips and resources. Timeflow is thoroughly documented and tutorial videos are provided on most topics. [](https://axongenesis.gitbook.io/timeflow#who-can-use-it) Who can use it? ------------------------------------------------------------------------------- Timeflow has been designed for artists and developers alike! It can be used in any Unity project in combination with or separately from Unity's built-in animation systems. Timeflow can and has been used in mobile apps, games, VR experiences, as well as used in production creating music videos, 360 experiences, and fulldome content. It is compatible with other packages and 3rd party tools, working alongside other animation systems and game play mechanics. [](https://axongenesis.gitbook.io/timeflow#what-can-it-do) What can it do? ------------------------------------------------------------------------------- Timeflow is a complete animation system that can be used to choreograph objects and properties throughout any scene. It includes a suite of creative tools and a fast iterative workflow. It can be used to create animated videos, cutscenes in games, or as a general toolset for breathing life into your game or app. Timeflow can be used in runtime environments and/or rendered to disk to leverage Unity as a content production tool. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FamOHGYfxtEcLcG7OJcen%252Fimage.png%3Falt%3Dmedia%26token%3D652188fb-cc7a-4632-9b0e-6921dcc5c8f4&width=768&dpr=4&quality=100&sign=58aab31b&sv=2) [](https://axongenesis.gitbook.io/timeflow#what-else-can-timeflow-do) What else can Timeflow do? ----------------------------------------------------------------------------------------------------- * Animate almost any property of any object in any scene. * Work with musical timing, timecode, and custom frame rates for precise synchronization. * Create and edit animations with a powerful and flexible graph editor. * Create procedural motions that loop consistently or with variation. * Create motion paths, camera edit sequences, transitions, and much more. * Link channels with expressions to create dynamic compound effects. * Manage the timeline with markers, grid snapping, work areas, and jump points. * Save views of related objects to organize scenes and focus only on what you need to. * Includes many workflow enhancing tools, menus, and shortcuts to aid in productivity. * Timeflow has a refined user-friendly UI with all of the features expected in a professional system including: full undo support, duplicate, copy-paste, select all, marquee selection, drag and drop, selection awareness, customizable keyboard shortcuts, context menus, color labeling, adjustable window panels, and many other configurable settings. [](https://axongenesis.gitbook.io/timeflow#is-any-scripting-required) Is any scripting required? ----------------------------------------------------------------------------------------------------- Artists and designers can fully use Timeflow as a toolset without ever looking at code! No coding or scripting experience is required to use Timeflow. Developers and creatives alike can start using the tools right away with minimal knowledge of Unity. Of course, more experienced users may write custom behaviors and extend Timeflow in a number of ways. [](https://axongenesis.gitbook.io/timeflow#why-not-just-use-unitys-animation-system) Why not just use Unity's animation system? ------------------------------------------------------------------------------------------------------------------------------------ You can. In fact Unity's Timeline and animation system has many great features that Timeflow doesn't have. However, the creative aspects that Timeflow offers go far beyond what one would be able to do using only the built-in tools. ### [](https://axongenesis.gitbook.io/timeflow#the-best-of-both-worlds) The best of both worlds! Timeflow can be configured to work separately or in conjunction with Unity's Timeline and animation features. Timeflow integrates with Unity's animation system with the ability to playback animation clips, control Animator blend trees, and synchronize with Timeline directors to utilize the best of both systems. Timeflow can easily be added to existing scenes with minimal setup and artists may choose whichever approach is best suited to their animation needs. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252F4HshxQ4TSSCNttoMZhwk%252Fimage.png%3Falt%3Dmedia%26token%3D427aa5f0-d568-4851-a57f-b476660cbdc8&width=768&dpr=4&quality=100&sign=8e3cfa4b&sv=2) An example using Timeflow synchronized with Unity Timeline Unity's Timeline and animation features are not required to use Timeflow, but both may be used in combination to achieve your creative goals. For more information see the [Timeline Integration](https://axongenesis.gitbook.io/timeflow/reference/integrations/unity-timeline) package included with Timeflow. [](https://axongenesis.gitbook.io/timeflow#what-timeflow-is-not) What Timeflow is _not_? --------------------------------------------------------------------------------------------- #### [](https://axongenesis.gitbook.io/timeflow#timeflow-is-not-a-character-animation-system) **Timeflow is not a character animation system.** Timeflow is not designed to work directly with complex animation data sets such as character hierarchies, motion capture, or baked animations. These features are already well supported in Unity's built-in systems, which can be leveraged by Timeflow. Timeflow could be used to animate character parts without limitation, but does not offer inverse kinematics or other rigging tools typically associated with character animation. This problem is solved by using existing Unity and 3rd party tools in conjunction with Timeflow. #### [](https://axongenesis.gitbook.io/timeflow#timeflow-is-not-a-recording-or-data-capture-system) **Timeflow is not a recording or data capture system.** Timeflow has limited capability to capture and record data. It is not a gameplay recording system. Any changes made during play mode are not saved and it is expected that all editing and creative activities are done in the Unity editor in edit mode. However, it is possible to leverage built-in or 3rd party tools to capture animation or gameplay data for playback and synchronization using Timeflow. #### [](https://axongenesis.gitbook.io/timeflow#timeflow-is-not-a-video-editing-or-compositing-system) Timeflow is not a video editing or compositing system. Timeflow _does_ support the use of [Video Player](https://axongenesis.gitbook.io/timeflow/reference/behaviors/tools/video-player-update) but only offers basic controls to queue and play items. Timeflow does not edit or manipulate video and playback is limited by the Video Player capabilities and API provided by Unity. Compositing effects to some degree may be accomplished using shaders or post processing, though Timeflow does not provide these features so they must be created using built-in or 3rd party tools. Once objects are set up, Timeflow can be used to animate their properties. #### [](https://axongenesis.gitbook.io/timeflow#timeflow-is-not-an-audio-production-system) Timeflow is not an audio production system. Timeflow is designed to play and synchronize to audio, but does not generate or manipulate audio directly. Timeflow uses audio mainly as a soundtrack to synchronize each scene or Timeflow instance. With that said, there are tools included to work with audio to a limited degree such as layering multiple audio sources, triggering audio with events, and sending and receiving MIDI signals (with some additional setup). Note also that audio performance is device dependent and some platforms (or devices) may have limitations. For more information see [Audio](https://axongenesis.gitbook.io/timeflow/reference/behaviors/audio) and [Midi](https://axongenesis.gitbook.io/timeflow/reference/behaviors/midi) . [NextGetting Started](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started) Last updated 1 month ago * [What is Timeflow?](https://axongenesis.gitbook.io/timeflow#what-is-timeflow) * [Get Timeflow in the Unity Asset Store](https://axongenesis.gitbook.io/timeflow#get-timeflow-in-the-unity-asset-store) * [Try the Demo](https://axongenesis.gitbook.io/timeflow#try-the-demo) * [](https://axongenesis.gitbook.io/timeflow#undefined) * [Quick Start](https://axongenesis.gitbook.io/timeflow#quick-start) * [Who can use it?](https://axongenesis.gitbook.io/timeflow#who-can-use-it) * [What can it do?](https://axongenesis.gitbook.io/timeflow#what-can-it-do) * [What else can Timeflow do?](https://axongenesis.gitbook.io/timeflow#what-else-can-timeflow-do) * [Is any scripting required?](https://axongenesis.gitbook.io/timeflow#is-any-scripting-required) * [Why not just use Unity's animation system?](https://axongenesis.gitbook.io/timeflow#why-not-just-use-unitys-animation-system) * [The best of both worlds!](https://axongenesis.gitbook.io/timeflow#the-best-of-both-worlds) * [What Timeflow is not?](https://axongenesis.gitbook.io/timeflow#what-timeflow-is-not) --- # Getting Started | Timeflow Before using Timeflow in production, please review this guide to get a decent understanding of how Timeflow works and how to best utilize it in your projects. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#how-to-use-this-guide) How to use this guide ----------------------------------------------------------------------------------------------------------------------- This documentation is written as both a user guide and feature reference. It is suggested to begin here and to go through each proceeding section for a high level understanding of the most important features. The [Timeflow Editor](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor) and [Timeflow View](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view) sections are also essential to get the most out of the toolset. Additional documentation covering component behaviors and more advanced topics can be found under [Reference](https://axongenesis.gitbook.io/timeflow/reference/timeflow-object) . [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#tutorial-videos) Tutorial Videos ----------------------------------------------------------------------------------------------------------- There are also brief tutorial videos covering just about all topics of Timeflow. Click the video link below for the complete playlist, or jump to the section that you're interested in. Please note that some features may have changed somewhat since these videos were originally created. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#where-are-the-samples) Where are the Samples? ------------------------------------------------------------------------------------------------------------------------ After the main Timeflow package has been imported, samples may be installed from the Package Manager by going to **In Project** packages and locating Timeflow Animation System Samples. Please see the [Installation](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/installation) guide for complete instructions. [✅Requirements](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements) [⬇️Installation](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/installation) [🚀Quick Start](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start) [✍️Workflow](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow) [🎬Render Pipeline](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/render-pipeline) [⏯️Editor vs Runtime](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime) [🦿How it Works](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works) [⛑️Potential Issues](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues) [🔨3rd Party Tools](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/3rd-party-tools) [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#need-help) Need help? ------------------------------------------------------------------------------------------------ If anything in this documentation is unclear or you need any assistance using Timeflow, please get in touch using one of the methods listed in [Support](https://axongenesis.gitbook.io/timeflow/reference/support) [PreviousIntroduction](https://axongenesis.gitbook.io/timeflow) [NextRequirements](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements) Last updated 10 months ago * [How to use this guide](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#how-to-use-this-guide) * [Tutorial Videos](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#tutorial-videos) * [Where are the Samples?](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started#where-are-the-samples) --- # Requirements | Timeflow Older versions prior to Unity 2021.3 may work but are not officially supported due to specific API requirements. Both Unity Free and Pro licenses (dark and light modes) are equally supported. There are no other requirements to use Timeflow and it works with all other packages and 3rd party tools. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements#audience) Audience ---------------------------------------------------------------------------------------------------------- This documentation is intended for those already familiar with the basic workings of Unity with at least fundamental knowledge of working with game objects and components. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements#target-platforms) Target Platforms -------------------------------------------------------------------------------------------------------------------------- Timeflow has been tested and works on Mac, PC, iOS, Android, and WebGL. Unity offers other platforms which may have their own unique considerations, but the toolset is designed to function on any device or platform and there are no known exclusions. It is strongly advised to test Timeflow in your project and on your target platform before using it in production to identify any potential issues early on. The [Examples](https://axongenesis.gitbook.io/timeflow/reference/samples) include a buildable [demo app](https://axongenesis.gitbook.io/timeflow/reference/samples/demo-app) which may used for this purpose. It is also advised to review the [Known Issues](https://axongenesis.gitbook.io/timeflow/reference/known-issues) section to be aware of potential problems and pitfalls. [PreviousGetting Started](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started) [NextInstallation](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/installation) Last updated 1 year ago * [Audience](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements#audience) * [Target Platforms](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements#target-platforms) --- # Installation | Timeflow Get Timeflow in the Unity Asset Store: [https://u3d.as/31KB](https://u3d.as/31KB) Once you have purchased Timeflow, it is listed in your account under ‘My Assets’. If viewing in a web browser, click ‘Open in Unity’ to open the link in the Package Manager. Or if you're already in the Package Manager, select the My Assets tab and search for Timeflow. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252Fv5ygFpnCaurPZj4oXZin%252Fimage.png%3Falt%3Dmedia%26token%3D9b6373b1-6154-455f-9548-fa5acdb339b5&width=768&dpr=4&quality=100&sign=b8793c28&sv=2) Unity 6 Package Manager ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FWK6vjAq2xmiK3F5m9Aub%252Fimage.png%3Falt%3Dmedia%26token%3Df7b98b0b-d137-42d3-b318-481edc7487c2&width=768&dpr=4&quality=100&sign=7ffc7ea8&sv=2) Older versions of Unity Once located, click 'Import' to add the package to your project. Or instead of import (if updating) you may see a Download Update button. Return here later to import updates when a new version is available. Once downloaded, you will then need to import the package. The download button will change to an import button. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252F6nTmNCJlK7zhWHum25f8%252Fimage.png%3Falt%3Dmedia%26token%3D2b09b327-6cca-40c2-9550-d65e4838e0be&width=768&dpr=4&quality=100&sign=255b062a&sv=2) The window Import Unity Package will appear to confirm. Leave all assets selected. **Why are the Samples greyed out?** This is normal. The first step of importing installs the package and the samples can then be added to the project in a secondary step. For now leave, everything at default and click **Import** to continue. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FBzbU52XKYIX4izx0le40%252Fimage.png%3Falt%3Dmedia%26token%3D4a49347d-c873-44f3-9bb3-5b8bed214bf7&width=768&dpr=4&quality=100&sign=56bbd830&sv=2) After the package has been imported, be sure to check the console for any warnings or errors that may have occurred upon import. The Timeflow packages is installed into the project's Packages directory. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FwSVBqzrVVjeisukOnSpR%252Fimage.png%3Falt%3Dmedia%26token%3D8e333bc9-4f57-47af-9d7d-6975bde4366f&width=768&dpr=4&quality=100&sign=363e64da&sv=2) Default assets such as preferences and track color definitions are automatically added to your project in Assets/Plugins/Timeflow. These files may be reorganized if desired. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FR7gUOfwE9d2QzCVRne1u%252Fimage.png%3Falt%3Dmedia%26token%3D8da64e2f-5c3b-4796-8a6c-bc03136d32df&width=768&dpr=4&quality=100&sign=599ae293&sv=2) The assets which store settings such as the TimeflowPreferences are tracked by GUID. This means the files can be moved and renamed, however if the GUID is changed or the associated .meta file is deleted, Timeflow will no longer be able to find the files. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/installation#importing-samples) Importing Samples ---------------------------------------------------------------------------------------------------------------------------- After importing the package, switch to the tab 'In Project' and search for Timeflow. The Samples tab is only displayed in the Timeflow Animation System Samples package listing, not the Asset Store listing. The Samples tab includes additional imports with demos for each [Render Pipeline](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/render-pipeline) and extra [Integrations](https://axongenesis.gitbook.io/timeflow/reference/integrations) ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FS9sWsYMQCANQnv3fE72U%252Fimage.png%3Falt%3Dmedia%26token%3D082c2160-e75e-4ba3-a9fd-d613eb828f5c&width=768&dpr=4&quality=100&sign=6315f439&sv=2) Unity 6 Package Manager (it is a known issue that Timeflow appears twice) ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252Finfjinr3IEPGPK0zW4DI%252Fimage.png%3Falt%3Dmedia%26token%3D6295e0f2-60e3-4095-a023-0e7a7e2947a8&width=768&dpr=4&quality=100&sign=e7983199&sv=2) In older versions of Unity, the process is similar but the Package Manager layout is a bit different. When installing the Demo samples, only import the one matching your render pipeline settings. Render pipeline assets are included for the URP and HDRP demos. For more details see [Render Pipeline](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/render-pipeline) [PreviousRequirements](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/requirements) [NextQuick Start](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start) Last updated 10 months ago --- # Workflow | Timeflow The goal with Timeflow is to introduce an entirely new way of animating in Unity. Instead of creating additional assets, all animations in Timeflow are expressed through component behaviors with settings and data stored on the object and saved into the scene file. Objects can be moved, renamed, duplicated, or made into prefabs, all while maintaining animations. Artists can quickly add or switch between objects in Timeflow, expose property channels to animate, and choose from a wide range of possibilities including keyframing and procedural behaviors to create all sorts of animation. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow#typical-workflow) Typical Workflow ---------------------------------------------------------------------------------------------------------------------- 1. Select objects in the Hierarchy view and add them to the Timeflow view (Alt+~) 2. Right click on objects to add keyframe channels or other behaviors. 3. Use the Inspector view to customize behavior settings. 4. Use the [Track View](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/track-view) for sequencing, and the [Graph View](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/graph-view) to work with animation curves. 5. Play or drag the time indicator to preview animations while you work. 6. Use markers and work areas to jump to and focus on different sections of time. 7. Add more objects or switch between existing ones to quickly navigate the scene. 8. Periodically enter play mode to check animation and performance at runtime. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow#managing-complexity) Managing Complexity ---------------------------------------------------------------------------------------------------------------------------- Timeflow has many time-saving features that are worth getting familiar with to organize large scenes. As the complexity of your project increases, there are a number of useful tools to aid in organizing and quickly navigating the scene. Following are the some of the key features that enhance workflow when utilized. [📺Display Lists](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/display-lists) [🔻Markers](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/markers) [🥅Work Area](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/toolbar/work-area) [⚡Quick Select Objects](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/quick-select-objects) [\*️⃣Keyboard Shortcuts](https://axongenesis.gitbook.io/timeflow/user-guide/menus-and-shortcuts/keyboard-shortcuts) [PreviousQuick Start](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start) [NextRender Pipeline](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/render-pipeline) Last updated 1 year ago * [Typical Workflow](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow#typical-workflow) * [Managing Complexity](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow#managing-complexity) --- # Render Pipeline | Timeflow Timeflow equally supports the Built-in Render Pipeline, Universal Render Pipeline (URP), High Definition Render Pipeline (HDRP), and custom render pipelines. There are only a few key differences that affect Timeflow, such as the use of Volume components and variances in material properties, but mostly the pipeline has no effect on Timeflow and any project configuration may be used. If you are unsure which pipeline to use, URP is suggested for the best performance on a wide variety of devices, while HDRP is recommended for maximum quality best suited for top tier graphics cards. The built-in render pipeline of course is fully supported as well and is often chosen by users for its balanced performance and well-known features. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/render-pipeline#no-extra-configuration-required) No Extra Configuration Required ----------------------------------------------------------------------------------------------------------------------------------------------------------- Timeflow automatically detects which pipeline package is installed. In previous versions of Timeflow it was required to add the Scripting Define Symbols _**USING\_URP**_ or _**USING\_HDRP**_ in the Player Settings, however this is no longer needed and these symbols are no longer used. If they have been added previously to your player settings, they may be removed. [PreviousWorkflow](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow) [NextEditor vs Runtime](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime) Last updated 1 year ago --- # Upgrading Guide | Timeflow To ensure a clean install when upgrading to a major or minor version (major.minor.patch), it is recommended to first make a backup and then remove the previous version of Timeflow and samples by following these steps: 1. In the Project view delete: **Assets/Samples/Timeflow Animation System Samples** 2. In the Package Manager, locate and uninstall **Timeflow Animation System** 3. Then download and import the latest version. 4. Import samples from the packages **In Project**, listed under **Timeflow Animation System Samples** The Timeflow preferences and settings are preserved, unless you also delete the assets in: **Assets/Plugins/Timeflow** The above steps when followed in order prevent the occurrence of errors, which may otherwise occur if the Timeflow package is uninstalled while the sample scripts remain in the project. If you have any custom scripts that rely on Timeflow, compile errors should resolve automatically once the upgrade is complete. If you experience any problems with an update, please get in touch on Discord or by email for [Support](https://axongenesis.gitbook.io/timeflow/reference/support) [Previous3rd Party Tools](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/3rd-party-tools) [NextTimeflow Editor](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor) Last updated 11 months ago --- # 3rd Party Tools | Timeflow [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/3rd-party-tools#hierarchy-extension) **Hierarchy Extension** --------------------------------------------------------------------------------------------------------------------------------------- Extend the built-in hierarchy window * Hierarchy Designer (free) [https://assetstore.unity.com/packages/tools/utilities/hierarchy-designer-273928](https://assetstore.unity.com/packages/tools/utilities/hierarchy-designer-273928) * or Hierarchy Pro (paid) [https://assetstore.unity.com/packages/tools/utilities/hierarchy-pro-2021-extended-115861#description](https://assetstore.unity.com/packages/tools/utilities/hierarchy-pro-2021-extended-115861#description) For additional tools, also see [Integrations](https://axongenesis.gitbook.io/timeflow/reference/integrations) [PreviousOptimization](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization) [NextUpgrading Guide](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/upgrading-guide) Last updated 1 year ago --- # Editor vs Runtime | Timeflow One of the primary inspirations for Timeflow was to create an animation system that fully works in edit mode without having to enter play mode for playback. This allows for fast iteration in the creative process and being assured that what you see is what you get. Note that the wording "play mode" and "runtime" are used interchangeably throughout this documentation and generally mean the same thing. When running in a build, Timeflow is expected to perform identically to the play mode in the Unity editor. If you are not familiar with edit vs play mode in Unity, please see the [Game View](https://docs.unity3d.com/Manual/GameView.html) documentation. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime#create-and-preview-in-edit-mode) Create and preview in edit mode ------------------------------------------------------------------------------------------------------------------------------------------------------------- Especially when working with scenes of significant size, loading times in and out of play mode can severely slow down the creative process. Therefore, every tool in Timeflow has been built to maximize functionality in the editor with identical performance at runtime whenever possible. Just about everything can be created from start to finish without ever having to enter play mode. There are of course caveats to this, explained below. Note that during runtime Timeflow is in playback mode and although editing features still function normally, no changes are saved. This is due to [data serialization](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#data-serialization) and is normal behavior in Unity, which prohibits scene saving in play mode. Therefore, be sure to perform all changes in edit mode and use play mode only for previewing and rendering. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime#features-requiring-runtime) **Features requiring runtime** ------------------------------------------------------------------------------------------------------------------------------------------------------- There are of course features within Unity that do not work in edit mode or operate differently at runtime and require entering play mode for the complete experience. This is generally anything that is simulated or based on dynamic input. This is not a show-stopper but a consideration when creating. Following is a brief list of features which require runtime for full functionality. * [Physics](https://axongenesis.gitbook.io/timeflow/reference/samples/physics) * Player input and game mechanics * Simulations of any type that require continuous forward moving time * Any 3rd party scripts not designed to work in edit mode * Some render settings and post processing effects may vary depending on the pipeline Timeflow can of course still be used with all of these features (nothing is excluded), but do note that it is necessary to enter play mode to see final results when any of the above features are in use. Make sure to enter play mode periodically to check your work and avoid surprises later. Regularly check performance and playback in builds when deploying to a target platform. Any variances may indicate underlying issues to be addressed. **\[ExecuteInEditMode()\]** As a side note to any developers who may be reading this, please consider making your scripts work in edit mode as much as possible. It really helps on the creative side to have functional tools or at least a proxy to work with while editing. [PreviousRender Pipeline](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/render-pipeline) [NextHow it Works](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works) Last updated 1 year ago * [Create and preview in edit mode](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime#create-and-preview-in-edit-mode) * [Features requiring runtime](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime#features-requiring-runtime) --- # How it Works | Timeflow 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. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#structure) 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. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FvKMynbDSphgnd4goqUfk%252FTimeflowStructureDiagram.jpg%3Falt%3Dmedia%26token%3D7c5a7a44-35b7-4d5e-b71c-a643ad53255e&width=768&dpr=4&quality=100&sign=bbb4fc1f&sv=2) The gray lines denote separate game objects. 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. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#execution-order) 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. The order may be reversed to display channels top-to-bottom rather than first-to-last in the [Timeflow Preferences](https://axongenesis.gitbook.io/timeflow/user-guide/menus-and-shortcuts/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.](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/update-settings) [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#code-structure) 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. Please see the [Scripting](https://axongenesis.gitbook.io/timeflow/reference/scripting) section for a quick start into custom coding with Timeflow. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#terminology) Terminology ---------------------------------------------------------------------------------------------------------------- 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](https://axongenesis.gitbook.io/timeflow/reference/glossary) section for definitions of common terms and features. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#data-serialization) 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. [PreviousEditor vs Runtime](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/editor-vs-runtime) [NextPotential Issues](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues) Last updated 1 year ago * [Structure](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#structure) * [Execution Order](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#execution-order) * [Code Structure](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#code-structure) * [Terminology](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#terminology) * [Data Serialization](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works#data-serialization) --- # Potential Issues | Timeflow [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#adding-objects-in-bulk-to-timeflow) **Adding objects in bulk to Timeflow** ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Multiple objects can certainly be added at once, however avoid adding large selections or entire scenes, otherwise performance and load times may be affected. As a general rule, the fewer components used in a scene the better. **Solution:** Add objects to Timeflow selectively and only as needed. Objects may be located anywhere in the hierarchy and scene. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#downgrading-unity-versions) **Downgrading Unity versions** ------------------------------------------------------------------------------------------------------------------------------------------------------ You may see the following warning when downgrading a project using Timeflow: "The list of \[SerializeReference\] objects being deserialized is from a more recent version of Unity. This is not supported and objects will be skipped." Due to changes in Unity serialization, some Timeflow data may be lost if a project is opened with an earlier version of Unity, showing the error above. This may also occur when importing a package created with a later version. **Solution:** Test features early on and plan ahead to avoid having to downgrade Unity later. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#creating-or-importing-huge-numbers-of-keyframes) **Creating or importing huge numbers of keyframes** ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Large amounts of data such as recordings or baked animation can bog down the editor and runtime. These may be better suited using Unity animation clips. There is no defined upper limit for channels or keyframes in Timeflow, so it is at your discretion, though generally speaking unless you're importing or generating data, or heavily copy-pasting, you're unlikely to run into any issues. **Solution:** Use Unity animation clips to store mocap and dense animation data, then use Timeflow to animate them. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#conflicting-shared-materials) **Conflicting shared materials** ---------------------------------------------------------------------------------------------------------------------------------------------------------- Any time shared materials are animated and used across multiple objects or scenes, different results may appear in edit mode than during runtime. This is due to the way Unity instantiates material instances. Understanding this, it is therefore necessary to link material animations across multiple objects using [channel links](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/channel-link) , or a more efficient approach is to use [shader properties](https://axongenesis.gitbook.io/timeflow/reference/samples/shader-properties) to animate materials shared across large sets of objects without requiring additional material assets. **Solution:** Create specific materials for each game object and keep them well organized in the project. Use global shader properties to animate materials in bulk. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#animating-editor-only-or-obscure-properties) **Animating editor-only or obscure properties** ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Timeflow exposes properties within components that sometimes may be ill advised to animate directly. Any properties related to internal functioning or editor-only features may cause unpredictable results when animated. This might circumvent certain steps required in setup and cause problems, bugs, or errors. When in doubt, look in the Unity scripting reference or at the source code in question. For special cases when parameters cannot be directly targeted, Timeflow utilizes [Property Handlers](https://axongenesis.gitbook.io/timeflow/reference/scripting#property-handlers) for a customized approach. New handlers may be created by developers as needed to work with custom properties or attributes not directly available. **Solution:** Animate known properties and check code or documentation when in doubt. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#large-transform-coordinates-greater-than-1000-units) L**arge transform coordinates ( > 1000 units)** ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Although Unity's coordinate system does accept large position values in world space that exceed well beyond 1000 units, anomalous issues can occur (filed as bug report: [UUM-19013](https://issuetracker.unity3d.com/issues/camera-jitters-when-changing-field-of-view-at-large-coordinates) ). This is not related to or caused by Timeflow, but rather due to rounding errors in Unity's underlying transformation matrices. This can manifest as a jitter or shake whenever an object is moving and rotating with large transform coordinates. The larger the coordinates, the more pronounced the anomaly becomes. This primarily manifests in lights and cameras resulting in shaky movement or flickering lights and shadows. **Solution:** Take scene scale into careful consideration when planning animations. The ideal range to operate in is from -1000 to 1000 units on each axis. Of course there is no limitation to go beyond that though be forewarned of the potential risks noted. For more, see [Known Issues](https://axongenesis.gitbook.io/timeflow/reference/known-issues) [PreviousHow it Works](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/how-it-works) [NextOptimization](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization) Last updated 1 year ago * [Adding objects in bulk to Timeflow](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#adding-objects-in-bulk-to-timeflow) * [Downgrading Unity versions](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#downgrading-unity-versions) * [Creating or importing huge numbers of keyframes](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#creating-or-importing-huge-numbers-of-keyframes) * [Conflicting shared materials](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#conflicting-shared-materials) * [Animating editor-only or obscure properties](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#animating-editor-only-or-obscure-properties) * [Large transform coordinates ( > 1000 units)](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues#large-transform-coordinates-greater-than-1000-units) --- # Quick Start | Timeflow Open the Timeflow window from the main menu: ▶️ Tools > Timeflow > Open Timeflow Window Or use the keyboard shortcut **Control + Alt + Shift + T** ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FiJonXirANbeS4hhKn3u0%252Fimage.png%3Falt%3Dmedia%26token%3D1a25a898-742f-4305-85b9-1e09847c0837&width=768&dpr=4&quality=100&sign=5e2b83ed&sv=2) Drag and dock the window in a place that feels natural for you. Be sure there is adequate room to view the contents of the window without crowding the controls. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#recommended-layout) Recommended Layout ----------------------------------------------------------------------------------------------------------------------------- Window layouts are of course personal preference, however consider the following layout for optimal workflow. This setup flows from left to right with project resources on the left and final output on the right. It reduces the distance objects need to be dragged in the UI, such as when adding objects to the hierarchy or inspector. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252F58cC4RxxkuVZbsKsdCgw%252Fimage.png%3Falt%3Dmedia%26token%3D8f28c045-7ef3-49ac-b65d-888dabf34391&width=768&dpr=4&quality=100&sign=5aeb79c4&sv=2) A layout similar to that shown above is used throughout this documentation. The recommended layout shown above is included in the examples. Select "Load Layout from File..." form the top right corner of the Unity window using the built-in Layout Manager. Locate and load the file: Assets/AxonGenesis/Timeflow/Settings/TimeflowLayout [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#scene-setup) Scene Setup --------------------------------------------------------------------------------------------------------------- After opening a new or existing scene, click the button **Add Timeflow to this scene** to create a new Timeflow instance. This button is displayed when no active Timeflow instance is loaded. If a Timeflow component already exists in the scene but is disabled (unchecked) in the inspector, then this button may appear. Re-enable the Timeflow component to activate the view. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FmMIZTFGaAFipFovL49D7%252Fimage.png%3Falt%3Dmedia%26token%3D7919a0c1-0e4c-4e6a-b986-5c617f30a76b&width=768&dpr=4&quality=100&sign=a04a1388&sv=2) This adds a new game object named ‘Timeflow’ which manages the settings and view. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FZoMWP8bZQmnlneYO4VGx%252Fimage.png%3Falt%3Dmedia%26token%3D3e21cf36-cfaf-433d-b04b-82eeb7360858&width=768&dpr=4&quality=100&sign=c4e17568&sv=2) Note that the 3rd party tool Hierarchy Designer is used in these screenshots to help provide visual context, but is not required. Select the Timeflow game object to view its settings in the Inspector. These features are covered in more detail in the [Timeflow Editor](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor) documentation. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FW4fo2rZ8jTONpBFUIa1s%252Fimage.png%3Falt%3Dmedia%26token%3D84a07e5d-6c87-4e9d-9723-49ceded67642&width=768&dpr=4&quality=100&sign=2222c6f&sv=2) Shows the inspector for a newly created instance of Timeflow [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#making-timeflow-the-scene-root) Making Timeflow the scene root ----------------------------------------------------------------------------------------------------------------------------------------------------- It is suggested to make Timeflow the root of the scene for organizational purposes, though is not a requirement. The Timeflow game object may also be renamed as desired and any additional components such as a scene controller may be added to the same object. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FGCLTiFn8Ro7x9WS75YT0%252Fimage.png%3Falt%3Dmedia%26token%3Dbb41409f-273e-42f9-9651-8bd5ac232109&width=768&dpr=4&quality=100&sign=f005677f&sv=2) TIP: In the Hierarchy view, right click on the Timeflow object and select ‘Set as Default Parent’, so that new game objects are made children of Timeflow automatically. Animated objects may be located anywhere in the scene hierarchy or remain unparented. However, note that objects not located in a Timeflow hierarchy are automatically managed by the primary instance. In more advanced setups using multiple Timeflow instances, it is recommended to organize related objects as children or descendants of the Timeflow instance they belong to, to avoid potential confusion at runtime. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#adding-objects) Adding Objects --------------------------------------------------------------------------------------------------------------------- An object is displayed in Timeflow only after it has been added to the view. Individual or multiple objects may be added by selecting them in the Hierarchy view and clicking ‘Add Selected’. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252Fr3LADrwPjtLNu6RynRIO%252Fimage.png%3Falt%3Dmedia%26token%3D53907bae-978b-49c3-bebf-8d484423d7eb&width=768&dpr=4&quality=100&sign=a5c7b37d&sv=2) Click 'Show Selected Only' to only show the currently selected object(s), otherwise 'Add Selected' appends the selected objects to the current list displayed. The object view is designed to be dynamic and flexible, displaying only the objects you want to see at any given time. There are various ways this can be set up to aid in workflow, such as viewing the active selection or saving sets of objects in a named view. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FqniqvGkdmkH8In3GULFC%252Fimage.png%3Falt%3Dmedia%26token%3D9889ccd2-1f88-4c28-8b78-58ce5a39c4d3&width=768&dpr=4&quality=100&sign=abb631db&sv=2) In this example, the Main Camera has been added to the view. Use the keyboard shortcut **Alt + ~** to display selected objects. Or use **Alt + Shift + ~** to append the selected object to the display. For more information see the [Object Panel](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/object-panel) documentation. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#transform-override) Transform Override ----------------------------------------------------------------------------------------------------------------------------- Timeflow includes a custom editor that overrides the built-in Transform inspector to provide additional features and workflow enhancements. To add an object to the view, click the **\+ Animate** button. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252F8BxY5c6ItSRjRDARRasy%252Fimage.png%3Falt%3Dmedia%26token%3D6fc56a5b-7701-42dc-bf06-7b855b54f415&width=768&dpr=4&quality=100&sign=b70b2bac&sv=2) To begin animating an object, click the keyframe icon ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FLkPA8O0RIaf010gOyvmz%252Fimage.png%3Falt%3Dmedia%26token%3D2e49d424-1be3-46dd-9ac6-cd5116633ff9&width=300&dpr=4&quality=100&sign=3eb9fbae&sv=2) to set a new keyframe at the current time. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FDG8XiSYypnJlGriach98%252Fimage.png%3Falt%3Dmedia%26token%3D7ecfdf14-7971-4a8a-b0fb-4d8c3a1ac5b4&width=768&dpr=4&quality=100&sign=309d9e04&sv=2) For more depth documentation, please see [Transform Editor Override](https://axongenesis.gitbook.io/timeflow/reference/editor-overrides/transform-editor-override) [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#timeflow-objects) Timeflow Objects ------------------------------------------------------------------------------------------------------------------------- Each object added to Timeflow is automatically assigned a TimeflowObject component. This component provides the basis of timing and is required by all Timeflow behaviors. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FAvsxnc7BDMSj3Lb6IyUb%252Fimage.png%3Falt%3Dmedia%26token%3Dd3eb7b8a-d8a0-4fb1-85b9-606963d9afbb&width=768&dpr=4&quality=100&sign=a253e82f&sv=2) **Removing Objects** The TimeflowObject component may be removed, but only after all other behaviors have been removed first, due to script dependencies. To quickly strip an object of all Timeflow components (restoring it to its original state and preserving other components), right click the selected object or use the menu command: **GameObject/Timeflow/Destroy/All Timeflow Behaviors (Selected Objects)** [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#tracks) Tracks ----------------------------------------------------------------------------------------------------- Each TimeflowObject defines a track channel, displayed as colored boxes on the same row as the object. Track sections define areas in the timeline to control the active state, which may optionally be used to show and hide objects. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FxjhzMXLAkWRSmEZBTlPz%252Fimage.png%3Falt%3Dmedia%26token%3D87c61d51-ceb9-4207-8bae-d3a909c13f52&width=768&dpr=4&quality=100&sign=2dbc30bb&sv=2) This screenshot displays multiple objects and channels, demonstrating tracks of different lengths and how it affects channels. Tracks default to the full length of the Timeflow instance with the track mode "On", meaning the object's active or visibility state remains on and is unaffected by the track. Tracks can have single or multiple ranges and work similar to keyframes, with editing capabilities to select, drag, copy, paste, disable, and lock track sections. By default, new tracks are auto full length and cannot be dragged. However, the auto full length mode can be turned off to allow all track editing features. Explicitly dragging the in or out handle of a track also turns off the Auto track length mode. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#animating-objects) Animating Objects --------------------------------------------------------------------------------------------------------------------------- Once an object has been added to the view, behaviors can be added by right-clicking the object in the object display list on the left. This displays a drop down menu with additional options for the selected object(s). ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FypgiqjLpYyh3sBzVXeaz%252Fimage.png%3Falt%3Dmedia%26token%3D195ba17c-d7ad-4989-8799-c820b2708c8b&width=768&dpr=4&quality=100&sign=bb11e1f2&sv=2) Use the context menu to add new behaviors and channels to objects in the view. The menu automatically lists all read/write properties for each component and material on the selected object. Additional behaviors are also listed in the menu with their own property selections, when applicable. Note that where you right-click in the window changes the context menu accordingly, so be sure to click on the intended object or area for related menu options to be displayed. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FKnnOOnty3RfcQvnzkCHB%252Fimage.png%3Falt%3Dmedia%26token%3D2ed2c1f9-082c-4b7b-ade8-ded9a660f97b&width=768&dpr=4&quality=100&sign=30fdcba5&sv=2) Channels are displayed in rows under the object and can be selected by clicking on the channel name. Select _Add Animation / Channel_ to create a new keyframe channel for the selected property. This adds the Keyframer component to the object (if one doesn't already exist) and displays the new channel under the object. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FmfVNVs8vyAFQPJScqHzT%252Fimage.png%3Falt%3Dmedia%26token%3D3db4cba0-49e0-48d6-82ab-d8ca0577a887&width=768&dpr=4&quality=100&sign=edfdaa16&sv=2) View the Keyframer component in the Inspector for additional settings and to inspect channels. Note also that when a channel is selected in the Timeflow view, it and its containing behavior are highlighted with a box matching the track color. This option may be configured in [Preferences](https://axongenesis.gitbook.io/timeflow/user-guide/menus-and-shortcuts/preferences) The Keyframer component can have any number of channels, whereas other behaviors such as Tween have just one channel per instance. There are no restrictions on the number of behaviors and channels that can be added to Timeflow. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#animatable-data-types) Animatable Data Types ----------------------------------------------------------------------------------------------------------------------------------- Timeflow supports all common numeric data types, strings, as well as object and component references. Property mappings can easily be reassigned without loosing keyframe data, as well as converting from one data type to another when linking channels or performing custom functions. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FkOGQsJfXi09LkR7s32QQ%252Fimage.png%3Falt%3Dmedia%26token%3Dd9031e0b-5a3f-4c39-ba81-d9a944bfcf1f&width=768&dpr=4&quality=100&sign=58d4704f&sv=2) Timeflow can also create data-only channels which may be used for additional calculations using [Channel Links](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/channel-link) . [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#adding-keyframes) Adding Keyframes ------------------------------------------------------------------------------------------------------------------------- To add a keyframe, click on the diamond shape between the left and right arrows next to the channel name. This adds a keyframe at the current time. The current time can be changed by dragging the playhead (the orange time slider along the time ruler). ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FXmK54QdbQDdgLUmyOgai%252Fimage.png%3Falt%3Dmedia%26token%3D139c4364-2672-41da-ba45-7d84f3534a8f&width=768&dpr=4&quality=100&sign=42336975&sv=2) [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#playing-and-previewing) Playing and Previewing ------------------------------------------------------------------------------------------------------------------------------------- At any point you may preview animation by pressing the play button, or press **Spacebar** on the keyboard while the Timeflow view has focus to toggle playing. Note that this does not require entering play mode in the Unity editor and animation can be fully previewed in edit mode. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FaBvsyBCCqtaqVIWoVlZI%252Fimage.png%3Falt%3Dmedia%26token%3D57b18e13-71d6-4866-9d3d-f49a005ccf71&width=768&dpr=4&quality=100&sign=2b5ecde&sv=2) Use the keyboard shortcut Spacebar to start or stop Timeflow playback. Edits can be made during playback, though the default [Timeflow Preferences](https://axongenesis.gitbook.io/timeflow/user-guide/menus-and-shortcuts/preferences) prohibit creating keyframes while playing (which may be enabled if preferred). Keyframes may also be created in the time and graph view by holding Control while clicking in the channel or track area. For automatic keyframe recording, see [Auto Keyframing](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/toolbar/auto-keyframing) [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#runtime-playback-control) Runtime Playback Control ----------------------------------------------------------------------------------------------------------------------------------------- Although Timeflow does not provide a native runtime GUI for playback control, there is an example using Unity's built-in UI system included in the [Demo App](https://axongenesis.gitbook.io/timeflow/reference/samples/demo-app) which may be reused or referenced for your own controls. For custom implementations or integrating Timeflow with scripts and 3rd party systems, there is the [Timeflow Controller](https://axongenesis.gitbook.io/timeflow/reference/timeflow-controller) which uses events to start and stop Timeflow using queue points defined by [Markers](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/markers) [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#graph-view) Graph View ------------------------------------------------------------------------------------------------------------- To toggle between the Track View (as shown above) and Graph View (shown below), press the graph icon button at the bottom left of the timeline. The graph view only shows keyframes for the currently selected channel(s) and for any channels with the graph mode switch enabled. See the [Switches](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/switches) and [Graph View](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/graph-view) documentation for further information. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252Fbn8urnwQJwugmoyA5IEi%252Fimage.png%3Falt%3Dmedia%26token%3Ddb671f18-8490-4398-98a8-5bddde458e40&width=768&dpr=4&quality=100&sign=a9f299e9&sv=2) Use the keyboard shortcut **G** to toggle between the Graph and Track View. The Timeflow window must have focus for this to work. Use the **F** key to fit the view vertically and use **Shift + F** to frame the selected keyframes. Use **Control + A** to select all. [PreviousInstallation](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/installation) [NextWorkflow](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/workflow) Last updated 3 months ago * [Recommended Layout](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#recommended-layout) * [Scene Setup](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#scene-setup) * [Making Timeflow the scene root](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#making-timeflow-the-scene-root) * [Adding Objects](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#adding-objects) * [Transform Override](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#transform-override) * [Timeflow Objects](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#timeflow-objects) * [Tracks](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#tracks) * [Animating Objects](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#animating-objects) * [Animatable Data Types](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#animatable-data-types) * [Adding Keyframes](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#adding-keyframes) * [Playing and Previewing](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#playing-and-previewing) * [Runtime Playback Control](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#runtime-playback-control) * [Graph View](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/quick-start#graph-view) --- # Local Time Scope | Timeflow [Local Time Scope](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/local-time-scope) [PreviousTime](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/time) [NextWork Area](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/work-area) Last updated 1 year ago --- # Optimization | Timeflow Runtime performance is always a consideration no matter what platform you are targeting and there are a number of guidelines one can follow to ensure Timeflow performs optimally. Please note that the following is _not_ a comprehensive list of all possible optimizations in Unity, but the most important ones related to scenes animated with Timeflow. [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#guidelines) Guidelines -------------------------------------------------------------------------------------------------------------- ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-fewer-components) Use Fewer Components It is best to be strategic with Timeflow behaviors and use as few as possible to achieve the desired results. There are tools such as [Property Link](https://axongenesis.gitbook.io/timeflow/reference/behaviors/tools/property-link) that propagate data across multiple objects and properties using just 1 component. This is more efficient than duplicating behaviors or using Channel Links, which require multiple components per game object. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#remove-unused-components) Remove Unused Components Any time you have TimeflowObjects or other behaviors which aren't contributing to the animation, it is best to remove them. This is also true for any type of component. The fewer the better. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#forced-framerate) Forced Framerate Traditional broadcast and film framerates typically range from 24 to 30 frames per second and most people are quite comfortable watching content at that rate. In many cases, using [Force Framerate](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/update-settings#force-framerate) to 30 to 60 fps on Timeflow can improve performance by reducing update calls with no noticeable affect on the animation itself. In VR applications 90fps is generally recommended, however this higher framerate mostly has to do with how smoothly the HMD tracks since it occupies the full field of vision, and the human eye refreshes around 60fps. When the framerate is under that, it can cause a noticeable lag which is uncomfortable and can induce nausea. Therefore, setting Timeflow to a forced framerate of 30-60fps reduces the computation time spent on animation and allows for a higher framerate overall. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-tracks-to-reduce-update-calls) Use Tracks to Reduce Update Calls Whenever animation occurs in a specific region of time, you can adjust track sections to span only the areas animated. Whenever time is outside of (or between) track sections, the behaviors no longer update which saves computation time. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FDf2CjUuxEOw8JH9ZUImZ%252Fimage.png%3Falt%3Dmedia%26token%3D4cbc9625-4dc3-4fd8-9db0-960628428359&width=768&dpr=4&quality=100&sign=304412&sv=2) In most cases, the [On](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/tracks#on) track mode is best for optimal performance. In this mode, the object remains visible and enabled but the Timeflow animations are only processed during track section times. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-renderer-and-activate-modes-sparingly) Use Renderer and Activate modes sparingly Using [Track Modes](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/tracks#track-modes) to toggle renderers or to activate game objects can cause a performance hit when many objects are affected at once. It may be unavoidable in some cases, but often it is better to scale an object group to 0 or move it offscreen to avoid bulk changing states. Renderer mode is typically more performant than Active mode. For more details, see [Track Modes](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-view/tracks#track-modes) ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-fixedupdate-for-physics) Use FixedUpdate for Physics Any behaviors which animate objects with physics should generally use [FixedUpdate](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/update-settings#fixed-update) . This reduces the number of updates per frame and is a minor optimization that can contribute to the overall performance of the scene. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-the-profiler) Use the Profiler The built-in Profiler window is an invaluable tool for monitoring performance and observing spikes in activity. Use the Profiler to investigate where time is being spent most to optimize the scene by making modifications or reducing complexity. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-static-objects) Use Static Objects Any objects which are not dynamically moving or changing can be marked as [Static](https://docs.unity3d.com/Manual/StaticObjects.html) . This does not always guarantee improved performance but in many cases can reduce runtime calculations for those objects. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#combine-meshes-to-reduce-draw-calls) Combine Meshes to Reduce Draw Calls This a general optimization in Unity and should always be considered. Sometimes during the creative process, objects may be created separately or split but end up animated as a group or static. Whenever you have objects which you can reasonably be combined (usually sharing the same material), you can use a mesh combining tool to merge them into a single object. Timeflow has a mesh combining tool built in for simple operations. To use it, select a parent object containing the meshes you wish to combine and then right click the object to select Timeflow/Mesh/Combine Meshes. This copies the meshes in their current state to a new mesh asset assigned to a new game object in the scene. The original objects are unmodified and may be removed or saved in a backup. For more advanced options, see [mesh combining tools available in the Unity Asset Store](https://assetstore.unity.com/?q=mesh%20combine&orderBy=1) . ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#lights-shadows-and-render-settings) Lights, Shadows, and Render Settings Reducing the number of lights and shadows and adjusting the render quality has a significant impact on performance. Finding the best settings depends on your project and objectives, but is definitely an area to spend time on for optimal results. Most often it comes down to making decisions to find a happy medium between quality and speed. It is helpful to assess the target platform(s) capabilities and plan accordingly. The more specific you can be about which render features to use and not to use and what the resource allowances are, the better you'll be able to create an optimal experience without a lot of hairpulling later on. Prototype fast and iterate on it. ### [](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#test-early-and-often) Test Early and Often A risk to any project is waiting until later to test performance on target devices. It's easy to get carried away in the creative process and end up with a bloated overly ambitious scene which performs poorly and is difficult to optimize after the fact. By testing early and often you can identify framerate drops or potential risks to performance and then make creative choice as you go to keep things running optimally. This of course is not only affected by the animations and behaviors in use, but many factors. For example, using a lot of transparent shaders on mobile devices will definitely cause a performance hit. If you are using features such as Post Processing, you may have to make compromises in other areas to arrive at the desired framerate. [PreviousPotential Issues](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/potential-issues) [Next3rd Party Tools](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/3rd-party-tools) Last updated 1 year ago * [Guidelines](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#guidelines) * [Use Fewer Components](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-fewer-components) * [Remove Unused Components](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#remove-unused-components) * [Forced Framerate](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#forced-framerate) * [Use Tracks to Reduce Update Calls](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-tracks-to-reduce-update-calls) * [Use Renderer and Activate modes sparingly](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-renderer-and-activate-modes-sparingly) * [Use FixedUpdate for Physics](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-fixedupdate-for-physics) * [Use the Profiler](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-the-profiler) * [Use Static Objects](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#use-static-objects) * [Combine Meshes to Reduce Draw Calls](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#combine-meshes-to-reduce-draw-calls) * [Lights, Shadows, and Render Settings](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#lights-shadows-and-render-settings) * [Test Early and Often](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/optimization#test-early-and-often) --- # Timeflow Editor | Timeflow Select the Timeflow game object to view its settings in the Inspector. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252Flz0p3vlzOuvLzlrXha2E%252Fimage.png%3Falt%3Dmedia%26token%3Dc1585e03-674e-4f8f-92e8-866902b697d8&width=768&dpr=4&quality=100&sign=f9f5215d&sv=2) Another way to quickly get to the settings is to click the Axon Genesis logo in the upper left corner of the Timeflow view. This selects the Timeflow game object and refreshes the view. This can also be used to force refresh the scene after recompiling scripts. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FospBX6iHSzOFy1OcjG1v%252Fimage.png%3Falt%3Dmedia%26token%3D5e4b39d4-d4f2-4bb4-a290-dd0e1edaa471&width=768&dpr=4&quality=100&sign=11a39f3b&sv=2) [](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor#menu-bar) Menu Bar --------------------------------------------------------------------------------------------- Editors for all Timeflow behaviors display a menu bar at the top of the editor, outlined in the object's display color when selected. This is a way to quickly locate selected behaviors and channels in the inspector, especially helpful when a game object has many components. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FcJDrsOBUhNme4SI7u2Ms%252Fimage.png%3Falt%3Dmedia%26token%3D43c099f8-11c1-4261-bb3a-3291aedb73db&width=768&dpr=4&quality=100&sign=aae8d8d&sv=2) All custom editors for Timeflow behaviors show a similar [menu bar](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/menu-bar) which can be collapsed closed to reduce screen clutter. Click the question mark icon ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252F5dejy8benCehvKS2xLnq%252Fimage.png%3Falt%3Dmedia%26token%3De9b0e453-0ce5-4330-acf5-ee561d2316e5&width=300&dpr=4&quality=100&sign=481db369&sv=2) to jump to the related Timeflow documentation. [](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor#active-status) Active Status ------------------------------------------------------------------------------------------------------- The Active status is only relevant when 2 or more Timeflow instances are in the scene. Whichever is currently displayed in the Timeflow view, is the Active one. Any other Timeflow instances are still updated normally, however are not currently displayed in the window. **Multiple Timeflow Instances** In most cases, only 1 instance of Timeflow is needed in a scene. Only add additional Timeflow instances when it is essential, otherwise it adds unnecessary complexity. Multiple instance are only used when separate timelines are needed. This may be useful for interactive applications, such as creating menu behaviors separately from game play. For more on this, see the [Timeflow Demo](https://axongenesis.gitbook.io/timeflow/reference/samples/demo-app) in [Examples](https://axongenesis.gitbook.io/timeflow/reference/samples) . [](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor#switching-between-instances) Switching Between Instances ----------------------------------------------------------------------------------------------------------------------------------- If multiple instances of Timeflow exist concurrently, an additional drop down menu is displayed in the top left corner of the Timeflow view to select which is active. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FAgNxNnQH59THmblUNJJF%252Fimage.png%3Falt%3Dmedia%26token%3D2c46ed17-bf9e-4e5e-8d12-da6bd7cf031b&width=768&dpr=4&quality=100&sign=2b477303&sv=2) This corresponds to the Active status. When a Timeflow instance is selected that is not currently active, it can also be made active in the inspector by clicking the dark circle area where it says "Click to make the active view". ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FQNIwNhSY3FBtJqJGvXtq%252Fimage.png%3Falt%3Dmedia%26token%3D2418c27f-3a2c-4daa-aaf3-72fbeda38393&width=768&dpr=4&quality=100&sign=777b869a&sv=2) The color of the active instance is drawn as a thin horizontal line under the top bar as a visual aid to distinguish which instance is active. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252F2ncbBpk7hzEl6yOCW38T%252Fimage.png%3Falt%3Dmedia%26token%3Dcf69c8ec-5f3a-45d0-9c21-947832fa1149&width=768&dpr=4&quality=100&sign=531b1cc7&sv=2) The color can be customized in the [Settings](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/settings) section. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FbqRqtDhQtSbXOHDMkAKf%252Fimage.png%3Falt%3Dmedia%26token%3D6194931f-32e4-4d5e-befc-264af42e2043&width=768&dpr=4&quality=100&sign=70ea5038&sv=2) [PreviousUpgrading Guide](https://axongenesis.gitbook.io/timeflow/user-guide/getting-started/upgrading-guide) [NextMenu Bar](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/menu-bar) Last updated 1 year ago * [Menu Bar](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor#menu-bar) * [Active Status](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor#active-status) * [Switching Between Instances](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor#switching-between-instances) --- # Managed Objects | Timeflow ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FGo0FFGAkVyWYeRGrr1dj%252Fimage.png%3Falt%3Dmedia%26token%3Df8900513-007b-425a-83d4-cc6532130050&width=768&dpr=4&quality=100&sign=b75bb79d&sv=2) Click Regather Objects to rebuild the object list. Each Timeflow instance manages the Timeflow Objects within its respective hierarchy, receiving timing and update calls from the parent Timeflow (if applicable). This list is auto generated and only displayed for reference and inspection. Changes to this list are not saved and the list is rebuilt during each setup or refresh. To remove an object from the list: deactivate it, disable the Timeflow Object component, or remove it from Timeflow. [PreviousObject](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/object) [NextQuick Select Objects](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/quick-select-objects) Last updated 1 year ago --- # Object | Timeflow This area of the Timeflow inspector displays behaviors and channels on the object. This is from the base behavior and in most cases is not used with Timeflow instances. ![](https://axongenesis.gitbook.io/timeflow/~gitbook/image?url=https%3A%2F%2F2067910529-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FC3dOuetlQfYgK5FPUKgn%252Fuploads%252FwukSVz0UaJBgk5vn2PNU%252Fimage.png%3Falt%3Dmedia%26token%3Dc6fd74ad-58ff-4d5b-8a0f-36210755b906&width=768&dpr=4&quality=100&sign=24ecb81b&sv=2) This area is empty unless other behaviors have been added on the same object. Please see the documentation for [Timeflow Object](https://axongenesis.gitbook.io/timeflow/reference/timeflow-object) for further information. [PreviousMarkers](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/markers) [NextManaged Objects](https://axongenesis.gitbook.io/timeflow/user-guide/timeflow-editor/managed-objects) Last updated 10 months ago ---