Rigging API
Magdagdag ng skeleton (armature) sa isang humanoid na 3D model at itali ang mesh dito, upang maging handa nang i-animate ang character. Upang mag-apply ng mga animation sa isang rigged na character, tingnan ang Animation API.
Maayos lamang gumagana ang Rigging sa mga standard na humanoid (bipedal) na character na may malinaw na structure ng paa't braso at katawan.
Gumawa ng Rigging task
Gumagawa ng Rigging task para sa isang 3D model. Kapag nagtagumpay ang task, nagbabalik ito ng naka-rig na character sa mga standard na format at, opsyonal, ng mga pangunahing walking at running na animation.
Tumatakbo ang task sa background. Para malaman kung gaano karaming oras karaniwang tatagal ang isang task, tingnan ang Processing times.
Hindi angkop ang Rigging para sa mga sumusunod na model:
- Mga mesh na walang texture
- Mga asset na hindi humanoid
- Mga humanoid asset na may hindi malinaw na istruktura ng paa't kamay at katawan
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"
}
Mga Parameter
- Name
- input_task_id
- Type
- string
- Kinakailangan
- Description
Kinakailangan maliban kung magpapadala ka ng
model_url. Ang ID ng task na ang model ay gusto mong i-rig. Sinusuportahan ng Meshy ang mga may-texture na humanoid na model.Ang model ay maaaring magkaroon ng pinakamarami na 380,000 triangles (ang quad ay binibilang bilang 2), at kung lumagpas dito ay magbabalik ng
400. Para manatili sa ilalim ng limitasyon, patakbuhin muna ang Remesh API dito gamit angtarget_polycountna300000o mas mababa, o150000o mas mababa kungtopology: quad.
- Name
- model_url
- Type
- string
- Kinakailangan
- Description
Kinakailangan maliban kung magpapadala ka ng
input_task_id. Ang model na i-rig, bilang isang pampublikong URL o isang data URI. Kung magpapadala ka ng pareho, gagamitin ng Meshy anginput_task_id.Ang model ay dapat na isang GLB (
.glb) file na hindi hihigit sa 400 MB mula sa isanghttpohttpsURL, o 100 MB bilang isang data URI. Sinusuportahan ng Rigging ang mga may-texture na humanoid na model.Ang model ay maaaring magkaroon ng pinakamarami na 380,000 triangles (ang quad ay binibilang bilang 2), at kung lumagpas dito ay magbabalik ng
400. Para manatili sa ilalim ng limitasyon, patakbuhin muna ang Remesh API dito gamit angtarget_polycountna300000o mas mababa, o150000o mas mababa kungtopology: quad.Ang mukha ng character ay dapat nakaharap sa +Z axis, ang standard na glTF forward direction. Mabibigo ang pose estimation para sa isang model na nakaharap sa ibang axis.
Ang file na mas malaki sa 100 MB ay dapat ding sumunod sa mga sumusunod na patakaran:
- Maaari itong magkaroon ng pinakamarami na 10,000,000 faces. Kung lumagpas dito ay magbabalik ng
400. Binibilang ng Meshy ang faces bilang triangles, at ang isang mesh na naguguhit nang higit sa isang beses ay binibilang isang beses kada kopya. - Hindi ito dapat gumamit ng Draco compression.
- Maaari itong magkaroon ng pinakamarami na 10,000,000 faces. Kung lumagpas dito ay magbabalik ng
- Name
- height_meters
- Type
- number
- default 1.7
- Description
Ang tinatayang taas ng character, sa metro. Ginagamit ito ng Meshy para mas tumpak na i-scale at i-rig ang model. Ang negatibong halaga ay magbabalik ng
400.
- Name
- texture_image_url
- Type
- string
- ⚠ lipas na
- Description
Huwag isama kung ang model ay mayroon nang sariling texture. Kapag wala ito, gagamitin ng Meshy ang mga texture na naka-embed sa
model_urlfile, o ang mga texture ng input task. Kung ipapadala mo ito, ang imaheng ito ang magiging tanging texture ng naka-rig na model, at mawawala sa model ang mga PBR maps nito.Ang UV-unwrapped na base color texture ng model, bilang isang pampublikong URL o isang data URI. Ang imahe ay dapat na isang PNG file na hindi hihigit sa 20 MB. Ang ibang format ng imahe ay magbabalik ng
400.
Ibinabalik
Ang result field ng tugon ay naglalaman ng ID ng bagong Rigging task.
Mga mode ng kabiguan
- Name
400 - Bad Request- Description
Hindi matatakbo ang request. Sinasabi ng mensahe ng error kung aling problema ang natagpuan nito. Halimbawa:
- Nawawalang parameter: Hindi ipinadala ang
model_urloinput_task_id. - Di-wastong format ng model: Ang
model_urlfile ay may hindi suportadong extension. Tanging.glblamang ang suportado. - Hindi maabot na URL: Hindi ma-download ng Meshy ang
model_urlfile. - Masyadong malaki ang model file: Ang
model_urlfile ay lumalagpas sa 400 MB mula sa isanghttpohttpsURL, o lumalagpas sa 100 MB bilang isang data URI. - Sobra sa limitasyon ang faces: Ang
model_urlfile ay lumalagpas sa 100 MB at may higit sa 10,000,000 faces. Bawasan ang bilang ng faces, pagkatapos ay ipadala muli ang file. - Hindi mabasang model file: Ang
model_urlfile ay lumalagpas sa 100 MB, at hindi mabasa ng Meshy ang header nito. Halimbawa, ito ay isang Draco-compressed GLB. - Masyadong kumplikado ang header ng model: Ang
model_urlfile ay lumalagpas sa 100 MB, at ang header nito ay may masyadong maraming mesh, node, o record na susuriin. Bawasan ang bilang ng mga object sa file, pagkatapos ay ipadala itong muli. - Masyadong malaki ang imahe: Ang
texture_image_urlna imahe ay lumalagpas sa 20 MB. - Di-wastong format ng texture: Ang
texture_image_urlna imahe ay hindi isang PNG file. - Di-wastong taas: Negatibo ang
height_meters. - Di-wastong input task: Hindi tumutukoy ang
input_task_idsa isang wastong API task. - Hindi pa handa ang input task: Hindi pa nakarating sa
SUCCEEDEDanginput_task_idtask. Maghintay hanggang magtagumpay ito, pagkatapos ay subukan muli. - Lumagpas sa limitasyon ang bilang ng faces: Ang input model ay may higit sa 380,000 triangles (ang quad ay binibilang bilang 2). Patakbuhin ang Remesh API dito gamit ang
target_polycountna300000o mas mababa, o150000o mas mababa kungtopology: quad, bago i-rig ang model.
Ayusin ang request, pagkatapos ay ipadala itong muli. Tingnan ang Errors.
- Nawawalang parameter: Hindi ipinadala ang
- Name
401 - Unauthorized- Description
Nawawala o di-wasto ang API key. Suriin ang
Authorizationheader.
- Name
402 - Payment Required- Description
Halimbawa:
- Hindi sapat na credits: Wala sapat na credits ang account para sa task na ito, o naabot ng account ang limitasyon ng credit. Suriin ang iyong balanse ng credit, pagkatapos ay subukan muli.
- Libreng plano: Ang paggawa ng task ay nangangailangan ng bayad na plano. I-upgrade ang iyong plano sa iyong mga setting ng subscription, pagkatapos ay subukan muli.
- Name
403 - Forbidden- Description
Ang
input_task_iday isang bas-relief na model, na hindi kayang i-rig ng endpoint na ito. Ang mensahe ayThis model type does not support this operation. Magpadala ng ibang model.
- Name
404 - Not Found- Description
Hindi mahanap ng Meshy ang mga file ng
input_task_idtask. Isa sa mga sumusunod ang nangyayari:- Binura ng Meshy ang mga file ng task matapos ang
expires_atnito. Gawin muli ang task, pagkatapos ay ipadala ang ID ng task na iyon. - Wala sa task ang mga file na kailangan ng rigging, tulad ng preview image, halimbawa isang Convert task. I-rig ang task na pinagmulan nito, o ipadala ang model bilang
model_url.
- Binura ng Meshy ang mga file ng task matapos ang
- Name
422 - Unprocessable Entity- Description
Nabigo ang pose estimation. Maaaring hindi ang model ay isang wastong humanoid character. Magpadala ng model ng isang humanoid character. Para sa
model_url, suriin din na ang character ay nakaharap sa +Z axis.
- Name
429 - Too Many Requests- Description
Nalagpasan mo ang iyong rate limit. Maghintay, pagkatapos ay subukan muli. Tingnan ang Rate limits.
Kumuha ng Rigging task
Ibinabalik ang isang Rigging task batay sa ID nito.
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=..."
}
}
}
Mga Parameter
- Name
- id
- Type
- path
- Description
Ang task ID mula sa create response.
Ibinabalik
Ang Rigging task object.
Mag-delete ng Rigging task
Permanenteng nagde-delete ng Rigging task, kasama ang mga model at data nito. Hindi mo na maaaring i-undo ang pag-delete.
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."
}
Mga path parameter
- Name
- id
- Type
- path
- Description
Ang ID ng task na ide-delete.
Status ng task
Ang pag-delete ng PENDING na task ay nagre-refund ng credits na nagamit noong ginawa mo ito.
Ang isang IN_PROGRESS na task ay hindi maaaring i-delete. Magbabalik ang request ng 409 Conflict,
at magpapatuloy ang pagtakbo ng task. Hindi nagre-refund ang Meshy para sa task na nagsimula na,
kaya kung ide-delete mo ito, mawawala sa iyo pareho ang credits at ang resulta. Hintayin itong
umabot sa SUCCEEDED, FAILED, o CANCELED, bago ito i-delete.
Ang pag-delete ng task na nasa final status na (SUCCEEDED, FAILED, o CANCELED)
ay hindi nagre-refund ng credits nito.
Mga ibinabalik
200 OK kapag na-delete na ang task, o 409 Conflict kapag ang task ay
IN_PROGRESS.
List Rigging tasks
Nagbabalik ito ng isang pinaged na listahan ng iyong mga Rigging tasks, pinakabago muna. Para mag-page sa listahan, gamitin ang page_num at page_size.
Ang mga task na ginawa mo gamit ang API ay nananatili sa API at hindi lumalabas sa My Assets sa web app. Upang mahanap ang isang task na ang ID ay wala ka nang hawak, gamitin ang endpoint na ito.
Request
curl "https://api.meshy.ai/openapi/v1/rigging?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Mag-stream ng Rigging task
Nagsa-stream ng mga update ng Rigging task bilang 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?..."
}
}
}
Mga Parameter
- Name
- id
- Type
- path
- Description
Ang task ID mula sa create response.
Ibinabalik
Isang stream ng Rigging task objects bilang Server-Sent Events.
Bawat event ay may hawak na kumpletong task object, sa parehong anyo na ibinabalik ng Get endpoint. Habang ang task ay PENDING o IN_PROGRESS, wala pang mga halaga ang mga field ng resulta nito.
Ang Rigging task object
Inilalarawan ng Rigging task object ang rigging ng isang character. Dito nakalagay ang status, ang progress, at ang mga output file kapag nagtagumpay ang task.
Mga Property
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
Ang task ID. Ituring itong isang opaque na string, at huwag umasa sa format nito.
- Name
- type
- Type
- string
- Description
Ang uri ng task, laging
rig.
- Name
- status
- Type
- string
- Description
Ang status ng task, isa sa
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, oCANCELED.
- Name
- progress
- Type
- integer
- Description
Kung gaano na katapos ang task, bilang isang porsyento.
0ito hanggang magsimula ang task at100kapag nagtagumpay ito.
- Name
- created_at
- Type
- timestamp
- Description
Oras nang ginawa ang task, sa Unix milliseconds.
- Name
- started_at
- Type
- timestamp
- Description
Oras nang nagsimula ang task, sa Unix milliseconds.
0ito hanggang magsimula ang task.
- Name
- finished_at
- Type
- timestamp
- Description
Oras nang natapos ang task, sa Unix milliseconds.
0ito hanggang matapos ang task.
- Name
- expires_at
- Type
- timestamp
- Description
Oras kung kailan mag-e-expire ang mga result file ng task, sa Unix milliseconds. Pagkatapos ng oras na ito, maaaring tanggalin ng Meshy ang mga file.
- Name
- task_error
- Type
- object
- Description
Ang detalye ng error kapag nabigo ang task.
nullito maliban kungFAILEDang status. Tingnan ang Errors.
- Name
- consumed_credits
- Type
- integer
- Description
Ang bilang ng credits na ginamit ng task. Nakalagay ito kapag ang status ay
PENDING,IN_PROGRESS, oSUCCEEDED.0ito para sa isangFAILEDna task, dahil ibinabalik ng Meshy ang credits kapag nabigo ang isang task.
- Name
- result
- Type
- object
- Description
Ang mga URL ng output file. Hanggang magtagumpay ang task, bawat URL ay isang blangkong string, at
nullangbasic_animations.- Name
rigged_character_fbx_url- Type
- string
- Description
Download URL para sa naka-rig na character bilang isang FBX file.
- Name
rigged_character_glb_url- Type
- string
- Description
Download URL para sa naka-rig na character bilang isang GLB file.
- Name
basic_animations- Type
- object (optional)
- Description
Mga download URL para sa default na walking at running animations.
- Name
walking_glb_url- Type
- string
- Description
- Ang walking animation na may skin, bilang isang GLB file.
- Name
walking_fbx_url- Type
- string
- Description
- Ang walking animation na may skin, bilang isang FBX file.
- Name
walking_armature_glb_url- Type
- string
- Description
- Ang armature ng walking animation, bilang isang GLB file.
- Name
running_glb_url- Type
- string
- Description
- Ang running animation na may skin, bilang isang GLB file.
- Name
running_fbx_url- Type
- string
- Description
- Ang running animation na may skin, bilang isang FBX file.
- Name
running_armature_glb_url- Type
- string
- Description
- Ang armature ng running animation, bilang isang GLB file.
- Name
- preceding_tasks
- Type
- integer
- Description
Ang bilang ng mga task na nauuna sa queue bago ang task na ito. Makabuluhan lamang ang value habang
PENDINGang task. Hindi isinasama ang field na ito kapag0ang value.