lowpoly wordt op 30 okt 2026 uitgefaseerd. Stap vóór deze datums over op een ander model om fouten bij verzoeken te voorkomen. Alle afschaffingen bekijken
Animatie-API
Pas animaties toe op characters met een rig, en bekijk een lijst van de animaties die je kunt toepassen.
Maakt een Animatietaak aan, die een animatie toepast op een personage dat u eerder heeft gerigd. De animatie kan een van de volgende zijn:
Een vooraf ingestelde actie uit de animatiebibliotheek (action_id)
Meerdere vooraf ingestelde acties samengevoegd in één bestand (action_ids)
Een bewegingsclip die u heeft gegenereerd met de Text to Motion API (motion_task_id)
U kunt de uitvoer ook nabewerken. De taak draait op de achtergrond. Voor hoe lang een taak gewoonlijk duurt, zie Verwerkingstijden.
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"}
Parameters
Name
rig_task_id
Type
string
Verplicht
Description
De ID van de Rigging-taak waarvan het personage geanimeerd moet worden, afkomstig van POST /openapi/v1/rigging. De taak moet de status SUCCEEDED hebben.
Stuur precies één van action_id, action_ids en motion_task_id.
Name
action_id
Type
integer
Verplicht
Description
Vereist tenzij u action_ids of motion_task_id stuurt. De ID van de vooraf ingestelde animatie die moet worden toegepast. Voor de volledige lijst met animaties, zie de Animatiebibliotheek-referentie of Animaties weergeven.
Name
action_ids
Type
array of integers
Verplicht
Description
Vereist tenzij u action_id of motion_task_id stuurt. De ID's van 1 tot 10 vooraf ingestelde animaties die tegelijk moeten worden toegepast, zonder herhalingen. Meer dan 10 ID's, of een herhaalde ID, geeft 400 terug. Voor de ID's, zie de Animatiebibliotheek-referentie.
Meshy geeft één bestand terug met één animatieclip per actie, wat geschikt is voor een state machine in een game-engine. Meshy rekent kosten voor elke actie in de lijst. Zie Prijzen.
Een lijst met één ID werkt hetzelfde als het sturen van die ID als action_id.
Name
motion_task_id
Type
string
Verplicht
Description
Vereist tenzij u action_id of action_ids stuurt. De ID van een Text to Motion-taak waarvan de clip moet worden toegepast in plaats van een vooraf ingestelde actie. De taak moet de status SUCCEEDED hebben, en de rig moet een tweevoeter zijn.
Meshy retarget de clip naar het gerigde personage. Het kopieert de clip wanneer u deze taak aanmaakt, dus deze taak wordt niet beïnvloed als de Text to Motion-taak later verloopt of u deze verwijdert. Meshy bewaart de bestanden van de Text to Motion-taak gedurende 3 dagen, dus pas de clip vóór die tijd toe.
Name
post_process
Type
object
Description
Nabewerking voor de animatie-uitvoer. Laat dit weg om de standaard animatiebestanden te krijgen.
Met motion_task_id kan de retarget een GLB-only animatie opleveren. Als u post_process stuurt en er is geen FBX-bestand beschikbaar, mislukt de taak met een task_error, en Meshy vergoedt uw credits. Zonder post_process slaagt de taak, en is animation_fbx_url leeg.
Alleen van toepassing wanneer post_process is set
Name
operation_type
Type
string
Description
De bewerking die moet worden uitgevoerd. Zonder dit maakt Meshy geen extra bestand aan. Een waarde die niet in de volgende lijst staat, geeft 400 terug.
Beschikbare waarden:
change_fps: wijzigt de framerate naar fps
fbx2usdz: converteert de animatie naar USDZ
extract_armature: extraheert de armature als een FBX-bestand
Name
fps
Type
integer
standaard 30
Description
De framerate om naar te wijzigen, een van 24, 25, 30 of 60. Is alleen van toepassing wanneer operation_typechange_fps is. Elke andere waarde geeft 400 terug.
Met action_ids geeft de taak één samengevoegd bestand terug in plaats van één bestand per actie. animation_glb_url en animation_fbx_url wijzen elk naar één bestand dat elke gevraagde actie als een afzonderlijke clip bevat. In dat bestand:
Clipvolgorde: de volgorde van de action_ids-array, niet de numerieke volgorde van de ID's.
Clipnamen: de naam van de animatie in de bibliotheek. Deze komen overeen met de namen die u krijgt wanneer u alle animaties van een personage als één bestand exporteert vanuit de Meshy web-app. Als twee gevraagde ID's dezelfde clipnaam hebben, voegt Meshy de action_id toe aan de latere om namen uniek te houden.
Nabewerking: Meshy past dit toe op het samengevoegde bestand, niet op elke clip afzonderlijk.
Resultaten
Het veld result van de respons bevat de ID van de nieuwe Animatietaak.
Faalmodi
Name
400 - Bad Request
Description
Het verzoek kan niet worden uitgevoerd. Het foutbericht geeft aan welk probleem er is gevonden. Bijvoorbeeld:
Ontbrekende parameter: rig_task_id ontbreekt, of geen van action_id, action_ids en motion_task_id werd verzonden.
Conflicterende parameters: Het verzoek bevat meer dan één van action_id, action_ids en motion_task_id. Stuur er slechts één.
Ongeldige rig-taak: rig_task_id is geen geldige taak-ID, is geen Rigging-taak, of verwijst naar een taak die niet is geslaagd.
Ongeldige actie-ID: Een action_id, of een item in action_ids, is geen geldige animatie.
Te veel acties: action_ids heeft meer dan 10 ID's.
Dubbele acties: action_ids bevat dezelfde ID meer dan eens.
Motion-taak niet gereed: De taak van motion_task_id heeft nog niet de status SUCCEEDED bereikt.
Niet-ondersteunde rig: motion_task_id vereist een tweevoeter-rig, en Meshy wijst een viervoeter-rig af.
Corrigeer het verzoek en stuur het opnieuw. Zie Fouten.
Name
401 - Unauthorized
Description
De API-sleutel ontbreekt of is ongeldig. Controleer de Authorization-header.
Name
402 - Payment Required
Description
Bijvoorbeeld:
Onvoldoende credits: Het account heeft niet genoeg credits voor deze taak, of het account heeft een creditlimiet bereikt. Controleer uw creditsaldo en probeer het opnieuw.
Gratis abonnement: Het aanmaken van een taak vereist een betaald abonnement. Upgrade uw abonnement in uw abonnementsinstellingen en probeer het opnieuw.
Name
403 - Forbidden
Description
De taak van rig_task_id is een bas-reliëfmodel, dat dit endpoint niet kan animeren. Het bericht is This model type does not support this operation. Rig een ander model.
Name
404 - Not Found
Description
Meshy kan een taak of bestand dat het verzoek nodig heeft, niet vinden. Een van het volgende is van toepassing:
Meshy kan de taak van rig_task_id niet vinden onder uw taken. Controleer de ID.
Meshy heeft de bestanden van de taak van rig_task_id verwijderd na de expires_at. Rig het personage opnieuw.
Meshy kan de taak van motion_task_id niet vinden. Controleer de ID.
De motion-clip is verlopen, omdat Meshy de bestanden van een Text to Motion-taak gedurende 3 dagen bewaart. Maak een nieuwe Text to Motion-taak aan.
Name
429 - Too Many Requests
Description
U heeft uw rate limit overschreden. Wacht en probeer het opnieuw. Zie Rate limits.
// 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."}
Padparameters
Name
id
Type
path
Description
De ID van de te verwijderen taak.
Taakstatus
Het verwijderen van een PENDING-taak betaalt de credits terug die zijn gebruikt bij het aanmaken ervan.
Een IN_PROGRESS-taak kan niet worden verwijderd. Het verzoek retourneert 409 Conflict,
en de taak blijft actief. Meshy betaalt geen credits terug voor een taak die al is gestart,
dus het verwijderen ervan zou je zowel de credits als het resultaat kosten. Wacht tot de taak
de status SUCCEEDED, FAILED of CANCELED bereikt en verwijder deze dan.
Het verwijderen van een taak met een eindstatus (SUCCEEDED, FAILED of CANCELED)
betaalt de credits niet terug.
Retourwaarden
200 OK wanneer de taak is verwijderd, of 409 Conflict wanneer de taak
IN_PROGRESS is.
Geeft een gepagineerde lijst van uw Animatie-taken terug, nieuwste eerst. Gebruik page_num en page_size om door de lijst te bladeren.
Taken die u via de API aanmaakt, verschijnen niet bij My Assets in de web-app, dus beheert u ze via de API. Gebruik deze endpoint om een taak te vinden waarvan u de ID niet meer heeft.
// 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?..." }}
Elk event bevat het volledige taakobject, in dezelfde vorm die de Get-endpoint teruggeeft. Zolang de taak PENDING of IN_PROGRESS is, hebben de resultaatvelden nog geen waarden.
Een Animatietaakobject beschrijft één animatie die op een gerigde personage is toegepast. Het bevat de status, de progress en de animatiebestanden wanneer de taak slaagt.
De taak-ID. Behandel dit als een ondoorzichtige tekenreeks en vertrouw niet op de indeling ervan.
Name
type
Type
string
Description
Het taaktype, altijd animate.
Name
status
Type
string
Description
De taakstatus, één van PENDING, IN_PROGRESS, SUCCEEDED, FAILED, of CANCELED.
Name
progress
Type
integer
Description
Hoeveel van de taak is voltooid, als percentage. Dit is 0 tot de taak begint en 100 wanneer deze slaagt.
Name
created_at
Type
timestamp
Description
Tijdstip waarop de taak is aangemaakt, in Unix-milliseconden.
Name
started_at
Type
timestamp
Description
Tijdstip waarop de taak is gestart, in Unix-milliseconden. Dit is 0 tot de taak begint.
Name
finished_at
Type
timestamp
Description
Tijdstip waarop de taak is voltooid, in Unix-milliseconden. Dit is 0 tot de taak is voltooid.
Name
expires_at
Type
timestamp
Description
Tijdstip waarop de resultaatbestanden van de taak verlopen, in Unix-milliseconden.
Name
task_error
Type
object
Description
De foutdetails wanneer de taak mislukt. Dit is null tenzij de status FAILED is. Zie Fouten.
Name
consumed_credits
Type
integer
Description
Het aantal credits dat de taak heeft gebruikt. Aanwezig wanneer de status PENDING, IN_PROGRESS, of SUCCEEDED is. Dit is 0 voor een FAILED-taak, omdat Meshy de credits terugbetaalt wanneer een taak mislukt.
Name
result
Type
object
Description
Download-URL's voor de animatiebestanden, wanneer de taak de status SUCCEEDED heeft.
Name
animation_glb_url
Type
string
Description
De animatie als GLB-bestand. Voor een taak die is aangemaakt met action_ids, bevat dit ene bestand elke aangevraagde actie als een afzonderlijke clip.
Name
animation_fbx_url
Type
string
Description
De animatie als FBX-bestand. Voor een taak die is aangemaakt met action_ids, bevat dit ene bestand elke aangevraagde actie als een afzonderlijke clip.
Name
processed_usdz_url
Type
string
Description
De verwerkte animatie als USDZ-bestand.
Name
processed_armature_fbx_url
Type
string
Description
De verwerkte armature als FBX-bestand.
Name
processed_animation_fps_fbx_url
Type
string
Description
De animatie met de gewijzigde framerate, als FBX-bestand, bijvoorbeeld wanneer u de bewerking change_fps heeft gebruikt.
Name
preceding_tasks
Type
integer
Description
Het aantal taken dat vóór deze taak in de wachtrij staat. De waarde is alleen betekenisvol zolang de taak PENDING is. Het veld wordt weggelaten wanneer de waarde 0 is.
Geeft elke animatie in de bibliotheek terug, gesorteerd op action_id. De respons is de volledige lijst, zonder pagina's, zodat één aanroep een actiekiezer kan vullen. Filters beperken het resultaat. Om elke animatie op te halen, laat je ze allemaal weg.
Tekst om naar te zoeken. Meshy geeft de animaties terug waarvan name of key deze tekst bevat, ongeacht hoofdlettergebruik. Meshy matcht de tekst letterlijk, dus % en _ zijn geen jokertekens.
Name
category
Type
string
Description
De categorie om weer te geven, als exacte overeenkomst. Een onbekende categorie geeft een lege lijst terug.
Beschikbare waarden:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
De subcategorie om weer te geven, als exacte overeenkomst. Je kunt deze zonder category versturen. Subcategorienamen zijn niet uniek binnen categorieën. Transitioning valt bijvoorbeeld zowel onder Fighting als onder DailyActions. Dus zonder category matcht het filter de subcategorie in elke categorie.
Name
action_ids
Type
string
Description
De animaties om terug te geven, als maximaal 200 door komma's gescheiden action_id-waarden. Gebruik dit om specifieke ID's op te zoeken in plaats van te bladeren. Meer dan 200 ID's geeft 400 terug.
De respons laat een ID weg die geen enkele animatie heeft. Je kunt dit filter dus ook gebruiken om te controleren of door jou opgeslagen ID's nog beschikbaar zijn.
Filters combineren
Meshy past de filters samen toe. Elk filter beperkt het resultaat, dus Meshy geeft een animatie alleen terug als deze aan alle filters voldoet. Binnen één filter kan elke waarde ervan matchen. search matcht bijvoorbeeld name of key, en action_ids matcht elke ID in de lijst.
Een combinatie zonder overlap geeft daarom een lege array terug, geen fout. Actie 92 is "Double Combo Attack", een Fighting-animatie. Bijvoorbeeld:
Een Animatietaak maken accepteert elke action_id die deze endpoint teruggeeft, en deze endpoint geeft elke ID terug die het aanmaken accepteert. Geen van beide bevat verouderde (retired) animaties. Als je de bibliotheek cachet, ververs deze dan van tijd tot tijd, zodat een verouderde ID niet in je kiezer blijft staan.
De waarde die u als action_id meestuurt wanneer u een Animatie-taak aanmaakt. Deze is uniek en stabiel, maar niet doorlopend. Uitgefaseerde animaties laten gaten achter in de nummering, dus ga er niet van uit dat elk ID binnen een bereik geldig is.
Name
name
Type
string
Description
De weergavenaam van de animatie. Deze is niet uniek, omdat sommige animaties een naam delen met een andere variant. Gebruik action_id of key om een animatie te identificeren.
Name
key
Type
string
Description
Een unieke, stabiele slug voor de animatie. Gebruik deze wanneer u een niet-numeriek ID nodig heeft om uw eigen opslag op te baseren.
Name
category
Type
string
Description
De groep op het hoogste niveau, bijvoorbeeld Fighting.
Name
sub_category
Type
string
Description
De groep binnen de categorie, bijvoorbeeld AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL van een geanimeerde GIF-voorvertoning van de actie. U kunt deze direct tonen in uw eigen kiezer.