v1.0.1 · Unity 6000.0+

PromptMotion

Two animation tools, one Unity asset. Generate humanoid clips from text prompts with the online Generator, or drop pre-baked clips from the offline Library. Same Avatar, same workflow, one purchase.

Unity 6000.0+ Humanoid Mecanim URP / HDRP / Built-in Editor Tool
Two tools, one asset. PromptMotion bundles a Library of ready-to-use animation clips with a Generator that creates new ones on demand. Use the Library offline; use the Generator when you need something specific.
Generator requires an internet connection and an active invoice. The Library works offline. If you're evaluating PromptMotion for purchase, start with the Library to see motion quality before using your monthly allowance.

This document covers both tools. Generator-specific topics are grouped under Generator; Library-specific topics under Library. Sections that apply to both live under Concepts and Reference.

Installation

Import once. Both tools light up immediately.

From the Unity Asset Store

Open Package Manager
In Unity 6000.0 or later, open Window → Package Manager and switch the dropdown to My Assets.
Find PromptMotion, click Download then Import
Accept the import dialog with everything checked. The package lands at Assets/PromptMotion/.
Wait for compile
Unity recompiles editor scripts. The first time takes ~30 s; subsequent imports are faster.
Open a window
Window → PromptMotion → Generator for the AI tool, or Window → PromptMotion → Animation Library for the bundled clip browser.

Prerequisites

PromptMotion uses two Unity packages that ship with a default Unity 6 install:

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/
  Library/                    // Bundled clip browser + 5 starter clips
    Editor/
    StarterClips/             // .anim files retargetable to any Humanoid
  Shared/                     // ClipApplier, Avatar validators, Preview viewport
  Generated/                  // Output folder created on first generation
    Controllers/              // Per-character AnimatorControllers
  Documentation/              // You are hereProject
No character is bundled. You bring your own Humanoid rig — anything from Mixamo, Synty, Quaternius, or a custom skeleton works as long as the Avatar is configured as Humanoid. Library clips and generated clips both retarget to whatever you provide.

Quick Start: Generator

Zero to your first generated clip in about a minute (plus generation time).

Open the Generator window
Menu: Window → PromptMotion → Generator.
Paste your invoice number
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.
Assign a character
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.
Type a prompt
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).
Click ⚡ Generate
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.
Hit Play
Press Play in the Unity editor to see the clip on your character. See How It Works for what happens behind the scenes.
💡
Cache hits are free. Identical (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: Library

No invoice. No internet. No waiting.

The drag-and-drop path

Open the StarterClips folder
In the Project window, browse to Assets/PromptMotion/Library/StarterClips/. Or open Window → PromptMotion → Animation Library for the visual browser.
Drop a clip onto your Humanoid character
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.
Press Play
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:

Categories & Character Clip Card Grid Live Preview & Apply

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.

Prompt Backend Kimodo Retarget FBX Auto-Import Apply
  1. You type a prompt and click ⚡ Generate.
  2. The window posts { prompt, duration_seconds, seed } to https://api.promptmotion.dev/prod/generate with your invoice as authentication.
  3. The backend runs the prompt through NVIDIA's Kimodo (SOMA-RP) text-to-motion model.
  4. The raw motion is retargeted to a standard Humanoid skeleton on the server.
  5. The server returns a Mecanim-ready .fbx file.
  6. The client saves the FBX under Assets/PromptMotion/Generated/. An AssetPostprocessor auto-configures it as Animation Type: Humanoid.
  7. The window applies the resulting AnimationClip to your selected character via ClipApplier.

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.

Generation is editor-only. Once an FBX is on disk, the asset is just an 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:

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

50 generations per month included. Cached prompts use none of your allowance.

How the allowance works

Every successful generation uses one of your 50 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: 47 of 50 generations remaining this month. Next allowance arrives in 12 days.

What happens when the monthly limit is reached

Writing Prompts

Describe the motion. The model never sees your character.

Prompts that work well

Prompts that work less well

Current model limitations

✋ No fingers

Hand pose is a fixed default. The model doesn't pose individual fingers.

😐 No facial animation

Output is body skeleton only. Faces stay neutral.

👤 Single character

No interactions with other rigs, props, or scene geometry.

⏲ Approximate length

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).

