Created unity project

This commit is contained in:
2024-12-07 20:55:50 +01:00
parent 539250d964
commit 54fe327198
13758 changed files with 865324 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
{
"timestamp": 1696537286,
"signature": "afL47IP9nZd7CAgOdKBdGN/kDBX+ZFD1VJZOUwIfIb4CCwRnCgHa7oNXvbc0/H2DkE5op73rjOpKcJpZqPI2/15C2W3yYCcQmOAJJUTo7AD1QxQLqTD7SN6MAJeHtvVkx/aD348AYe5q69jjI8AXK3fX6JeGbMYRcNuSZ9Ns4EktppEf52nduoKcxb7R6FCWV81lm3ophXRrdOwXw5AgAqgv4A8p8R4ZOIWqSRt/ZlpJ/NJYLgO85kQh1MH9DV0+nmXsC28Gtf+iYvYxp6IowAKKZF20qkmqjbMxD6jCxXtFh5MomlNDLcqeOo+0+v10wIM7DudiDCh183/ccqgHwxIefvLQc2BaZH0mMQhOOpbLVg8Cp7jq46mWUCqKwHulzZ5Am9S9xyoYBJnfXVrMHd1L99miOFIdGq2u0ERl/yFB8AfRODT5FcpDmPrJw32vvTcPkEbvsnZBR7i4xdEgPQj38ySaLxlMpqVEkAQl1IA0Tm/GlZqQuqF536pEndqL",
"publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQm9qQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FZOEFNSUlCaWdLQ0FZRUFzdUhXYUhsZ0I1cVF4ZEJjTlJKSAordHR4SmoxcVY1NTdvMlZaRE1XaXhYRVBkRTBEMVFkT1JIRXNSS1RscmplUXlERU83ZlNQS0ZwZ1A3MU5TTnJCCkFHM2NFSU45aHNQVDhOVmllZmdWem5QTkVMenFkVmdEbFhpb2VpUnV6OERKWFgvblpmU1JWKytwbk9ySTRibG4KS0twelJlNW14OTc1SjhxZ1FvRktKT0NNRlpHdkJMR2MxSzZZaEIzOHJFODZCZzgzbUovWjBEYkVmQjBxZm13cgo2ZDVFUXFsd0E5Y3JZT1YyV1VpWXprSnBLNmJZNzRZNmM1TmpBcEFKeGNiaTFOaDlRVEhUcU44N0ZtMDF0R1ZwCjVNd1pXSWZuYVRUemEvTGZLelR5U0pka0tldEZMVGdkYXpMYlpzUEE2aHBSK0FJRTJhc0tLTi84UUk1N3UzU2cKL2xyMnZKS1IvU2l5eEN1Q20vQWJkYnJMbXk0WjlSdm1jMGdpclA4T0lLQWxBRWZ2TzV5Z2hSKy8vd1RpTFlzUQp1SllDM0V2UE16ZGdKUzdGR2FscnFLZzlPTCsxVzROY05yNWdveVdSUUJ0cktKaWlTZEJVWmVxb0RvSUY5NHpCCndGbzJJT1JFdXFqcU51M3diMWZIM3p1dGdtalFra3IxVjJhd3hmcExLWlROQWdNQkFBRT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg"
}

View File

