Tento koncový bod umožňuje vytvořit nový úkol pro aplikaci animace na dříve ozbrojenou (rigovanou) postavu — přednastavenou akci z knihovny animací (action_id), několik přednastavených akcí sloučených do jednoho souboru (action_ids), nebo pohybovou klip vygenerovaný pomocí Text to Motion API (motion_task_id). Zahrnuje možnosti postprocessingu.
Úkol běží na pozadí. Informace o tom, jak dlouho to obvykle trvá, najdete v části Doby zpracování.
Parametry
Name
rig_task_id
Type
string
Povinné
Description
id úspěšně dokončeného úkolu riggingu (z POST /openapi/v1/rigging). Postava z tohoto úkolu bude animována.
Name
action_id
Type
integer
Description
Identifikátor přednastavené animační akce, která se má použít. Úplný seznam dostupných animací najdete v referenci Knihovny animací. Zadejte přesně jeden z parametrů action_id, action_ids nebo motion_task_id.
Name
action_ids
Type
array of integers
Description
Několik přednastavených animačních akcí, které se použijí najednou a vrátí se jako jeden soubor obsahující jeden animační klip na akci — užitečné pro řízení postavy ze stavového automatu v herním enginu. Zadejte 1 až 10 hodnot action_id z reference Knihovny animací; id musí být jedinečná. Stojí 3 kredity za akci. Zadejte přesně jeden z parametrů action_id, action_ids nebo motion_task_id.
Předání action_ids s jedním prvkem je rovnocenné předání této hodnoty jako action_id.
Name
motion_task_id
Type
string
Description
id úspěšně dokončeného úkolu Text to Motion, který se má použít místo přednastavené akce. Vygenerovaný klip je přemapován na rigovanou postavu a je pořízen jeho snímek v okamžiku vytvoření, takže tento úkol není ovlivněn, pokud zdrojový úkol později vyprší nebo je smazán. Assety zdrojového úkolu jsou uchovávány po dobu 3 dnů — klip použijte dříve, než vyprší. Vyžaduje dvounohý (biped) rig. Zadejte přesně jeden z parametrů action_id, action_ids nebo motion_task_id.
Name
post_process
Type
object
Description
Volitelný postprocessing pro výstup animace. Pokud jej vynecháte, obdržíte standardní animační soubory.
Platí pouze když post_process is set
Name
operation_type
Type
string
Povinné
Description
Typ operace, která se má provést. Dostupné hodnoty: change_fps, fbx2usdz, extract_armature.
Name
fps
Type
integer
výchozí 30
Description
Cílová snímková frekvence. Platí pouze pokud je operation_type nastaveno na change_fps. Povolené hodnoty: 24, 25, 30, 60.
Při použití action_ids úkol vrátí jeden sloučený soubor namísto jednoho souboru na akci: animation_glb_url a animation_fbx_url každý odkazují na jediný asset obsahující všechny požadované akce jako samostatné klipy.
Pořadí klipů: pořadí pole action_ids, nikoli číselné pořadí id.
Názvy klipů: název animace v knihovně, odpovídající názvům, které získáte při exportu všech animací postavy jako jednoho souboru z webové aplikace Meshy. Pokud se dvě požadovaná id přeloží na stejný název klipu, pozdější z nich je doplněno příponou s jeho action_id, aby byly názvy jedinečné.
Postprocessing: aplikuje se na sloučený soubor, nikoli na jednotlivé klipy.
Při použití motion_task_id může retargeting vytvořit animaci pouze ve formátu GLB. Pokud jste požadovali post_process a FBX není k dispozici, úkol selže s chybou task_error a vaše kredity budou automaticky vráceny; bez post_process úkol uspěje a animation_fbx_url je prázdné.
Návratová hodnota
Vlastnost result v odpovědi obsahuje id úkolu nově vytvořeného úkolu animace.
Režimy selhání
Name
400 - Bad Request
Description
Požadavek byl nepřijatelný. Běžné příčiny:
Chybějící parametr: chybí rig_task_id, nebo není zadán žádný z parametrů action_id, action_ids a motion_task_id.
Konfliktní parametry: byl zadán více než jeden z parametrů action_id, action_ids a motion_task_id — tyto parametry se vzájemně vylučují.
Neplatný úkol riggingu: rig_task_id je neplatný nebo odkazuje na neúspěšný/neexistující úkol.
Neplatné ID akce: action_id — nebo položka action_ids — neodpovídá platné animaci.
Příliš mnoho akcí: action_ids obsahuje více než 10 id.
Duplicitní akce: action_ids obsahuje stejné id více než jednou.
Ú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; čtyřnohé (quadruped) rigy jsou odmítnuty.
Name
401 - Unauthorized
Description
Autentizace selhala. Zkontrolujte prosím svůj API klíč.
Name
402 - Payment Required
Description
Nedostatek kreditů k provedení tohoto úkolu.
Name
404 - Not Found
Description
Úkol riggingu určený pomocí rig_task_id nebyl nalezen, úkol pohybu určený pomocí motion_task_id nebyl nalezen, nebo pohybový klip vypršel (assety zdrojového úkolu jsou uchovávány po dobu 3 dnů).
Name
429 - Too Many Requests
Description
Překročili jste svůj limit rychlosti.
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 } }'
Tento koncový bod umožňuje získat úlohu animace na základě platného id úlohy. Podrobnosti o tom, jaké vlastnosti jsou zahrnuty, najdete v části Objekt úlohy animace.
Parametry
Name
id
Type
path
Description
Jedinečný identifikátor úlohy animace, kterou chcete získat.
Návratová hodnota
Odpověď obsahuje objekt úlohy animace. Podrobnosti najdete v části Objekt úlohy animace.
Tento koncový bod trvale smaže úkol animace, včetně všech souvisejících modelů a dat. Tato akce je nevratná.
Parametry cesty
Name
id
Type
path
Description
ID úkolu animace, který se má smazat.
Stav úkolu
Úkol, který je stále ve stavu PENDING, je smazán a kredity spotřebované
při jeho vytvoření jsou vráceny.
Úkol, který je již ve stavu IN_PROGRESS, nelze smazat: požadavek je
odmítnut s 409 Conflict a úkol pokračuje v běhu. Kredity za úkol, který
worker již začal zpracovávat, nejsou refundovatelné, takže jeho smazání
během běhu by vás stálo kredity i výsledek zároveň. Počkejte, až dosáhne
stavu SUCCEEDED, FAILED nebo CANCELED, a poté jej smažte.
Úkol v koncovém stavu (SUCCEEDED, FAILED nebo CANCELED) je smazán
bez vrácení kreditů.
Návratová hodnota
Při úspěchu vrací 200 OK, nebo 409 Conflict, pokud je úkol ve stavu
IN_PROGRESS.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left 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."}
Vrátí stránkovaný seznam volajícího uživatele úkolů Animace, seřazený od nejnovějších. Standardní stránkování pomocí page_num a page_size.
Všimněte si, že úkoly vytvořené přes API jsou spravovány přes API — nezobrazují se v sekci Moje assety webové aplikace. Pomocí tohoto koncového bodu vyhledejte úkol, jehož ID již nemáte.
Objekt Animation Task představuje pracovní jednotku pro aplikování animace na postavu s riggem.
Vlastnosti
Name
id
Type
string
Description
Jedinečný identifikátor úlohy.
Name
type
Type
string
Description
Typ úlohy Animace. Hodnota je animate.
Name
status
Type
string
Description
Stav úlohy. Možné hodnoty: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress úlohy (0-100).
Name
created_at
Type
timestamp
Description
Časové razítko (v milisekundách od epochy), kdy byla úloha vytvořena.
Časové razítko představuje počet milisekund uplynulých od 1. ledna 1970 UTC, podle
standardu RFC 3339.
Například pátek 1. září 2023 12:00:00 GMT je reprezentován jako 1693569600000. To platí
pro všechna časová razítka v Meshy API.
Name
started_at
Type
timestamp
Description
Časové razítko (v milisekundách od epochy), kdy úloha začala zpracování. 0, pokud nebyla zahájena.
Name
finished_at
Type
timestamp
Description
Časové razítko (v milisekundách od epochy), kdy byla úloha dokončena. 0, pokud nebyla dokončena.
Name
expires_at
Type
timestamp
Description
Časové razítko (v milisekundách od epochy), kdy vyprší platnost výsledných assetů úlohy.
Name
task_error
Type
object
Description
Podrobnosti o chybě u neúspěšných úloh. Úplný popis objektu task_error najdete v části Chyby.
Name
consumed_credits
Type
integer
Description
Počet kreditů spotřebovaných touto úlohou. Je přítomno, pokud je stav úlohy PENDING, IN_PROGRESS nebo SUCCEEDED. U úloh se stavem FAILED vrací 0 (kredity jsou v případě selhání vráceny).
Name
result
Type
object
Description
Obsahuje URL adresy výstupní animace, pokud úloha skončila se stavem SUCCEEDED.
Name
animation_glb_url
Type
string
Description
URL ke stažení animace ve formátu GLB. U úlohy vytvořené s action_ids obsahuje tento jediný soubor každou požadovanou akci jako samostatný klip.
Name
animation_fbx_url
Type
string
Description
URL ke stažení animace ve formátu FBX. U úlohy vytvořené s action_ids obsahuje tento jediný soubor každou požadovanou akci jako samostatný klip.
Name
processed_usdz_url
Type
string
Description
URL ke stažení zpracované animace ve formátu USDZ.
Name
processed_armature_fbx_url
Type
string
Description
URL ke stažení zpracované armatury ve formátu FBX.
Name
processed_animation_fps_fbx_url
Type
string
Description
URL ke stažení animace se změněnou snímkovou frekvencí ve formátu FBX (např. pokud byla použita operace change_fps).
Name
preceding_tasks
Type
integer
Description
Počet předchozích úloh ve frontě. Má smysl pouze v případě, že stav je PENDING.
Vrátí všechny animace v knihovně, seřazené podle action_id. Odpověď je kompletní seznam, nikoli stránka, takže jedno volání stačí k naplnění výběru akcí. Filtry zužují výsledek; chcete-li získat vše, vynechte je všechny.
Chcete-li procházet stejný katalog vizuálně, s animovaným náhledem každé akce, podívejte se na referenci Knihovny animací.
Tento koncový bod je zdarma — nespotřebovává žádné kredity.
Parametry
Name
search
Type
string
Description
Shoda podřetězce bez rozlišení velikosti písmen na name nebo key. Porovnává se doslovně, takže % a _ jsou obyčejné znaky, nikoli zástupné symboly.
Name
category
Type
string
Description
Přesná shoda na category.
Dostupné hodnoty:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Přesná shoda na sub_category. Lze použít samostatně — názvy podkategorií nejsou napříč kategoriemi jedinečné (Transitioning se objevuje jak u Fighting, tak u DailyActions), takže bez category filtr odpovídá dané podkategorii kdekoli se objeví.
Name
action_ids
Type
string
Description
Seznam hodnot action_id oddělených čárkou, které se mají vrátit, pro vyhledání konkrétních id namísto procházení. Přijímá nejvýše 200 id. Id, které žádná animace nemá, jsou z odpovědi jednoduše vynechána, takže toto můžete využít i ke kontrole, zda id, která máte uložená, jsou stále dostupná.
Kombinování filtrů
Filtry se uplatňují společně — každý z nich dále zužuje výsledek, takže animace je vrácena pouze tehdy, splňuje-li je všechny. V rámci jednoho filtru odpovídá kterákoli z více hodnot: search odpovídá name nebo key a action_ids odpovídá libovolnému id ze seznamu.
To znamená, že kombinace bez průniku vrátí prázdné pole namísto chyby. Akce 92 je „Double Combo Attack“, animace kategorie Fighting:
?action_ids=92&category=Fighting vrátí akci 92.
?action_ids=92&category=Dancing vrátí [] — není to animace kategorie Dancing.
?action_ids=92&search=walk vrátí [] — její název neodpovídá walk.
Chcete-li získat konkrétní animace bez ohledu na jejich kategorii, předejte action_ids samostatně.
Každé action_id vrácené zde je přijímáno endpointem Vytvořit úlohu animace výše a každé id, které tento endpoint přijímá, je vráceno zde. Zrušené animace chybí v obou. Pokud si knihovnu ukládáte do mezipaměti, pravidelně ji obnovujte, aby se v ní zrušené id neobjevovalo déle, než je třeba.
Hodnota, kterou je třeba předat jako action_id při vytváření úlohy animace. Jedinečná a stabilní, ale ne souvislá — zrušené animace zanechávají mezery v číslování, takže nikdy nepředpokládejte, že je platný celý rozsah id.
Name
name
Type
string
Description
Čitelný popisek pro zobrazení. Není jedinečný: některé animace sdílejí název s jinou variantou, takže jako identitu použijte action_id nebo key.
Name
key
Type
string
Description
Jedinečný stabilní slug animace. Použijte jej, pokud potřebujete nenumerický identifikátor pro indexování vlastního úložiště.
Name
category
Type
string
Description
Skupina nejvyšší úrovně, např. Fighting.
Name
sub_category
Type
string
Description
Seskupení v rámci kategorie, např. AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL animovaného GIFu zobrazujícího náhled akce, vhodné pro přímé vykreslení ve vašem vlastním výběrovém nástroji.