⛑ī¸Potential Issues

Things to be aware of and avoid...

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.

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.

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.

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, or a more efficient approach is to use 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.

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 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.

Large 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). 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

Last updated