Rigging API
Voeg een skelet (armature) toe aan een humanoïde 3D-model en bind de mesh eraan, zodat het personage klaar is om te animeren. Zie de Animatie API om animaties toe te passen op een gerigd personage.
Rigging werkt alleen goed met standaard humanoïde (tweevoetige) personages die een duidelijk gedefinieerde ledematen- en lichaamsstructuur hebben.
Een Rigging-taak maken
Maakt een Rigging-taak voor een 3D-model. Wanneer de taak slaagt, retourneert deze een gerigd personage in standaardformaten en, optioneel, basale loop- en renanimaties.
De taak wordt op de achtergrond uitgevoerd. Voor hoe lang een taak gewoonlijk duurt, zie Verwerkingstijden.
Rigging is niet geschikt voor deze modellen:
- Niet-geteksturede meshes
- Niet-humanoïde assets
- Humanoïde assets met een onduidelijke ledematen- en lichaamsstructuur
Request
# Rig a model from a URL
curl https://api.meshy.ai/openapi/v1/rigging \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "YOUR_MODEL_URL_OR_DATA_URI",
"height_meters": 1.8
}'
Response
{
"result": "018b314a-a1b5-716d-c222-2f1776f7f579"
}
Parameters
- Name
- input_task_id
- Type
- string
- Verplicht
- Description
Vereist, tenzij u
model_urlverstuurt. De ID van de taak waarvan u het model wilt riggen. Meshy ondersteunt geteksturede humanoïde modellen.Het model mag maximaal 380.000 driehoeken bevatten (een vierhoek telt als 2), en een model met meer driehoeken geeft
400terug. Om onder de limiet te blijven, voert u eerst de Remesh API erop uit met eentarget_polycountvan300000of minder, of150000of minder mettopology: quad.
- Name
- model_url
- Type
- string
- Verplicht
- Description
Vereist, tenzij u
input_task_idverstuurt. Het te riggen model, als een openbare URL of een data-URI. Als u beide verstuurt, gebruikt Meshyinput_task_id.Het model moet een GLB-bestand (
.glb) zijn van maximaal 400 MB vanaf eenhttp- ofhttps-URL, of 100 MB als data-URI. Rigging ondersteunt geteksturede humanoïde modellen.Het model mag maximaal 380.000 driehoeken bevatten (een vierhoek telt als 2), en een model met meer driehoeken geeft
400terug. Om onder de limiet te blijven, voert u eerst de Remesh API erop uit met eentarget_polycountvan300000of minder, of150000of minder mettopology: quad.Het gezicht van het personage moet naar de +Z-as wijzen, de standaard voorwaartse richting van glTF. Poseschatting mislukt voor een model dat naar een andere as wijst.
Een bestand groter dan 100 MB moet ook aan deze regels voldoen:
- Het mag maximaal 10.000.000 vlakken bevatten. Een bestand met meer vlakken geeft
400terug. Meshy telt vlakken als driehoeken, en een mesh die meer dan eens wordt getekend telt per kopie. - Het mag geen Draco-compressie gebruiken.
- Het mag maximaal 10.000.000 vlakken bevatten. Een bestand met meer vlakken geeft
- Name
- height_meters
- Type
- number
- standaard 1.7
- Description
De geschatte lengte van het personage, in meters. Meshy gebruikt dit om het model nauwkeuriger te schalen en te riggen. Een negatieve waarde geeft
400terug.
- Name
- texture_image_url
- Type
- string
- ⚠ verouderd
- Description
Laat dit weg wanneer het model zijn eigen textures heeft. Zonder dit gebruikt Meshy de textures die in het
model_url-bestand zijn ingesloten, of de textures van de invoertaak. Als u dit verstuurt, wordt deze afbeelding de enige textuur van het gerigde model, en verliest het model zijn PBR-maps.De UV-uitgevouwen basiskleurtextuur van het model, als een openbare URL of een data-URI. De afbeelding moet een PNG-bestand van maximaal 20 MB zijn. Een ander afbeeldingsformaat geeft
400terug.
Resultaten
Het veld result van de response bevat de ID van de nieuwe Rigging-taak.
Faalmodi
- Name
400 - Bad Request- Description
Het verzoek kan niet worden uitgevoerd. Het foutbericht geeft aan welk probleem is gevonden. Bijvoorbeeld:
- Ontbrekende parameter: Noch
model_urlnochinput_task_idis verstuurd. - Ongeldig modelformaat: Het
model_url-bestand heeft een niet-ondersteunde extensie. Alleen.glbwordt ondersteund. - Onbereikbare URL: Meshy kan het
model_url-bestand niet downloaden. - Modelbestand te groot: Het
model_url-bestand is groter dan 400 MB vanaf eenhttp- ofhttps-URL, of groter dan 100 MB als data-URI. - Te veel vlakken: Het
model_url-bestand is groter dan 100 MB en heeft meer dan 10.000.000 vlakken. Verminder het aantal vlakken en verstuur het bestand opnieuw. - Onleesbaar modelbestand: Het
model_url-bestand is groter dan 100 MB, en Meshy kan de header niet lezen. Het is bijvoorbeeld een Draco-gecomprimeerde GLB. - Modelheader te complex: Het
model_url-bestand is groter dan 100 MB, en de header bevat te veel meshes, nodes of records om te controleren. Verminder het aantal objecten in het bestand en verstuur het opnieuw. - Afbeelding te groot: De afbeelding bij
texture_image_urlis groter dan 20 MB. - Ongeldig textuurformaat: De afbeelding bij
texture_image_urlis geen PNG-bestand. - Ongeldige hoogte:
height_metersis negatief. - Ongeldige invoertaak:
input_task_idverwijst niet naar een geldige API-taak. - Invoertaak nog niet gereed: De taak bij
input_task_idheeftSUCCEEDEDnog niet bereikt. Wacht tot deze slaagt en probeer het opnieuw. - Maximum aantal vlakken overschreden: Het invoermodel heeft meer dan 380.000 driehoeken (een vierhoek telt als 2). Voer de Remesh API erop uit met een
target_polycountvan300000of minder, of150000of minder mettopology: quad, voordat u het model rigt.
Corrigeer het verzoek en verstuur het opnieuw. Zie Fouten.
- Ontbrekende parameter: Noch
- 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 plan: Het maken van een taak vereist een betaald plan. Upgrade uw plan in uw abonnementsinstellingen en probeer het opnieuw.
- Name
403 - Forbidden- Description
input_task_idis een bas-reliëfmodel, dat deze endpoint niet kan riggen. Het bericht isThis model type does not support this operation. Verstuur een ander model.
- Name
404 - Not Found- Description
Meshy kan de bestanden van de taak bij
input_task_idniet vinden. Een van het volgende is van toepassing:- Meshy heeft de bestanden van de taak verwijderd na de
expires_at. Maak de taak opnieuw aan en verstuur de ID van die taak. - De taak heeft geen van de bestanden die rigging nodig heeft, zoals een voorvertoningsafbeelding, bijvoorbeeld een Convert-taak. Rig de taak waar deze vandaan komt, of verstuur het model als
model_url.
- Meshy heeft de bestanden van de taak verwijderd na de
- Name
422 - Unprocessable Entity- Description
Poseschatting is mislukt. Het model is mogelijk geen geldig humanoïde personage. Verstuur een model van een humanoïde personage. Controleer bij
model_urlook of het personage naar de +Z-as wijst.
- Name
429 - Too Many Requests- Description
U heeft uw rate limit overschreden. Wacht en probeer het opnieuw. Zie Rate limits.
Een Rigging-taak ophalen
Retourneert een Rigging-taak op basis van de ID.
Request
curl https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018b314a-a1b5-716d-c222-2f1776f7f579",
"type": "rig",
"status": "SUCCEEDED",
"created_at": 1747032400453,
"progress": 100,
"started_at": 1747032401314,
"finished_at": 1747032418417,
"expires_at": 1747291618417,
"task_error": null,
"consumed_credits": 5,
"result": {
"rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
"rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
"basic_animations": {
"walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
"walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
"walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
"running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
"running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
"running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
}
}
}
Parameters
- Name
- id
- Type
- path
- Description
De taak-ID uit het aanmaakverzoek-antwoord.
Retourneert
Het Rigging-taakobject.
Een Rigging-taak verwijderen
Verwijdert permanent een Rigging-taak, inclusief de bijbehorende modellen en gegevens. Je kunt een verwijdering niet ongedaan maken.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 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 geeft 409 Conflict
terug, en de taak blijft doorlopen. 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
SUCCEEDED, FAILED of CANCELED bereikt, en verwijder deze dan pas.
Het verwijderen van een taak met een definitieve status (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.
Lijst van Rigging-taken
Geeft een gepagineerde lijst van uw Rigging-taken terug, nieuwste eerst. Gebruik page_num en page_size om door de lijst te bladeren.
Taken die u met de API aanmaakt, blijven in de API en verschijnen niet bij My Assets in de web-app. Gebruik dit endpoint om een taak te vinden waarvan u de ID niet meer heeft.
Request
curl "https://api.meshy.ai/openapi/v1/rigging?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Stream een Rigging-taak
Streamt de updates van een Rigging-taak als Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"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: message
data: {
"id": "018b314a-a1b5-716d-c222-2f1776f7f579",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "018b314a-a1b5-716d-c222-2f1776f7f579",
"progress": 50,
"status": "IN_PROGRESS"
}
event: message
data: { // Example of a SUCCEEDED task event, with the same fields as the Rigging task object
"id": "018b314a-a1b5-716d-c222-2f1776f7f579",
"type": "rig",
"status": "SUCCEEDED",
"created_at": 1747032400453,
"progress": 100,
"started_at": 1747032401314,
"finished_at": 1747032418417,
"expires_at": 1747291618417,
"task_error": null,
"consumed_credits": 5,
"result": {
"rigged_character_fbx_url": "https://assets.meshy.ai/.../Character_output.fbx?...",
"rigged_character_glb_url": "https://assets.meshy.ai/.../Character_output.glb?...",
"basic_animations": {
"walking_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.glb?...",
"walking_fbx_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.fbx?...",
"walking_armature_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin_armature.glb?...",
"running_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.glb?...",
"running_fbx_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.fbx?...",
"running_armature_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin_armature.glb?..."
}
}
}
Parameters
- Name
- id
- Type
- path
- Description
De taak-ID uit de aanmaakrespons.
Retourwaarden
Een stream van Rigging-taakobjecten als Server-Sent Events.
Elk event bevat het volledige taakobject, in dezelfde vorm als het Get-endpoint teruggeeft. Zolang de taak PENDING of IN_PROGRESS is, hebben de resultaatvelden nog geen waarden.
Het Rigging-taakobject
Een Rigging-taakobject beschrijft de rigging van één personage. Het bevat de status, de progress en de uitvoerbestanden wanneer de taak slaagt.
Eigenschappen
Example Rigging Task Object
{
"id": "018b314a-a1b5-716d-c222-2f1776f7f579",
"type": "rig",
"status": "SUCCEEDED",
"created_at": 1747032400453,
"progress": 100,
"started_at": 1747032401314,
"finished_at": 1747032418417,
"expires_at": 1747291618417,
"task_error": null,
"consumed_credits": 5,
"result": {
"rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
"rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
"basic_animations": {
"walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
"walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
"walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
"running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
"running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
"running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
}
}
}
- Name
- id
- Type
- string
- Description
De taak-ID. Behandel dit als een ondoorzichtige tekenreeks en vertrouw niet op het formaat ervan.
- Name
- type
- Type
- string
- Description
Het taaktype, altijd
rig.
- Name
- status
- Type
- string
- Description
De taakstatus, een van
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDofCANCELED.
- Name
- progress
- Type
- integer
- Description
Hoeveel van de taak is voltooid, als percentage. Dit is
0totdat de taak begint en100wanneer 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
0totdat de taak start.
- Name
- finished_at
- Type
- timestamp
- Description
Tijdstip waarop de taak is beëindigd, in Unix-milliseconden. Dit is
0totdat de taak eindigt.
- Name
- expires_at
- Type
- timestamp
- Description
Tijdstip waarop de resultaatbestanden van de taak verlopen, in Unix-milliseconden. Na dit tijdstip kan Meshy de bestanden verwijderen.
- Name
- task_error
- Type
- object
- Description
De foutdetails wanneer de taak mislukt. Dit is
nulltenzij de statusFAILEDis. Zie Fouten.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat de taak heeft gebruikt. Aanwezig wanneer de status
PENDING,IN_PROGRESSofSUCCEEDEDis. Dit is0voor eenFAILED-taak, omdat Meshy de credits terugbetaalt wanneer een taak mislukt.
- Name
- result
- Type
- object
- Description
De URL's van de uitvoerbestanden. Totdat de taak slaagt, is elke URL een lege tekenreeks en is
basic_animationsnull.- Name
rigged_character_fbx_url- Type
- string
- Description
Downloadlink voor het gerigde personage als FBX-bestand.
- Name
rigged_character_glb_url- Type
- string
- Description
Downloadlink voor het gerigde personage als GLB-bestand.
- Name
basic_animations- Type
- object (optional)
- Description
Downloadlinks voor de standaard loop- en renanimaties.
- Name
walking_glb_url- Type
- string
- Description
- De loopanimatie met skin, als GLB-bestand.
- Name
walking_fbx_url- Type
- string
- Description
- De loopanimatie met skin, als FBX-bestand.
- Name
walking_armature_glb_url- Type
- string
- Description
- De armature van de loopanimatie, als GLB-bestand.
- Name
running_glb_url- Type
- string
- Description
- De renanimatie met skin, als GLB-bestand.
- Name
running_fbx_url- Type
- string
- Description
- De renanimatie met skin, als FBX-bestand.
- Name
running_armature_glb_url- Type
- string
- Description
- De armature van de renanimatie, als GLB-bestand.
- Name
- preceding_tasks
- Type
- integer
- Description
Het aantal taken dat vóór deze taak in de wachtrij staat. De waarde is alleen zinvol zolang de taak
PENDINGis. Het veld wordt weggelaten wanneer de waarde0is.