Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[0.6.0-preview.3] - 2020-06-22
Fixed
- VisualScripting: Fixed output pins on TimelinePlayer not being triggered.
[0.6.0-preview.2] - 2020-06-18
Changed
- Scheduler: Renamed GameTimeTimer to ClockTypeGameTime, Unscaled GameTimeTimer ClockTypeUnscaledGameTime
- Scheduler: TimerState is now explicit on the Timer Component instead of using TimerPaused and TimerDisabled components
- Upgraded com.unity.entities to 0.11.1-preview.4
- Upgraded com.unity.rendering.hybrid to 0.5.2-preview.4
- Upgraded com.unity.timeline to 1.5.0-preview.1
- Upgraded com.unity.test-framework to 1.1.14
- Set editor minimum version to 2019.4.0f1
Added
- Scheduler: Added ClockTypeRealTime and ClockTypeConstant to provide system clock and constant delta time clock updates
- Scheduler: Added ClockData and ClockUpdateSystem. Clocks will write to ClockData on timers, which then update in their own system. User ClockData systems can be used for custom time updates.
- Scheduler: TimerExtensions class added, which includes EntityManager extension methods for dealing with Timers. Extension methods include IsTimer,CreateTimer, PlayTimer, StopTimer, PauseTimer, GetTimerTime and GetTimerState and for setting the behaviour of a range.
- Scheduler: Added IClockComponent interface for component data types that are specific to identifying clock components for updating timers
- Scheduler: TimerState - enum representing the possible states of a timer
- Timeline: When dragging a GameObject, Prefab or TimelineKey asset on a DOTS Track with a binding of type
TrackBaseBinding, the required components will automatically be created. - Scheduler: TimerStateFlags contains states for Completed, Seeked, Looped and SeekRequested
- Scheduler: RangeBehaviour enum and TimerRange component to define range constraint behaviour of a timer - Replaces TimerLoop & TimerClamp.
- Time: DiscreteTimeInterval struct representing a time range.
- VisualScripting: New assemblies that interface between DOTS Timeline and Visual Scripting. There are two VisualScripting node - TimelinePlayer used to control a timeline, and OnTimelineSignal, an event node that responds to a timeline signal.
- Timeline: TrackAssetExtensions.GetMarkersInRange(), SignalAssetExtensions.GetSignalAssetUid() extension methods for builtin Timeline types.
- Timeline: ConversionContext.ConvertSignals, NotificationEmitter and SignalComponentData component types added. All Timeline signals new generate entities with these as part of their archetype.
Removed
- Scheduler: TimerPaused and TimerDisabled components
- Scheduler: TimerClamp and TimerLoop components. Replaced with TimerRange
Fixed
- Scheduler: Burst is now enabled.
[0.5.1-preview.2] - 2020-05-11
Added
- Timeline: ConversionContext.DeclareAssetDependency
- Timeline: PlayableDirectorExtensions.GatherTags and PlayableDirectorExtensions.GatherDOTSTrackBindings extension methods for gathering tags and bindings bound to a playable director
- Timeline: SpawnedByTimeline component tag, which is added to all timeline spawned objects
- Timeline: Added
SourceAssetInstanceIdcomponent to identify an entity's related playable asset. - Animation: Added NodeCollector class for accumulating nodes while building DataFlowGraphs. This replaces the IDataFlowGraphBridge and all inheritors
- Animation: ConvertRootMotionOutput DFG node that writes to AnimationRootMotionOutput component
- Animation: AnimationRootMotionOutput component added that stores the root motion written timeline
- Animation: WriteRootMotionSystem added to compute the final root motion and write to transform.
- Animation: AnimationTrack.GetRigComponent method to determine the rig component used when converting the animation track.
- Animation: Added field to AnimationMixerState component that contains the rig used to compile the animation track.
Changed
- Upgraded com.unity.entities to 0.9.1-preview.15
- Upgraded com.unity.rendering.hybrid to 0.4.2-preview.16
- Upgraded com.unity.animation to 0.4.0-preview.1
- Upgraded com.unity.timeline to 1.2.14
- Timeline: Preview - Changed the way preview is performed. There is no longer a separate World for preview
- Timeline: Replaced DOTSClip.GetClipWeightCurve with TimelineClipExtensions.CreateClipWeightCurve
- Animation: AnimationTracks no longer require a Prefab binding if the bound object contains a Rig. If a prefab binding is assigned, it will be used, and the results will be remapped to the Rig on the bound object.
Removed
- Timeline: PlayableDirectorAuthoring component. PlayableDirectors are now converted automatically if they have DOTS tracks.
- Timeline: Removed TrackIdentifier component (replaced by
SourceAssetInstanceId). - Animation: Removed AnimationMixerState.RootMotionLayerMixer field.
- Animation: Remove TimelineGraphSystem. PreGraphAnimationSystem is used instead.
Fixed
- Timeline: Fixed an issue where timeline changes were not reflected in Playmode
- Animation: Fixed an issue where Root Motion was not updated when ComponentTracks exist in the same Timeline
- Scheduler: Fixed Disabled flag not being correctly cleared on timers
[0.4.1-preview.1] - 2020-03-31
Changed
- Moved Samples to be installable from PackageManager. All samples now require HDRP.
[0.4.0-preview.5] - 2020-03-30
Fixed
- Fixed error loading package resources from a clean project
[0.4.0-preview.4] - 2020-03-27
Changed
- Upgraded com.unity.test-framework to 1.1.13
[0.4.0-preview.3] - 2020-03-27
Changed
- Upgraded com.unity.animation to 0.3.0-preview.9
- Upgraded com.unity.dataflowgraph to 0.13.0-preview.1
Fixed
- Fixed error with AnimationCurves being improperly disposed when switching scenes
[0.4.0-preview.2] - 2020-03-24
Changed
- Upgraded com.unity.animation to 0.3.0-preview.8
Fixed
- Fixed errors from systems using Entities.ForEach with ExecuteAlways attribute
- Fixed deprecation warnings for IJobForEach usage
[0.4.0-preview.1] - 2020-03-20
Changed
- Upgraded com.unity.collections to 0.7.0-preview.2
- Upgraded com.unity.entities to 0.8.0-preview.8
- Upgraded com.unity.rendering.hybrid to 0.4.0-preview.8
- Upgraded com.unity.jobs to 0.2.7-preview.11
- Upgraded com.unity.burst to 1.3.0-preview.7
- Upgraded com.unity.dataflowgraph to 0.13.0-preview.1
- Upgraded com.unity.timeline: 1.2.13,
- Animation: BlobAssetStore added to IAnimationClipNodeElement.GetClipNodeDescription, IAnimationMixerRootMotionInput.BuildRootMotionInput, IAnimationMixerRootMotionInput.GetAnimatedRootMotion
- Animation: Renamed MixedRigidTransformNode to BlendRigidTransformNode
- Timeline, Scheduler: Changed several systems to inherit from SystemBase instead of JobComponentSystem: ResetActivenessSystem, ActivenessSystem, TimerUpdateSystem, ClipLocalTimeSystem, ClipWeightSystem, ManageBufferElementSystem, SpawnPrefabSystem, TagActivenessSystem
Removed
- Animation: RootMotionOptions.ApplyRootMotion. RootMotion is now applied to all clips.
Added
- Animation: RootMotionOptions.CycleRootMotion. Allows root motion to loop, but not cycle.
- Animation: RootOffsetMode. Clips offsets can now be applied relative to the previous clip, or relative to the track. Sceneview refers to this as pin/unpinned.
- Animation: AnimationClip.PathColor for customized path colors in the scene view.
- Animation: Added drop down menu for selecting the root motion node.
Fixed
- Animation: Offsets on additive tracks now apply to the base root motion.
[0.3.2-preview] - 2020-02-07
Changed
- Upgraded com.unity.dataflowgraph to 0.12.0-preview.6
- Upgraded com.unity.jobs to 0.2.4-preview.11
- Upgraded com.unity.rendering.hybrid to 0.3.3-preview.11
- Upgraded com.unity.burst to 1.2.1
- Upgraded com.unity.test-framework to 1.3.3-preview
- Upgraded com.unity.animation to 0.3.0-preview.6
- Downgraded com.unity.entities to 0.5.1-preview.11
- Downgraded com.unity.collections to 0.5.1-preview.11
- Cleaned up Samples.
Fixed
- Animation: Fixed world space of Gizmo operator
- Animation: Fixed DataFlowGraph node leaks.
- Timeline: Fixed errors being thrown on clip deletion.
- Timeline: Fixes animated weight not being updated during edits
Added
- Timeline: TrackIdentifier component data that associates an entity to the source track
Removed
- Animation: ClipTransformation class (moved to Animation)
[0.3.1-preview.4] - 2020-01-24
Changed
- Upgraded com.unity.entities to 0.6.0-preview.0
- Upgraded com.unity.collections to 0.6.0-preview.0
- Upgraded com.unity.jobs to 0.2.4-preview.0
- Upgraded com.unity.rendering.hybrid to 0.3.3-preview.0
- Upgraded com.unity.test-framework to 1.1.10
- Upgraded com.unity.animation to 0.3.0-preview.3
- Animation: Changed time and weight inputs to use DataFlowGraph ComponentNodes.
- Animation: Renamed TimelineDataFlowGraphUpdateSystem to AnimationGraphUpdateSystem
- Animation: Rename DFGSetConnection to AnimationMixerClipConnection
Removed
- DFGSetTime and DFGSetWeight components
- TimelineDataFlowGraphSystem
[0.3.1-preview.3] - 2020-01-16
Added
- Animation: Animation Tracks now support additive mode.
[0.3.1-preview.2] - 2019-12-18
Added
- Animation: Animated Weights on tracks
Changed
- Animation: AnimationMixerInput split into two components, DFGSetConnection and DFGSetWeight. AnimClipSetTime renamed to DFGSetTime.
[0.3.1-preview.1] - 2019-12-16
Added
- Animation: User Priority. Animation Tracks now apply in a depth first order, but the user can override the priority in the track inspector
- Animation: Animation Tracks now supports layers.
- Timeline.Runtime: ManagerBufferElementSystem and ManageBufferElement
added. Using this system will transfer data from a timeline clip entity component to the targets BufferElement - Timeline.Hybrid: GetLayerIndex and GetTrackOutputIndex added to TrackAssetExtensions.
- Timeline.Hybrid: ConversionContextExtensions.GetTrackPriority for obtaining a track priority within a timeline
- Timeline.Hybrid: BaseTrackOnlyAttributes for track asset properties that only should be displayed on the base track.
Changed
- Upgraded dependency "com.unity.animation" to 0.3.0-preview.2
- Upgraded dependency "com.unity.entities" to 0.3.0-preview.4
- Upgraded dependency "com.unity.rendering.hybrid" to 0.3.0-preview.4
- Upgraded dependency "com.unity.jobs" to 0.2.1-preview.3
- Upgraded dependency "com.unity.collections" to 0.3.0-preview.0
- Timeline.Hybrid: ConversionContext now contains a SharedContextValues for managed data
- Timeline.Hybrid: CreateCompositeTimer now returns a ConversionContext, instead of an Entity
- Animation: AnimationMixerOutput renamed to AnimationMixerBuffer, and made an IBufferElement
- Animation: AnimationMixerOutputState renamed to AnimationMixerState.
- Animation: Weight Inputs moved from Simulation to Kernel Ports on NormalizedMixerNode, NormalizedRootMotionNode, WriteRootTransformNode, MixRigidTransformNode
- Time: Changed default tick unit to support more framerates
Fixed
- Animation: Multiple AnimationTracks targeting the same entity now apply in priority order.
Removed
- Animation: AnimationMixerOutputSyncSystem
- Animation: BlendParameter component and BlendParameterAnimationSystem
[0.3.0-preview.3] - 2019-11-28
Added
- Animation: LoopValue and BankPivot clip configuration options
Changed
- Upgrade com.unity.entities to 0.2.0-preview.21
- Upgrade com.unity.hybrid-renderer to 0.2.0-preview.21
Fixed
- Animation: LoopValue clip configuration now defaults to off
[0.3.0-preview.2] - 2019-11-26
This release brings DOTS Timeline better Timeline to Entity conversions. It also added Edit Tracks, which are used to define non-destructive cuts of a timeline
Added
- Scheduler: TimerDisabled component to explicitly disable a timer
- Scheduler: PlayTimerInEditor component to explicitly have a timer play in edit mode
- Scheduler: TimerClamp and TimerLoop components to support PlayableDirector Hold and Loop modes
- Scheduler: TimerStateFlags - computed state flags for a timer
- Timeline.Editor: TimelinePreviewTimer and PreviewTimerComponentSystem added for preview time update
- Timeline.Editor: TimelinePreviewTag added to entities that are explicitly converted for Timeline Editor Preview
- Timeline.Hybrid: PlayableDirectorAuthoring contains preview options - Current Scene, Open Scenes and OpenScenes and Subscenes
- Timeline.Hybrid: ITrackBindingClip
- Animation: NormalizedMixerNode and NormalizedRootMotionNode DataFlowGraph animation mixers for supporting more than two input streams/transforms.
- Animation: Added new component and buffer types (AnimationGraphComponentData, AnimationGraphDataFlowNodeBuffer, CreateAnimationMixerNodeElement, CreateAnimationClipNodeElement, CreateRootMotionMixerElement, CreateRootMotionClipNodeElement), and system (AnimationGraphBuilderSystem) to support deferred DataFlowGraph node creation.
- Timeline.Hybrid: SpawnWithTimelineClip. Lets the user spawn a prefab and bind a timeline to the clip which will autobind to the prefab.
- Timeline.Hybrid: Added RotationEulerZXY component clip.
- Timeline.Hybrid: Added extrapolation options to animation component clips
- Timeline.Hybrid: Added Disabled Component Clip
- Timeline.Hybrid: Added ClipColorAttribute to override the clip color.
- Timeline.Hybrid: Added DOTSClip.CreateClipEntity to override whether a clip should create an entity
- Timeline.Hybrid: Added DOTSTrack.ConvertTrack to override if/how a track is converted.
- Timeline.Hybrid: Edit Track. New Track Type for defining Edits on a TImeline. Requires the use of SubDirectorTrack/Clip on master timeline.
Removed
- Scheduler: TimerAddedState component removed
- Scheduler: TimerCopySystem removed, merged into TimerUpdateSystem
- Scheduler: TimerStateSystem removed
- Animation: Removed AnimationRootTransformMixerInput component. AnimationMixerInput is now used for root motion.
Changed
- Upgrade com.unity.timeline to 1.2.6
- Upgrade com.unity.entities to 0.2.0-preview.18
- Upgrade com.unity.hybrid-renderer to 0.2.0-preview.18
- Upgrade com.unity.animation to 0.2.16-preview.5
- Timeline.Hybrid: Re-enabled SubTimelineClip and SubPrefabClip. SubTimelineClip now takes tag bindings for subTimelines.
- Timeline.Hybrid: Added ConversionContext to Track and Clip convert methods to supply current context
- Scheduler: Timer write group added to relevant components to ensure only one system updates a timer.
- DiscreteTime: DiscreteTime now implements IComparable
- Timeline.Hybrid: PlayableDirectorProxy renamed PlayableDirectorAuthoring
- Timeline.Runtime: Fixed ManageComponentSystems ignoring newly added entities until the next activate state change.
- Animation: AnimationTrack now work when Timelines are embedded in subscenes.
- Animation: RootMotion now writes directly the to translation and rotation components.
- Animation Samples moved to HDRP.
- Timeline.Hybrid: ClipEntities property moved from DOTSTrack to ConversionContext
- Timeline.Hybrid: SubTimeline conversions convert only required clips
Fixed
- Unique tags are generated when TrackBinding Monobehaviour and Tag assets are copied.
- Fixed Spawn Entity applying an incorrect tag
- Preview transform now inherits parent transform correctly
- Fixed Weighted Curves not evaluating correctly.
Known Issues
- Spawning multiple prefabs containing both a timeline and bindings will not produce unique bindings. All timeline instances will affect all bindings.
- LightComponent clips are currently non-functional
[0.2.1-preview] - 2019-09-24
Changed
- Upgrade com.unity.animation to 0.2.13-preview.
Fixed
- Root Motion now rebuilds correctly when Reverse Flag is changed on Animation Track clips.
[0.2.0-preview] - 2019-08-19
Changed
- DOTS Timeline now requires Unity 2019.3
- Upgrade com.unity.animation to 0.2.11-preview
- Upgrade com.unity.unode to com.unity.dataflowgraph 0.11.2-preview
- Performance improvements when making structural changes to AnimationTracks.
- Cached Generated Root Motion Clips using RootMotionBlobAsset. These will now show up under the timeline asset.
- Removed calls to ConvertAndInjectOriginal
- Moved SpawnPrefabSystem into new TimelineSpawnGroup. Moved LightSystemSetup to occur after spawn group and before tagging, to avoid flickering.
- Renamed TagTrackSystem to TagTrackerSystem
- Fixed SceneView Prefab Transform Controls
- Updated tagging to show on tracks and clips
Added
- Added interface ICreateClipEntity to allow custom clips that belong on the SpawnEntityTrack.
- Added interface ITrackBindingClip for clips that add custom tags
- Added Layers to SpawnEntityTrack and ComponentTrack
Removed
- Removed InstantiatePrefab and ClipBinding components. Replaced with with single SpawnPrefabClipComponent
- Removed ClipBinding system. Integrated into SpawnPrefabSystem
[0.1.0-preview] - 2019-08-20
Added
- New Binding System for DOTS Timeline Tracks. Component and Animation Tracks are now bound to TrackBaseBinding Monobehaviours. There are three variations. The first TrackGameObjectBinding can be used to directly bind a gameObject in the Same scene as the playable director. The second TrackPrefabBinding will instantiate a prefab (as an entity) using the scene position of the proxy gameObject it is bound to. The third TrackQueryBinding uses a tag defined by TrackBindingKey asset. This will automatically bind all gameObjects containing a TimelineTag Monobehaviour that is assigned to the same tag. The TrackQueryBinding must be in the same scene as the PlayableDirector it is bound to. However, any tagged object in any open scene will be driven by Timeline.
- Light Component Clips. Separate clips to animate (override or additively) light color, light intensity, light range and spot light angles.
- SyncComponentSystem. This system will copy data from an active timeline clip to all target components if the component exists.
- Additional Samples
Changed
- Merged Timeline.ECS into Timeline.Hybrid assembly
- Added burst compile, and parallel hashmaps/command buffers to several Timeline Jobs.
- Placed All AnimatedComponentSystems in a separate timeline system group (TimelineComponentAnimationGroup)
- Changed ManageComponent to take up to 4 component types.
- CompositeTimers are now separate Entities instead of being attached to the clip Entity
- Custom Clip samples
Removed
- CreateEntityClip
Known Issues
- Animation Tracks can be slow to initially load. This is due to resource building.
- SubPrefabClip is not fully functional.
[0.0.3-preview] - 2019-08-18
Changed
- Upgrade com.unity.animation to 0.2.9-preview. Added as a project dependency
- Upgrade com.unity.unode to 0.9.2-preview Fixed
- Compile errors in standalone when animation package included
[0.0.2-preview] - 2019-08-12
Scheduler
- Removed Active,BecameActive, BecameInActive tags
- Added ActiveState tag to indicate current state of entity inside the scheduler
- Changed ComponentClip to leverage RegisterGenericComponent for AnimatedComponent
and DefaultComponentValue instead of interfaces. Removed IAnimatedComponent and IDefaultComponentValues - Changed ComponentAnimationSystem to run jobs on source components instead of using a CommandBuffer
[0.0.1-preview.2] - 2019-08-07
Added Animation Tracks. Requires 0.2.8 of the Unity.Animation package
[0.0.1-preview.1] - 2019-05-06
This is the first preview release of Unity Package DOTS TImeline.
What is working in this release
- A set of DOTS-only tracks exist - Spawn Entity, Component Tracks, Sub Director prototype track.
- Open Sample Scene for samples of these track, in the project located in the samples directory.
- In-Editor scrubbing, runtime-playback both work (require a PlayableDirectorProxy component).
- Toggle preview button if changes to clips and/or tracks are immediately reflected in scene (known issue)
Not currently functional
- Animation Tracks