@@ -0,0 +1,640 @@
# Changelog
All notable changes to this package will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
## [1.7.6] - 2023-10-05
### Fixed
- Fixed issue where a warning would be logged in the console for `TrackAsset` ([TB-229](https://issuetracker.unity3d.com/product/unity/issues/guid/TB-229)).
- Fixed issue where changing the name of a group track was not undoable ([TB-218](https://issuetracker.unity3d.com/issues/timeline-track-group-renaming-doesnt-go-into-the-undo-history)).
- Fixed performance regression when rebuilding the playable graph.
## [1.7.5] - 2023-06-15
### Fixed
- Fixed issue where exceptions were thrown when different `ControlTrack`s are referencing the same `TimelineAsset` ([IN-21163](https://issuetracker.unity3d.com/product/unity/issues/guid/TB-165)).
- The `Text Track` sample has been updated to use the `com.unity.ugui` package.
- Removed usage of deprecated API: `UnityEditor.MemoryProfiler`
## [1.7.4] - 2023-03-08
### Fixed
- Fixed issue where previewing the Timeline would create prefab property modifications
## [1.7.3] - 2023-01-31
### Fixed
- Fixed issue where modifying curves on an animation clip did not trigger an evaluation of the graph when the Timeline Window is hidden. (TB-117)
## [1.7.2] - 2022-09-12
### Fixed
- Fixed an issue where menu items related to track, marker and clip types in contextual menus would be in arbitrary order in some versions of Unity. Menu items related to types will now be sorted based on their full names, including the assembly name.
- Fix post-extrapolation mode change not recalculating previous clip pre-extrapolation time. ([ATL-1291])
- Fixed an issue where prefab overrides would be created when keyframing a prefab instance in Timeline. ([TB-108])
- Fixed an issue where a warning would be raised when using the undo history to undo multiple timeline interactions([TB-119])
- Fixed an issue where in some cases a NullReferenceException would be thrown in the PlayableDirector inspector after a TimelineAsset would be unloaded in the Editor([TB-129])
- Fixed an issue with the NoFoldOut attribute drawer, which was behaving incorrectly when used outside of the sample context. ([TB-132])
## [1.7.1] - 2022-03-07
### Fixed
- Fixed warnings related to meta files related to missing folders.
## [1.7.0] - 2022-02-21
### Added
- Added TimelinePlaybackControls Editor API:
- The Playback controls API lets you drive the Timeline Window playback controls from code. From this API, you can
- Change the current Time/Frame
- Query the current Time/Frame
- Start/Stop playback of the currently shown Timeline
- Go to First or Last frame
- Go to previous or next frame.
- Use it to accelerate your workflow, or build your own workflows on top of Timeline.
### Changed
- [Requires Unity 2021.2] Fixed an issue where the last frame of a Timeline was not guaranteed to be executed when the Playable Director had Wrap Mode `None`.
- License file header changed from "Timeline copyright © 2021 Unity Technologies ApS" to "Timeline copyright © 2021 Unity Technologies"
### Fixed
- Fixed an issue where unused `TrackAsset`s would be saved in the `TimelineAsset` file after removing tracks.
- Fixed an issue where grouped markers at time zero would sometimes disappear after clicking on them (https://issuetracker.unity3d.com/issues/timeline-markers-disappear-when-double-clicking-on-stacked-markers-at-0-frames)
- Fixed an issue where selecting a prefab in the project view could trigger an exception when parenting the prefab to a prefab sub-object. (1386125)
- Fixed an issue where duplicated or pasted tracks that were part of group tracks would lose their associated bindings (https://issuetracker.unity3d.com/issues/duplicated-track-groups-lose-their-nester-tracks-game-object-assignments)
- Fixed an issue where pasting a track after changing scenes would lose PlayableAsset references in clips (https://issuetracker.unity3d.com/issues/animation-tracks-copy-loses-its-properties-when-its-pasted-from-another-scene)
- Fixed an issue where the Timeline Window play range would not be serialized and persisted.
- Fixed an issue where clicking on a clip during Play Mode would evaluate the Timeline unnecessarily. (https://issuetracker.unity3d.com/issues/timeline-rebuilds-playable-graph-when-selecting-a-timeline-clip-during-play-mode)
- Fixed an issue where control clips would behave inconsistently if the clip was set to hold, but the PlayableDirector was set to not extrapolate. (https://issuetracker.unity3d.com/product/unity/issues/guid/1375771)
- Fixed issue where a warning would appear in 2022.1 regarding `AnimationWindowState.SnapMode`.
- [Requires Unity 2021.2] Fixed an issue where the last frame of a Timeline was not guaranteed to be executed when the Playable Director had Wrap Mode `None`.
- Fixed an issue where the Timeline Window's UI would not update until the user clicked in the window if the TimelineAsset's file contents were changed on disk, such as during a version control operation [1357110](https://issuetracker.unity3d.com/product/unity/issues/guid/1357110/)
## [1.6.3] - 2021-10-20
### Fixed
- Fixed an issue where the Timeline Window would not work correctly with read-only source controlled files.
- Fixed an issue where the a MissingReferenceException would be thrown when an IAnimationWindowPreview component previewed by Timeline would be destroyed. (https://issuetracker.unity3d.com/issues/missingreferenceexception-is-thrown-when-using-rigbuilder-inside-a-prefab)
- Fixed an issue where the "Match Content" action would not apply on all selected clips. (1368028)
## [1.6.2] - 2021-08-05
### Fixed
- Fixed an issue where copy-pasting Timeline Clips that contain Generic Lists of ExposedReferences would cause a NullReferenceException (1332377)
## [1.6.1] - 2021-06-22
### Added
- `ClipDrawOptions.hideScaleIndicator` can now be used to disable the clip scale indicator.
- Added an asterisk to the Timeline Window when the currently edited Timeline Asset is dirty (has unsaved changes). (1024230)
- Added the `IInspectorChangeHandler` interface to change what happens when a UI component in the inspector is modified. (1283486)
- (_Unity 2020.2+ only_) The Timeline window title displays an asterisk when there are unsaved changes.
- Double click now toggles the collapsed state of group tracks.
- A keyboard shortcut can now be mapped to expand or collapse group tracks.
- Added `displayClipName` property to ClipDrawOption. Use `displayClipName` to display (true) or hide (false) the clip name.
- New API added to `TimelineEditorWindow`: `TimelineNavigator`.
- Enables navigation between timelines and nested timelines through code for automation purposes.
- Gives access to Timeline window breadcrumbs.
- _(Unity 2021.2+ only)_ Added `Framelocked preview` option in Timeline preferences.
- Added framerate display with standard framerates.
- `TimelineAsset` framerate can be set with a `StandardFramerate` value. (`TimelineAsset.SetStandardFramerate`)
### Changed
- Removed non-working PlayRange options (Loop/Hold) as both were actually mapping to Loop behaviour and always have been.
- Timeline settings menu has been modified to use standard framerates in framerate submenu.
- `TimelineAsset.fps` is obsolete and is replaced by `TimelineAsset.frameRate`.
- `TimelineProjectSettings.assetDefaultFramerate` is obsolete and is replaced by `TimelineProjectSettings.defaultFramerate`.
### Fixed
- Removed GC allocations in `PlayableDirector.duration` when a timeline asset is assigned. ([1298818](https://issuetracker.unity3d.com/product/unity/issues/guid/1298818))
- Removed warnings with AnimationWindowState snap mode. (1306205)
- Fixed issue where the "Navigate Right" (default key: `Right Arrow` ▶) would not behave consistently. The correct order of operations should now always be, in order: expand group, select first track of group, then select first item of the track.
- Fixed frame display not rounding up correctly. (1333009)
- Fixed an issue where `TimelinePlayable` duration would not be initialized if the playable is not created from the PlayableDirector. ([1329151](https://issuetracker.unity3d.com/product/unity/issues/guid/1329151))
- Fixed memory leak in custom playable inspectors. (1332377)
- Fixed exception when using the Key All Animated shortcut with no Timeline selected. (1334339)
- Fixed issue where a warning would appear regarding obsolete `AnimationWindowState.SnapMode` values.
## [1.5.5] - 2021-04-30
### Fixed
- Fixed an issue in the Curves view where the color indicator was sized incorrectly on high-res displays. ([1318782](https://issuetracker.unity3d.com/product/unity/issues/guid/1318782))
- Fixed a rare issue where keyframes were created for Playable Curves when switching to play mode. ([1319124](https://issuetracker.unity3d.com/product/unity/issues/guid/1319124))
- Fixed an issue where clearing the Unity selection did not refresh the Timeline window. (1320260)
- Fixed an issue with `IAnimationWindowPreview.StartPreview` not getting called for sub timelines. ([1322571](https://issuetracker.unity3d.com/product/unity/issues/guid/1322571))
- Fixed an issue where the curve color identifiers would overlap property names when the Timeline window was resized. ([1323591](https://issuetracker.unity3d.com/product/unity/issues/guid/1323591))
- Fixed a regression where changes made to clip curves would not be processed until another modification caused a graph rebuild.
- Fixed compilation issue on 2020.1 due to incorrect version checks.
- Fixed issue where text labels were incorrectly displayed when the mouse pointer was located above a clip.
## [1.5.4] - 2021-03-10
### Fixed
- Fixed issue where the horizontal scrollbar could not be moved or resized.
## [1.5.3] - 2021-03-05
### Changed
- Disabled edition of Track Asset Inspector Script field as it could break Timeline Assets.
### Fixed
- Fixed issue where the timeline header track would automatically open during a drag and drop operation. ([1305436](https://issuetracker.unity3d.com/product/unity/issues/guid/1305436))
- Fixed a rare issue where some broken tracks could not be removed. ([1305388](https://issuetracker.unity3d.com/product/unity/issues/guid/1305388))
- Fixed rare issue where the time field could not be edited after opening a timeline. ([1312198](https://issuetracker.unity3d.com/product/unity/issues/guid/1312198))
- Fixed cosmetic issue where the duration marker was drawn over the scroll bar.
- Fixed issue where times without a decimal separator (. or , depending on locale) would not be interpreted correctly by the time field. (1315605)
- Fixed issue where a selection rectangle could not be made when started inside a track. ([1315840](https://issuetracker.unity3d.com/product/unity/issues/guid/1315840))
- Performing Undo/Redo will not affect Timeline window selection when the window is locked. (Selecting sub-timelines can still be undone). ([1313515](https://issuetracker.unity3d.com/product/unity/issues/guid/1313515))
- Fixed an issue where text would be clipped in the track header binding. ([1302401](https://issuetracker.unity3d.com/product/unity/issues/guid/1302401))
- Fixed issue where clicking in the Timeline window while there is no active timeline would throw an exception.
## [1.5.2] - 2021-01-08
### Added
- During recording, there are new ways to key animated properties:
- A new Inspector context menu has been added (`Key All Animated`) that sets a key to all currently animated properties.
- It is possible to make a multi-selection of tracks to set a keyframe to all currently animated properties. If no track is selected, all recording tracks are keyed.
- If properties are selected in the curve editor, only those properties are keyed.
- `TimelineEditor.GetWindow` and `TimelineEditor.GetOrCreateWindow` to get the current Timeline window or create a Timeline window.
- `TimelineEditorWindow.SetCurrentTimeline` to change which timeline asset is opened in the Timeline window.
- `TimelineEditorWindow.lock` to lock or unlock the Timeline window.
- `TrackExtensions.GetCollapsed`, `TrackExtensions.SetCollapsed`, `TrackExtensions.IsVisibleRecursive` to get and change the visibility state of a track.
- `AnimationTrackExtensions.IsRecording`, `AnimationTrackExtensions.SetRecording`, `AnimationTrackExtensions.SupportsRecording` to get or change the recording state of an Animation track.
- Added two methods in `TrackEditor` to control how an object is bound to a track: `IsBindingAssignableFrom` and `GetBindingFrom`.
- Added Japanese translation.
- The Timeline window will automatically rebuild the graph when a notifications's properties are changed.
- The Timeline window will be automatically refreshed when a marker's properties are changed.
- Added `TimelineEditor.GetInspectedTimeFromMasterTime` and `TimelineEditor.GetMasterTimeFromInspectedTime` to convert time from master to inspected timeline and vice versa when using sub-timelines.
- Added API to improve how to get/set a `TimelineClip`'s parent track:
- `TimelineClip.GetParentTrack` (replaces obsolete property getter)
- `ItemsUtils.SetParentTrack` (extension method thar replaces obsolete property setter)
- Added a new `Seconds` time display mode and renamed previous Seconds mode to Timecode.
- `TimelinePreferences.timeFormat` field,
- `UnityEditor.Timeline.TimeFormat` enum.
- Added API for the user to clip to the track area:
- API: Relevant member to `MarkerOverlayRegion`,
- API: `MarkerOverlayRegion.trackRegion`,
- API: `MarkerOverlayRegion` constructor.
- Added _Gameplay sequence_ sample.
- This sample demonstrates how Timeline can be used to create a small in-game moment, using built-in tracks.
- Added _Customization_ sample.
- This sample demonstrates how to create custom tracks, clips, markers and actions.
### Changed
- The binding field on a track header will change its background color when dragging a valid object on it.
- Timeline marker track is now selectable.
- `TimelineClip` property `parentTrack` is now obsolete.
- `TimelinePreferences.timeUnitInFrames` is now obsolete.
### Fixed
- Fixed a bug affecting the conversion between seconds and frames in the inspector.
- Fixed issue where `KeyAllAnimated` was available when right-clicking on markers and tracks that were not in record mode. (1270304)
- Fixed issue where the mouse cursor would stay stuck to a resize icon when resizing the track header. ([1076031](https://issuetracker.unity3d.com/product/unity/issues/guid/1076031/))
- Fixed case where an animation event at time 0 would not fire on a timeline loop. ([1184106](https://issuetracker.unity3d.com/product/unity/issues/guid/1184106))
- Fixed issue where Timeline objects (ie. `TrackAsset`, `ControlTrack`, `SignalAsset`, etc.) would have incorrect links to the documentation pages. *Available starting from Unity 2021.1*. ([1082941](https://issuetracker.unity3d.com/product/unity/issues/guid/1082941))
- Fixed multiple issues related to blends
- Fix display of blends when clips have ease-in/ease-out ([1178066](https://issuetracker.unity3d.com/product/unity/issues/guid/1178066))
- Fix clip disappearing when dragging it from left to right completely inside another clip.
- Fix select and drag clip discarding foreground display rule of selected clip after releasing the drag.
- Fix fully blended clips selection not available. ([1289912](https://issuetracker.unity3d.com/product/unity/issues/guid/1289912))
- Fixed issue where the clip display would flicker when moving two clips that are completely overlapped. ([1085679](https://issuetracker.unity3d.com/product/unity/issues/guid/1085679))
- The Timeline window will no longer revert to editing only the asset if the user uses the Timeline selector to pick a game object and switches focus. ([1291455](https://issuetracker.unity3d.com/product/unity/issues/guid/1291455))
- Create button on timeline panel no longer defaults to an invalid path. ([1289923](https://issuetracker.unity3d.com/product/unity/issues/guid/1289923))
- Fixed issue where Timeline's bindings field would loses names and bindings when selecting clips. ([1293941](https://issuetracker.unity3d.com/product/unity/issues/guid/1293941))
- Make Timeline's duration result displayed in the Inspector, when switching from duration mode: Based On Clips to Fixed Length, closer to the actual duration. ([1156920](https://issuetracker.unity3d.com/product/unity/issues/guid/1156920))
- Copy/Paste of clips in the Timeline Window will no longer paste clips at an invalid time in mix-mode. ([1289925](https://issuetracker.unity3d.com/product/unity/issues/guid/1289925))
## [1.4.5] - 2020-11-19
### Fixed
- Fixed issue where changing a clip's extrapolation values would clear the current clip selection. ([936046](https://issuetracker.unity3d.com/product/unity/issues/guid/936046))
- Fixed multiple issues related to the curves view:
- Fixed curve removal not functioning with `PlayableAsset`s (clips & tracks curves). ([1231002](https://issuetracker.unity3d.com/product/unity/issues/guid/1231002))
- Fixed inconsistent icon display on curves.
- Fixed incorrect ordering of properties. Properties now have a object/type/property ordering.
- Fixed unnecessary grouping of fields.
- Changed context menu from `Remove Properties` to `Remove Curves` to better reflect the change in functionality between curves for GameObjects and curves for `PlayableAssets`.
- Fixed behaviour where removing a single field in a `Position`, `Rotation` or `Scale` group would remove the entire group.
- Fixed case where pausing in Playmode and switching the active director in editor could pause the director. ([1263707](https://issuetracker.unity3d.com/product/unity/issues/guid/1263707))
- Material properties are now displayed by their shader name in the curves view when possible. ([1115961](https://issuetracker.unity3d.com/product/unity/issues/guid/1115961))
- Fixed issue where a signal could be pasted on a track that doesn't support notifications. ([1283763](https://issuetracker.unity3d.com/product/unity/issues/guid/1283763))
- Fixed issue where a clip could be paseted on an incompatible track. ([1283763](https://issuetracker.unity3d.com/product/unity/issues/guid/1283763))
- Fixed errors when leaving prefab mode when a timeline is opened. ([1280331](https://issuetracker.unity3d.com/product/unity/issues/guid/1280331))
- No preview will be shown when the PlayableDirector is disabled. ([1286198](https://issuetracker.unity3d.com/product/unity/issues/guid/1286198))
- Fixed issue where an infinite clip's `Foot Ik` property was not visible in the Inspector when selecting its track. ([1279824](https://issuetracker.unity3d.com/product/unity/issues/guid/1279824))
- Fixed issue where child particle systems were not controlled correctly when they are not subemitters. ([1212943](https://issuetracker.unity3d.com/product/unity/issues/guid/1212943))
- Fixed inconsistent recording behaviour on audio tracks and `PlayableAssets`. Default values are changed when a value is not recorded, and the key added/updated when a value is already animated. ([1283453](https://issuetracker.unity3d.com/product/unity/issues/guid/1283453))
- Fixed issue where the curves view for tracks and `PlayableAsset`s would not update when changed externally (such as from the Animation window).
- Fixed `Add Key`/`Remove Key` context menus not being properly enabled in some cases when using tracks and `PlayableAsset`s.
- Fixed simulation of subemitters when scrubbing a timeline. ([1142781](https://issuetracker.unity3d.com/product/unity/issues/guid/1142781))
- Fixed choppy playback of particles with a large fixed time step. ([1262234](https://issuetracker.unity3d.com/product/unity/issues/guid/1262234))
## [1.4.4] - 2020-10-09
### Fixed
- Disable drag and drop of Signal asset on Control Track. ([1222760](https://issuetracker.unity3d.com/product/unity/issues/guid/1222760/))
- Fixed system locale causing issues when keying float values on custom clips. ([1190877](https://issuetracker.unity3d.com/product/unity/issues/guid/1190877/))
- Fixed issue where recording to a clip would place keys on the frame. ([1274892](https://issuetracker.unity3d.com/product/unity/issues/guid/1274892/))
- Fixed keyboard clip selection from locked tracks. ([1233612](https://issuetracker.unity3d.com/product/unity/issues/guid/1233612/))
- Fixed issue where the Timeline window would stay locked even when no timeline asset is shown. ([1278598](https://issuetracker.unity3d.com/product/unity/issues/guid/1278598/))
- Fixed issue where invoking `SelectLeft` or `SelectRight` shortcuts on a group track, the group would not collapse or expand. ([1279379](https://issuetracker.unity3d.com/product/unity/issues/guid/1279379/))
- Fixed Blend Curve Editor from the clip's inspector that was not responding correctly to undo and redo commands. (978673)
- Fixed issue where the `Frame All` action would not frame keys outside of clips when the curve display is collapsed. ([1273725](https://issuetracker.unity3d.com/product/unity/issues/guid/1273725/), #295)
- Scrolling the horizontal scrollbar of the timeline to the right edge will no longer prevent the user from dragging left again. ([1127199](https://issuetracker.unity3d.com/product/unity/issues/guid/1127199/), #301)
- Splitting a clip with an ease in or out value now ensures ease duration stays on correct side of split. ([1279350](https://issuetracker.unity3d.com/product/unity/issues/guid/1279350/))
- Fixed delay when zooming in after reaching Timeline window's maximum and then zooming back. ([1214228](https://issuetracker.unity3d.com/product/unity/issues/guid/1214228/))
- Prevent creation of presets with Group Tracks. ([1281056](https://issuetracker.unity3d.com/product/unity/issues/guid/1281056))
- Fixed issue where markers placed on top of clips could not be selected. ([1284807](https://issuetracker.unity3d.com/product/unity/issues/guid/1284807), #314)
- Fixed issue where multiple markers placed on top of each other could not be selected. ([1284801](https://issuetracker.unity3d.com/product/unity/issues/guid/1284801), #314)
## [1.4.3] - 2020-08-26
### Fixed
- Fixed incorrect selection when clicking on a clip's blend. (1178052)
- Fixed issue where an exception was thrown when drawing an Audio clip's waveform when that clip wasn't in the AssetDatabase. ([1268868](https://issuetracker.unity3d.com/product/unity/issues/guid/1268868/))
- When choosing `Add Signal Emitter from Signal Asset`, closing the Object Selector window will not add an empty Signal Emitter. ([1261553](https://issuetracker.unity3d.com/product/unity/issues/guid/1261553/))
- Fixed issue where an error would appear when editing keys in the Animation window if the Timeline window is opened. (1269829)
- Fixed issue where the `Frame All` operation would continually increase the zoom value when only empty tracks are added to the timeline ([1273540](https://issuetracker.unity3d.com/product/unity/issues/guid/1273540/)).
## [1.4.2] - 2020-08-04
### Fixed
- Fixed double-click not opening the AnimationWindow on clips with animated parameters. ([1262950](https://issuetracker.unity3d.com/product/unity/issues/guid/1262950/))
- Fixed issue where the Timeline window would rebuild its Playable Graph every time an AnimationClip would be added, changed or deserialized. (1265314, [1267055](https://issuetracker.unity3d.com/product/unity/issues/guid/1267055/))
## [1.4.1] - 2020-07-15
### Fixed
- Fixed `IndexOutOfRangeException` exception being thrown when editing inspector curves. ([1259902](https://issuetracker.unity3d.com/product/unity/issues/guid/1259902/))
- Fixed `IndexOutOfRangeException` exception being thrown when the `New Signal` dialog replaces an existing signal. ([1241170](https://issuetracker.unity3d.com/product/unity/issues/guid/1241170/))
- Fixed signal state being reset on paused timelines. ([1257208](https://issuetracker.unity3d.com/product/unity/issues/guid/1257208/))
- Fixed nested custom types not updating animation values in the inspector. ([1239893](https://issuetracker.unity3d.com/product/unity/issues/guid/1239893/))
- Fixed `AnimationTrack`s SceneOffset mode incorrectly overriding root transform on tracks without root transform in editor. ([1237704](https://issuetracker.unity3d.com/product/unity/issues/guid/1237704/))
- The `DisplayName` attribute is now supported when used with `TrackAsset`s. ([1253397](https://issuetracker.unity3d.com/product/unity/issues/guid/1253397/))
- Fixed `NullReference` exception being thrown when clicking on the `Scene Preview` checkbox if the Timeline window was closed. (1261543)
## [1.4.0] - 2020-06-26
### Added
- Added `ClipCaps.AutoScale` to automatically change the speed multiplier value when the clip is trimmed in the Timeline window.
- Added a `DeleteClip` method in `TrackAsset`.
- Added dependency on Animation, Audio, Director and Particle System modules. ([1229825](https://issuetracker.unity3d.com/product/unity/issues/guid/1229825/))
- Added an option in `TimelineAsset.EditorSettings` to disable scene preview.
- Added base classes to define custom actions:
- `TimelineAction`
- `TrackAction`
- `ClipAction`
- `MarkerAction`
- Added the following attributes that can be used with action classes:
- `ApplyDefaultUndo` to automatically manage undo operations.
- `ActiveInMode` to control in which Timeline mode the action is valid.
- `MenuEntry` to add the action to the context menu.
- `TimelineShortcut` can be added to a static method to invoke the action with a shortcut.
- `Invoker` to invoke actions using Timeline's selection or context.
- `MenuOrder` contains menu priority values, to be used with `MenuEntry`.
- `TimelineModes` to specify in which mode an action is valid, to be used with `MenuEntry`.
- `ActionContext` to provide a context to invoke `TimelineAction`s.
- `ActionValidity` to specify is an action is valid for a given context.
- `UndoExtension` to manage undo operations with common Timeline types.
### Changed
- Improved performance with ControlTracks in preview mode for cases where multiple Control Tracks are assigned to the same PlayableDirector.
- Improved layout and appearance of track header buttons.
- Reduced icons' file size without any quality loss.
- A track's binding will be duplicated when pasting or duplicating a track.
- When creating a new timeline asset, the "Timeline" suffix will not be added to the file name twice.
- `ClipCaps.All` now includes the new `Autoscale` feature. To get the previous `ClipCaps.All` behaviour on clips, use
```
ClipCaps.Looping | ClipCaps.Extrapolation | ClipCaps.ClipIn | ClipCaps.SpeedMultiplier | ClipCaps.Blending
```
- Inline curve selection is now synced with the clip's selection.
- Selecting a curve view property will also select the corresponding curve view.
- Clicking and holding the `Command` or `Control` key on a curve view will deselect it if it was already selected.
- Improved Timeline window UI performance.
### Fixed
- Selecting clips from locked tracks is not allowed anymore when using the playhead's context menu.
- Inserting gaps in locked tracks is not allowed anymore.
- When adding an Activation track, the viewport is adjusted to show the new Activation clip.
- Fixed issue where trimming AnimationClips would also change the speed multiplier.
## [1.3.4] - 2020-06-09
### Fixed
- Fix a Control Track bug that caused the first frame of an animation to evaluated incorrectly when scrubbing forwards and backwards. (1253485)
- Fixed memory leak where the most recently played timeline would not get unloaded. ([1214752](https://issuetracker.unity3d.com/product/unity/issues/guid/1214752/) and 1253974)
## [1.3.3] - 2020-05-29
### Fixed
- Fixed regression where animation tracks were writing root motion when the animation clip did not contain root transform values ([1249355](https://issuetracker.unity3d.com/product/unity/issues/guid/1249355/))
## [1.3.2] - 2020-04-02
### Fixed
- Fixed issue where the clip Inspector's curve preview would close when clicking on the curve. ([1228127](https://issuetracker.unity3d.com/product/unity/issues/guid/1228127/))
- Fixed issue where the curves view was not synced between Animation and Timeline windows. ([1213937](https://issuetracker.unity3d.com/issues/animation-window-curves-are-not-updated-immediately-when-changing-them-in-timeline-window))
- Fixed issue where play range didn't loop when range ends on the final frame. ([1215926](https://issuetracker.unity3d.com/issues/timeline-play-range-doesnt-loop-when-play-range-ends-on-the-final-frame))
- Fixed issue where displaying an array in the curves view generated errors. ([1178251](https://issuetracker.unity3d.com/product/unity/issues/guid/1178251/))
## [1.3.1] - 2020-03-13
### Fixed
- Fixed issue where the curves view would flicker when editing multiple keys. ([1217326](https://issuetracker.unity3d.com/product/unity/issues/guid/1217326/))
- Fixed issue where adding a keyframe in the curves view at the end of a clip would not place the keyframe at the correct position. ([1221337](https://issuetracker.unity3d.com/product/unity/issues/guid/1221337/))
## [1.3.0] - 2020-02-26
### Added
- Inline Curve Properties can be removed.
- Tracks can be individually resized.
### Changed
- Creating a new Timeline will no longer automatically add an Animation Track and an Animator to the target GameObject.
- Ease-in and ease-out values for clips are no longer restricted to 50% of the clip's duration.
- The resize handle for inline curves has been moved to the track header area.
- Reduced the minimum width of the track header area.
- Trimming the left edge of a clip while pressing the Shift key will change the Speed Multiplier value.
### Fixed
- Fixed humanoid characters going to default pose during initial root motion recording. (1174752)
- Fixed Override Tracks not masking RootTransform when an AvatarMask without the Root Node is applied. ([1190600](https://issuetracker.unity3d.com/product/unity/issues/guid/1190600/))
- Fixed preview of Avatar Masks on base level Animation Tracks. ([1190600](https://issuetracker.unity3d.com/product/unity/issues/guid/1190600/))
## [1.2.13] - 2020-02-24
### Fixed
- Fixed Performance issue where Control Tracks would resimulate during the tail of a non-looping particle clip. ([1216702](https://issuetracker.unity3d.com/product/unity/issues/guid/1216702/))
- Fixed adjacent recording clips highlighting the wrong clip. ([1210312](https://issuetracker.unity3d.com/product/unity/issues/guid/1210312/))
- Fixed timescale drawing to only draw visible lines which avoids a hang with very large clips. ([1213189](https://issuetracker.unity3d.com/product/unity/issues/guid/1213189/))
- Fixed `SignalReceiver.ChangeSignalAtIndex` incorrectly throwing exception when multiple entries are set to null. ([1210877](https://issuetracker.unity3d.com/product/unity/issues/guid/1210877/))
- Fixed a memory leak with Animation Clips in Edit mode.
- Fixed issue where changes to a Signal Receiver component in a prefab were reverted. ([1210883](https://issuetracker.unity3d.com/product/unity/issues/guid/1210883/))
- Fixed avatar mask reassignment not causing immediate re-evaluation. ([1219326](https://issuetracker.unity3d.com/product/unity/issues/guid/1219326/))
- Fixed issues related to recursive control tracks. (1178423)
- Fixed issue where using the `HideInMenu` attribute in combination with a class inheriting from `Marker` would not hide the marker from the Timeline context menus. ([1221054](https://issuetracker.unity3d.com/product/unity/issues/guid/1221054/))
## [1.2.12] - 2020-02-21
### Fixed
- Fixed issue where the curves view would change its framing when moving a clip. ([1217353](https://issuetracker.unity3d.com/product/unity/issues/guid/1217353/))
## [1.2.11] - 2020-01-22
### Fixed
- Fixed Control Track inspector dropdown not opening. ([1208943](https://issuetracker.unity3d.com/product/unity/issues/guid/1208943/))
- Fixed issue where applying the Match content command on subtimeline clip with a newly created subtimeline with no duration makes the clip disappear. ([1203662](https://issuetracker.unity3d.com/product/unity/issues/guid/1203662/))
- Fixed issue where the opened timeline is changed to another timeline when switching focus from Unity to a different application. ([1087348](https://issuetracker.unity3d.com/product/unity/issues/guid/1087348/))
- Fixed issue where the keys in the inline curves view were incorrectly positioned ([1205835](https://issuetracker.unity3d.com/product/unity/issues/guid/1205835/))
### Changed
- ControlPlayableAsset.searchHierarchy (a.k.a. Control Children) now defaults to false.
## [1.2.10] - 2019-12-08
### Fixed
- Fixed issue where object selectors on tracks did not show bound objects. (1202853)
- Fixing inspector blend graph display for animation clips. (1201474)
- Fixed Timeline Window lock state when restarting Unity and no timeline are selected. ([1201405](https://issuetracker.unity3d.com/product/unity/issues/guid/1201405/))
## [1.2.9] - 2019-12-06
### Fixed
- Added missing high-resolution icons for Personal Skin.
## [1.2.8] - 2019-11-21
### Fixed
- Fixed issue where recording couldn't be turned on for override tracks. (1199389)
- Fixed overlay bug when panning. (1198348)
- Fixed Foot IK being applied in Editor when option is disabled. ([1197426](https://issuetracker.unity3d.com/product/unity/issues/guid/1197426/))
- Fixed issue where the Animation Track's inline curves were not properly aligned when panning the timeline. (1198364)
## [1.2.7] - 2019-11-15
### Fixed
- Fixed inline curves to display PlayableBehaviour array properties. (1178251)
- Fixed clip selection from playhead. (1187495)
- Fixed recorded clips dirtying the scene on copy/paste. (1181492)
## [1.2.6] - 2019-10-25
### Added
- Added Timeline manual.
## [1.2.5] - 2019-10-16
### Changed
- Added tooltips that were missing for Timeline selector and settings buttons. ([1152790](https://issuetracker.unity3d.com/product/unity/issues/guid/1152790/))
- Removed Undo menu entry that was added when clicking on the Inline curves button. ([1187402](https://issuetracker.unity3d.com/product/unity/issues/guid/1187402/))
### Fixed
- Fixed issue where recording couldn't be turned off when an object is deactivated. (1187174)
- Timelines listed in the Timeline selector will now be sorted alphabetically. (1190514)
- Fixed Insert Frames options from Trackhead context menu not applying to markers. (1187895)
- Fixed incorrect display when a large number of nested group tracks was added to a Timeline. (1157367)
## [1.2.4] - 2019-10-03
### Changed
- Properties in the Inline Curve editor will now be listed in the same order as the Animation window. (1184058)
- Updated the appearance of the Timeline window to conform to the [editor's UX redesign](https://blogs.unity3d.com/2019/08/29/evolving-the-unity-editor-ux/)
- Improved the appearance of clip blends.
### Fixed
- Adding a PlayableDirector with no Playable Asset will no longer trigger a repaint of the Timeline Window on each frame. ([1172707](https://issuetracker.unity3d.com/product/unity/issues/guid/1172707/))
- Fixed issue where a clip's blend selection border was not drawn correctly when there was a previous clip. (1178173)
- Fixed issue where Animation Events were fired twice when the Playable Director Wrap mode is set to Loop. ([1173281](https://issuetracker.unity3d.com/product/unity/issues/guid/1173281/))
- Fixed issue where double-clicking on a Timeline Asset would not open it in the Timeline window. ([1182159](https://issuetracker.unity3d.com/product/unity/issues/guid/1182159))
- Fixed issue where the paste shortcut would not work when copying and pasting between two different timelines. (1184967)
- Fixed audio stutter when going into playmode. ([1167289](https://issuetracker.unity3d.com/product/unity/issues/guid/1167289/))
- Fixed PreviousFrame and NextFrame controls in subtimelines with large offsets. (1175320)
- Fixed issue where exceptions were thrown when resetting a Signal Receiver component. ([1158227](https://issuetracker.unity3d.com/product/unity/issues/guid/1158227/))
- Increased font size of clip labels (1179642)
## [1.2.3] - 2019-10-03
### Fixed
- Removed unnecessary directories from the package.
## [1.2.2] - 2019-08-20
### Fixed
- Fixed issue where fields for custom clips were not responding to Add Key commands. (1174416)
- Fixed issue where a different track's bound GameObject is highlighted when clicking a track's bound GameObject box. (1141836)
- Fixed issue where a clip locks to the playhead's position when moving it. (1157280)
## [1.2.1] - 2019-08-01
### Fixed
- Fixed appearance of a selected clip's border.
- Fixed non-transform properties from AnimationClips not being correctly put into preview mode when the avatar root does not contain the animator component. ([1162334](https://issuetracker.unity3d.com/product/unity/issues/guid/1162334/))
- Fixed an issue where the context menu for inline curves keys would not open on MacOS. ([1158584](https://issuetracker.unity3d.com/product/unity/issues/guid/1158584/))
- Fixed recording state being incorrect after toggling preview mode (1146551)
- Fixed copying clips without ExposedReferences causing the scene to dirty (1144469)
## [1.2.0] - 2019-07-16
*Compatible with Unity 2019.3*
### Added
- Added ILayerable interface. Implementing this interface on a custom track will enable support for multiple layers, similar to the AnimationTracks override tracks.
- Added "Pan" autoscrolling option in the Timeline window.
- Enabled rectangle tool for inline curves.
### Changed
- Scrolling horizontally with the mouse wheel or trackpad now pans the timeline view horizontally, instead of zooming.
- Scrolling vertically with the mouse wheel or trackpad on the track headers or on the vertical scroll bar now pans the timeline view vertically, instead of zooming.
### Fixed
- Fixed an issue causing info text to overlap when displaying multiple lines (1150863).
- Fixed duration mode not reverting from "Fixed Length" to "Based On Clips" properly. (1154034)
- Fixed playrange markers being drawn over horizontal scrollbar (1156023)
- Fixed an issue where a hotkey does not autofit all when Marker is present (1158704)
- Fixed an issue where an exception was thrown when overwriting a Signal Asset through the Signal Emitter inspector. (1152202)
- Fixed Control Tracks not updating instances when source prefab change. (case 1158592)
- An exception will be thrown when calling TrackAsset.CreateMarker() with a marker that implements INotification if the track does not support notifications. (1150248)
- Fixed preview mode being reenabled when warnings change on tracks. (case 1151381)
- Fixed minimum clip duration to be frame aligned. (case 1156602)
- Fixed playhead being moved when applying undo while recording.(case 1154802)
- Fixed warnings about localEulerAnglesRaw when using RectTransform. (case 1151100)
- Fixed precision error on the duration of infinite tracks. (case 1156723)
- Fixed issue where two GatherProperties call were made when switching between two PlayableDirectors. (1159036)
- Fixed issue where inspectors for clips, tracks and markers would get incorrectly displayed when no Timeline Window is opened. (1158242, 1158283)
- Fixed issue with clip connectors that were incorrectly drawn when the timeline was panned or zoomed. (1141960)
- Fixed issue where evaluating a Playable Graph inside a Notification Receiver would cause an infinite recursion. ([1149930](https://issuetracker.unity3d.com/product/unity/issues/guid/1149930/))
- Fixed Trim and Move operations to ensure playable duration is updated upon completion. ([1151894](https://issuetracker.unity3d.com/product/unity/issues/guid/1151894/))
- Fixed options menu icon that was blurry on high-dpi screens. (1154623)
- Track binding field is now larger. (1153446)
- Fixed issue where an empty Timeline window would create new objects on each repaint. (1142894)
- Fixed an issue causing info text to overlap when displaying multiple lines (when trimming + time scaling, for example). (1150863)
- Fixed duration mode not reverting from "Fixed Length" to "Based On Clips" properly. ([1154034](https://issuetracker.unity3d.com/product/unity/issues/guid/1154034/))
- Prevented the PlayableGraph from being created twice when playing a timeline in play mode with the Timeline window opened. (1147247)
- Fixed issue where an exception was thrown when clicking on a SignalEmitter with the Timeline window in asset mode. (1146261)
- A timeline will now be played correctly when building a player with Mono and Managed Stripping Level set higher than Low. ([1133182](https://issuetracker.unity3d.com/product/unity/issues/guid/1133182/))
- The Signal Asset creation dialog will no longer throw exceptions when canceled on macOS. ([1141959](https://issuetracker.unity3d.com/product/unity/issues/guid/1141959/))
- Fixed issue where the Emit Signal property on a Signal Emitter would not get saved correctly. ([1148709](https://issuetracker.unity3d.com/product/unity/issues/guid/1148709/))
- Fixed issue where a Signal Emitter placed at the start of a timeline would be fired twice. ([1149653](https://issuetracker.unity3d.com/product/unity/issues/guid/1149653/))
- Fixed record button state not updating when offset modes are changed. ([1142747](https://issuetracker.unity3d.com/product/unity/issues/guid/1142747/))
- Cleared invalid assets from the Timeline Clipboard when going into or out of PlayMode. (1144473)
- Copying a Control Clip during play mode no longer throws exceptions. (1141581)
- Going to Play Mode while inspecting a Track Asset will no longer throw exceptions. (1141958)
- Resizing Timeline's window no longer affects the zoom value. ([1147150](https://issuetracker.unity3d.com/product/unity/issues/guid/1147150/))
- Snap relaxing now responds to Command on Mac, instead of Control. (1149144)
- Clips will no longer randomly disappear when showing or hiding inline curves. (1141661)
- The global/local time referential button will no longer be shown for a top-level timeline. (1080872)
- Playhead will not be drawn above the bottom scrollbar anymore. (1134016)
- Fixed moving a marker on an Infinite Track will keep the track in infinite mode (1141190)
- Fixed zooming in/out will keep the padding at the beginning of the timeline (1030689)
- Fixed marker UI is the same color and size on infinite track (1139370)
- Fixed Disable the possibility to add Markers to tracks of a Timeline that is ReadOnly (1134463)
- Fixed wrong context menu being shown when right-clicking a marker (1133592)
- Fixed creation of override track to work with multiselection (1133592)
## [1.1.0] - 2019-02-14
*Compatible with Unity 2019.2*
### Added
- ClipEditor, TrackEditor and MarkerEditor classes users can derive from to control visual appearance of custom timeline clips, tracks and markers using the CustomTimelineEditor attribute.
- ClipEditor.GetSubTimelines to allow user created clips that support sub-timelines in editor
- TimelineEditor.selectedClip and TimelineEditor.selectedClips to set and retrieve the currently selected timeline clips
- IPropertyCollector.AddFromName override that takes a component.
- Warning icons to SignalEmitters when they do not reference an asset
- Ability to mute/unmute a Group Track.
- Mute/Unmute only selected track command added for tracks with multiple layers.
- Animate-able Properties on Tracks and Clips can now be edited through inline curves.
- Added loop override on AnimationTrack clips (1140766)
- ReadOnly/Source Control Lock support for Timeline Scene
### Changed
- Control Track display to show a particle system icon when particle systems are being controlled
- Animate-able Properties for clips are no longer edited using by "recording"; they are edited through the inline curves just like tracks.
- AudioTrack properties can now be animated through inline curves.
- Changed Marker show/hide to be undoable. Hide will also unselect markers. (1124661)
- Changed SignalReceivers show their enabled state in the inspector. (1131163)
- Changed Track Context Menu to show "Add Signal Emitter" at the top of the list of Marker commands. (1131166)
- Moved "Add Signal Emitter" and "Add Signal Emitter From Asset" commands out of their sub-menu. (1131166)
### Fixed
- Fixed markers being drawn outside their pane. (1124381)
- Fixed non-public tracks not being recognized by the Timeline Editor. (1122803)
- Fixed keyboard shortcuts for _Frame All_ (default: A) and _Frame Selected_ (default: F) to also apply horizontally ([1126623](https://issuetracker.unity3d.com/product/unity/issues/guid/1126623/))
- Fixed recording getting disabled when selecting a different GameObject while the Timeline Window is not locked. (1123119)
- Fixed time sync between Animation and Timeline windows when clips have non-default timescale or clip-in values. ([930909](https://issuetracker.unity3d.com/product/unity/issues/guid/930909/))
- Fixed animation window link not releasing when deleting the timeline asset. (1127425)
- Fixed an exception being raised when selecting both a Track marker and a Timeline marker at the same time. ([1113006](https://issuetracker.unity3d.com/product/unity/issues/guid/1113006/))
- Fixed the header marker area will so it no longer opens its context menu if it's hidden. (1124351)
- Fixed Signal emitters to show the Signals list when created on override tracks. (1102913)
- Fixed a crash on IL2CPP platforms when the VideoPlayer component is not used. (1129572)
- Fixed Timeline Duration changes in editor not being undoable. (1109279)
- Fixed _Match Offsets_ commands causing improper animation defaults to be applied. (911678)
- Fixed Timeline Inspectors leaving _EditorGUI.showMixedValue_ in the wrong state. ([1123895](https://issuetracker.unity3d.com/product/unity/issues/guid/1123895/))
- Fixed issue where performing undo after moving items on multiple tracks would not undo some items. (1131071)
- Fixed cog icon in the Signal Receiver inspector being blurry. (1130320)
- Fixed Timeline marker track hamburger icon not being centered vertically. (1131112)
- Fixed detection of signal receivers when track is in a group. (1131811)
- Fixed exception being thrown when deleting Signal entries. (1131065)
- Fixed Markers blocking against Clips when moving both Clips and Markers in Ripple mode. (1102594)
- Fixed NullReferenceException being thrown when muting an empty marker track. (1131106)
- Fixed SignalEmitter Inspector losing the Receiver UI when it is locked and another object is selected. (1116041)
- Fixed Marker and Clip appearing to be allowed to move to another track in Ripple mode. (1131123)
- Fixed issue where the Signal Emitter inspector did not show the Signal Receiver UI when placed on the timeline marker track. (1131811)
- Fixed Replace mode not drawing clips when moved together with a Marker. (1132605)
- Fixed inline curves to retain their state when performing undo/redo or keying from the inspector. ([1125443](https://issuetracker.unity3d.com/product/unity/issues/guid/1125443))
- Fixed an issue preventing Timeline from entering preview mode when an Audio Track is present an a full assembly reload is performed. (1132243)
- Fixed an issue where the Marker context menu would show a superfluous line at the bottom. (1132662)
- Fixed an issue preventing Timeline asset to be removed from a locked Timeline Window when a new scene is loaded. (1135073)
- Fixed EaseIn/Out shortcut for clips
## [1.0.0] - 2019-01-28
*Compatible with Unity 2019.1*
### Added
- This is the first release of Timeline, as a Package
- Added API calls to access all AnimationClips used by Timeline.
- Added support in the runtime API to Animate Properties used by template-style PlayableBehaviours used as Mixers.
- Added Markers. Markers are abstract types that represent a single point in time.
- Added Signal Emitters and Signal Assets. Signal Emitters are markers that send a notification, indicated by a SignalAsset, to a GameObject indicating an event has occurred during playback of the Timeline.
- Added Signal Receiver Components. Signal Receivers are MonoBehaviour that listen for Signals from Timeline and respond by invoking UnityEvents.
- Added Signal Tracks. Signal Tracks are Timeline Tracks that are used only for Signal Emitters.
### Fixed
- Signal Receiver will no longer throw exceptions when its inspector is locked ([1114526](https://issuetracker.unity3d.com/product/unity/issues/guid/1114526/))
- Context menu operations will now be applied on all selected tracks (1089820)
- Clip edit mode clutch keys will not get stuck when holding multiple keys at the same time (1097216)
- Marker inspector will be disabled when the marker is collapsed (1102860)
- Clip inspector will no longer throw exceptions when changing values when the inspector is locked (1115984)
- Fixed appearance of muted tracks (1018643)
- Fixed multiple issues where clips and markers were selectable when located under the time ruler and the marker header track ([1117925](https://issuetracker.unity3d.com/product/unity/issues/guid/1117925/), 1102598)
- A marker aligned with the edge of a clip is now easier to select (1102591)
- Changed behaviour of the Timeline Window to apply modifications immediately during Playmode ([922846](https://issuetracker.unity3d.com/product/unity/issues/guid/922846/), 1111908)
- PlayableDirector.played event is now called after entering or exiting Playmode ([1088918](https://issuetracker.unity3d.com/product/unity/issues/guid/1088918/))
- Undoing a paste track operation in a group will no longer corrupt the timeline (1116052)
- The correct context menu will now be displayed on the marker header track (1120857)
- Fixed an issue where a circular reference warning appeared in the Control Clip inspector even if there was no circular reference (1116520)
- Fixed preview mode when animation clips with root curves are used (case 1116297, case 1116007)
- Added option to disable foot IK on animation playable assets (case 1115652)
- Fixed unevaluated animation tracks causing default pose (case 1109118)
- Fixed drawing of Group Tracks when header is off-screen (case 876340)
- Fixed drag and drop of objects inside a group being inserted outside (case 1011381, case 1014774)

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4a0757ee0236f39489520769ae710288
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5486badfefef3eb47b45d071d232469d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using UnityEditor.ShortcutManagement;
using UnityEditor.Timeline.Actions;
using UnityEngine;
using UnityEngine.Timeline;
namespace DocCodeExamples
{
class ActionExamples_HideAPI
{
#region declare-sampleClipAction
[MenuEntry("Custom Actions/Sample clip Action")]
public class SampleClipAction : ClipAction
{
public override ActionValidity Validate(IEnumerable<TimelineClip> clip)
{
return ActionValidity.Valid;
}
public override bool Execute(IEnumerable<TimelineClip> items)
{
Debug.Log("Test Action");
return true;
}
[TimelineShortcut("SampleClipAction", KeyCode.K)]
public static void HandleShortCut(ShortcutArguments args)
{
Invoker.InvokeWithSelectedClips<SampleClipAction>();
}
}
#endregion
#region declare-sampleMarkerAction
[MenuEntry("Custom Actions/Sample marker Action")]
public class SampleMarkerAction : MarkerAction
{
public override ActionValidity Validate(IEnumerable<IMarker> markers)
{
return ActionValidity.Valid;
}
public override bool Execute(IEnumerable<IMarker> items)
{
Debug.Log("Test Action");
return true;
}
[TimelineShortcut("SampleMarkerAction", KeyCode.L)]
public static void HandleShortCut(ShortcutArguments args)
{
Invoker.InvokeWithSelectedMarkers<SampleMarkerAction>();
}
}
#endregion
#region declare-sampleTrackAction
[MenuEntry("Custom Actions/Sample track Action")]
public class SampleTrackAction : TrackAction
{
public override ActionValidity Validate(IEnumerable<TrackAsset> tracks)
{
return ActionValidity.Valid;
}
public override bool Execute(IEnumerable<TrackAsset> tracks)
{
Debug.Log("Test Action");
return true;
}
[TimelineShortcut("SampleTrackAction", KeyCode.H)]
public static void HandleShortCut(ShortcutArguments args)
{
Invoker.InvokeWithSelectedTracks<SampleTrackAction>();
}
}
#endregion
#region declare-sampleTimelineAction
[MenuEntry("Custom Actions/Sample Timeline Action")]
public class SampleTimelineAction : TimelineAction
{
public override ActionValidity Validate(ActionContext context)
{
return ActionValidity.Valid;
}
public override bool Execute(ActionContext context)
{
Debug.Log("Test Action");
return true;
}
[TimelineShortcut("SampleTimelineAction", KeyCode.Q)]
public static void HandleShortCut(ShortcutArguments args)
{
Invoker.InvokeWithSelected<SampleTimelineAction>();
}
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 617e6579183b7cc488aae748fe3f88bd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,21 @@
{
"name": "DocCodeExamples",
"rootNamespace": "",
"references": [
"GUID:f06555f75b070af458a003d92f9efb00",
"GUID:02f771204943f4a40949438e873e3eff"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": false,
"defineConstraints": [
"UNITY_INCLUDE_TESTS"
],
"versionDefines": [],
"noEngineReferences": false
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9550f6b9c1ac87345a996c43f204fb30
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,20 @@
using UnityEditor;
using UnityEditor.Timeline;
using UnityEngine;
namespace DocCodeExamples
{
class MarkerEditorExamples
{
void MarkerRegionExample(MarkerOverlayRegion region)
{
#region declare-trackRegion
GUI.BeginClip(region.trackRegion, -region.trackRegion.min, Vector2.zero, false);
EditorGUI.DrawRect(region.markerRegion, Color.blue);
GUI.EndClip();
#endregion
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ebaa79c245e369449a3565c4b9c3e703
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,132 @@
using System.Collections.Generic;
using UnityEditor.ShortcutManagement;
using UnityEditor.Timeline;
using UnityEditor.Timeline.Actions;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
namespace DocCodeExamples
{
class TimelineAttributesExamples_HideAPI
{
#region declare-sampleTrackBindingAttr
[TrackBindingType(typeof(Light), TrackBindingFlags.AllowCreateComponent)]
public class LightTrack : TrackAsset { }
#endregion
#region declare-menuEntryAttribute
[MenuEntry("Simple Menu Action")]
class SimpleMenuAction : TimelineAction
{
public override ActionValidity Validate(ActionContext actionContext)
{
return ActionValidity.Valid;
}
public override bool Execute(ActionContext actionContext)
{
return true;
}
}
[MenuEntry("Menu Action with priority", 9999)]
class MenuActionWithPriority : TimelineAction
{
public override ActionValidity Validate(ActionContext actionContext)
{
return ActionValidity.Valid;
}
public override bool Execute(ActionContext actionContext)
{
return true;
}
}
[MenuEntry("My Menu/Menu Action inside submenu")]
class MenuActionInsideSubMenu : TimelineAction
{
public override ActionValidity Validate(ActionContext actionContext)
{
return ActionValidity.Valid;
}
public override bool Execute(ActionContext actionContext)
{
return true;
}
}
#endregion
#region declare-timelineShortcutAttr
public class ShortcutAction : TimelineAction
{
public override ActionValidity Validate(ActionContext _)
{
return ActionValidity.Valid;
}
public override bool Execute(ActionContext _)
{
Debug.Log("Action executed.");
return true;
}
[TimelineShortcut("Test Action", KeyCode.K, ShortcutModifiers.Shift | ShortcutModifiers.Alt)]
public static void HandleShortCut(ShortcutArguments args)
{
Invoker.InvokeWithSelected<ShortcutAction>();
}
}
#endregion
#region declare-applyDefaultUndoAttr
[ApplyDefaultUndo]
public class SetNameToTypeAction : TrackAction
{
public override ActionValidity Validate(IEnumerable<TrackAsset> items)
{
return ActionValidity.Valid;
}
public override bool Execute(IEnumerable<TrackAsset> items)
{
foreach (TrackAsset track in items)
track.name = track.GetType().Name;
return true;
}
}
#endregion
#region declare-customStyleMarkerAttr
[CustomStyle("MyStyle")]
public class MyMarker : UnityEngine.Timeline.Marker { }
#endregion
#region declare-customTimelineEditorAttr
[CustomTimelineEditor(typeof(MyCustomClip))]
class MyCustomClipEditor : ClipEditor { }
#endregion
class MyCustomClip : PlayableAsset
{
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{
return Playable.Null;
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5724bf63aa724f5586275b3153a02a01
timeCreated: 1600894640

View File

@@ -0,0 +1,16 @@
using UnityEditor.Timeline;
namespace DocCodeExamples
{
class TimelineEditorExamples_HideAPI
{
void RefreshReasonExample()
{
#region declare-refreshReason
TimelineEditor.Refresh(RefreshReason.ContentsModified | RefreshReason.SceneNeedsUpdate);
#endregion
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6cd9f16fc29247c8af731c6b3b0a990f
timeCreated: 1600965115

View File

@@ -0,0 +1,17 @@
using UnityEngine;
using UnityEngine.Timeline;
namespace DocCodeExamples
{
class TrackAssetExamples_HideAPI
{
#region declare-trackAssetExample
[TrackColor(1, 0, 0)]
[TrackBindingType(typeof(Animator))]
[TrackClipType(typeof(AnimationClip))]
public class CustomAnimationTrack : TrackAsset { }
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c9f0489deaf04d0fbcbe45fd50a018f6
timeCreated: 1600894170

View File

@@ -0,0 +1,69 @@
* [About Timeline](index.md)
* [Timeline overview](tl_about.md)
* [Using the Timeline window](wf_about.md)
* [Creating a Timeline Asset and Timeline instance](wf_instance.md)
* [Recording basic animation with an Infinite clip](wf_rec_anim.md)
* [Converting an Infinite clip to an Animation clip](wf_conv_infinite.md)
* [Animating a humanoid](wf_char_anim.md)
* [Using an Animation Override track and Avatar masking](wf_mask.md)
* [Nesting Timeline instances](wf_nested.md)
* [Timeline window](tl_window.md)
* [Timeline Preview and Timeline Selector](tl_selector.md)
* [Timeline Playback Controls](tl_play_cntrls.md)
* [Track List and Track Headers](trk_list_about.md)
* [Adding Tracks](trk_add.md)
* [Selecting Tracks](trk_select.md)
* [Duplicating Tracks](trk_dup.md)
* [Deleting Tracks](trk_delete.md)
* [Locking Tracks](trk_lock.md)
* [Muting Tracks](trk_mute.md)
* [Reordering Tracks and Rendering Priority](trk_reorder.md)
* [Using Track Groups](grp_use.md)
* [Collapsing and Expanding Track Groups](grp_hide.md)
* [Locking Track groups](grp_lock.md)
* [Clip Edit modes and the Clips view](clp_about.md)
* [Panning and Zooming the Clips View](clp_pan_zoom.md)
* [Adding Clips](clp_add.md)
* [Inserting Clips](clp_insert.md)
* [Selecting Clips](clp_select.md)
* [Positioning Clips](clp_position.md)
* [Tiling Clips](clp_tile.md)
* [Duplicating Clips](clp_dup.md)
* [Trimming Clips](clp_trim.md)
* [Splitting Clips](clp_split.md)
* [Resetting Clips](clp_reset.md)
* [Changing Clip Play Speed](clp_speed.md)
* [Setting Gap Extrapolation](clp_gap_extrap.md)
* [Easing-in and Easing-out Clips](clp_ease.md)
* [Blending Clips](clp_blend.md)
* [Matching clip offsets](clp_match.md)
* [Curves View](crv_about.md)
* [Hiding and Showing Curves](crv_hide.md)
* [Navigating the Curves View](crv_nav.md)
* [Selecting Keys](crv_keys_sel.md)
* [Adding Keys](crv_keys_add.md)
* [Editing Keys](crv_keys_edit.md)
* [Changing Interpolation and Shape](crv_keys_interp.md)
* [Deleting Keys](crv_keys_del.md)
* [Timeline Settings](tl_settings.md)
* [Timeline Inspector](insp_about.md)
* [Setting Timeline Properties](insp_tl.md)
* [Setting Track Properties](insp_trk.md)
* [Activation Track Properties](insp_trk_act.md)
* [Animation Track Properties](insp_trk_anim.md)
* [Setting Clip Properties](insp_clp.md)
* [Activation Clip Properties](insp_clp_act.md)
* [Animation Clip Common Properties](insp_clp_anim_com.md)
* [Animation Clip Playable Asset Properties](insp_clp_anim_plyb.md)
* [Audio Clip Properties](insp_clp_aud.md)
* [Control Clip Common Properties](insp_clp_ctrl_com.md)
* [Control Clip Playable Asset Properties](insp_clp_ctrl_plyb.md)
* [Playable Director Component](play_director.md)
* [Samples](smpl_about.md)
* [Annotation marker](smpl_custom_annotation.md)
* [Video track](smpl_custom_video.md)
* [Time dilation track](smpl_custom_time.md)
* [Tween track](smpl_custom_tween.md)
* [Text track](smpl_custom_text.md)
* [Defining custom USS styles](uss_styles.md)
* [Timeline Glossary](tl_gloss.md)

View File

@@ -0,0 +1,101 @@
# Clip Edit modes and the Clips view
Use the Clips view to add, position, and manipulate clips on each track in the Track list. The selected Clip Edit mode determines how clips interact when you add, move, or delete them.
![The Clip Edit modes (green) and the Clips view (red)](images/timeline_clips_view.png)
_The Clip Edit modes (green) and the Clips view (red)_
## Clips and the Clips view
In the Clips view, each clip has a colored accent line that identifies the type of clip:
* Activation clips are green.
* Animation clips are blue.
* Audio clips are orange.
* Control clips are turquoise.
* Playable clips are white.
A clip based on data, such as an Animation clip or an Audio clip, displays arrows that indicate when the clip has been trimmed to exclude part of its source animation, waveform, or other data. For example, if an Animation clip uses only part of its full key animation, white arrows indicate that key animation exists before the start or after the end of the clip.
![Small arrows (circled) indicate that data exists before the start or after the end of the area defined by the clip](images/timeline_clips_arrows.png)
_Small arrows (circled) indicate that data exists before the start or after the end of the area defined by the clip_
To resize a clip and view its hidden data, either right-click the clip and select **Match Content** from the context menu, or select the clip and modify its clip timing properties in the Inspector window. When you resize a clip, the selected Clip Edit mode determines how the surrounding clips are affected.
## Clip Edit modes
Select a Clip Edit mode to choose how clips are added, positioned, and trimmed within the Clips view, or when modifying clip timing properties in the Inspector window. There are three Clip Edit modes that affect most clip editing features: Mix mode (default), Ripple mode, and Replace mode.
![Clip Edit modes are Mix (default and selected), Ripple, and Replace mode](images/timeline_zoomed_clip_edit_modes.png)
_Clip Edit modes are Mix (default and selected), Ripple, and Replace mode_
You can also temporarily switch between Clip Edit modes. This is useful if, for example, you want to temporarily use Ripple mode to offset the content of a track while you position clips. To temporarily switch between Clip Edit modes, hold down the following keyboard keys:
* Hold 1 to temporarily switch to Mix mode.
* Hold 2 to temporarily switch to Ripple mode.
* Hold 3 to temporarily switch to Replace mode.
### Mix mode
Use Mix mode to add, position, and trim clips without moving or replacing adjacent clips. Mix mode creates blends between intersecting clips. Mix mode is the default Clip Edit mode.
![Timeline window with Mix mode as the selected Clip Edit mode. The position cursor (circled) indicates where you drag to position the clip.](images/timeline_mix_mode_position_cursor.png)
_Timeline window with Mix mode as the selected Clip Edit mode. The position cursor (circled) indicates where you drag to position the clip._
In Mix mode, when you hover over a selected clip in the Clips view, the cursor changes to indicate the action that you can perform. The action depends on the part of the clip that you hover over:
* When you hover over the start of a selected clip, the cursor changes to a trim cursor. The trim cursor indicates the area to drag to trim the start of the clip.
* When you hover over the middle of a selected clip, the cursor changes to a position cursor and indicates the area to drag to position the clip.
* When you hover over the end of a selected clip, the cursor changes to a trim cursor. The trim cursor indicates the area to drag to trim the end of the clip.
In Mix mode, if you drag to trim or position a clip and it intersects another clip, the cursor changes to a white arrow that points towards the blend being created. There are three possible cursors depending on whether the blend is created at the beginning of the clip, at the end of the clip, or at both the beginning and end of the clip.
![The white arrow cursor indicates that dragging Clip 2A to the right creates a blend, at the end of the clip, between Clip 2A and Clip 2B.](images/timeline_mix_mode_blend_arrow.png)
_The white arrow cursor indicates that dragging Clip 2A to the right creates a blend, at the end of the clip, between Clip 2A and Clip 2B._
### Ripple mode
Use Ripple mode to add, position, and trim a clip while affecting the subsequent clips on the same track. Positioning or trimming clips in Ripple mode preserves the gaps between subsequent clips.
![Timeline window with Ripple mode as the selected Clip Edit mode. The position cursor (circled) indicates where you drag to position the clip.](images/timeline_ripple_mode.png)
_Timeline window with Ripple mode as the selected Clip Edit mode. The position cursor (circled) indicates where you drag to position the clip._
In Ripple mode, when you hover over a selected clip in the Clips view, the cursor changes to indicate the action that you can perform. The actions and areas are similar to Mix mode:
* When you hover over the start of a selected clip, the cursor changes to a trim cursor. The trim cursor indicates the area to drag to trim the clip relative to its start.
* When you hover over the middle of a clip, the cursor changes to a position cursor and indicates the area to drag to position the clip.
* When you hover over the end of a clip, the cursor changes to a trim cursor. The trim cursor indicates the area to drag to trim the clip relative to its end.
In Ripple mode, when you click and drag to trim or position a clip, the cursor switches to a yellow arrow that points towards the affected clips and gaps. A yellow line indicates the ripple point. When you drag to trim a clip, dragging left and right changes the duration of the selected clip and repositions subsequent clips and gaps after the ripple point.
![For example, the yellow arrow cursor indicates that trimming the start of Clip 2A in Ripple mode changes the clip duration and affects the clips and gaps after the ripple point: Clip 2B and Clip 2C.](images/timeline_ripple_mode_yellow_arrow.png)
_For example, the yellow arrow cursor indicates that trimming the start of Clip 2A in Ripple mode changes the clip duration and affects the clips and gaps after the ripple point: Clip 2B and Clip 2C.]_
### Replace mode
Use Replace mode to add, position, and trim a clip while cutting or replacing intersecting clips.
![Timeline window with Replace mode as the selected Clip Edit mode. The position cursor (circled) indicates where you drag to position the clip.](images/timeline_replace_mode.png)
_Timeline window with Replace mode as the selected Clip Edit mode. The position cursor (circled) indicates where you drag to position the clip._
In Replace mode, when you hover over a selected clip in the Clips view, the cursor changes to indicate the action that you can perform. The actions and areas are similar to Mix mode:
* When you hover over the start of a selected clip, the cursor changes to a trim cursor. The trim cursor indicates the area to drag to trim the clip relative to its start.
* When you hover over the middle of a clip, the cursor changes to a position cursor and indicates the area to drag to position the clip.
* When you hover over the end of a clip, the cursor changes to a trim cursor. The trim cursor indicates the area to drag to trim the clip relative to its end.
In Replace mode, when you drag to position a clip, the clip becomes translucent so that you can view overlapping clips. If the clip being positioned overlaps other clips, the cursor changes to a red arrow and red replacement lines indicate where each overlap occurs. Releasing the clip cuts the underlying clip at each red overlap.
![For example, the red arrow cursor indicates that dragging Clip 2A to the right overlaps Clip 2B. Releasing the clip cuts Clip 2B at the point where the overlap occurs.](images/timeline_replace_mode_red_cut.png)
_For example, the red arrow cursor indicates that dragging Clip 2A to the right overlaps Clip 2B. Releasing the clip cuts Clip 2B at the point where the overlap occurs._
In Replace mode, trimming a clip is similar to positioning a clip. When you drag to trim a clip and it intersects another clip, the cursor changes to a red arrow and a red replacement line indicates where the overlap occurs. Releasing the trim cuts the intersecting clip at the red replacement line.

View File

@@ -0,0 +1,21 @@
# Adding clips
The Timeline window supports different methods of adding clips to tracks, depending on the type of track, where you click, and whether a clip or track is already selected.
The quickest method to add a clip is to right-click on an empty area within a track and select the appropriate Add option from the context menu. Depending on the track, the options for adding a clip change.
![Context menu for adding an Activation clip](images/timeline_clips_view_adding.png)
_Context menu for adding an Activation clip._
There are other ways to add clips:
* Select a clip option from the Track menu in the Track Header to add a clip at the location of the Timeline Playhead.
* Drag an animation Source Asset from the Project window to an empty area in the Timeline window to automatically create an Animation track and add an Animation clip.
* Drag an animation Source Asset from the Project window to an existing track in the Timeline window to add an Animation clip to the same track.
* Drag an audio Source Asset from the Project window to an empty area in the Timeline window to automatically create an Audio track and add an Audio clip.
* Drag a GameObject with a PlayableDirector component to create a nested Timeline instance. This automatically creates a Control track and adds a Control clip for the nested Timeline instance.
* Drag a Prefab from the Project window to an empty area in the Timeline window to add a Prefab instance to your Timeline instance. This automatically creates a Control track and adds a Control clip for the Prefab instance.
* Drag a GameObject with a Particle component to add a particle effect to your Timeline instance. This automatically creates a Control track and adds a Control clip for the duration of the Particle effect.
When you add a clip, the [selected Clip Edit mode](clp_about.md) determines how the added clip interacts with surrounding clips. For example, if you add an Animation clip or an Audio clip in Mix mode and the added clip intersects a clip on the same track, Timeline [creates a blend](clp_blend.md).

View File

@@ -0,0 +1,37 @@
# Blending clips
Blend two clips on the same track to create a smooth transition between two Animation clips, two Audio clips, or two Playable clips. To blend two clips, select the Mix Clip Edit mode and position or trim one clip until it overlaps an adjacent clip.
In a blend, the first clip is referred to as the **outgoing clip** and the second clip is referred to as the **incoming clip**. The area where the outgoing clip transitions to the incoming clip is referred to as the **blend area**. The blend area sets the duration of the transition.
![The blend area shows the transition between the outgoing clip and incoming clip](images/timeline_clip_blend_area.png)
_The blend area shows the transition between the outgoing clip and incoming clip_
Although the Clips view represents a blend area as a single linear curve, the transition between clips is actually comprised of two blend curves. The blend curve for the outgoing clip is referred to as the **Blend Out** curve. The blend curve for the incoming clip is referred to as the **Blend In** curve. By default, each blend curve is automatically set to an ease-in and ease-out curve.
![Use Blend Curves to customize the blend area](images/timeline_inspector_blend_curves.png)
_Use Blend Curves to customize the blend area_
Use the **Blend Curves** in the Inspector window to change the shape for either the Blend In or Blend Out curve of the selected clip. However, the Inspector window only allows you to edit the properties of one clip at a time. You cannot simultaneously customize both blend curves from the same blend area.
To customize the **Blend Curves** for the transition between two clips:
1. Select the outgoing clip to customize its Blend Out curve (labelled **Out**).
2. Select the incoming clip to customize its Blend In curve (labelled **In**).
To customize either the Blend Out curve or Blend In curve, use the drop-down menu to switch from **Auto** to **Manual**. With **Manual** selected, the Inspector window shows a preview of the blend curve. Click the curve preview to open the Curve Editor below the Inspector window.
![Select Manual and click the curve preview to open the Curve Editor](images/timeline_inspector_curve_editor.png)
_Select Manual and click the curve preview to open the Curve Editor_
Use the Curve Editor to customize the shape of the blend curve. By default, the blend curve includes a key at the beginning of the curve and a key at the end of the curve. The Curve Editor provides the following different methods of modifying the blend curve:
* Select the key at the start or end of the blend curve and use the tangent handles to adjust the interpolation between keys.
* Add additional keys to change the shape of the blend curve by adding more interpolation points. Adding keys in the Curve Editor is the same as [adding keys in the Curves view](crv_keys_add.md).
* Right-click a key to delete or edit the key. Editing keys in the Curve Editor is the same as [editing keys in the Curves view](crv_keys_edit.md). Note that you cannot delete the first and last keys.
* Select a shape template from the bottom of the Curve Editor.
The Curve Editor also includes shape templates based on whether you are modifying the Blend In curve or the Blend Out curve. Select a shape template to change the blend curve to the selected shape template.

View File

@@ -0,0 +1,23 @@
# Duplicating clips
There are many ways to duplicate clips in the Clips view:
* Select a clip or multiple clips. Right-click in the Clips view and select **Duplicate** from the context menu.
* Select a clip or multiple clips. Hold Command/Control and press D.
* Right-click an unselected clip and choose **Duplicate** from the context menu.
Duplicating clips copies each selected clip and places the duplicates after the last clip on the same track. If you duplicate clips used in a blend or clips separated by a gap, the blend or gap is also duplicated.
If you duplicate an Animation clip that uses a recorded clip as its Source Asset, the recorded clip is also duplicated. The duplicate of the recorded clip only appears in your Project after you save the Scene or Project. For example, the following images demonstrates what happens if you duplicate an Animation clip named "Clip 2B" that uses the recorded clip named "Recorded (3)".
![Select the"Clip 2B", hold Command/Control and press D to duplicate](images/timeline_clip_duplicate_clip_before.png)
_Select the"Clip 2B", hold Command/Control and press D to duplicate_
![A duplicate Animation clip is placed at the end of the same track. The recorded clip associated with "Clip 2B" is also duplicated.](images/timeline_clip_duplicate_clip_after.png)
_A duplicate Animation clip is placed at the end of the same track. The recorded clip associated with "Clip 2B" is also duplicated._
![The new "Recorded (6)" recorded clip appears in the Project window after you save the Scene or Project](images/timeline_clip_duplicate_project.png)
_The new "Recorded (6)" recorded clip appears in the Project window after you save the Scene or Project_

View File

@@ -0,0 +1,73 @@
# Easing-in and easing-out clips
Ease-in and ease-out a clip to create a smooth transition between a clip and its surrounding gaps. To create an ease-in or ease-out transition, select a clip and, in the Inspector window, set either the **Ease In Duration** or the **Ease Out Duration**.
![Use Ease In Duration and Ease Out Duration to smoothly transition into and out of the selected clip.](images/timeline_inspector_ease_in_out.png)
_Use Ease In Duration and Ease Out Duration to smoothly transition into and out of the selected clip._
Ease-in and ease-out transitions create different effects, depending on the track:
* On an Animation track or an Animation Override track, ease-in to an Animation clip to create a smooth transition between the animation in the gap before the clip and the Animation clip. Ease-out of an Animation clip to create a smooth transition between the Animation clip and the animation in the gap after the clip. For information on the factors that determine what animation occurs in the gap before and after an Animation clip, see [Setting gap extrapolation](clp_gap_extrap.md).
* On an Audio track, ease-in to an Audio clip to fade in the volume of the audio waveform. Ease-out of an Audio clip to fade out the volume of the audio waveform specified by the Audio clip.
* On a Playable track, ease-In to a Playable clip to fade in the effect or script in the Playable clip. Ease-out of a Playable clip to fade out the effect or script in the Playable clip.
![Ease-in and ease-out an Animation clip to transition between its animation and its gaps. Timeline represents ease-in and ease-out transitions as a linear curve.](images/timeline_clip_ease_in_out.png)
_Ease-in and ease-out an Animation clip to transition between its animation and its gaps. Timeline represents ease-in and ease-out transitions as a linear curve._
Although the Clips view represents an ease-in or ease-out transition as a single linear curve, every ease-in or ease-out transition is actually set to a gradually easing-in or easing-out curve by default. To change the shape of either the ease-in curve (labelled **In**) or the ease-out (labelled **Out**) curve, use the **Blend Curves** in the Inspector window.
![Use the Blend Curves to customize ease-in or ease-out transitions](images/timeline_inspector_blend_curves.png)
_Use the Blend Curves to customize ease-in or ease-out transitions_
Note that the **Blend Curves** might affect the blend area used for blending between two clips. The **Ease In Duration** and **Ease Out Duration** properties indicate whether the **Blend Curves** affect an ease-in or ease-out transition, or a blend. For example, If the **Ease Out Duration** is editable, then the Blend Out curve (labelled **Out**) affects the curve used by an ease-out transition. If the **Ease Out Duration** is not editable, then the Blend Out curve (labelled **Out**) affects the outgoing clip in a blend between two clips.
![Ease Out Duration is not editable, therefore the **Out** curve affects the blend area between two clips](images/timeline_inspector_ease_in_blend_out.png)
_Ease Out Duration is not editable, therefore the **Out** curve affects the blend area between two clips_
To customize either the ease-in or ease-out transition, use the drop-down menu to switch from **Auto** to **Manual**. With **Manual** selected, the Inspector window shows a preview of the blend curve. Click the curve preview to open the Curve Editor below the Inspector window.
![Select Manual and click the preview to open the Curve Editor](images/timeline_inspector_curve_editor.png)
_Select Manual and click the preview to open the Curve Editor_
The Curve Editor is the same editor that is used to customize the shape of the blend curves when [blending between clips](clp_blend.md).
When creating an ease-in or an ease-out transition with Animation clips, the Animation clip blends between its gaps and the Animation clip. The following factors affect the values of animated properties in the gaps surrounding an Animation clip:
* The [pre-extrapolate and post-extrapolate settings](clp_gap_extrap.md) for the Animation clip and for other Animation clips on the same track.
* Animation clips on other Animation tracks that are bound to the same GameObject.
* The position or animation of the GameObject in the Scene, outside the Timeline Asset.
## Gap extrapolation and easing clips
To successfully ease-in or ease-out an Animation clip, gap extrapolation must not be set based on the Animation clip being eased-in or eased-out. Gap extrapolation must either be set to **None** or set by another Animation clip.
For example, the following ease-in transition has no effect because the Pre-Extrapolate for the Victory_Dance clip is set to **Hold**. This means that the ease-in creates a transition between the first frame of the Animation clip and the rest of the Animation clip.
![The gap is set to **Hold** from the Animation clip (circled). The ease-in transition has no effect.](images/timeline_clip_ease_in_bad_gap.png)
_The gap is set to **Hold** from the Animation clip (circled). The ease-in transition has no effect._
![To ease-in from the Idle clip, set pre-extrapolate for the Victory_Dance clip to **None**. The ease-in gap uses the post-extrapolate mode from the Idle clip (circled).](images/timeline_clip_ease_in_good_gap.png)
_To ease-in from the Idle clip, set pre-extrapolate for the Victory_Dance clip to **None**. The ease-in gap uses the post-extrapolate mode from the Idle clip (circled)._
## Overriding Animation tracks with ease-in and ease-out transitions
Use two Animation tracks bound to the same GameObject to create a smooth transition between two Animation clips.
For example, if two Animation tracks are bound to the same GameObject and a clip on the second track contains an ease-in transition, the ease-in transition creates a smooth transition between the animation on the previous track and the animation on the second track.
![Example of using two Animation tracks, bound to the same GameObject, to create smooth transitions between Animation clips.](images/timeline_clip_ease_in_override_track.png)
_Example of using two Animation tracks, bound to the same GameObject, to create smooth transitions between Animation clips._
In this example, the Animation clip on the first track is a repeated idle cycle where the humanoid GameObject stands still. The Animation clip in the second track eases-in the Victory_Dance motion and eases-out to return back to the idle cycle
To successfully override animation on a previous track, the gap extrapolation for the second track must be set to **None** so that the animation data in the gap is taken from the previous track bound to the same GameObject. The ease-in and ease-out transitions use this animation data.

View File

@@ -0,0 +1,46 @@
# Setting gap extrapolation
Gap extrapolation refers to how an Animation track approximates animation data in the gaps before and after an Animation clip.
The main purpose for extrapolating animation data in the gaps between Animation clips is to avoid animation anomalies. Depending on the GameObject bound to the Animation track, these anomalies could be a GameObject jumping between two transformations, or a humanoid jumping between different poses.
Each Animation clip has two gap extrapolation properties: **Pre-Extrapolate**, which controls how animation data is approximated in the gap before an Animation clip, and **Post-Extrapolate**, which controls how animation data extends in the gap after an Animation clip.
By default, Timeline sets both extrapolation properties to **Hold**. This sets the gap before the Animation clip to the animation on the first frame, and the gap after the Animation clip to the animation on the last frame. Each gap "holds" the animation at a certain frame. Icons before and after an Animation clip indicate the selected extrapolation modes.
![Icons indicate the pre-extrapolate and post-extrapolate modes](images/timeline_gap_extrap_icons.png)
_Icons indicate the pre-extrapolate and post-extrapolate modes_
When an Animation track contains a gap between two Animation clips, the **Post-Extrapolate** property of the left clip sets the gap extrapolation. If the **Post-Extrapolate** property of the clip to the left of a gap is set to **None**, the **Pre-Extrapolate** property of the right clip sets the gap extrapolation. Icons before and after Animation clips indicate whether the extrapolation for a gap is taken from the **Post-Extrapolate** property of the clip to the left or from the **Pre-Extrapolate** property of the clip to the right.
![First track (red box): gap extrapolation from Post-Extrapolate of the left clip. Third track (blue box): gap extrapolation from Pre-Extrapolate of the right clip.](images/timeline_gap_extrap_two_tracks.png)
_First track (red box): gap extrapolation from Post-Extrapolate of the left clip. Third track (blue box): gap extrapolation from Pre-Extrapolate of the right clip._
To change the Pre-Extrapolate and Post-Extrapolate properties, select the Animation clip and use the Animation Extrapolation properties in the Inspector window.
![Use Pre-Extrapolate and Post-Extrapolate to set the extrapolation modes for the selected Animation clip](images/timeline_inspector_anim_extrap.png)
_Use Pre-Extrapolate and Post-Extrapolate to set the extrapolation modes for the selected Animation clip_
The Pre-Extrapolate property is hidden when one of the following is true:
* The gap before the Animation clip is set by the Post-Extrapolation mode of the previous clip.
* There is no gap before the Animation clip.
Use the Pre-Extrapolation property to set the gap extrapolation of the gap before the selected Animation clip to one of the following options:
* **None**: Turns off pre-extrapolation. In the gap before the selected Animation clip, the GameObject uses its transform, pose, or state from the Scene. Select **None** if, for example, you want to create an ease-in between the motion of a GameObject in the Scene and an Animation clip. See [Easing-in and Easing-out Clips](clp_ease.md) for details.
* **Hold** (default): In the gap before the selected Animation clip, the GameObject bound to the Animation track uses the values assigned at the start of the Animation clip.
* **Loop**: In the gap before the selected Animation clip, the GameObject bound to the Animation track repeats the entire animation as a forward loop: from start to end. To offset the start of the loop, use the **Clip In** property.
* **Ping Pong**: In the gap before the selected Animation clip, the GameObject bound to the Animation track repeats the entire animation forwards, then backwards. Use the **Clip In** property to offset the start of the loop. Changing the **Clip In** property affects the start of the loop when looping forward, and the end of the loop when looping backwards.
* **Continue**: In the gap before the selected Animation clip, the GameObject bound to the Animation track either holds or loops the animation based on the settings of the Source Asset. For example, if the selected Animation clip uses the motion file "Recorded(2)" as its Source Asset and "Recorded(2)" is set to **Loop**, then selecting **Continue** loops the animation according to the "Recorded(2)" Loop Time settings.
Use the Post-Extrapolate property to set the gap extrapolation of the gap after the selected Animation clip to one of the following options:
* **None**: Turns off post-extrapolation. In the gap after the selected Animation clip, the GameObject uses its transform, pose, or state from the Scene. Selecting **None** is useful if, for example, you want to create an ease-out between an Animation clip and the motion of a GameObject in the Scene. See [Easing-in and Easing-out Clips](clp_ease.md) for details.
* **Hold** (default): In the gap after the selected Animation clip, the GameObject bound to the Animation track uses the values assigned at the end of the Animation clip.
* **Loop**: In the gap after the selected Animation clip, the GameObject bound to the Animation track repeats the entire animation as a forward loop: from start to end. To offset the start of the loop, use the **Clip In** property.
* **Ping Pong**: In the gap after the selected Animation clip, the GameObject bound to the Animation track repeats the entire animation forwards, then backwards. Use the **Clip In** property to offset the start of the loop. Changing the **Clip In** property affects the start of the loop when looping forward, and the end of the loop when looping backwards.
* **Continue**: In the gap after the selected Animation clip, the GameObject bound to the Animation track either holds or loops the animation based on the settings of the Source Asset. For example, if the selected Animation clip uses the motion file "Recorded(2)" as its Source Asset and "Recorded(2)" is set to **Loop**, then selecting **Continue** loops the animation according to the "Recorded(2)" Loop Time settings.

View File

@@ -0,0 +1,24 @@
# Inserting clips
The Timeline window supports different methods of inserting clips depending on the type of track, where you click, and whether a clip or track is already selected. In the Timeline window, inserting clips refers to adding and making space for a clip without blending or replacing intersecting clips.
To accurately insert a clip, select Ripple mode as the Clip Edit mode, and position the Timeline Playhead to set the insertion point. Select **Add From Animation Clip** from the Track menu for the track where you want to insert the clip.
![Accurately insert a clip with the Ripple mode (red circle), the Timeline Playhead (green box), and the Add From Animation Clip in the Track menu](images/timeline_clips_view_inserting_before.png)
_Accurately insert a clip with the Ripple mode (red circle), the Timeline Playhead (green box), and the Add From Animation Clip in the Track menu_
In the above example, the Timeline Playhead is the insertion point. You can specify the insertion point using these other methods:
* Right-click within a gap and add a clip with the context menu. The insertion point is where you right-click.
* Drag a Source Asset (animation or audio) to a track in the Clips view. The insertion point is where you stop dragging.
The location of the insertion point determines where the clip is inserted and how it affects the other clips and gaps on the same track:
* If the insertion point intersects a clip, the inserted clip is added at the insertion point. The intersected clip, and all subsequent clips and gaps, are rippled after the inserted clip.
* If the insertion point is within a gap and there is enough space between the insertion point and the next clip, then the inserted clip is added to the gap. The other clips on the track are not affected.
* If the insertion point is within a gap and the inserted clip overlaps the next clip, the inserted clips is added at the insertion point. The next clip, and all subsequent clips and gaps, are rippled to accommodate the inserted clip.
![For example, inserting a clip at the Timeline Playhead ripples Clip 1B to accommodate the 36 frame Run clip.](images/timeline_clips_view_inserting_after.png)
_For example, inserting a clip at the Timeline Playhead ripples Clip 1B to accommodate the 36 frame Run clip._

View File

@@ -0,0 +1,41 @@
# Matching clip offsets
Every Animation clip contains key animation, or motion, that animates the GameObject, or humanoid, bound to the Animation track.
When you add an Animation clip to an Animation track, its key animation or motion does not automatically begin where the previous clip ends. The key animation or motion also does not end where the next clip begins. By default, each Animation clip begins at the position and rotation of the GameObject, or humanoid, at the beginning of the Timeline instance.
![An animation sequence of three Animation clips.](images/timeline_match_prematch_clips.png)
_An animation sequence of three Animation clips._
For example, three Animation clips create an animation sequence that starts with a clip of a standing humanoid that starts to run, then turns left, and finally comes to a stand still.
Each Animation clip begins at the position and rotation of the humanoid at the start of the Timeline instance, indicated by a red arrow in the Scene view below. The three Animation clips, Stand2Run, RunLeft, and Run2Stand, end at the green, blue, and yellow arrows, respectively.
![](images/timeline_match_prematch_scene.png)
For an animation sequence to flow seamlessly between adjacent Animation clips, you must match each Animation clip with its previous clip or next clip. Matching clips adds a position and rotation offset for each Animation clip. The position and rotation offsets are named **Clip Transform Offsets** and they [can be set manually](insp_clp_anim_plyb.md) or automatically. The following sections describe how to automatically match two or many Animation clips.
## Matching two clips
To match the clip offsets between two clips, right-click the Animation clip that you want to match. From the context menu, select either **Match Offsets to Previous Clip** or **Match Offsets to Next Clip**.
![Matching an Animation clip with the next clip](images/timeline_match_clip_two.png)
_Matching an Animation clip with the next clip_
For example, right-click the middle Animation clip, named "RunLeft", and select **Match Offsets To Next Clip** to match its offsets to the next clip
When you are matching offsets for a single Animation clip, you dont need to select the Animation clip first, but you must right-click the Animation clip that you want to match. For example, if you right-click an Animation clip that is not selected, Timeline matches the clicked clip and ignores the selected Animation clips.
The context menu only displays the match options available for the clicked Animation clip. For example, if there is a gap **before** the clicked Animation clip, only the **Match Offsets to Next Clip** menu item is available.
## Matching many clips
To match the clip offsets of many clips, select the adjacent Animation clips that you want to match and right-click one of the selected clips. From the context menu, select either **Match Offsets to Previous Clip** or **Match Offsets to Next Clip**.
![Matching many clips with previous clips](images/timeline_match_clip_many.png)
_Matching many clips with previous clips_
For example, select the "RunLeft" and "Run2Stand" clips. Right-click one of the selected clips, and select **Match Offsets to Previous Clips**, to match the "RunLeft" clip with the previous "Stand2Run" clip, and to match "Run2Stand" with the previous "RunLeft" clip.

View File

@@ -0,0 +1,23 @@
# Panning and zooming the Clips view
Use either the keyboard or the zoombar to pan and zoom the contents of the Clips view. There are many ways to pan, zoom, or frame clips in the Clips view with the keyboard:
* To pan, either middle-drag, or hold Alt and drag.
* To frame all selected clips, [select clips](clp_select.md) then press F.
* To frame all clips, press A.
* To zoom horizontally, move the scroll-wheel.
* To zoom vertically, hold Command/Control and move the scroll-wheel.
When you horizontally zoom the Clips view, the zoombar indicates the level of zoom. The zoombar is the horizontal bar at the bottom of the Clips view that zooms and pans the section of the Timeline instance or Timeline Asset that is shown in the Clips view.
![The zoombar (inside the red box) and the zoombar handles (shown by the green arrows). The zoombar thumb is the area between the two zoombar handles.](images/timeline_zoombar.png)
_The zoombar (inside the red box) and the zoombar handles (shown by the green arrows). The zoombar thumb is the area between the two zoombar handles._
There are many ways to pan and zoom with the zoombar:
* To pan, drag the zoombar thumb left or right.
* To jump to a section of the Timeline instance or Timeline Asset, click on an empty area of the scrollbar, on either side of the zoombar.
* To zoom in or zoom out, drag either zoombar handle. Dragging a zoombar handle also resizes the zoombar thumb.
On the zoombar thumb, a white line indicates the location of the Timeline Playhead. Use this line to see where the Timeline Playhead is in relation to the zoom level and the part of the Timeline instance shown in the Clips view.

View File

@@ -0,0 +1,57 @@
# Positioning clips
To position a clip, select Mix mode as the Clip Edit mode. Select a clip and hover over the middle of the clip. When the cursor changes to a position cursor, click and drag the clip to its new position.
While dragging, black lines indicate the selection of clips being positioned. The Timeline ruler shows the start time and end time of the selected clips being positioned.
![Select Mix mode (circled). Select and drag to position a clip.](images/timeline_clips_positioning.png)
_Select Mix mode (circled). Select and drag to position a clip._
By default, when you drag to position clips, both Snap to Frame and Edge Snap are enabled in the Clips view. You can change these snap settings in the [Timeline Settings](tl_settings.md) menu.
You can also move a clip to another track of the same type. Drag the clip off of its current track and a white ghost indicates where the clip will be moved. If you drag a clip to an area where the clip cannot be placed, the ghost changes to red indicating that you cannot release the clip in that area. For example, you cannot drag a clip where there is no track.
![The ghost of the selection being moved is drawn in red if you attempt to move a clip to an invalid area](images/timeline_clips_position_invalid.png)
_The ghost of the selection being moved is drawn in red if you attempt to move a clip to an invalid area_
You can position a selection of clips on the same track, or on different tracks. You are not limited to positioning one clip at a time. The same edge snapping rules and invalid area restrictions apply when positioning a selection of clips on many tracks.
## Positioning clips with the Inspector window
You can use the [Inspector window to position clips](insp_clp.md). To position a clip with the Inspector window, select a clip and use the Clip Timing properties in the Inspector window to change its **Start** property.
![Clip Timing properties for an Animation clip](images/timeline_clips_anim_clip_timing.png)
_Clip Timing properties for an Animation clip_
The effect that changing the Start value has on adjacent clips depends on the selected Clip Edit mode.
## Positioning clips in different Clip Edit modes
You are not restricted to positioning clips with Mix mode as the selected Clip Edit mode. You can also position clips in Ripple mode and in Replace mode. The difference is the effect each Clip Edit mode has on adjacent clips on the tracks where clips are being moved:
* Positioning clips in Mix mode creates blends between intersecting clips.
* Positioning clips in Ripple mode ripples subsequent clips, respecting the gaps between clips.
* Positioning clips in Replace mode cuts or replaces intersecting clips.
## Positioning clips with the Timeline Playhead
You can position clips by inserting frames at the position of the Timeline Playhead. To do this, move the Timeline Playhead to where you want to insert frames.
![To insert frames starting at frame 40, move the Timeline Playhead to frame 40](images/timeline_playhead_insert_before.png)
_To insert frames starting at frame 40, move the Timeline Playhead to frame 40_
Right-click the Timeline Playhead on the Timeline ruler above the Clips view, choose **Insert** &gt; **Frame**, and a number of frames.
![To insert 25 frames, right-click the Timeline Playhead and select **Insert** &gt; **Frame**, then 25 Frames](images/timeline_playhead_insert_menu.png)
_To insert 25 frames, right-click the Timeline Playhead and select **Insert** &gt; **Frame**, then 25 Frames_
This inserts frames in the Timeline Asset at the position of the Timeline Playhead. Inserting frames only repositions the clips that start **after** the position of the Timeline Playhead.
![Only the clips that start after the Timeline Playhead are moved. In this example, inserting 25 frames at frame 40 affects Clip 1B, Clip 2B, and Clip 2C.](images/timeline_playhead_insert_25_after.png)
_Only the clips that start after the Timeline Playhead are moved. In this example, inserting 25 frames at frame 40 affects Clip 1B, Clip 2B, and Clip 2C._

View File

@@ -0,0 +1,18 @@
# Resetting clips
You can reset the duration and speed of a clip. Resetting a clip **does not reset** the following properties:
* Start
* Ease In Duration and Ease Out Duration
* Animation Extrapolation settings
* Blend Curves
To reset a clip, right-click the clip and select **Editing** from the context menu. Then, select **Reset Duration**, **Reset Speed**, or **Reset All**. Depending on the reset option you select, resetting a clip does the following:
|**Option:** |**Description:** |
|:---|:---|
|**Reset Duration**|Resets the Duration and the Clip In.|
|**Reset Speed**|Resets the Speed Multiplier.|
|**Reset All**|Resets the Duration, Clip In, and Speed Multiplier.|
If resetting a clip results in two clips overlapping each other, Timeline creates a blend for the overlap, regardless of the selected Clip Edit mode.

View File

@@ -0,0 +1,41 @@
# Selecting clips
Click to select a single clip. The Clips view displays the selected clip with a white border, including its blends. Selecting a clip deselects all other tracks or clips.
Selecting a clip also shows its properties in the Inspector window. The clip properties change depending on the type of clip and whether multiple clips are selected. See [Setting Clip properties](insp_clp.md) for details.
Hold Shift and click to select contiguous clips vertically on different tracks or horizontally on the same track. For example, to select three contiguous clips on the same track, select the first clip, then hold Shift and click the third clip. All three clips are selected.
![Click to select the first clip](images/timeline_clips_select_first.png)
_Click to select the first clip_
![Shift-click the third clip to select contiguous clips on the same track](images/timeline_clips_select_last.png)
_Shift-click the third clip to select contiguous clips on the same track_
Hold Command/Control and click to select discontiguous clips. Hold Command/Control and click a selected clip to deselect it.
Click and drag on an empty area in the Clips view to draw a selection rectangle. This selects all clips inside the rectangle, including the clips that intersect the rectangle. Hold down Shift and draw a selection rectangle to add clips to the current selection.
You can also press the Tab key to select clips. The behaviour of the Tab key changes depending on the current selection:
* If a track is selected, press Tab to select the first clip on the selected track.
* If many tracks are selected, press Tab to select the first clip on the first selected track.
* If a clip is selected, press Tab to [select its track](trk_select.md).
* If there are no clips or tracks selected, press Tab to select the first clip on the first track.
Use the arrow keys to change the selected clips. The behaviour and results depend on the current selection and which modifier keys you press:
* If nothing is selected in the Timeline window, press the Tab, Up arrow, or Down arrow key to select the first clip on the first track.
* If a clip is selected, press the Left arrow key to select the previous clip. If the selected clip is the first clip on a track, the Left arrow key selects the track.
* If a clip is selected, press the Right arrow key to select the next clip. Press the Up arrow key to select the closest clip on a previous track. Press the Down arrow key to select the closest clip on a next track.
* Hold Shift and press either the Left arrow key or Right arrow key to add or remove clips from the selection of clips. Whether a clip is added to or removed from the selection of clips is relative to the first selected clip.
If you zoom into the Clips view, it pans to show either the start or end of the most recently selected clip. For example, if a selected clip is framed in the Clips view and you press the Right arrow key to select the next clip which is outside the Clips view, the Clips view pans to show the start of the selected clip.
You can also select clips with the Timeline Playhead. Right-click the Timeline Playhead and choose a selection option. This selects clips that either start after, start before, end after, end before, or intersect the Timeline Playhead. Clips are selected on all tracks.
![Right-click the Timeline Playhead and choose **Select** for more clip selection options](images/timeline_playhead_select_menu.png)
_Right-click the Timeline Playhead and choose **Select** for more clip selection options_

View File

@@ -0,0 +1,28 @@
# Changing clip play speed
Change the clip play speed to accelerate or decelerate its audio, motion, animation, or particle effect. Changing the clip play speed affects the duration of the clip. You can only change the play speed for Animation clips, Audio clips, and Control clips.
To change the clip play speed, first, select the Clip Edit mode to determine how other clips on the same track are affected:
* If the change in duration results in two clips that overlap each other:
* Select Mix mode to create a blend.
* Select Replace mode to cut or remove intersecting clips.
* Select Ripple mode to reposition the clips that come after the clip being sped up or slowed down. Ripple mode preserves the gaps between clips.
Select the clip and set the **Speed Multiplier** property in the Inspector window. The **Speed Multiplier** property shows the play speed as a multiplier of the original clip speed, so 1 plays the clip at the same speed as the original clip.
![Speed Multiplier in the Inspector window](images/timeline_inspector_clip_speed.png)
_Speed Multiplier in the Inspector window_
For example, to double the play speed of an Animation clip, change the **Speed Multiplier** to 2. This changes the duration of an 80 frame Animation clip to 40 frames by doubling its play speed.
There are other ways to change the play speed of a clip:
* Right-click the clip and select **Editing &gt; Double Speed** to halve the clip duration. The clip plays at twice its current speed. A short-dashed line and a multiplication factor indicates an accelerated clip. Doubling the clip speed sets the **Speed Multiplier** property to double its current value.
* Right-click the clip and select **Editing &gt; Half Speed** to double the clip duration. The clip plays at half its current speed. A long-dashed line and multiplication factor indicates a decelerated clip. Halving the clip speed sets the **Speed Multiplier** property to half its current value.
* Right-click the clip and select **Editing &gt; Reset Speed** to reset the clip to its original speed. This is the original duration of the clip. Resetting the clip speed sets the **Speed Multiplier** property to 1.
![A short-dashed line and multiplication factor of 2.00x indicates a clip playing at double its original speed](images/timeline_clip_double_speed.png)
_A short-dashed line and multiplication factor of 2.00x indicates a clip playing at double its original speed_

View File

@@ -0,0 +1,15 @@
# Splitting clips
You can split a clip into two identical clips that have different start points, end points, and durations. You can extend the start or end of the clip to include split animation or audio. You can also [reset a clip](clp_reset.md) to undo a split and other edits.
To split a clip, select the clip, position the playhead where you want to split the clip, and either right-click the clip and select **Editing** &gt; **Split**, or press S. Any selected clips that intersect the playhead are split into separate clips. You can position, trim, and edit split clips independently.
![Select the clips to be split, position the playhead where you want the split to occur, and press S](images/timeline_clip_split_before.png)
_Select the clips to be split, position the playhead where you want the split to occur, and press S_
![Selected clips are split where each clip intersects the playhead](images/timeline_clip_split_after.png)
_Selected clips are split where each clip intersects the playhead_
If a split clip is part of a blend, or if the split is performed within a blend, Timeline copies the blend settings to the split clips.

View File

@@ -0,0 +1,15 @@
# Tiling clips
Tile clips to remove gaps and blends between clips on the same track. Tiling clips is useful if you want each clip to begin exactly where the previous clip ends. If you select multiple clips on multiple tracks, you must select at least two clips on the same track for tiling to have an affect.
To tile clips, select at least two clips on the same track.
![Three clips with gaps and blends are selected](images/timeline_clips_tile_selection.png)
_Three clips with gaps and blends are selected_
Right-click on one of the selected clips and select Tile from the context menu. Timeline positions the selected clips based on the position of the first selected clip. The first selected clip does not move, and the duration of each clip remains the same.
![Tiling removes gaps and blends between the selected clips](images/timeline_clips_tile_result.png)
_Tiling removes gaps and blends between the selected clips_

View File

@@ -0,0 +1,75 @@
# Trimming clips
Trimming a clip cuts off a portion of the clip at its start or end. To trim a clip, select the Mix mode as the Clip Edit mode, then drag the start or end of the clip. Dragging the start or end of a clip automatically selects the clip, showing its properties in the Inspector window. Use the [Clip Timing properties](insp_clp.md) in the Inspector window to set the start, end, duration, and offset (Clip In) of a clip to exact values.
![Position and trim a clip by adjusting its Start, End, Duration, and Clip In properties in the Inspector window](images/timeline_inspector_clip_timing.png)
_Position and trim a clip by adjusting its Start, End, Duration, and Clip In properties in the Inspector window_
## Trimming the start of a clip
Trimming an Animation clip or Audio clip after the start of the Source Asset, selects the part of the Source Asset the clip uses.
![Trimming the start of an Animation clip trims its key animation, relative to the start of the Source Asset](images/timeline_clip_trim_start_keys.png)
_Trimming the start of an Animation clip trims its key animation, relative to the start of the Source Asset_
Trimming a clip is non-destructive. Trim the clip again to modify its start to include the animation, or the audio waveform, cut off during a previous trim. You can also [reset a clip](clp_reset.md) to undo trims or other edits.
To trim the start of a clip to a precise time or frame, use the **Clip In** property in the Inspector window.
Changing the **Clip In** property is similar to the same effect as trimming the start of a clip after the start of its Source Asset.
## Trimming the end of a clip
As with the start of the clip, trimming an Animation clip or Audio clip before the end of the Source Asset, selects the part of the Source Asset the clip uses.
![Trimming the end of an Animation clip trims its key animation, relative to the end of the Source Asset](images/timeline_clip_trim_end_keys.png)
_Trimming the end of an Animation clip trims its key animation, relative to the end of the Source Asset_
If you trim the end of an Animation clip or Audio clip past the end of the Source Asset the clip is based on, the extra clip area either holds or loops, depending on the settings of the Source Asset.
For example, an Animation clip named "End Move" uses the motion file "Recorded(2)" as its Source Asset. The motion file "Recorded(2)" is set to loop. Trimming the end of the Animation clip past the end of the "Recorded(2)" Source Asset fills the extra clip area by looping "Recorded(2)". A white animation curve shows the hold or loop.
![A white animation curve indicates whether the extra clip area holds or loops data, depending on the Source Asset](images/timeline_clip_trim_loop.png)
_A white animation curve indicates whether the extra clip area holds or loops data, depending on the Source Asset_
To choose whether the extra clip area holds or loops, select the Source Asset to change its settings in the Inspector window. Depending on the type of Source Asset, different properties control whether the Source Asset holds or loops.
If you are unsure which Source Asset is used by a clip, select the clip in the Clips view, right-click and select **Find Source Asset** from the context menu. This highlights the Source Asset in the Project window.
## Trimming the end of looping clips
The Timeline window provides special trimming options for Animation clips or Audio clips with loops. These special trim options either remove the last partial loop or complete the last partial loop.
For example, the Animation clip named run_away is over three times longer than the Source Asset on which it is based. Since the Source Asset is set to loop, the Animation clip loops the Source Asset until the Animation clip ends which results in a partial loop.
![L1, L2, and L3 signify complete loops. The clip ends partially through the fourth loop, L4.](images/timeline_last_loop_before.png)
_L1, L2, and L3 signify complete loops. The clip ends partially through the fourth loop, L4._
To extend the end of the clip and complete a partial loop, select the clip, right-click and select **Editing** &gt; **Complete Last Loop**. To trim the clip at the last complete loop, select the clip, Right-clip and select **Editing** &gt; **Trim Last Loop**.
![The result of select Editing &gt; Complete Last Loop](images/timeline_last_loop_complete.png)
_The result of select **Editing** &gt; **Complete Last Loop**_
![The result of select Editing &gt; Trim Last Loop](images/timeline_last_loop_trim.png)
_The result of select **Editing** &gt; **Trim Last Loop**_
## Trimming with the Timeline Playhead
You can also trim a clip based on the location of the playhead. To trim using the playhead, position the playhead within the clip to be trimmed. Right-click the clip and select either **Editing** &gt; **Trim Start** or **Editing** &gt; **Trim End**. **Trim Start** trims the start of the clip to the playhead. **Trim End** trims the end of the clip to the playhead.
![Move the Timeline Playhead within the clip](images/timeline_playhead_trim_before.png)
_Move the Timeline Playhead within the _
![Right-click and select Editing &gt; Trim Start to trim the start of the clip to the playhead](images/timeline_playhead_trim_after.png)
_Right-click and select **Editing** &gt; **Trim Start** to trim the start of the clip to the playhead_
If you select clips on multiple tracks, Timeline only trims the selected clips that intersect the playhead.

View File

@@ -0,0 +1,17 @@
# Curves view
The Curves view shows the animation curves for Infinite clips, or for Animation clips that were converted from Infinite clips. Use the Curves view for basic animation editing such as adding keys, modifying keys, adjusting tangents, and changing the interpolation between keys.
To view animation curves for an Infinite clip, click the Curves icon next to the Track name. To view animation curves for an Animation clip, select the Animation clip and click the Curves icon. The Curves view is similar to [Curves mode](https://docs.unity3d.com/Manual/animeditor-AnimationCurves.html) in the Animation window.
![The Curves icon (circled) shows and hides the Curves view for the selected clip](images/timeline_curves_view_icon.png)
_The Curves icon (circled) shows and hides the Curves view for the selected clip_
The Curves icon does not appear for Animation tracks with humanoid animation or imported animation. To view and edit key animation for humanoid or imported Animation clips, right-click an Animation clip and select **Edit in Animation Window** from the context menu. You can also double-click the Animation clip. The Animation window appears, linked to the Timeline window.
When in linked mode, the Animation window shows a Linked icon and the name of the Animation clip being edited. Click the Linked icon to stop editing the Animation clip and to release the Animation window from linked mode.
![Animation window linked to the Timeline window, indicated by the Linked icon and Animation clip name](images/timeline_animation_window_locked.png)
_Animation window linked to the Timeline window, indicated by the Linked icon and Animation clip name_

View File

@@ -0,0 +1,15 @@
# Hiding and showing curves
For the selected Animation clip, the Curves view includes a hierarchical list of the properties with animation curves. Expand, collapse, select, and deselect the properties in this list to filter which animation curves show in the Curves view.
For example, to show only the X-axis animation curves for the position of a GameObject, expand **Position**, select the **Position.x** property, and then press F to frame the animation curve for the **Position.x** property.
![Curves view showing the animation curve for the Position.x property](images/timeline_curves_view_position_x.png)
_Curves view showing the animation curve for the Position.x property_
There are many ways to expand, collapse, select, and deselect animation curves:
* Click the Triangle icon of a parent property to expand and collapse its list of child properties.
* Hold Shift and click to select contiguous properties.
* Hold Command/Control and click to select discontiguous properties. Hold Command/Control and click a selected property to deselect it.

View File

@@ -0,0 +1,6 @@
# Adding keys
The Curves view provides the following methods for adding keys:
* Right-click on an animation curve and select **Add Key**. This method adds a key at the location of the right-click.
* Double-click on an animation curve. This method adds a key at the location of the Double-click.

View File

@@ -0,0 +1,6 @@
# Deleting keys
The Curves view provides the following methods for deleting keys:
* Right-click a key and select **Delete Key** from the context menu. This method does not affect selected keys.
* Select a key and either press Delete or right-click and select **Delete Key** from the context menu.

View File

@@ -0,0 +1,9 @@
# Editing keys
Edit a key to change its time, value, or both. The Curves view provides the following different methods for editing a key:
* Right-click a key and select **Edit** from the context menu to enter specific values for time and value.
* Select a key and press Enter to enter specific values.
* Select and drag a key to change its time and value.
* Drag a key vertically, then press Shift to snap the key on the vertical axis. This changes the value of the key, but not its time.
* Drag a key horizontally, then press Shift to snap the key on the horizontal axis. This changes the time of the key, but not its value.

View File

@@ -0,0 +1,27 @@
# Changing interpolation and shape
Every key has one or two tangents that control the interpolation of the animation curve. The term **interpolation** refers to the estimation of values that determine the shape of the animation curve between two keys.
Whether a key has one of two tangents depends on the location of the key on the animation curve. The first key only has a right tangent that controls the interpolation of the animation curve after the key. The last key only has a left tangent that controls the interpolation of the animation curve before the last key.
![The first key (red) only has a right tangent, and the last key (blue) only has a left tangent](images/timeline_curves_first_last_tangent.png)
_The first key (red) only has a right tangent, and the last key (blue) only has a left tangent_
All other keys have two tangents where the left tangent controls the interpolation before the key, and the right tangent controls the interpolation after the key. By default, tangents are joined. Dragging one tangent affects the position of both tangents, and the interpolation of the animation curve both before and after the key.
![Keys that are neither the first key nor last key have joined tangents by default. Dragging either tangent changes the interpolation of the animation curve both before and after the key.](images/timeline_curves_tangent_joined.png)
_Keys that are neither the first key nor last key have joined tangents by default. Dragging either tangent changes the interpolation of the animation curve both before and after the key._
Dragging a tangent may also change the interpolation mode of the animation curve. For example, most keys are set to the **Clamped Auto** interpolation mode which automatically smooths animation curve as it passes through the key. If you drag a tangent of a key set to **Clamped Auto**, the interpolation mode changes to **Free Smooth**.
The term **interpolation mode** refers to the interpolation algorithm that determines which shape to use when drawing the animation curve.
To view the interpolation mode for a key, select the key and right-click. The context menu shows the interpolation mode. To change the interpolation mode for a key, select the key, right-click and select another interpolation mode.
![The context menu shows the interpolation mode for the selected key. Use the context menu to change the interpolation mode.](images/timeline_curves_interp_menu.png)
_The context menu shows the interpolation mode for the selected key. Use the context menu to change the interpolation mode._
Some interpolation modes break the left and right tangents so that you can position them separately. When tangents are broken, you can set a separate interpolation mode for the animation curve before the key and the animation curve after the key. For more details on the different interpolation modes, see [Editing Curves](EditingCurves). In the [Animation window documentation](AnimationEditorGuide), the interpolation mode is referred to as **tangent type**.

View File

@@ -0,0 +1,19 @@
# Selecting keys
Click to select a single key. Selecting a key deselects all other selected keys. The Curves view displays the selected key with its tangents.
![Click to select a single key. A selected key shows its tangents.](images/timeline_curves_view_select_key.png)
_Click to select a single key. A selected key shows its tangents._
To select contiguous keys along the same animation curve, click the first key, then hold Shift and click the last key.
![Hold Shift and click a key to select contiguous keys](images/timeline_curves_view_select_contiguous.png)
_Hold Shift and click a key to select contiguous keys_
There are many ways to select and deselect keys in the Curves view:
* Hold Command/Control and click to select discontiguous keys. Hold Command/Control and click a selected key to deselect it.
* Click and drag on an empty spot in the Curves view to draw a selection rectangle. This selects all keys within the rectangle. Hold down Shift while drawing the selection rectangle to add keys to the current selection.
* Double-click a selected key to select all keys on the same animation curve.

View File

@@ -0,0 +1,12 @@
# Navigating the Curves view
Use one of the following methods to pan, zoom, resize, or frame the animation curves and keys in the Curves view:
* To pan, middle-drag, or hold Alt and drag.
* To zoom vertically, move the scroll-wheel, or hold Alt and right-drag.
* To zoom horizontally, hold Command/Control and zoom vertically.
* To resize the Curves view, drag the double line separating the Curves view from the next track in the Track list.
* To frame only selected animation curves or selected keys, press F.
* To frame all animation curves or keys, press A.
You can also [use the Zoombar](clp_pan_zoom.md) to pan, zoom, and resize the Clips view.

View File

@@ -0,0 +1,16 @@
apiRules:
- exclude:
uidRegex: ^EditorTests
type: Namespace
- exclude:
uidRegex: ^Tests
type: Namespace
- exclude:
uidRegex: ^Common
type: Namespace
- exclude:
uidRegex: ^Timeline\.Tests
type: Namespace
- exclude:
uidRegex: ^DocCodeExamples
type: Namespace

View File

@@ -0,0 +1,9 @@
# Collapsing and expanding Track groups
To collapse the tracks in a Track group, either click the Triangle icon beside the name of the Track group or double-click the Track group. The tracks are collapsed from view in the Timeline window, not muted. To expand the tracks in a Track group, click the Triangle icon or double-click the Track group again.
![Triangle icon (circled) collapses the tracks in the Game Board Track group. A ghost track visually represents the tracks in the collapsed group.](images/timeline_track_group_hidden.png)
_Triangle icon (circled) collapses the tracks in the Game Board Track group. A ghost track visually represents the tracks in the collapsed group._
You can also press the Left Arrow key to collapse the tracks in a Track group while the Track group is selected. Press the Right Arrow key to expand the tracks in a Track group. If you press the Right Arrow key with a Track group already selected, the selection switches to the first track in the Track group.

View File

@@ -0,0 +1,15 @@
# Locking Track groups
You can also lock a Track group to prevent editing its Track sub-groups, tracks, and clips. This is useful when you have finished animating the content within a Track group and you want to avoid inadvertently modifying its tracks or clips.
You cannot edit the tracks or select the clips in a locked Track group. The Lock icon identifies a locked Track group.
![Selected and locked Track group with Lock icon (red circle)](images/timeline_track_group_locked.png)
_Selected and locked Track group with Lock icon (red circle)_
To lock a Track group, right-click on the Track group header and select **Lock** from the context menu. You can also select a Track group and press L. You can select and lock multiple Track groups.
To unlock a Track group, click the Lock icon. You can also select a locked Track group and press L, or right-click and select **Unlock** from the context menu. Tracks in a Track group maintain their individual locked state when you lock a Track group. This means that if you lock a track and then lock its Track group, when you unlock the Track group, the track remains locked.
For example, the MovingPieces Track group has its first track locked and its second track unlocked. If you lock the Track group, both the first and second track are locked. If you unlock the Track group, the first track remains locked and the second track is unlocked because the first track was already locked before the Track group was locked.

View File

@@ -0,0 +1,27 @@
# Using Track groups
Use Track groups to organize tracks when you are working with many tracks. For example, a Timeline Asset contains an Animation track and an Audio track that interacts with the same GameObject. To organize these tracks, move them into their own Track group.
To add a Track group, click the **Add** button and select **Track Group** from the **Add** menu. You can also right-click an empty area of the Track list and select **Track Group** from the context menu. A new Track group appears at the bottom of the Track list.
![Timeline window with Track group added](images/timeline_track_group_add.png)
_Timeline window with Track group added_
To rename a Track group, click its name and an I-beam cursor appears. Type the new name for the Track group and press Return.
To move tracks into a Track group, select one or more tracks and drag over the Track group. The Track group is highlighted. When dragging a selection of tracks, the last selected track type displays beside the cursor. To drop the tracks before a specific track in the Track group, drag until a white insert line indicates the destination.
![Release the mouse button when the white insert line appears within the Track group](images/timeline_move_track_before.png)
_Release the mouse button when the white insert line appears within the Track group_
![Selected tracks are moved to the location of the insert line](images/timeline_move_track_after.png)
_Selected tracks are moved to the location of the insert line_
A Track group can also have any number of Track sub-groups. To add a Track sub-group, either select a Track group and click the **Add** button in the Track list, or click the Plus icon beside the Track group name, and select **Track Sub-Group**. You can also use this menu to add tracks directly to a Track group or a Track sub-group.
![Click the Plus icon to add Track Sub-Groups and tracks to Track groups](images/timeline_track_group_plus.png)
_Click the Plus icon to add Track Sub-Groups and tracks to Track groups_

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Some files were not shown because too many files have changed in this diff Show More