/timeline
Edit Unity Timeline assets and tracks. 编辑 Unity Timeline 资产与轨道。
$ npx -y skills add Besty0728/Unity-Skills --skill timeline --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/timeline
Context preview
The summary Claude sees to decide when to auto-load this skill.
Edit Unity Timeline assets and tracks. 编辑 Unity Timeline 资产与轨道。
SKILL.md
timeline.SKILL.mdname: unity-timeline
description: Edit Unity Timeline assets and tracks. 编辑 Unity Timeline 资产与轨道。
Triggers
- Building cutscenes or sequences
- Creating Timeline assets
- Adding tracks and clips
- 制作过场或序列、创建 Timeline 资产、添加轨道与片段
Timeline Skills
Create and modify Unity Timeline assets — add typed tracks, drop clips on tracks, bind objects, set duration / wrap mode, and play/pause/stop the editor preview through the PlayableDirector.
Operating Mode
- **Approval**:查询类 skill(`timeline_list_tracks`,源码标 `SkillMode.SemiAuto`)直接执行;其余变更/播放类(`timeline_create` / add_*_track / `timeline_add_clip` / `timeline_set_duration` / `timeline_play` / `timeline_set_binding`,标 `SkillMode.FullAuto`)需用户 grant,grant 后服务端一步执行返结果。
- **Auto / Bypass**:未被禁列表拦截的 skill 直接执行。
- 本模块**含 Delete 类 skill**:`timeline_remove_track` 标记为 `SkillOperation.Delete`,被 `IsForbiddenInSemi` 静态拦截 —— 仅 **Bypass** 模式或加入 **Allowlist** 才能调用。
- `timeline_play` 仅驱动 Editor 预览(PlayableDirector.Evaluate / Play 在编辑器上下文),不会进入 Play mode。
**DO NOT** (common hallucinations):
- `timeline_create_animation` / `timeline_add_track` do not exist → use the typed track skills: `timeline_add_animation_track`, `timeline_add_audio_track`, `timeline_add_activation_track`, `timeline_add_control_track`, `timeline_add_signal_track`
- `timeline_add_keyframe` does not exist → Timeline uses clips, not direct keyframes; use `timeline_add_clip`
- `timeline_set_duration` sets the Timeline asset duration, not individual clip duration
**Routing**:
- For Animator parameters/states → use `animator` module
- For runtime animation playback → use `editor_play` or write C# via `script` module
Skills
`timeline_create`
Create a new Timeline asset and Director instance.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | Yes | - | Name of the timeline/object | | folder | string | No | "Assets/Timelines" | Folder to save asset |
**Returns:** `{ success, assetPath, gameObjectName, directorInstanceId }`
`timeline_add_audio_track`
Add an Audio track to a Timeline.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Audio Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_add_animation_track`
Add an Animation track to a Timeline, optionally binding an object.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Animation Track" | Name of the new track | | bindingObjectName | string | No | - | Name of the GameObject to bind (animator) |
**Returns:** `{ success, trackName, boundObject }`
`timeline_add_activation_track`
Add an Activation track to control object visibility.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Activation Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_add_control_track`
Add a Control track for nested Timelines or prefab spawning.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Control Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_add_signal_track`
Add a Signal track for event markers.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Signal Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_remove_track`
Remove a track by name from a Timeline.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | - | Name of the track to remove |
**Returns:** `{ success, removed }`
`timeline_list_tracks`
List all tracks in a Timeline.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path |
**Returns:** `{ count, tracks: [{ name, type, muted, clipCount }] }`
`timeline_add_clip`
Add a clip to a track by track name.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | - | Name of the target track | | start | double | No | 0 | Clip start time in seconds | | duration | double | No | 1 | Clip duration in seconds |
**Returns:** `{ success, t
Read more
name: unity-timeline description: Edit Unity Timeline assets and tracks. 编辑 Unity Timeline 资产与轨道。
Triggers
- Building cutscenes or sequences
- Creating Timeline assets
- Adding tracks and clips
- 制作过场或序列、创建 Timeline 资产、添加轨道与片段
Timeline Skills
Create and modify Unity Timeline assets — add typed tracks, drop clips on tracks, bind objects, set duration / wrap mode, and play/pause/stop the editor preview through the PlayableDirector.
Operating Mode
- **Approval**:查询类 skill(`timeline_list_tracks`,源码标 `SkillMode.SemiAuto`)直接执行;其余变更/播放类(`timeline_create` / add_*_track / `timeline_add_clip` / `timeline_set_duration` / `timeline_play` / `timeline_set_binding`,标 `SkillMode.FullAuto`)需用户 grant,grant 后服务端一步执行返结果。
- **Auto / Bypass**:未被禁列表拦截的 skill 直接执行。
- 本模块**含 Delete 类 skill**:`timeline_remove_track` 标记为 `SkillOperation.Delete`,被 `IsForbiddenInSemi` 静态拦截 —— 仅 **Bypass** 模式或加入 **Allowlist** 才能调用。
- `timeline_play` 仅驱动 Editor 预览(PlayableDirector.Evaluate / Play 在编辑器上下文),不会进入 Play mode。
**DO NOT** (common hallucinations):
- `timeline_create_animation` / `timeline_add_track` do not exist → use the typed track skills: `timeline_add_animation_track`, `timeline_add_audio_track`, `timeline_add_activation_track`, `timeline_add_control_track`, `timeline_add_signal_track`
- `timeline_add_keyframe` does not exist → Timeline uses clips, not direct keyframes; use `timeline_add_clip`
- `timeline_set_duration` sets the Timeline asset duration, not individual clip duration
**Routing**:
- For Animator parameters/states → use `animator` module
- For runtime animation playback → use `editor_play` or write C# via `script` module
Skills
`timeline_create`
Create a new Timeline asset and Director instance.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | Yes | - | Name of the timeline/object | | folder | string | No | "Assets/Timelines" | Folder to save asset |
**Returns:** `{ success, assetPath, gameObjectName, directorInstanceId }`
`timeline_add_audio_track`
Add an Audio track to a Timeline.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Audio Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_add_animation_track`
Add an Animation track to a Timeline, optionally binding an object.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Animation Track" | Name of the new track | | bindingObjectName | string | No | - | Name of the GameObject to bind (animator) |
**Returns:** `{ success, trackName, boundObject }`
`timeline_add_activation_track`
Add an Activation track to control object visibility.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Activation Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_add_control_track`
Add a Control track for nested Timelines or prefab spawning.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Control Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_add_signal_track`
Add a Signal track for event markers.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | "Signal Track" | Name of the new track |
**Returns:** `{ success, trackName }`
`timeline_remove_track`
Remove a track by name from a Timeline.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | - | Name of the track to remove |
**Returns:** `{ success, removed }`
`timeline_list_tracks`
List all tracks in a Timeline.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path |
**Returns:** `{ count, tracks: [{ name, type, muted, clipCount }] }`
`timeline_add_clip`
Add a clip to a track by track name.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | - | GameObject name with PlayableDirector | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | - | GameObject hierarchy path | | trackName | string | No | - | Name of the target track | | start | double | No | 0 | Clip start time in seconds | | duration | double | No | 1 | Clip duration in seconds |
**Returns:** `{ success, t
REST API-based AI-driven Unity Editor Automation Engine Let AI control Unity scenes directly through Skills 🎉 We are now indexed by DeepWiki! Got questions? Check out the AI-generated docs → The current official maintenance baseline is Unity 2022.3+.
Other skills on unity-skills.
- /addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1. 为 Unity Addressables 1.22.3/2.9.1 提供源码锚定的设计规则。
Open skill - /adr
Record Unity architecture decisions (ADR) with rationale. 记录 Unity 架构决策(ADR)与理由。
Open skill - /animator
Edit Unity Animator Controllers and drive runtime parameters. 编辑 Unity Animator Controller 并驱动运行时参数。
Open skill - /architecture
Advise on Unity gameplay and system architecture. 为 Unity 游戏与系统架构提供建议。
Open skill - /asmdef
Advise on Unity assembly definitions (asmdef). 为 Unity 程序集定义(asmdef)提供建议。
Open skill - /asset
Manage Unity AssetDatabase operations. 管理 Unity AssetDatabase 操作。
Open skill

