Scenario Agent Skills is a collection of instructions that teaches AI coding agents to create images, video, audio, textures, skyboxes, and 3D assets through the Scenario MCP server, an interface to Scenario’s generation tools and custom-trained models. It serves game, entertainment, marketing, and other creative work, and also includes workflows for digital content creation software and game engines. The catalogue entries are these skills, along with plugins, commands, agents, instructions, settings, and hooks for using Scenario or driving supported creative applications.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add scenario-labs/skills --skill scenario-unity-animationgit clone --depth 1 https://github.com/scenario-labs/skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/scenario-labs/skills/scenario-unity-animation)<a href="https://agentmods.dev/skills/scenario-labs/skills/scenario-unity-animation"><img src="https://agentmods.dev/badge/skills/scenario-labs/skills/scenario-unity-animation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/scenario-labs/skills/scenario-unity-animation"><img src="https://agentmods.dev/badge/skills/scenario-labs/skills/scenario-unity-animation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00114 | $0.04032 |
| Opus 5.5 | $0.00046 | $0.01613 |
| Sonnet 5.5 | $0.00023 | $0.00806 |
| Haiku 4.5 | $0.00011 | $0.00403 |
Grade A, and why
scenario-unity-animation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 20d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Unity animation (animator and technical animator)
Expert animation work in Unity is ordering and measurement: which layer, constraint, transition or camera wins is decided by list order, and whether feet, aim and blends are right is decided by numbers taken from the clips. An agent without the Animator, Timeline or Scene windows builds everything from data (AnimatorController, TimelineAsset, Cinemachine and Rigging components), steps it deterministically, measures it, and looks at contact sheets. Target: Unity 6000.3.21f1, Cinemachine 3.1.7, Animation Rigging 1.4.1, Timeline 1.8.12. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
REQUIRED BACKGROUND: scenario-unity-expert (channels, review loop, 6.3 traps). Toolkit: scripts/ut_animation.py and C# jobs in scripts/AgentKit/Animation/ (namespace AgentKit.Animation), runtime code in scripts/Runtime/. Install with ut_animation.install(P).
Stance (the expert delta)
- Order is behavior, everywhere. Lower Animator layers win (iHeartGameDev, W0eRZGS6dhQ [00:05:04]); additive stops at the first Override [00:09:46]; transitions are uninterruptible by default, and with Ordered Interruption only transitions above the running one cut in, ties to list order (Catherine Proulx, Unity blog; measured: her None, ordered, unordered and same-frame cases reproduce). An interruption blends from a frozen snapshot pose (measured: 0 deg/s bone motion on the interruption frame): keep interrupting transitions short [added inference]. Rig constraints solve depth-first, spine before head or hand (Code Monkey, luBBz5oeR4Q [00:06:20]; measured head error 0.0 vs 17.9 deg).
- Blend-tree coordinates are gameplay units. Children at measured
averageSpeed/averageAngularSpeed, not 0 / 0.5 / 1 (_J8RPIaO2Lc [00:16:30]); clamp the runtime parameter to the children's extents, or the edge pose holds while speed keeps rising [frame 00:13:38]. Script speed that disagrees with the clip slides the feet (Ketra Games, mNxEetKzc04 [00:00:32]; measured slide p50 0.19 vs 1.14 m/s). - Idle is its own state when its pose differs from the walk (no exit time on IsMoving), the tree starting at a slow walk (mNxEetKzc04 [00:08:54]). Idle at the tree origin is fine only for in-place clips driven by script speed (_J8RPIaO2Lc [00:04:24]).
- Root motion is decided per clip and per axis (6.3 Manual): idle bakes rotation, Y and XZ; straight locomotion bakes rotation and Y; turns keep rotation; height-changing clips leave Y unbaked with Based Upon Feet, so blends do not float and a scripted jump does not add the clip's hip rise twice. Based Upon never causes drift: a baked axis has zero delta whatever it says; it only picks where the pose sits. Original keeps the file's facing and position (Ketra bakes Mixamo idles that way, no drift); Body Orientation re-centers mocap segments (measured over 30 s: both 0 m drift, Original faced 88 deg away and stood 2.43 m off; XZ unbaked drifted 0.246 m). One
CharacterController.Move(deltaPosition + y)inOnAnimatorMove, neverdeltaPosition * Time.deltaTime[00:07:21].Animator.gravityWeightis 1 on Y-baked clips, 0 on Y-unbaked ones, blended across transitions (Manual; measured, and 0 everywhere with root motion off). - Automate import from one reference, scoped to a folder (git-amend, V9_Z6hUOG_8): rig in
OnPreprocessModel, clips inOnPreprocessAnimation,GetVersion()bumped on rule changes, never a reimport inside the callbacks. Roles come from file names or rules, never take names: every Mixamo take is "mixamo.com". Reference FBX sub-asset clips; a clip duplicated before the Humanoid switch keeps bone paths (BEZHVYk6Fa4 [00:12:03]; measured: it moved the humanoid 0.0 deg, the post-switch copy 40.1 deg). Copy From Other on a different hierarchy imports zero clips, reported only in the import log (observed). Translation DoF is off by default [00:02:21]. - Masks make layers; reference poses make additive layers. An Override layer without a mask replaces the whole body; an additive clip only works over its authored base pose (W0eRZGS6dhQ [00:05:33], [00:09:57]). Masks at import drop fingers and IK goals a clip does not need (Manual, cost).
- Cameras: one Brain, move targets, pick the rig by game type (Unity CM3.1 series). Smart Update plus Late Update blends first on jitter (Brain doc). Third Person Follow for over-the-shoulder; FreeLook plus Camera Offset plus Deoccluder fight (u0a1F6BlczE [00:02:41]). A procedural Position Control overrides animation; never parent one to a mover (XTVzs4B1d7I [00:03:10]). Cameras on opposite sides blend through the target: CylindricalPosition hint (measured: none 0.5 m and up dot 0.0, Cylindrical 5.02 m and 0.995, IgnoreTarget alone still 0.5 m) [00:13:32]. Deoccluder: Ignore Tag the player, glass on Transparent Layers; triggers never count (measured). Timeline overrides the Brain: priority is ignored until it stops (measured in Play mode).
- Timeline: tracks for continuous actions, markers for instants, Signals when there is no payload (Ciro Continisio, gsEe0_o_934 [00:18:53]). A receiver gets every notification routed to it: type-check [frame 00:22:57]. Mixers run while scrubbing; spawn in
OnGraphStart, destroy after [00:45:30].
What ships with it
23 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/critique.md 14 KB
- references/expert-notes.md 16 KB
- references/gui-paths.md 7.6 KB
- references/procedures.md 38 KB
- references/sources.md 18 KB
- scripts/AgentKit/Animation/AnimCinemachine.cs 29 KB
- scripts/AgentKit/Animation/AnimControllerBuilder.cs 29 KB
- scripts/AgentKit/Animation/AnimImport.cs 36 KB
- scripts/AgentKit/Animation/AnimPackages.cs 3.2 KB
- scripts/AgentKit/Animation/AnimPlayMode.cs 3.8 KB
- scripts/AgentKit/Animation/AnimProcedural.cs 9.0 KB
- scripts/AgentKit/Animation/AnimRigging.cs 16 KB
- scripts/AgentKit/Animation/AnimSampler.cs 28 KB
- scripts/AgentKit/Animation/AnimTimeline.cs 31 KB
- scripts/AgentKit/Animation/AnimUtil.cs 1.2 KB
- scripts/Runtime/AgentAnimationGraph.cs 4.4 KB
- scripts/Runtime/AgentLightClip.cs 985 B
- scripts/Runtime/AgentLightTrack.cs 3.6 KB
- scripts/Runtime/AgentMarker.cs 1.3 KB
- scripts/Runtime/AgentMarkerReceiver.cs 899 B
- scripts/Runtime/AgentRootMotionMover.cs 3.2 KB
- scripts/Runtime/SecondOrderDynamics.cs 2.1 KB
- scripts/ut_animation.py 38 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 20d ago First seen · 102 lines · 114 tokens per session scan A f70e0cc21ef5
scenario-unity-animation is a skill published in the GitHub repository scenario-labs/skills (1,034 stars, last pushed today), licensed MIT. It adds 114 tokens to every session and 4,032 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-27.
Other skills, from other repositories
motion
Reconstruct a skeleton from calibrated mesh projections and sequential VLM joint annotations, then fit joints and skin weights. Generate motion from joint-position trajectories, rhythm and contact constraints through IK; refine bone orientation against the action, then export, retarget and validate on the target mesh.
3d_object
Judge whether a generated mesh is fit to ship in a browser game, from the same rendered sheet the orientation review uses.
3d_scene
Choose how to build a 3dscene asset. Do not default to one pipeline for every task: what the user specified about the scene's appearance matters more than the scene type, and generative reconstruction is the least stable route here.
image
Use this Skill when a game plan needs a single-subject concept image, a character reference cleaned for image-to-3D, or a front-facing transparent T-pose image for downstream character reconstruction. T-pose generation is an image-generation and image-editing task; it is not a separate asset category.
audio
Use this Skill when a game plan requires dialogue, voice lines, sound effects, foley, ambience, or other offline WAV assets. This is asset generation, not a runtime audio-playback contract; use the selected engine context after an asset has passed review.
game-cg-director
Convert game CG intent and optional media references into validated, model-specific directing envelopes for opening, cutscene, ultimate, or promo clips. Use for standalone CG prompt direction or as a child capability of a game-generation Harness. Supports T2VA/text-only, I2VA/first-frame image…