PromptMotion Lite
Free AI text-to-animation for Unity. Generate humanoid Mecanim clips from plain-English prompts right in the Editor — 5 free lifetime generations, no purchase or account required. PromptMotion Lite - AI Animation Generator.
⬆ Get PromptMotion (Standard)
50 AI generations every month. The full Generator + Library, no lifetime cap. View on the Asset Store →
⭐ Get PromptMotion Pro
150 generations/month plus the Pro animation toolset (batch, Mecanim wiring, clip cleanup, sequencer). View on the Asset Store →
⚡ Generator
Online AI text-to-animation. Type a prompt, get a humanoid FBX in ~38–83 s.
🔒 Email Activation
Enter your email, get a 6-digit code, click Activate. Free — no purchase, no account, no API keys.
⏲ Free Trial
5 lifetime generations included. Cached prompts are free. Upgrade for a monthly allowance.
✏ Plain English Prompts
"walking forward confidently", "waving hello with the right hand". Describe motion, not character.
🧍 Any Humanoid Rig
Mixamo, Synty, Quaternius, custom — if Unity calls it Humanoid, we can drive it.
Getting-started topics are under Installation and Quick Start; the generation workflow under Generator; shared concepts under Concepts and Reference.
Compare Editions
You're using Lite (free). Standard and Pro add a monthly allowance, the bundled Animation Library, and — in Pro — the animation toolset.
| Lite Free (this asset) |
PromptMotion Standard |
PromptMotion Pro Pro |
|
|---|---|---|---|
| Price | Free | Paid | Paid |
| AI generations | 5 lifetime | 50 / month | 150 / month |
| Activation | Email code | 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 (starter clips) | ✗ | ✓ | ✓ |
| Pro toolset — batch & variation generation | ✗ | ✗ | ✓ |
| Pro toolset — Mecanim wiring (controllers + blend trees) | ✗ | ✗ | ✓ |
| Pro toolset — clip cleanup (trim / loop / mirror / smooth) | ✗ | ✗ | ✓ |
| Pro toolset — clip sequencer + prompt presets | ✗ | ✗ | ✓ |
Installation
Import once. The Generator window lights 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.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
Editor/
Shared/ // ClipApplier, Avatar validators, Preview viewport
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.Enter your email in the banner and click Send code. We email you a 6-digit code (valid 15 minutes); type it in and click Activate. This unlocks 5 free lifetime generations — no purchase or account required.
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 free generations. The status banner reads ✓ Cached result — no allowance used.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 activation email 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
A free email activation unlocks the trial. No purchase, no signup, no API key.
How activation works
- Enter your email in the Generator banner and click Send code.
- We email you a 6-digit code (valid 15 minutes).
- Type the code in and click Activate. That unlocks 5 free lifetime generations.
Your email is used only to grant one free trial and prevent abuse — it is never used for marketing or shared with third parties.
Reinstalling, or moving to another machine
Your 5 free generations are tied to your email. Just enter the same email again on the new install — we recognise the existing trial and restore it instantly, no new code required. (Window → PromptMotion → Reset Activation clears the locally-stored email if you ever need to re-enter it.)
One free trial per machine
The free trial is one-per-install: entering a different email on a machine that already activated one won't grant another 5 generations. For more, upgrade to PromptMotion (50/month) or PromptMotion Pro (150/month).
What gets sent to the server
Only this:
- Your activation email and a per-install activation code (HTTPS, in the JSON body).
- The prompt text you typed.
- Duration and optional seed.
- A client version string.
Not sent: real name, IP (other than what's inherent to HTTPS), Unity Editor analytics, scene contents, or any telemetry beyond the above.
Free Trial
5 lifetime generations included. Cached prompts use none of your trial.
How the trial works
Every successful generation uses one of your 5 free lifetime generations. Cached results — identical (prompt, duration, seed) — do not count. The trial is a one-time lifetime allowance, not a monthly reset.
The Ready banner shows your remaining count, for example: 3 of 5 free generations remaining.
What happens when the trial is used up
- The banner indicates the free trial is used up and offers upgrade options.
- Existing generations and cached prompts continue to work — only new generations are paused.
- Clips you already generated remain in your project and keep working.
- To keep generating, upgrade to PromptMotion (50 generations/month) or PromptMotion Pro (150/month plus a Pro animation toolset) on the Unity Asset Store — see Compare Editions.
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 trial.
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 free 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 activation email is stored separately in EditorPrefs and is never written to an asset.
Humanoid Avatar System
Why the asset is Humanoid-only, and how to fix Generic-rig issues.
PromptMotion relies 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. The Generator uses it automatically after each generation to wire the new clip into your character's Animator.
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
TRIAL_CODE_INVALIDAction requiredThe 6-digit code you entered doesn't match (or too many wrong attempts locked it).
What to do: Re-check the digits from your email. If it keeps failing, click Resend code for a fresh one.
TRIAL_CODE_EXPIREDAction requiredCodes are valid for 15 minutes; this one has expired.
What to do: Click Resend code to get a new one.
TRIAL_ALREADY_USEDAction requiredThis email (or this install) has already used its free trial.
What to do: Use a different email, or upgrade to PromptMotion / PromptMotion Pro for a monthly allowance.
QUOTA_EXHAUSTEDAction requiredYou've used all 5 of your free lifetime generations.
What to do: Upgrade to PromptMotion (50/month) or PromptMotion Pro (150/month) to keep generating. Your already-generated clips remain in your project.
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?
To generate, no. Generation is a server round-trip and requires HTTPS access to the backend (and a free email activation).
Clips you've already generated are plain Unity AnimationClip assets in your project — those work offline, in Play mode, and in builds.
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 when I use up my free trial?
New generations pause once all 5 free generations are used. Existing FBXes and cached prompts continue to work. To keep generating, upgrade to PromptMotion (50/month) or PromptMotion Pro (150/month) — see Compare Editions.
What if the service is down?
Generation is paused until it's back — transient errors auto-retry, and failed generations never consume a free generation. Clips you've already generated are unaffected. If an outage looks prolonged, email ragendom@gmail.com.
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 is editor-only. Once an FBX is generated, the asset is just an AnimationClip and works in any build target Unity supports — standalone, mobile, console, WebGL.
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 free generations. 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
- Refresh your trial status via Refresh in the banner
- 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 (v1.0.1)
- Render pipeline (Built-in / URP / HDRP)
- Steps to reproduce + Console output
PromptMotion v1.0.1 · Built for Unity 6000.0+
Powered by NVIDIA Kimodo (SOMA-RP-v1) · Support: ragendom@gmail.com