💡
Commit to specific wording. Cache keys are exact-match on (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

Validator badges

Drop a character into the slot and the window checks:

BadgeStateWhat to do
✓ ValidAnimator + valid Humanoid Avatar present.Ready to generate / apply.
⚠ No AvatarRig has bones but the Avatar slot is empty.Click Auto-Configure to build one from bone names.
✗ No AnimatorThe GameObject has no Animator.Add an Animator component, assign a Humanoid Avatar.
✗ GenericAvatar is configured but as Generic, not Humanoid.Re-import the model with Animation Type = Humanoid.
✗ Invalid bone mappingAvatar 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

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.

The Generated/ folder is yours. Move clips into a tracked subfolder if you want them in version control. The folder is .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.

FieldDefaultDescription
Base Urlhttps://api.promptmotion.devThe backend endpoint. Override only if you're running a self-hosted backend.
Output FolderAssets/PromptMotion/GeneratedWhere downloaded FBXes land. Must be inside Assets/.
Default Duration Seconds4Pre-fill for the duration slider on a fresh prompt.
Verify Timeout Seconds10How long to wait for invoice probe / bind responses.
Status Timeout Seconds10How long to wait for status / refresh calls.
Generate Timeout Seconds180Cap for the generation request. Cold starts can hit ~83 s; 180 s leaves headroom.
Verbose LoggingfalseLogs 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 EditorPrefs (base64'd, XOR-obfuscated) and is never written to an asset.

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?

🌍 Offline-first

Asset Store reviewers and customers behind corporate firewalls can use the asset without internet.

👀 Try before you generate

See output quality before using your monthly allowance.

🎤 Starter content

Common motions covered out of the box.

🛡 Fallback when offline

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/.

Placeholder content below. Final clip names, durations, and descriptions are TBD — this section will be populated when the starter set is locked. The structure below is a template for the user to fill in.

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:

💡
Duplicate before editing. Library clips are not read-only by design, but if you intend to ship modified versions, copy the clip into your own folder first via Edit → Duplicate. That way a future Library update doesn't overwrite your edits.

🏆 Library: Why Bundle Both

Generator and Library cover different needs.

 GeneratorLibrary
Internet requiredYesNo
Active invoice requiredYesNo
Wait time~38–83 sInstant
Allowance cost1 of your monthly generationsFree
SpecificityAnything you can describeFive curated motions
Works offlineNoYes

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

Generic-rig fix

If your character imports as Generic by default and PromptMotion rejects it, re-import:

Select the model FBX in the Project window.
Open the Inspector, click the Rig tab.
Change Animation Type to Humanoid.
Leave Avatar Definition as Create From This Model.
Click Apply. Unity will rebuild the Avatar and report any unmapped bones in the configuration dialog.

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/:

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

What gets created

An Animator component is added to the character if one isn't present.
If the Animator's Avatar slot is empty, a Humanoid Avatar is auto-detected from a SkinnedMeshRenderer descendant.
A per-character AnimatorController is loaded or created at Assets/PromptMotion/Generated/Controllers/{character}_Controller.controller.
The new clip is added as a state in the Base Layer. The first state added becomes the default state.

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 required

The 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 required

This 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 required

You've used all 50 of your monthly generations.

What to do: Your next allowance is issued automatically (the message tells you when). Until then, the bundled Library clips remain available offline.

RATE_LIMITEDAuto-retry

Too 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_ERRORRecoverable

The 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-retry

The 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 required

An 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_REQUESTRecoverable

Something is malformed in the request.

What to do: Most often an empty prompt — type something descriptive and try again.

Client-side codes

NetworkErrorRecoverable

The 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.

TimeoutRecoverable

The 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:

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?

Library: yes. The five bundled clips work entirely offline.

Generator: no. Generation 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 remain available.

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 is 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.

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.com

We typically respond within 24–48 hours.

💬 Before contacting
  • 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
📋 Helpful info to include
  • Unity version (e.g. 6000.0.30f1)
  • PromptMotion version (v1.0.1)
  • Render pipeline (Built-in / URP / HDRP)
  • Steps to reproduce + Console output
Refunds within 14 days are handled by Unity directly via the Asset Store FAQ. We honour Unity's refund decisions; once an invoice is refunded server-side, generation is blocked with a clear REFUNDED_INVOICE message.
Enjoying PromptMotion? A review on the Unity Asset Store helps other developers discover the asset and helps us keep improving it. Thank you!

PromptMotion v1.0.1 · Built for Unity 6000.0+

Powered by NVIDIA Kimodo (SOMA-RP-v1) · Support: ragendom@gmail.com