Vytvoří úkol Animace, který aplikuje animaci na postavu, kterou jste dříve zrigovali. Animace může být jedna z následujících:
Předpřipravená akce z knihovny animací (action_id)
Několik předpřipravených akcí sloučených do jednoho souboru (action_ids)
Pohybová klipová animace, kterou jste vygenerovali pomocí Text to Motion API (motion_task_id)
Výstup můžete také dodatečně zpracovat. Úkol běží na pozadí. Informace o tom, jak dlouho úkol obvykle trvá, najdete v části Doby zpracování.
Request
POST
/openapi/v1/animations
# Animate a rigged model with required params onlycurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "action_id": 92 }'# Apply several preset actions and get one file with one clip per actioncurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "action_ids": [10, 25, 92] }'# Apply a generated Text to Motion clip instead of a preset actioncurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "motion_task_id": "018c425b-b2c6-727e-d333-3c1887i9h791" }'# With post-processing to change FPScurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "action_id": 92, "post_process": { "operation_type": "change_fps", "fps": 24 } }'
Response
{"result":"018c425b-b2c6-727e-d333-3c1887i9h791"}
Parametry
Name
rig_task_id
Type
string
Povinné
Description
ID úkolu Rigování, jehož postavu chcete animovat, z POST /openapi/v1/rigging. Úkol musí mít stav SUCCEEDED.
Odešlete přesně jeden z parametrů action_id, action_ids a motion_task_id.
Name
action_id
Type
integer
Povinné
Description
Vyžadováno, pokud neodešlete action_ids nebo motion_task_id. ID předpřipravené animace, která se má použít. Úplný seznam animací najdete v referenci Knihovna animací nebo v Seznamu animací.
Name
action_ids
Type
array of integers
Povinné
Description
Vyžadováno, pokud neodešlete action_id nebo motion_task_id. ID 1 až 10 předpřipravených animací, které se mají aplikovat najednou, bez opakování. Více než 10 ID nebo opakované ID vrátí 400. Seznam ID najdete v referenci Knihovna animací.
Meshy vrátí jeden soubor s jedním animačním klipem na akci, což se hodí pro stavový automat v herním enginu. Meshy účtuje za každou akci v seznamu. Viz Ceny.
Seznam s jedním ID funguje stejně jako odeslání tohoto ID jako action_id.
Name
motion_task_id
Type
string
Povinné
Description
Vyžadováno, pokud neodešlete action_id nebo action_ids. ID úkolu Text to Motion, jehož klip se má použít místo předpřipravené akce. Úkol musí mít stav SUCCEEDED a rig musí být dvounohý (biped).
Meshy přeplánuje (retarget) klip na zrigovanou postavu. Klip zkopíruje v okamžiku vytvoření tohoto úkolu, takže tento úkol není ovlivněn, pokud úkol Text to Motion později vyprší nebo ho smažete. Meshy uchovává soubory úkolu Text to Motion po dobu 3 dnů, proto klip použijte před uplynutím této doby.
Name
post_process
Type
object
Description
Dodatečné zpracování výstupu animace. Pokud jej vynecháte, získáte standardní soubory animace.
S motion_task_id může přeplánování (retarget) vytvořit animaci pouze ve formátu GLB. Pokud odešlete post_process a soubor FBX není k dispozici, úkol selže s chybou task_error a Meshy vrátí vaše kredity. Bez post_process úkol uspěje a animation_fbx_url je prázdné.
Platí pouze když post_process is set
Name
operation_type
Type
string
Description
Operace, která se má spustit. Bez ní Meshy nevytvoří žádný další soubor. Hodnota, která není v následujícím seznamu, vrátí 400.
Dostupné hodnoty:
change_fps: změní snímkovou frekvenci na fps
fbx2usdz: převede animaci do formátu USDZ
extract_armature: extrahuje armaturu jako soubor FBX
Name
fps
Type
integer
výchozí 30
Description
Snímková frekvence, na kterou se má změnit, jedna z hodnot 24, 25, 30 nebo 60. Platí pouze pokud je operation_type nastaveno na change_fps. Jakákoli jiná hodnota vrátí 400.
S action_ids úkol vrátí jeden sloučený soubor místo jednoho souboru na akci. animation_glb_url a animation_fbx_url každý odkazují na jeden soubor, který obsahuje všechny požadované akce jako samostatné klipy. V tomto souboru:
Pořadí klipů: pořadí pole action_ids, nikoli číselné pořadí ID.
Názvy klipů: název animace v knihovně. Tyto odpovídají názvům, které získáte při exportu všech animací postavy jako jednoho souboru z webové aplikace Meshy. Pokud mají dvě požadovaná ID stejný název klipu, Meshy přidá action_id k pozdějšímu z nich, aby byly názvy jedinečné.
Dodatečné zpracování: Meshy jej aplikuje na sloučený soubor, nikoli na každý klip zvlášť.
Návratová hodnota
Pole result v odpovědi obsahuje ID nového úkolu Animace.
Režimy selhání
Name
400 - Bad Request
Description
Požadavek nelze spustit. Chybová zpráva uvádí, jaký problém byl nalezen. Například:
Chybějící parametr: rig_task_id chybí, nebo nebyl odeslán žádný z parametrů action_id, action_ids a motion_task_id.
Konfliktní parametry: Požadavek obsahuje více než jeden z parametrů action_id, action_ids a motion_task_id. Odešlete pouze jeden.
Neplatný úkol rigování: rig_task_id není platné ID úkolu, není úkolem Rigování, nebo odkazuje na úkol, který neuspěl.
Neplatné ID akce: action_id nebo položka v action_ids není platná animace.
Příliš mnoho akcí: action_ids obsahuje více než 10 ID.
Duplicitní akce: action_ids obsahuje stejné ID vícekrát.
Úkol pohybu není připraven: Úkol motion_task_id ještě nedosáhl stavu SUCCEEDED.
Nepodporovaný rig: motion_task_id vyžaduje dvounohý (biped) rig a Meshy odmítne čtyřnohý (quadruped) rig.
Opravte požadavek a odešlete jej znovu. Viz Chyby.
Name
401 - Unauthorized
Description
API klíč chybí nebo je neplatný. Zkontrolujte hlavičku Authorization.
Name
402 - Payment Required
Description
Například:
Nedostatek kreditů: Účet nemá dostatek kreditů na tento úkol, nebo účet dosáhl limitu kreditů. Zkontrolujte svůj zůstatek kreditů a zkuste to znovu.
Plán zdarma: Vytvoření úkolu vyžaduje placený plán. Upgradujte svůj plán v nastavení předplatného a zkuste to znovu.
Name
403 - Forbidden
Description
Úkol rig_task_id je model typu basreliéf, který tento koncový bod nedokáže animovat. Zprávou je This model type does not support this operation. Zrigujte jiný model.
Name
404 - Not Found
Description
Meshy nemůže najít úkol nebo soubor, který požadavek vyžaduje. Platí jedno z následujícího:
Meshy nemůže najít úkol rig_task_id mezi vašimi úkoly. Zkontrolujte ID.
Meshy smazalo soubory úkolu rig_task_id po jeho expires_at. Postavu znovu zrigujte.
Meshy nemůže najít úkol motion_task_id. Zkontrolujte ID.
Pohybový klip vypršel, protože Meshy uchovává soubory úkolu Text to Motion po dobu 3 dnů. Vytvořte další úkol Text to Motion.
Name
429 - Too Many Requests
Description
Překročili jste svůj limit rychlosti. Počkejte a zkuste to znovu. Viz Limity rychlosti.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS. The task keeps running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
Parametry cesty
Name
id
Type
path
Description
ID úlohy, která má být smazána.
Stav úlohy
Smazání úlohy ve stavu PENDING vrátí kredity, které byly použity při jejím vytvoření.
Úlohu ve stavu IN_PROGRESS nelze smazat. Požadavek vrátí 409 Conflict
a úloha dál běží. Meshy nevrací kredity za úlohu, která už byla spuštěna,
takže její smazání by vás stálo jak kredity, tak výsledek. Počkejte, až
dosáhne stavu SUCCEEDED, FAILED nebo CANCELED, a poté ji smažte.
Smazání úlohy v konečném stavu (SUCCEEDED, FAILED nebo CANCELED)
kredity nevrací.
Návratová hodnota
200 OK, pokud je úloha smazána, nebo 409 Conflict, pokud je úloha
ve stavu IN_PROGRESS.
Vrátí stránkovaný seznam vašich úloh Animace, od nejnovějších. Pro procházení seznamem po stránkách použijte page_num a page_size.
Úlohy vytvořené přes API se nezobrazují v sekci My Assets ve webové aplikaci, takže je spravujete přes API. Pokud potřebujete najít úlohu, jejíž ID již nemáte, použijte tento koncový bod.
// Error event exampleevent: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// These examples are shortened. Each event holds the full task object.event: messagedata: {"id": "018c425b-b2c6-727e-d333-3c1887i9h791","progress": 0,"status": "PENDING"}event: messagedata: {"id": "018c425b-b2c6-727e-d333-3c1887i9h791","progress": 50,"status": "IN_PROGRESS"}event: messagedata: { // Example of a SUCCEEDED task stream item, with the same structure as the Animation task object"id": "018c425b-b2c6-727e-d333-3c1887i9h791","type": "animate","status": "SUCCEEDED","created_at": 1747032440896,"progress": 100,"started_at": 1747032441210,"finished_at": 1747032457530,"expires_at": 1747291657530,"task_error": null,"consumed_credits": 3,"result": {"animation_glb_url":"https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.glb?...","animation_fbx_url":"https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.fbx?...","processed_usdz_url":"https://assets.meshy.ai/.../processed.usdz?...","processed_armature_fbx_url":"https://assets.meshy.ai/.../processed_armature.fbx?...","processed_animation_fps_fbx_url":"https://assets.meshy.ai/.../processed_60fps.fbx?..." }}
Každá událost obsahuje celý objekt úlohy ve stejném tvaru, jaký vrací koncový bod Get. Dokud je úloha ve stavu PENDING nebo IN_PROGRESS, její pole výsledků zatím nemají hodnoty.
ID úkolu. Považujte jej za neprůhledný řetězec a nespoléhejte na jeho formát.
Name
type
Type
string
Description
Typ úkolu, vždy animate.
Name
status
Type
string
Description
Stav úkolu, jeden z PENDING, IN_PROGRESS, SUCCEEDED, FAILED nebo CANCELED.
Name
progress
Type
integer
Description
Kolik z úkolu je hotovo, v procentech. Je 0, dokud úkol nezačne, a 100, když uspěje.
Name
created_at
Type
timestamp
Description
Čas vytvoření úkolu, v milisekundách Unix.
Name
started_at
Type
timestamp
Description
Čas zahájení úkolu, v milisekundách Unix. Je 0, dokud úkol nezačne.
Name
finished_at
Type
timestamp
Description
Čas dokončení úkolu, v milisekundách Unix. Je 0, dokud úkol neskončí.
Name
expires_at
Type
timestamp
Description
Čas, kdy vyprší platnost výsledných souborů úkolu, v milisekundách Unix.
Name
task_error
Type
object
Description
Podrobnosti o chybě, pokud úkol selže. Je null, pokud stav není FAILED. Viz Chyby.
Name
consumed_credits
Type
integer
Description
Počet kreditů, které úkol spotřeboval. Přítomno, když je stav PENDING, IN_PROGRESS nebo SUCCEEDED. U úkolu se stavem FAILED je to 0, protože Meshy v případě selhání úkolu kredity vrací.
Name
result
Type
object
Description
Odkazy ke stažení souborů animace, pokud má úkol stav SUCCEEDED.
Name
animation_glb_url
Type
string
Description
Animace jako soubor GLB. U úkolu vytvořeného s action_ids obsahuje tento jediný soubor každou požadovanou akci jako samostatný klip.
Name
animation_fbx_url
Type
string
Description
Animace jako soubor FBX. U úkolu vytvořeného s action_ids obsahuje tento jediný soubor každou požadovanou akci jako samostatný klip.
Name
processed_usdz_url
Type
string
Description
Zpracovaná animace jako soubor USDZ.
Name
processed_armature_fbx_url
Type
string
Description
Zpracovaná armatura jako soubor FBX.
Name
processed_animation_fps_fbx_url
Type
string
Description
Animace se změněnou snímkovou frekvencí jako soubor FBX, například když jste použili operaci change_fps.
Name
preceding_tasks
Type
integer
Description
Počet úkolů, které jsou ve frontě před tímto úkolem. Hodnota má smysl pouze tehdy, je-li úkol ve stavu PENDING. Pole se vynechává, pokud je hodnota 0.
Vrátí všechny animace v knihovně, seřazené podle action_id. Odpověď je kompletní seznam, bez stránkování, takže jedno volání může naplnit celý výběr akcí. Filtry zužují výsledek. Chcete-li získat všechny animace, všechny je vynechte.
Chcete-li procházet stejný seznam s animovaným náhledem každé akce, podívejte se na referenci Knihovny animací.
Text, který se má vyhledat. Meshy vrátí animace, jejichž name nebo key obsahuje tento text, bez ohledu na velikost písmen. Meshy porovnává text doslovně, takže % a _ nejsou zástupné znaky.
Name
category
Type
string
Description
Kategorie, která se má vypsat, jako přesná shoda. Neznámá kategorie vrátí prázdný seznam.
Dostupné hodnoty:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Podkategorie, která se má vypsat, jako přesná shoda. Lze ji poslat i bez category. Názvy podkategorií nejsou napříč kategoriemi jedinečné. Například Transitioning spadá jak pod Fighting, tak pod DailyActions. Takže bez category filtr odpovídá podkategorii ve všech kategoriích.
Name
action_ids
Type
string
Description
Animace, které se mají vrátit, jako seznam až 200 hodnot action_id oddělených čárkou. Použijte ho k vyhledání konkrétních ID místo procházení. Více než 200 ID vrátí 400.
Odpověď vynechá ID, které nemá žádná animace. Tento filtr tak můžete použít i ke kontrole, zda jsou ID, která jste si uložili, stále dostupná.
Kombinování filtrů
Meshy aplikuje filtry společně. Každý z nich zužuje výsledek, takže Meshy vrátí animaci, jen pokud odpovídá všem filtrům. V rámci jednoho filtru může odpovídat kterákoli z jeho hodnot. Například search odpovídá name nebo key a action_ids odpovídá libovolnému ID v seznamu.
Kombinace bez průniku tedy vrátí prázdné pole, ne chybu. Akce 92 je „Double Combo Attack“, animace kategorie Fighting. Například:
?action_ids=92&category=Fighting vrátí akci 92.
?action_ids=92&category=Dancing vrátí [], protože to není animace Dancing.
?action_ids=92&search=walk vrátí [], protože její název neodpovídá walk.
Chcete-li získat konkrétní animace v libovolné kategorii, pošlete action_ids samostatně.
Vytvoření úlohy Animace přijímá každé action_id, které tento koncový bod vrací, a tento koncový bod vrací každé ID, které vytvoření přijímá. Žádný z nich nezahrnuje vyřazené animace. Pokud si knihovnu ukládáte do mezipaměti, čas od času ji obnovte, aby vyřazené ID nezůstalo ve vašem výběru.
Hodnota, kterou odešlete jako action_id při vytváření úlohy typu Animace. Je jedinečná a stálá, ale ne souvislá. Zrušené animace zanechávají mezery v číslování, takže nepředpokládejte, že každé ID v daném rozsahu je platné.
Name
name
Type
string
Description
Zobrazovaný název animace. Není jedinečný, protože některé animace sdílejí název s jinou variantou. K identifikaci animace použijte action_id nebo key.
Name
key
Type
string
Description
Jedinečný, stálý slug animace. Použijte jej, pokud potřebujete nenumerické ID pro indexování vlastního úložiště.
Name
category
Type
string
Description
Skupina nejvyšší úrovně, například Fighting.
Name
sub_category
Type
string
Description
Skupina v rámci kategorie, například AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL animovaného GIF náhledu akce. Můžete jej zobrazit přímo ve vlastním výběru.