PromptMotion Max
The ultimate edition. Generate humanoid clips from text prompts with the online Generator, then take them all the way to ship-ready in Max Studio — the AI-motion "last-mile" workbench: score & fix motion quality, denoise, seamless-loop, ground & de-slide feet, author root motion, blend, batch via recipes — rig unrigged meshes with the Mixamo-style Auto-Rigger, add runtime IK & active ragdoll, and browse the bundled Library. 300 generations per month included — the largest allowance of any tier.
⚡ Generator
Online AI text-to-animation. Type a prompt, get a humanoid FBX in ~38–83 s.
★ Max Studio
The last-mile workbench: score & fix quality, ground feet, loop, root motion, batch recipes.
📊 Quality Analyzer
Score any clip 0–100, then one-click fix jitter, pops, seams and out-of-range muscles.
🪗 Auto-Rigger
Rig an unrigged humanoid mesh Mixamo-style: fit a skeleton, skin it, build the Humanoid avatar.
🧊 Runtime IK + Ragdoll
Final-IK-class IK and a PuppetMaster-class active ragdoll — one click, auto-configured.
☷ Library
Bundled clips. Drag, drop, animate. No backend, no waiting, no quota.
⏲ 300 / month
The largest generation allowance of any tier. Cached prompts are free.
🧍 Any Humanoid Rig
Mixamo, Synty, Quaternius, custom — if Unity calls it Humanoid, we can drive it.
Generator topics are under Generator; the editor authoring tools under Max Studio and Pro Toolset; rigging under Auto-Rigger; live systems under Runtime Systems; bundled clips under Library. Shared concepts live under Concepts and Reference.
Compare Editions
You're on Max — the ultimate tier (300 generations/month plus the complete authoring toolset, the Auto-Rigger and the runtime systems). Here's how the four PromptMotion editions line up.
| Lite Free |
PromptMotion Standard |
Pro 150 / mo |
Max this asset |
|
|---|---|---|---|---|
| Price | Free | Paid | Paid | Paid |
| AI generations | 5 lifetime | 50 / month | 150 / month | 300 / month |
| Activation | Email code | Asset Store invoice | Asset Store invoice | Asset Store invoice |
| Text-to-animation Generator | ✓ | ✓ | ✓ | ✓ |
| Any Humanoid rig + auto-retarget | ✓ | ✓ | ✓ | ✓ |
| Live preview, history, apply-to-character | ✓ | ✓ | ✓ | ✓ |
| Cached prompts are free (don't count) | ✓ | ✓ | ✓ | ✓ |
| Bundled Animation Library | ✗ | ✓ | ✓ | ✓ |
| Pro Toolset — batch & variation generation | ✗ | ✗ | ✓ | ✓ |
| Pro Toolset — Mecanim wiring (controllers + blend trees) | ✗ | ✗ | ✓ | ✓ |
| Pro Toolset — clip cleanup + sequencer | ✗ | ✗ | ✓ | ✓ |
| Max Studio — Motion Quality Analyzer (score + one-click fixes) | ✗ | ✗ | ✗ | ✓ |
| Max Studio — foot grounding / de-slide + footstep events | ✗ | ✗ | ✗ | ✓ |
| Max Studio — seamless loops, denoise, key-reduce, optimize, tangents | ✗ | ✗ | ✗ | ✓ |
| Max Studio — root motion authoring + 8-way strafe / 2D blend tree | ✗ | ✗ | ✗ | ✓ |
| Max Studio — compare / blend / dedup / split / additive / batch recipes | ✗ | ✗ | ✗ | ✓ |
| Max Studio — Pose Library + Skeleton Inspector | ✗ | ✗ | ✗ | ✓ |
| Auto-Rigger — Mixamo-style auto + marker-guided rigging | ✗ | ✗ | ✗ | ✓ |
| Runtime — real-time IK + Foot Grounder | ✗ | ✗ | ✗ | ✓ |
| Runtime — active ragdoll + recovery + secondary motion | ✗ | ✗ | ✗ | ✓ |
Other editions on the Unity Asset Store: PromptMotion Lite (free, 5 generations) · PromptMotion (Standard, 50/month) · PromptMotion Pro (150/month) · PromptMotion Max (this asset, 300/month + the full toolset).
Installation
Import once. Both tools light up immediately.
From the Unity Asset Store
In Unity 6000.0 or later, open
Window → Package Manager and switch the dropdown to My Assets.Accept the import dialog with everything checked. The package lands at
Assets/PromptMotion/.Unity recompiles editor scripts. The first time takes ~30 s; subsequent imports are faster.
Window → PromptMotion → Generator for the AI tool, Window → PromptMotion → Max Studio for the last-mile toolset, Window → PromptMotion → Auto-Rigger to rig an unrigged mesh, Window → PromptMotion → Pro Toolset for the Pro authoring tools, or Window → PromptMotion → Animation Library for the bundled clip browser.Prerequisites
PromptMotion uses two Unity packages that ship with a default Unity 6 install:
com.unity.editorcoroutines≥ 1.0.0com.unity.nuget.newtonsoft-json≥ 3.2.1
If your project doesn't already have Newtonsoft.Json, Unity prompts to add it on first import. Click Yes.
What gets installed
Assets/PromptMotion/
Generator/ // AI generator window + auth + HTTP + Pro/Max editor UI
Editor/
Max/ // Max Studio window + tool panels + Auto-Rigger window
Library/ // Bundled clip browser + 5 starter clips
Editor/
StarterClips/ // .anim files retargetable to any Humanoid
Shared/ // ClipApplier, validators, preview + all Max engines
Editor/
Analysis/ // MotionQualityAnalyzer + report types
Authoring/ // curve / loop / root / layer / recipe engines
Rigging/ // Auto-Rigger: skeleton fit, skin solver, builder
Pose/ // pose capture / library / humanoid pose ops
Runtime/ // IK, active ragdoll, spring bones (ships in builds)
Generated/ // Output folder created on first generation
Controllers/ // Per-character AnimatorControllers
Documentation/ // You are hereProject
Quick Start: Generator
Zero to your first generated clip in about a minute (plus generation time).
Menu:
Window → PromptMotion → Generator.It looks like
IN_xxxxxxxxxxxxxxx and was emailed to you when you purchased the asset (also visible at assetstore.unity.com → My Account → My Orders). Click Verify. Activation takes a few seconds.Select a Humanoid character in your scene Hierarchy, or drag a prefab into the character slot. The window validates the rig and shows a green checkmark when ready.
Describe the motion: "walking forward confidently", "sitting down on a chair, then standing back up", "waving hello with the right hand". Set duration (1–10 s; default 4 s).
Wait ~38 s (warm) or ~83 s (cold start). The button counts elapsed seconds. When done, the FBX is saved under
Assets/PromptMotion/Generated/ and the clip is auto-applied to your character.Press Play in the Unity editor to see the clip on your character. See How It Works for what happens behind the scenes.
(prompt, duration, seed) returns the previously-generated FBX in milliseconds and uses none of your monthly allowance. The status banner reads ✓ Cached result — no allowance used.Quick Start: Max Studio
Take a raw generated clip to ship-ready in a couple of clicks — no internet, no allowance used.
Menu:
Window → PromptMotion → Max Studio. Or right-click any AnimationClip in the Project window and choose PromptMotion → Analyze Motion Quality to open straight onto the Quality tab with the clip loaded.On the Quality tab, drag a clip into the Clip field. Max scores it 0–100, shows a letter grade, a jitter-over-time heatmap, and a list of findings (jitter, pops, broken loop, sliding feet, out-of-range muscles).
Each finding has a fix button (Denoise, Make Loop, Clamp, Optimize), or hit Fix all curve issues. The clip re-scores instantly and a "Deviation from source" readout shows how much the fix changed the motion.
A sliding-feet or ground-penetration finding sends you to the Grounding tab. Assign a Humanoid rig and click Bake — Max samples the clip on the rig, lifts the feet onto the floor, pins planted feet, and adds footstep events on a throwaway copy.
Click Save fixed clip as .anim. The result is a brand-new asset under
Assets/PromptMotion/Generated/ — your original is never modified.On the Recipe tab, pick a preset (Cleanup / Loop Idle / Game-ready), select a folder of clips in the Project window, and click Run on selected Project clips. One preset, many clips, one progress bar.
Quick Start: Library
No invoice. No internet. No waiting.
The drag-and-drop path
In the Project window, browse to
Assets/PromptMotion/Library/StarterClips/. Or open Window → PromptMotion → Animation Library for the visual browser.Drag any
.anim from the Library directly onto a Humanoid GameObject in the scene that has an Animator component. Unity creates an Animator Controller if needed and adds the clip as the default state.The character animates immediately. No backend, no waiting, no quota.
The Animation Library window
For browsing more than a handful of clips, the dedicated window provides a Mixamo-style three-pane layout:
Drop your character into the slot once; click any clip card to preview it on your rig; click Apply to wire it into the controller.
How It Works
A single round-trip from the Editor to the PromptMotion backend.
- You type a prompt and click ⚡ Generate.
- The window posts
{ prompt, duration_seconds, seed }tohttps://api.promptmotion.dev/prod/generatewith your invoice as authentication. - The backend runs the prompt through NVIDIA's Kimodo (SOMA-RP) text-to-motion model.
- The raw motion is retargeted to a standard Humanoid skeleton on the server.
- The server returns a Mecanim-ready
.fbxfile. - The client saves the FBX under
Assets/PromptMotion/Generated/. AnAssetPostprocessorauto-configures it as Animation Type: Humanoid. - The window applies the resulting
AnimationClipto your selected character viaClipApplier.
You don't need to know anything about Kimodo, retargeting, or import settings — the pipeline is fully automated. The output is a standard Unity AnimationClip; you can edit, blend, retarget, mask, or layer it like any other clip.
AnimationClip and works in any build target Unity supports (standalone, mobile, console, WebGL). You can't generate new animations from a runtime build.Activation
Your Unity Asset Store invoice number activates the asset. No signup, no API key.
How activation works
Click Verify in the Generator window after pasting your invoice. The window confirms with the server that the invoice is valid. The whole process takes a few seconds.
Working across multiple installations
Your invoice activates the asset across all your installations. Paste your invoice number anywhere you've installed PromptMotion and it will work — quota is shared across installations.
Forgetting an invoice
Open Window → PromptMotion → Settings and click Forget invoice to clear your locally stored invoice. You can paste it again any time.
What gets sent to the server
Only this:
- Your invoice number (HTTPS, in the JSON body).
- The prompt text you typed.
- Duration and optional seed.
- A client version string.
Not sent: real name, email, IP (other than what's inherent to HTTPS), Unity Editor analytics, scene contents, or any telemetry beyond the above.
Monthly Allowance
300 generations per month included — the largest allowance of any tier. Cached prompts use none of your allowance.
How the allowance works
Every successful generation uses one of your 300 monthly generations. Cached results — identical (prompt, duration, seed) — do not count against your allowance. Your next allowance is issued automatically each month.
The Ready banner shows your remaining count, for example: 287 of 300 generations remaining this month. Next allowance arrives in 12 days.
What happens when the monthly limit is reached
- The status banner indicates the monthly limit is reached.
- The window shows when your next allowance arrives.
- Existing generations and cached prompts continue to work — only new generations are paused until the next allowance.
- You can keep working with the bundled Library clips, the entire Max Studio toolset, and the Auto-Rigger — all of which use none of your allowance.
Writing Prompts
Describe the motion. The model never sees your character.
Prompts that work well
- "walking forward confidently"
- "running and jumping over a low obstacle"
- "sitting down on a chair, then standing back up"
- "waving hello with the right hand"
- "stumbling backwards as if pushed"
- "crouching slowly, then aiming a bow"
Prompts that work less well
- Character descriptions — "a tall warrior": ignored. The model sees motion verbs only.
- Camera or shot direction — "close-up of feet": output is a clip, not a render.
- Multi-character interactions — "two people fighting": output is one humanoid.
- Specific timing — "walk for 1.7 s, then turn": duration is set by the slider; phasing is approximate.
Current model limitations
Hand pose is a fixed default. The model doesn't pose individual fingers.
Output is body skeleton only. Faces stay neutral.
No interactions with other rigs, props, or scene geometry.
If your prompt's natural length is shorter than the duration, the model may pad with idling. Pick a duration that matches.
Duration & seed
Duration: integer between 1 and 10 seconds. Longer clips take slightly longer to generate but use the same single generation from your allowance.
Seed: leave blank to let the server randomize. Set a specific integer to make the output reproducible — same prompt + same duration + same seed = same FBX (and a cache hit).
(prompt, duration, seed). Whitespace and capitalisation differences produce distinct cache entries. Typo'ing the same phrase twice uses two of your monthly generations.Character Requirements
Both tools require a Humanoid rig. Generic skeletons aren't supported in v1.0.
What "Humanoid" means here
- The character has an
Animatorcomponent. - Its Avatar is configured with Animation Type = Humanoid (Import Settings → Rig tab).
- Unity reports the Avatar as valid (no broken bone mappings).
Validator badges
Drop a character into the slot and the window checks:
| Badge | State | What to do |
|---|---|---|
| ✓ Valid | Animator + valid Humanoid Avatar present. | Ready to generate / apply. |
| ⚠ No Avatar | Rig has bones but the Avatar slot is empty. | Click Auto-Configure to build one from bone names. |
| ✗ No Animator | The GameObject has no Animator. | Add an Animator component, assign a Humanoid Avatar. |
| ✗ Generic | Avatar is configured but as Generic, not Humanoid. | Re-import the model with Animation Type = Humanoid. |
| ✗ Invalid bone mapping | Avatar exists but Unity considers it broken. | Re-import the model. |
T-pose preferred
Characters configured from a clean T-pose retarget cleanest. A-pose works but may produce slight shoulder offset on extreme clips. Bind-pose-flopped rigs (one arm forward) often produce wrong shoulder rotation — re-import in T-pose if you see shoulders pop.
Generated Files
Where things land, how they're named, what else gets created.
Output location
Every generated FBX lands in:
Assets/PromptMotion/Generated/Path
Naming convention
Each filename embeds the backend's job id, e.g. job_a8f3c1e9.fbx. The job id is unique per generation; cache hits return the same file rather than producing a duplicate.
What gets created besides the FBX
- The FBX at
Assets/PromptMotion/Generated/{job_id}.fbx, auto-imported as Humanoid. - An Animator Controller at
Assets/PromptMotion/Generated/Controllers/{character}_Controller.controller, one per character. Re-applying clips to the same character updates this same file.
Regenerating with the same prompt
If the cache key matches, no new file is created — the existing FBX is returned. If the seed changes (or you click Random), a fresh FBX is written under a new job id; both files coexist.
.gitignored by default to keep churn out of repos used by teams.Settings
A single ScriptableObject configures the Generator. No secrets, safe to commit.
Settings live as a ScriptableObject at Assets/PromptMotion/Generator/Editor/Settings/Settings.asset. Select it in the Project window to edit in the Inspector.
| Field | Default | Description |
|---|---|---|
Base Url | https://api.promptmotion.dev | The backend endpoint. Override only if you're running a self-hosted backend. |
Output Folder | Assets/PromptMotion/Generated | Where downloaded FBXes land. Must be inside Assets/. |
Default Duration Seconds | 4 | Pre-fill for the duration slider on a fresh prompt. |
Verify Timeout Seconds | 10 | How long to wait for invoice probe / bind responses. |
Status Timeout Seconds | 10 | How long to wait for status / refresh calls. |
Generate Timeout Seconds | 180 | Cap for the generation request. Cold starts can hit ~83 s; 180 s leaves headroom. |
Verbose Logging | false | Logs every step (window open, generation start/complete, account refresh, import config) to the Console with [PromptMotion] prefix. Warnings and errors always log regardless. |
Your invoice number is stored separately in project-scoped EditorPrefs and is never written to a committed asset.
Max Studio
The AI-motion "last-mile" workbench — everything between a raw generation and a clean, grounded, loopable, game-ready clip, in one window.
Open Window → PromptMotion → Max Studio. A single window hosts every Max tool as a tab. Everything here is editor-only, non-destructive (every operation returns a new clip — your original generation is never touched), and works fully offline on any clip, generated or not.
⚒ Tools
A guided directory of every clip tool — the beginner-friendly home tab.
📊 Quality
Score a clip 0–100 and one-click fix its defects. The signature tab.
✨ Cleanup
Denoise, seamless-loop, key-reduce and retime with a live preview.
👣 Grounding
De-slide planted feet, drop them onto the floor, tag footsteps — on a rig.
➚ Root Motion
Measure / strip / author forward+turn, build an 8-way strafe set.
♻ Recipe
Run a whole cleanup pipeline on one clip or a folder of generations.
🧉 Rig
Add the runtime systems (IK, Foot Grounder, Active Ragdoll) to a character.
AnimationUtility, so they apply equally to Humanoid muscle clips and generic Transform clips.Every panel uses the same polished UI kit: titled cards, a severity-colored status strip with an expandable message log ("your debugs are right here"), animated progress on long ops, info callouts, and tooltips — one consistent, beginner-friendly ecosystem.
Motion Quality Analyzer
The signature feature. Score any clip, see exactly what's wrong, and fix the curve issues in one click.
MotionQualityAnalyzer.Analyze(clip) returns a 0–100 Score, a letter Grade, and a list of findings — each with a one-click fix. The Quality tab shows a score badge, the clip's metrics, a jitter-over-time heatmap (green = clean → red = noisy, so you can see where the noise is), and a card of findings.
What it detects
| Finding | How it's measured | One-click fix |
|---|---|---|
| Jitter | Residual after a light moving-average smooth, normalized by curve range (isolates noise from fast-but-smooth motion). | Denoise |
| Pop | An isolated single-frame spike via normalized second differences (stays ~0 for pervasive jitter). | Denoise |
| Loop seam | Normalized start-vs-end pose mismatch (root translation excluded). | Make Loop |
| Foot sliding | Horizontal foot velocity during low (planted) frames. | Grounding |
| Ground penetration | Lowest foot Y below the floor. | Grounding |
| Out-of-range muscles | Humanoid muscle curves outside [-1, 1]. | Clamp |
| Curve bloat | Constant curves stored as many keys, redundant identity-scale curves. | Optimize |
Analyze → recommend → fix → bake
- Curve fixes (Denoise, Make Loop, Clamp, Optimize) apply in place and re-score instantly. Fix all curve issues applies them in one pass.
- Rig-dependent fixes (grounding) jump to the Grounding tab with the (possibly already-fixed) clip loaded.
- A "Deviation from source" readout shows similarity %, worst-channel deviation, and how many curves changed — a regression guard so you can tell a lossless fix from one that altered the motion.
- Save fixed clip as .anim bakes the result to a new asset; the original is never modified.
Batch quality scan
To triage a whole folder, select clips in the Project window and use Assets → PromptMotion → Scan Motion Quality (also on the Tools tab). It scores every clip worst-first, reports the average, flags the low scorers, and pings the worst so you fix what matters first.
Cleanup Bench
Stack the core cleanup operations with a live character preview, then Save As.
The Cleanup tab lets you stack the curve-level fixes and watch them on a preview character before committing:
- Denoise —
ClipDenoiseOps.BilateralSmooth, an edge-preserving smooth that removes jitter while keeping impacts and foot strikes sharp. - Auto-loop —
LoopSeamSolverfinds the best loop window (pose-similarity search) and blends it with a C1 velocity-matched seam. - Key reduce —
KeyReductionOps.Reduce, RDP decimation within a tolerance (andResampleto a fixed rate). - Set duration — retime the whole clip to a target length.
Click Save As .anim to bake the stacked result to a new asset.
Grounding & De-slide
The #1 fix for AI/mocap clips: feet that slide, float, or sink through the floor.
The Grounding tab needs a clip and a Humanoid rig (the fix is rig-dependent). FootGroundingBaker.Bake(clip, rig) samples the clip on the rig, then:
- Ground-aligns — lifts the lowest contact onto the floor so feet don't penetrate or float.
- De-slides — pins planted feet by correcting the root translation (the standard mocap technique), using plant detection from
GaitAnalysis(plant mask, plant onsets, horizontal speeds). - Tags footsteps —
FootstepEventGeneratoradds anAnimationEventat each plant onset for audio / VFX.
The bake runs on a throwaway copy; Save As writes the grounded result to a new asset.
Root Motion
Measure, strip, or author root motion — and build a directional locomotion set from a single walk.
- Analyze (
RootMotionOps.Analyze) — inspect the root trajectory (distance, turn, average speed). - Strip horizontal — bake travel out into an in-place clip (for controller-driven locomotion).
- Author locomotion — add forward + turn root motion to an in-place clip.
- Author directional motion — add strafe travel.
- Motion warp (
MotionWarpOps) —WarpRootTranslationto hit an exact target over a window,SetTotalTravel,ScaleRootTravel. - 8-way strafe set (
DirectionalSetGenerator) — generate a 4/8-way directional set from one walk plus an auto-built 2D directional blend-tree controller (MecanimWiring).
Recipe Pipeline
Chain operations into a preset and run it on one clip — or every clip in a folder.
ClipRecipe is a serializable, ordered op pipeline. The Recipe tab shows the chosen preset's steps as pills, then runs the chain:
| Preset | What it does |
|---|---|
| Cleanup | Denoise + light tidy — the everyday "make this less noisy" pass. |
| Loop Idle | Cleanup + seamless loop — turn a take into a clean looping idle. |
| Game-ready | The full pass: trim, denoise, loop, key-reduce, and an Optimize step at the end. |
Assign a clip and click Run on this clip — saves a new
.anim.Select one or more
AnimationClips in the Project window; the panel shows a live "N clips selected" count. Click Run on selected Project clips — it processes one clip per frame with a live progress bar, so cleaning a folder of generations stays responsive.Tools Hub
The "home" tab — a guided directory of every clip tool, so a newcomer never has to hunt through right-click menus.
Assign a working clip at the top, then run any single-clip tool (it saves a new .anim); the interactive benches and two-clip tools open with one click. The hub mirrors the Assets → PromptMotion menu, grouped:
- Rig an unrigged model — open the Auto-Rigger.
- Inspect — Analyze quality · Batch quality scan · Compare two motions · Find duplicates in selection.
- Clean up & package — Cleanup bench · Optimize size · Clean up tangents · Tag motion impacts · Split at still points.
- Ground & root motion — Grounding bench · Root motion.
- Combine & derive — Blend two motions · Extract additive · Recipe pipeline.
Clip Operations
The full catalog of curve-level engines behind the tabs — each non-destructive and headless-tested. Most have a one-click Assets → PromptMotion menu entry too.
Cleanup & loop
- ClipEditOps — Trim, Loopify, SetSpeed, Smooth, Mirror, ClampMuscles, Clone.
- ClipDenoiseOps.BilateralSmooth — edge-preserving denoise that keeps impacts and foot strikes sharp.
- LoopSeamSolver —
SeamCost,FindBestLoop(pose-similarity best-loop search),MakeSeamless(C1 velocity-matched blend),AutoLoop. - KeyReductionOps —
Reduce(RDP decimation within tolerance),Resample,CountKeys. - ClipOptimizer — collapse constant curves to one key + drop redundant identity-scale curves (lossless), with a before/after size budget.
Assets → Optimize Clip Size. - ClipTangentOps — re-tangent (Smooth / Clamped-no-overshoot / Linear / Stepped) to fix faceted linear-import motion and auto-tangent overshoot.
Assets → Clean Up Tangents.
Inspect / compare / triage
- ClipDiff —
Compare(a,b)→ per-curve & overall pose deviation, similarity %, divergence heatmap, most-changed channels, length/fps deltas;Distance(a,b)0..1 scalar. UI:Window → PromptMotion → Compare Motions/Assets → Compare Two Motions. - ClipSimilarity —
FindClustersnear-duplicate detection (keeps the best of each group).Assets → Find Duplicate Motionsselects the redundant clips for review (never deletes). - ClipSlicer —
FindBoundaries/Split: auto-split a multi-action take at its still points into one clip per action.Assets → Split Clip at Still Points.
Layering / variation / retime
- ClipLayerOps —
MakeAdditive,AddLayer,ExtractAdditive(lift an offset — lean / aim / limp — off a clip as a reusable additive delta;Assets → Extract Additive),MergeMasked(by body-region keywords). - ClipBlendOps —
Blend(a,b,weight)bakes a phase-aligned in-between (rotations Slerp'd) — e.g. walk + run → jog;GenerateInBetweensa graded set. UI:Window → PromptMotion → Blend Motions. - ProceduralMotionOps —
AddSway,AddBreathing, deterministicAddNoise. - TimeWarpOps —
SetDuration,EaseInOut,HoldAt, arbitraryRemap. - VariationOps — seeded subtle variations +
GenerateVariations. - CrowdVariationGenerator — de-synchronize a crowd from a single loop (phase + speed variation).
- MontageComposer — bake several clips into one with crossfades + per-segment trim/speed.
Events
- MotionEventTagger — auto-tag motion accents (impacts / contacts — a punch, stomp, slam) with
OnImpactAnimationEvents for audio / VFX / camera-shake. Per-bone detection, rig-free, works on Humanoid muscle clips too.Assets → Tag Motion Impacts. - FootstepEventGenerator — plant onsets → tagged footstep
AnimationEvents (used by the Grounding bake).
Mecanim wiring
- MecanimWiring — build a controller, a 1D locomotion blend tree, masks (Pro) plus a 2D directional blend tree and
CreateControllerFrom(Max). - DirectionalSetGenerator — an 8/4-way strafe set from one walk + an auto 2D blend-tree controller.
Pose Library
Capture, tag, search, blend and mirror poses — reusable across your project.
Open Window → PromptMotion → Pose Library. Capture the current pose off a character, tag and search it, apply it back, save it as a one-key .anim, or remove it.
- PoseData / PoseChannel — serializable pose capture that rebuilds to a one-key clip.
- PoseLibraryAsset — a tagged, searchable ScriptableObject pose library (
Create → PromptMotion → Pose Library). - HumanoidPoseOps —
CapturePoseClip,BlendPoses,MirrorPose. - ReactionClipGenerator — procedurally synthesize get-up / pose-to-pose / flinch clips from your own poses (feeds ragdoll recovery).
Skeleton Inspector
A scene-view bone overlay for inspecting, posing and diagnosing a rig.
- Octahedral bone overlay — click-to-select bones in the Scene view, Humanoid region color-coding, bone names, a humanoid-only filter, and a browsable bone list.
- Rig diagnostics — flags missing / unmapped Humanoid bones.
- In-scene posing — rotate the selected bone (FK, with Undo), or use muscle sliders that respect the avatar's natural limits (
HumanPoseAdapter). Capture the scene pose into the Pose Library, save it as a.anim, or apply a library pose back. - Bone-weight visualization — color the mesh vertices most influenced by the selected bone (blue → red) — handy for reviewing an auto-rigged skin.
Auto-Rigger
Rig an unrigged humanoid mesh Mixamo-style — auto and marker-guided, in one tool — so it can play your generated clips.
Open Window → PromptMotion → Auto-Rigger (also on the Max Studio Tools tab, or right-click a model and choose Assets → PromptMotion → Auto-Rig Unrigged Model). Assign an unrigged humanoid mesh (a MeshFilter or SkinnedMeshRenderer), in an upright T-pose, and:
Max estimates a 17-bone Humanoid skeleton from the mesh's bounds (standard biped proportions), skins it (
SkinWeightSolver — inverse distance-to-bone-segment, top-4 influences, normalized), and builds the Humanoid avatar (HumanoidSkeletonFitter + AutoRigBuilder). The result drops into the scene at the origin, ready to animate.One slider controls how tightly vertices bind to the nearest bone — higher = crisper joints, lower = softer blends (~2 is a good start).
If the automatic fit is off, expand Adjust markers, nudge any of the 15 joint markers (pelvis, neck, head, shoulders, elbows, wrists, hips, knees, ankles), and click Rebuild from markers — marker-guided rigging, in the same window.
Runtime Systems
The first non-editor layer — real-time systems that dynamically override the animation while the game plays. These ship in builds.
Editor tools fix the clip; the runtime systems react live. They live in PromptMotion.Runtime and are added one-click, auto-configured from the Humanoid avatar — from the Max Studio Rig tab or the GameObject → PromptMotion menu.
🧊 Real-time IK
Final-IK-class: pin hands/feet, force look-at, per-limb + master weights.
👣 Foot Grounder
Raycast grounding + pelvis drop that adapts to slopes and steps live.
🧉 Active Ragdoll
PuppetMaster-class: push / hit it, the struck limb goes physical, then recovers.
🌊 Secondary Motion
Spring bones, twist distribution, aim constraints.
Real-time IK
Analytic two-bone IK + look-at, with a one-component Humanoid wrapper.
- IKMath — analytic two-bone solver (law-of-cosines bend → aim → pole twist) + clamped look-at. Pure and tested.
- LimbIK / LookAtIK — generic effectors for any rig;
Solve()is public (edit-mode testable), runs in LateUpdate. - HumanoidIK — one component, zero setup: auto-resolves the Humanoid bones, then pins a hand or foot to a target, forces the head to look at an object, and blends each with its own weight plus a master weight. Bend defaults to the natural animated bend; head axes auto-inferred per rig.
Add it from the Rig tab (Add Humanoid IK) or GameObject → PromptMotion. Preview it with no Play mode via Window → PromptMotion → IK Preview — drag a limb's target and watch the two-bone solve live in a viewport (the same solver the runtime uses).
Foot Grounder
Runtime per-leg grounding that adapts to terrain as the game plays.
FootGrounder does true per-leg grounding through HumanoidIK: heel + toe rays, foot-to-slope alignment, a step clamp, and anti-pop smoothing, plus a pelvis drop so the hips lower when a foot reaches down. Where the editor Grounding bake fixes a clip's feet ahead of time, the Foot Grounder adapts to whatever surface the character is standing on at runtime — slopes, steps, uneven ground. Add it with Add Foot Grounder on the Rig tab.
Active Ragdoll
A PuppetMaster-class physics puppet that follows the animation, reacts to hits, then recovers — auto-built, no manual ragdoll authoring.
- RagdollBuilder — one-click puppet auto-built from the avatar (colliders, masses, joint limits sized from bone lengths). No manual ragdoll setup.
- ActiveRagdoll — the driver: a physics puppet follows the animation via ConfigurableJoint slerp-drive "muscles" + a root pin (FixedUpdate, Animator in Fixed mode = one clock, the anti-jitter fix). Simple API:
SetMuscleWeight,SetGroupWeight,Hit,GoLimp,Recover. - RagdollCollisionRelay — auto-added per bone so impacts react with no gameplay code (an impulse over a threshold unpins the struck region; adjacent-bone collisions auto-ignored for stability).
- RagdollRecovery — knockdown → settle → get-up state machine that blends the ragdoll back to animation (optional face-up/down clips, root re-placement).
- Per-bone hit ID (
RagdollBoneTag+ResolveHit) for head-shots / damage zones; IRagdollModule extension hook running inside the physics step. - RagdollAnchor — spring-pull a limb to a world target (grab a ledge, hang, drag a body, magnet).
- RagdollLOD — distance-based budget: near = full, mid = relaxed, far = simulation off (pure animation, ~free) — for crowds.
- Dismemberment (
Detach) and equipables (RagdollEquipable— weighted items on bones that influence the simulation).
Add it with Add Active Ragdoll on the Rig tab, then enter Play mode. Drag the master weight down (or call Hit / GoLimp / Recover from your code) to blend physics in and out.
Secondary Motion
Follow-through and constraint helpers that add life on top of the base animation.
- SpringBone — secondary dynamics (jiggle / follow-through) for hair, tails, cloth and accessories. Add it to a bone that starts a child chain with Add Spring Bone to selected on the Rig tab.
- TwistBoneDistributor — drive forearm / upper-arm twist bones to fix candy-wrapper deformation.
- AimConstraint — aim any object's axis at a target (turrets, eyes, guns, signs).
Runtime Playback
Play and layer clips at runtime without authoring an Animator Controller.
- ClipPlayer — play / crossfade generated clips at runtime via a PlayableGraph, with no Animator Controller.
- PoseOverlay — layer an additive pose / clip on top of the Animator at runtime (aim / lean / recoil), with a per-region AvatarMask, a blendable weight, and auto-blend-out for one-shots.
Pro Toolset
One window, four tabs. Turn raw clips into game-ready animation without leaving Unity. Included in Max alongside Max Studio.
Open Window → PromptMotion → Pro Toolset. A header bar switches between four tools: Clip Tools, Mecanim, Batch, and Sequencer. Everything here is non-destructive — your source clips are never modified, and results are written as new assets under Assets/PromptMotion/Generated/.
✂ Clip Tools
Non-destructive cleanup for any humanoid clip, with a live preview on a character you assign. Drag a generated clip (or any .anim) into Source clip, and optionally a character to preview on.
- Trim — crop to an in/out window.
- Smooth (denoise) — remove the jitter common in AI/mocap output.
- Speed — retime faster or slower.
- Mirror — swap left/right.
- Make seamless loop — blend the end into the start so it loops cleanly.
- Set Loop Time / In place — loop flag, and bake horizontal root motion into the pose.
Click Apply & Save As .anim to bake the result to Assets/PromptMotion/Generated/Clips/. The Advanced section adds Extract Pose (freeze the current frame to a one-pose clip) and Add Event (drop an AnimationEvent at the current preview time).
⚙ Mecanim Wiring
Build a working AnimatorController from clips without hand-wiring.
- Locomotion blend tree — assign Idle / Walk / Run and a parameter (default
Speed); produces a 1D blend tree at thresholds 0 / 0.5 / 1. - Add clip as state — add a single clip as a state, optionally with a Trigger parameter and an Any-State transition.
Controllers are written to Assets/PromptMotion/Generated/Controllers/. Leave the Existing controller slot empty to create a new one, or assign one to extend it.
☰ Batch Generation
Queue many generations and run them unattended — this is what the 300-generation allowance is for. Requires an active invoice and internet.
Type a prompt, set duration and optional Variations (N seeded copies), and click Add to Queue. The field clears so you can type the next and add again.
Pick a Macro (e.g. "Locomotion set") to append a whole curated set of prompts at once.
Remove any queued item with its ✕ button, or Clear to empty the queue.
Jobs run one at a time (
queued → running → done). Cancel stops after the current job.♪ Clip Sequencer
Stitch an ordered list of clips into one, with crossfades — combos, cinematic sequences, or a back-to-back loop set. Add clip slots, set a crossfade, and click Build Sequence & Save. The result lands in Generated/Clips/ (length ≈ the sum of the clip lengths minus the crossfades).
From the Project window & Library
Right-click one or more AnimationClips in the Project window for PromptMotion → Clean Up Clip (opens Clip Tools with the clip loaded) and PromptMotion → Export Clean Copies (bulk-exports clean copies). The same Clean Up Clip and Add to Controller actions appear when you right-click a clip card in the Animation Library.
Library: Overview
Pre-baked humanoid clips, bundled. Offline, instant, free.
The Library is a small set of pre-generated humanoid clips bundled directly inside the asset. They ship as standard Unity AnimationClip assets that retarget to any Humanoid character — no backend, no internet, no quota.
Why a Library at all, when the Generator exists?
Asset Store reviewers and customers behind corporate firewalls can use the asset without internet.
See output quality before using your monthly allowance.
Common motions covered out of the box.
Your prototype keeps moving even when you can't reach the backend.
The Library and the Generator share the same Humanoid Avatar foundation, the same ClipApplier, and the same auto-import behaviour. A clip from the Library and a clip from the Generator are interchangeable in your AnimatorController.
Library: Clips Included
Five hand-picked starter clips covering common motions.
Each clip was generated by the Generator, manually reviewed, and curated to demonstrate the kinds of output you can expect. All five are configured for Humanoid retargeting and ship as standalone .anim files at Assets/PromptMotion/Library/StarterClips/.
♬ [clip_name_1]
[~Xs] [Locomotion] — [Description, e.g. "Confident forward walk, idle-to-walk-to-idle, loops cleanly."]
♬ [clip_name_2]
[~Xs] [Category] — [Short description.]
♬ [clip_name_3]
[~Xs] [Category] — [Short description.]
♬ [clip_name_4]
[~Xs] [Category] — [Short description.]
♬ [clip_name_5]
[~Xs] [Category] — [Short description.]
Library: How to Use
Three equivalent ways to get a Library clip onto a character.
Option 1 — Drag onto an Animator
In the Project window, drag any .anim from Assets/PromptMotion/Library/StarterClips/ onto a Humanoid GameObject in the Hierarchy. Unity auto-creates an Animator Controller (if absent) and adds the clip as the default state.
Option 2 — Drop into an existing AnimatorController
Open an AnimatorController, drag the clip onto the graph to create a new state, then wire transitions as usual. Useful when integrating into an existing state machine.
Option 3 — Use the Animation Library window
Window → PromptMotion → Animation Library. Drop your character into the slot, click any clip card to preview it on your rig, then click Apply to wire it into the controller. The window handles prefab vs scene-instance distinctions, controller lookup, and idempotent state updates for you.
Option 4 — Animation window
Select the character, open Window → Animation → Animation, and drag the clip into its track list. Useful when you're authoring a Timeline.
Library: Customizing Clips
Library clips are standard Unity AnimationClips. Anything goes.
Anything you can do to a hand-authored clip, you can do to a Library clip:
- Edit curves in
Window → Animation → Animation. - Change loop behaviour, root motion, cycle offset in the clip's Inspector.
- Apply Avatar Masks for layered animation (e.g. upper-body sword swing while lower body keeps walking).
- Blend between clips in a
BlendTree. - Mix into a Timeline.
- Retarget by virtue of Humanoid — the same clip works on Mixamo X Bot, a Synty character, your own rig.
Library: Why Bundle Both
Generator and Library cover different needs.
| Generator | Library | |
|---|---|---|
| Internet required | Yes | No |
| Active invoice required | Yes | No |
| Wait time | ~38–83 s | Instant |
| Allowance cost | 1 of your monthly generations | Free |
| Specificity | Anything you can describe | Five curated motions |
| Works offline | No | Yes |
The Library is the safety net. The Generator is the workhorse. You'll mostly reach for the Generator once you're set up — the Library is what makes the asset functional in evaluation mode, in offline scenarios, and as a quality preview before purchase.
Humanoid Avatar System
Why the asset is Humanoid-only, and how to fix Generic-rig issues.
Both tools rely on Unity's Humanoid Avatar system to retarget a generic skeleton onto whatever character you provide. A few things worth knowing:
Why Humanoid and not Generic
Humanoid is a normalized rig: Unity maps any compatible skeleton to its standard 15 bones (hips, spine, chest, neck, head, shoulders, upper/lower arms, hands, upper/lower legs, feet). A clip authored on a normalized rig retargets to any Humanoid character without manual bone mapping. Generic clips are tied to the source skeleton and don't transfer cleanly.
What Unity needs from your rig
- A skeleton with bones named in any pattern Unity recognises (most do, including Mixamo, Synty, Quaternius, and most CC-licensed rigs).
- Animation Type set to Humanoid in the model's Import Settings — Rig tab.
- An Avatar sub-asset embedded in the FBX (Unity creates this when you switch to Humanoid).
- An
Animatorcomponent on the character GameObject with the Avatar slot filled.
Generic-rig fix
If your character imports as Generic by default and PromptMotion rejects it, re-import:
Auto-Import Pipeline
An AssetPostprocessor configures every Generated FBX so you don't have to.
What MotionFbxPostprocessor does
For every FBX under Assets/PromptMotion/Generated/:
- Sets Animation Type = Humanoid.
- Sets Avatar Definition = Create From This Model.
- Disables mesh, material, camera, and light import (the file is animation-only).
- Preserves the bone hierarchy as-is.
- Logs the configuration to the Console when Verbose Logging is on.
Files outside Generated/ are not touched — your own model imports are left alone.
Opting out
If you want a Generated FBX to use different import settings, move it out of the Generated folder. The postprocessor only fires on first import and on re-import — once a file is moved elsewhere, the standard Unity Import Settings panel takes over.
Apply to Character
From "I have an AnimationClip" to "the clip is wired into a controller."
ClipApplier handles everything from clip-in-hand to clip-on-character. It's used by both the Generator (after generation) and the Library (when you click Apply).
Three cases handled identically
- Prefab asset — the prefab in the Project window is opened with
PrefabUtility.LoadPrefabContents, edited, then saved withSaveAsPrefabAsset. - Prefab instance in a scene — modifications are recorded with
Undo.RecordObjectso they're persisted on the instance. - Plain scene GameObject — the scene object is edited directly.
What gets created
Animator component is added to the character if one isn't present.SkinnedMeshRenderer descendant.Assets/PromptMotion/Generated/Controllers/{character}_Controller.controller.Idempotent
Re-applying the same clip updates the existing state rather than duplicating it. Apply a different clip and a new state is added without disturbing the others.
When auto-apply fails
If the selection isn't a Humanoid character or doesn't have a SkinnedMeshRenderer the validator can find an Avatar from, the window shows a HelpBox with the saved FBX path and instructions to drag the clip in manually. The FBX is on disk either way — auto-apply is just a convenience.
Troubleshooting
Every error code, what it means, and how to recover.
The Generator window shows a status banner with a code-mapped message and a recovery button whenever something goes wrong. Twelve codes total — ten reported by the server, two emitted client-side.
Server-reported codes
INVALID_INVOICEAction requiredThe server doesn't recognize this invoice number.
What to do: Double-check the value at assetstore.unity.com → My Account → My Orders. Watch for trailing whitespace.
REFUNDED_INVOICEAction requiredThis invoice was refunded by Unity, so generation is permanently blocked on it.
What to do: Email ragendom@gmail.com if this is unexpected.
QUOTA_EXHAUSTEDAction requiredYou've used all 300 of your monthly generations.
What to do: Your next allowance is issued automatically (the message tells you when). Until then, the bundled Library clips, the whole Max Studio toolset and the Auto-Rigger remain available offline — none of them use the allowance.
RATE_LIMITEDAuto-retryToo many requests in a short window.
What to do: The window auto-retries once after the cooldown shown in the status. If the second attempt also fails, wait a minute and click Try again.
UPSTREAM_ERRORRecoverableThe generation model failed.
What to do: No quota was used. Click Try again. If it persists, vary the prompt slightly — some inputs reproducibly upset the model.
SERVICE_UNAVAILABLEAuto-retryThe backend is busy or warming up.
What to do: The window auto-retries after the cooldown. If the second attempt also fails, try again in a few minutes.
SERVER_ERRORAction requiredAn unexpected backend error.
What to do: Try again in a few minutes. If it persists, email ragendom@gmail.com with the timestamp from the Console.
BAD_REQUESTRecoverableSomething is malformed in the request.
What to do: Most often an empty prompt — type something descriptive and try again.
Client-side codes
NetworkErrorRecoverableThe client couldn't reach the server.
What to do: Check your internet connection, firewall, or VPN. See the network checklist below if you're behind a corporate firewall.
TimeoutRecoverableThe request took longer than GenerateTimeoutSeconds (default 180 s).
What to do: The server may be overloaded. Try again, or increase the timeout in Settings.asset.
Common issues
Character validation fails
The character isn't a valid Humanoid. See Character Requirements. Most often: Animation Type is set to Generic instead of Humanoid in the model's Rig tab. Re-import as Humanoid.
Preview is black
Almost always a render-pipeline interaction with the preview viewport. Enable Verbose Logging in Settings.asset to see what's happening. The clip generated correctly — only the in-editor preview is affected. Drag the FBX onto your character in the scene Hierarchy to see it animate normally.
Generation hangs
Click Cancel in the window and try again. If the second attempt also hangs, persistent failure usually means the BaseUrl in Settings is misconfigured — check it points to https://api.promptmotion.dev.
Network checklist
If you're behind a corporate firewall, whitelist:
https://api.promptmotion.dev(HTTPS, port 443) — the production backend.- Any CDN your firewall flags during the FBX download response — the file is served by the same domain.
The asset uses Unity's standard UnityWebRequest, which respects your system proxy. No custom protocols, no WebSocket, no peer-to-peer.
FAQ
Quick answers to the questions that come up most.
Can I use PromptMotion without internet?
Everything except the Generator: yes. The bundled Library, the entire Max Studio toolset, the Auto-Rigger and the runtime systems all work entirely offline on clips and meshes you already have — with no allowance used.
Generator: no. Generating a new motion from a prompt is a server round-trip and requires HTTPS access to the backend.
Are generated animations royalty-free for commercial use?
Yes. You own the generated outputs and can ship them in commercial projects without attribution. The underlying generation model disclaims ownership of generated content; commercial use is permitted.
What happens if I reach my monthly limit?
New generations pause until your next monthly allowance is issued (the window tells you when). Existing FBXes and cached prompts continue to work, and the bundled Library clips, the Max Studio toolset, and the Auto-Rigger all remain fully available — none of them use the allowance.
What if the service is down?
Use the Library. The five bundled clips work offline and don't depend on the backend.
How do I cancel a generation in progress?
Click the Cancel button that appears in the window during generation. The request is aborted client-side; no quota is consumed for cancelled requests.
Can I use a different character?
Yes — any Humanoid character works. Mixamo, Synty, Quaternius, custom rigs — if Unity recognises it as Humanoid, PromptMotion can target it.
Does this work in builds / at runtime?
Generation and the Max Studio authoring tools are editor-only. Once an FBX is generated (or you're using a Library clip), the asset is just an AnimationClip and works in any build target Unity supports — standalone, mobile, console, WebGL. The runtime systems (IK, active ragdoll, spring bones, ClipPlayer, PoseOverlay) live in PromptMotion.Runtime and do ship in builds — they run at play time.
Can I use this with HDRP?
Yes. The package is render-pipeline-agnostic. It produces standard Mecanim clips that work with URP, HDRP, and Built-in.
My team has multiple developers. Do we each need a license?
Yes. Per Unity Asset Store policy, each seat that uses the asset needs its own license.
Why does the same prompt return "Cached"?
Identical (prompt, duration, seed) produces a cache hit. Cache hits are free and use none of your monthly allowance. If you want a fresh result, change the seed (or click Random).
Support
Need help? We're here for you.
Get in Touch
Bug reports, feature requests, licensing questions — reach out and we'll get back to you.
✉ ragendom@gmail.comWe typically respond within 24–48 hours.
- Check the Troubleshooting section
- Verify your invoice via Refresh status
- Try the request twice — auto-retry resolves most transient errors
- Enable Verbose Logging in Settings to capture context
- Unity version (e.g.
6000.0.30f1) - PromptMotion version (Max v1.7)
- Render pipeline (Built-in / URP / HDRP)
- Steps to reproduce + Console output
REFUNDED_INVOICE message.PromptMotion Max v1.7 · Built for Unity 6000.0+
Powered by NVIDIA Kimodo (SOMA-RP-v1) · Support: ragendom@gmail.com