Dieser Endpunkt ermöglicht es Ihnen, eine neue Aufgabe zu erstellen, um eine Animation auf einen zuvor gerigten Charakter anzuwenden — eine voreingestellte Aktion aus der Animationsbibliothek (action_id), mehrere zu einer Datei zusammengeführte voreingestellte Aktionen (action_ids) oder einen mit der Text to Motion API generierten Motion-Clip (motion_task_id). Enthält Nachbearbeitungsoptionen.
Parameter
Name
rig_task_id
Type
string
Erforderlich
Description
Die id einer erfolgreich abgeschlossenen Rigging-Aufgabe (von POST /openapi/v1/rigging). Der Charakter aus dieser Aufgabe wird animiert.
Name
action_id
Type
integer
Description
Die Kennung der anzuwendenden voreingestellten Animationsaktion. Eine vollständige Liste der verfügbaren Animationen finden Sie in der Animation-Library-Referenz. Geben Sie genau einen der Werte action_id, action_ids oder motion_task_id an.
Name
action_ids
Type
array of integers
Description
Mehrere voreingestellte Animationsaktionen, die gleichzeitig angewendet werden, zurückgegeben als eine einzelne Datei mit einem Animations-Clip pro Aktion — nützlich, um einen Charakter aus einer State-Machine in einer Game Engine heraus zu steuern. Geben Sie 1 bis 10 action_id-Werte aus der Animation-Library-Referenz an; die IDs müssen eindeutig sein. Kostet 3 Credits pro Aktion. Geben Sie genau einen der Werte action_id, action_ids oder motion_task_id an.
Die Übergabe eines einelementigen action_ids entspricht der Übergabe dieses Werts als action_id.
Name
motion_task_id
Type
string
Description
Die id einer erfolgreich abgeschlossenen Text to Motion-Aufgabe, die anstelle einer voreingestellten Aktion angewendet werden soll. Der generierte Clip wird auf den gerigten Charakter neu ausgerichtet, und der Clip wird zum Zeitpunkt der Erstellung als Snapshot gespeichert, sodass diese Aufgabe nicht betroffen ist, wenn die Quellaufgabe später abläuft oder gelöscht wird. Die Assets der Quellaufgabe werden 3 Tage lang aufbewahrt — wenden Sie den Clip an, bevor er abläuft. Erfordert einen zweibeinigen Rig. Geben Sie genau einen der Werte action_id, action_ids oder motion_task_id an.
Name
post_process
Type
object
Description
Optionale Nachbearbeitung für die Animationsausgabe. Lassen Sie es weg, um die Standard-Animationsdateien zu erhalten.
Gilt nur wenn post_process is set
Name
operation_type
Type
string
Erforderlich
Description
Der Typ der durchzuführenden Operation. Verfügbare Werte: change_fps, fbx2usdz, extract_armature.
Name
fps
Type
integer
Standard 30
Description
Die Ziel-Bildrate. Nur anwendbar, wenn operation_type gleich change_fps ist. Zulässige Werte: 24, 25, 30, 60.
Bei Verwendung von action_ids gibt die Aufgabe eine zusammengeführte Datei anstelle einer Datei pro Aktion zurück: animation_glb_url und animation_fbx_url verweisen jeweils auf ein einzelnes Asset, das jede angeforderte Aktion als separaten Clip enthält.
Clip-Reihenfolge: die Reihenfolge des action_ids-Arrays, nicht die numerische Reihenfolge der IDs.
Clip-Namen: der Name der Animation in der Bibliothek, entsprechend den Namen, die Sie erhalten, wenn Sie alle Animationen eines Charakters als einzelne Datei aus der Meshy-Web-App exportieren. Wenn zwei angeforderte IDs zum selben Clip-Namen führen, wird beim späteren mit seiner action_id ein Suffix angehängt, um eindeutige Namen zu gewährleisten.
Nachbearbeitung: wird auf die zusammengeführte Datei angewendet, nicht auf die einzelnen Clips.
Bei Verwendung von motion_task_id kann das Retargeting eine Animation erzeugen, die nur als GLB vorliegt. Wenn Sie post_process angefordert haben und keine FBX verfügbar ist, schlägt die Aufgabe mit einem task_error fehl, und Ihre Credits werden automatisch zurückerstattet; ohne post_process ist die Aufgabe erfolgreich, und animation_fbx_url ist leer.
Rückgabewerte
Die Eigenschaft result der Antwort enthält die Aufgaben-id der neu erstellten Animationsaufgabe.
Fehlermodi
Name
400 - Bad Request
Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
Fehlender Parameter: rig_task_id fehlt, oder keiner der Werte action_id, action_ids und motion_task_id wurde angegeben.
Widersprüchliche Parameter: mehr als einer der Werte action_id, action_ids und motion_task_id wurde angegeben — sie schließen sich gegenseitig aus.
Ungültige Rigging-Aufgabe: Die rig_task_id ist ungültig oder verweist auf eine fehlgeschlagene/nicht existierende Aufgabe.
Ungültige Aktions-ID: Eine action_id — oder ein Eintrag von action_ids — entspricht keiner gültigen Animation.
Zu viele Aktionen: action_ids enthält mehr als 10 IDs.
Doppelte Aktionen: action_ids enthält dieselbe ID mehrfach.
Motion-Aufgabe nicht bereit: Die durch motion_task_id referenzierte Aufgabe hat noch nicht den Status SUCCEEDED erreicht.
Nicht unterstützter Rig: motion_task_id erfordert einen zweibeinigen Rig; vierbeinige Rigs werden abgelehnt.
Name
401 - Unauthorized
Description
Die Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.
Name
402 - Payment Required
Description
Unzureichende Credits, um diese Aufgabe auszuführen.
Name
404 - Not Found
Description
Die durch rig_task_id angegebene Rigging-Aufgabe wurde nicht gefunden, die durch motion_task_id angegebene Motion-Aufgabe wurde nicht gefunden, oder der Motion-Clip ist abgelaufen (die Assets der Quellaufgabe werden 3 Tage lang aufbewahrt).
Name
429 - Too Many Requests
Description
Sie haben Ihre Ratenbegrenzung überschritten.
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 } }'
Dieser Endpunkt ermöglicht es Ihnen, eine Animations-Aufgabe anhand einer gültigen Aufgaben-id abzurufen. Weitere Informationen zu den enthaltenen Eigenschaften finden Sie unter Das Animation-Task-Objekt.
Parameter
Name
id
Type
path
Description
Eindeutige Kennung der abzurufenden Animations-Aufgabe.
Rückgabewerte
Die Antwort enthält das Animation-Task-Objekt. Details finden Sie im Abschnitt Das Animation-Task-Objekt.
Dieser Endpunkt löscht eine Animationsaufgabe dauerhaft, einschließlich aller zugehörigen Modelle und Daten. Diese Aktion ist unwiderruflich.
Pfadparameter
Name
id
Type
path
Description
Die ID der zu löschenden Animationsaufgabe.
Aufgabenstatus
Eine Aufgabe, die sich noch im Status PENDING befindet, wird gelöscht, und die zum
Erstellungszeitpunkt verbrauchten Credits werden zurückerstattet.
Eine Aufgabe, die sich bereits im Status IN_PROGRESS befindet, kann nicht gelöscht
werden: Die Anfrage wird mit 409 Conflict abgelehnt, und die Aufgabe läuft
weiter. Credits für eine Aufgabe, die der Worker bereits gestartet hat, sind
nicht erstattungsfähig. Ein Löschen während der Ausführung würde Sie also
sowohl die Credits als auch das Ergebnis kosten. Warten Sie, bis der Status
SUCCEEDED, FAILED oder CANCELED erreicht ist, und löschen Sie sie
dann.
Eine Aufgabe in einem Endzustand (SUCCEEDED, FAILED oder CANCELED) wird
ohne Rückerstattung gelöscht.
Rückgabewerte
Gibt bei Erfolg 200 OK zurück, oder 409 Conflict, wenn sich die Aufgabe im
Status IN_PROGRESS befindet.
// 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."}
Gibt eine paginierte Liste der Animation-Aufgaben des Aufrufers zurück, neueste zuerst. Standard-Paginierung über page_num und page_size.
Beachten Sie, dass Aufgaben, die über die API erstellt wurden, auch über die API verwaltet werden — sie erscheinen nicht in „Meine Assets“ der Web-App. Verwenden Sie diesen Endpunkt, um eine Aufgabe zu finden, deren ID Sie nicht mehr haben.
Das Animation-Task-Objekt repräsentiert die Arbeitseinheit für das Anwenden einer Animation auf einen gerigten Charakter.
Eigenschaften
Name
id
Type
string
Description
Eindeutige Kennung für den Task.
Name
type
Type
string
Description
Typ des Animation-Tasks. Der Wert ist animate.
Name
status
Type
string
Description
Status des Tasks. Mögliche Werte: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Fortschritt des Tasks (0-100).
Name
created_at
Type
timestamp
Description
Zeitstempel (Millisekunden seit der Epoche), zu dem der Task erstellt wurde.
Ein Zeitstempel repräsentiert die Anzahl der Millisekunden, die seit dem 1. Januar 1970 UTC vergangen sind, gemäß
dem Standard RFC 3339.
Zum Beispiel wird Freitag, der 1. September 2023, 12:00:00 Uhr GMT als 1693569600000 dargestellt. Dies gilt
für alle Zeitstempel in der Meshy API.
Name
started_at
Type
timestamp
Description
Zeitstempel (Millisekunden seit der Epoche), zu dem der Task mit der Verarbeitung begonnen hat. 0, falls noch nicht gestartet.
Name
finished_at
Type
timestamp
Description
Zeitstempel (Millisekunden seit der Epoche), zu dem der Task abgeschlossen wurde. 0, falls noch nicht abgeschlossen.
Name
expires_at
Type
timestamp
Description
Zeitstempel (Millisekunden seit der Epoche), zu dem die Ergebnis-Assets des Tasks ablaufen.
Name
task_error
Type
object
Description
Fehlerdetails für fehlgeschlagene Tasks. Siehe Fehler für die vollständige Referenz des task_error-Objekts.
Name
consumed_credits
Type
integer
Description
Die Anzahl der von diesem Task verbrauchten Credits. Vorhanden, wenn der Task-Status PENDING, IN_PROGRESS oder SUCCEEDED ist. Gibt 0 für FAILED-Tasks zurück (Credits werden bei einem Fehlschlag zurückerstattet).
Name
result
Type
object
Description
Enthält die Ausgabe-Animations-URLs, falls der Task SUCCEEDED ist.
Name
animation_glb_url
Type
string
Description
Herunterladbare URL für die Animation im GLB-Format. Bei einem Task, der mit action_ids erstellt wurde, enthält diese einzelne Datei jede angeforderte Aktion als separaten Clip.
Name
animation_fbx_url
Type
string
Description
Herunterladbare URL für die Animation im FBX-Format. Bei einem Task, der mit action_ids erstellt wurde, enthält diese einzelne Datei jede angeforderte Aktion als separaten Clip.
Name
processed_usdz_url
Type
string
Description
Herunterladbare URL für die verarbeitete Animation im USDZ-Format.
Name
processed_armature_fbx_url
Type
string
Description
Herunterladbare URL für die verarbeitete Armature im FBX-Format.
Name
processed_animation_fps_fbx_url
Type
string
Description
Herunterladbare URL für die Animation mit geänderter FPS im FBX-Format (z. B. falls die Operation change_fps verwendet wurde).
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorangehenden Tasks in der Warteschlange. Nur relevant, wenn der Status PENDING ist.
Gibt jede Animation in der Bibliothek zurück, sortiert nach action_id. Die Antwort ist eine vollständige Liste und keine Seite, sodass ein einziger Aufruf genügt, um eine Aktionsauswahl zu befüllen. Filter grenzen das Ergebnis ein; lässt man sie alle weg, werden alle Einträge abgerufen.
Um denselben Katalog visuell zu durchsuchen, mit einer animierten Vorschau jeder Aktion, siehe die Animationsbibliothek-Referenz.
Dieser Endpunkt ist kostenlos — er verbraucht keine Credits.
Parameter
Name
search
Type
string
Description
Groß-/Kleinschreibung ignorierender Teilstring-Abgleich auf name oder key. Wird wörtlich abgeglichen, sodass % und _ gewöhnliche Zeichen sind und keine Platzhalter.
Name
category
Type
string
Description
Exakter Abgleich auf category.
Verfügbare Werte:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Exakter Abgleich auf sub_category. Kann eigenständig verwendet werden — Namen von Unterkategorien sind über Kategorien hinweg nicht eindeutig (Transitioning erscheint sowohl unter Fighting als auch unter DailyActions), sodass der Filter ohne category diese Unterkategorie überall dort trifft, wo sie vorkommt.
Name
action_ids
Type
string
Description
Durch Kommas getrennte Liste von action_id-Werten, die zurückgegeben werden sollen, um gezielt bestimmte IDs aufzulösen, anstatt zu durchsuchen. Es werden höchstens 200 IDs akzeptiert. IDs, die keine Animation trägt, fehlen einfach in der Antwort, sodass Sie dies auch nutzen können, um zu prüfen, ob von Ihnen gespeicherte IDs noch verfügbar sind.
Kombinieren von Filtern
Filter werden gemeinsam angewendet — jeder grenzt das Ergebnis weiter ein, sodass eine Animation nur zurückgegeben wird, wenn sie alle erfüllt. Innerhalb eines einzelnen Filters treffen mehrere Werte auf jeden von ihnen zu: search trifft auf name oder key, und action_ids trifft auf jede ID in der Liste.
Das bedeutet, dass eine Kombination ohne Überschneidung ein leeres Array statt eines Fehlers zurückgibt. Aktion 92 ist „Double Combo Attack“, eine Fighting-Animation:
?action_ids=92&category=Fighting gibt Aktion 92 zurück.
?action_ids=92&category=Dancing gibt [] zurück — sie ist keine Dancing-Animation.
?action_ids=92&search=walk gibt [] zurück — ihr Name entspricht nicht walk.
Um bestimmte Animationen unabhängig von ihrer Kategorie abzurufen, übergeben Sie action_ids allein.
Jede hier zurückgegebene action_id wird von Create an Animation Task oben akzeptiert, und jede dort akzeptierte ID wird hier zurückgegeben. Ausrangierte Animationen fehlen in beiden. Wenn Sie die Bibliothek zwischenspeichern, aktualisieren Sie sie regelmäßig, damit eine ausrangierte ID nicht in Ihrer Auswahl verbleibt.
Der Wert, der als action_id beim Erstellen eines Animationsauftrags übergeben werden soll. Eindeutig und stabil, aber nicht fortlaufend — ausgemusterte Animationen hinterlassen Lücken in der Nummerierung, gehen Sie also niemals davon aus, dass ein Bereich von IDs gültig ist.
Name
name
Type
string
Description
Menschenlesbare Bezeichnung zur Anzeige. Nicht eindeutig: Manche Animationen teilen sich einen Namen mit einer anderen Variante, verwenden Sie also action_id oder key als Identität.
Name
key
Type
string
Description
Eindeutiger, stabiler Slug für die Animation. Verwenden Sie ihn, wenn Sie einen nicht-numerischen Bezeichner benötigen, um Ihren eigenen Speicher zu indizieren.
Name
category
Type
string
Description
Übergeordnete Gruppierung, z. B. Fighting.
Name
sub_category
Type
string
Description
Gruppierung innerhalb der Kategorie, z. B. AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL eines animierten GIFs zur Vorschau der Aktion, geeignet für die direkte Darstellung in Ihrer eigenen Auswahlkomponente.