एक एनिमेशन टास्क बनाता है, जो आपके पहले रिग किए गए कैरेक्टर पर एक एनिमेशन लागू करता है। एनिमेशन निम्न में से एक हो सकता है:
एनिमेशन लाइब्रेरी से एक प्रीसेट एक्शन (action_id)
एक फ़ाइल में मर्ज किए गए कई प्रीसेट एक्शन (action_ids)
Text to Motion API से आपके द्वारा जनरेट की गई एक मोशन क्लिप (motion_task_id)
आप आउटपुट को पोस्ट-प्रोसेस भी कर सकते हैं। टास्क बैकग्राउंड में चलता है। एक टास्क में आमतौर पर कितना समय लगता है, इसके लिए देखें Processing times।
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"}
पैरामीटर
Name
rig_task_id
Type
string
आवश्यक
Description
उस Rigging टास्क की ID, जिसके कैरेक्टर को एनिमेट करना है, POST /openapi/v1/rigging से प्राप्त। टास्क का status SUCCEEDED होना चाहिए।
action_id, action_ids, और motion_task_id में से बिल्कुल एक भेजें।
Name
action_id
Type
integer
आवश्यक
Description
आवश्यक है जब तक आप action_ids या motion_task_id न भेजें। लागू करने के लिए प्रीसेट एनिमेशन की ID। एनिमेशन की पूरी सूची के लिए, Animation Library reference या List animations देखें।
Name
action_ids
Type
array of integers
आवश्यक
Description
आवश्यक है जब तक आप action_id या motion_task_id न भेजें। एक साथ लागू करने के लिए 1 से 10 प्रीसेट एनिमेशन की IDs, बिना किसी दोहराव के। 10 से अधिक IDs, या एक दोहराई गई ID, 400 लौटाती है। IDs के लिए, Animation Library reference देखें।
Meshy प्रति एक्शन एक फ़ाइल लौटाता है जिसमें एक एनिमेशन क्लिप होती है, जो गेम इंजन में एक स्टेट मशीन के लिए उपयुक्त है। Meshy सूची में हर एक्शन के लिए शुल्क लेता है। Pricing देखें।
एक ID वाली सूची उसी तरह काम करती है जैसे उस ID को action_id के रूप में भेजना।
Name
motion_task_id
Type
string
आवश्यक
Description
आवश्यक है जब तक आप action_id या action_ids न भेजें। एक Text to Motion टास्क की ID, जिसकी क्लिप को प्रीसेट एक्शन के बजाय लागू करना है। टास्क का status SUCCEEDED होना चाहिए, और रिग एक बाइपेड होना चाहिए।
Meshy क्लिप को रिग किए गए कैरेक्टर पर रीटार्गेट करता है। यह इस टास्क को बनाते समय क्लिप को कॉपी करता है, इसलिए अगर Text to Motion टास्क बाद में एक्सपायर हो जाए या आप उसे डिलीट कर दें, तो यह टास्क प्रभावित नहीं होता। Meshy Text to Motion टास्क की फ़ाइलों को 3 दिनों तक रखता है, इसलिए उससे पहले क्लिप लागू करें।
Name
post_process
Type
object
Description
एनिमेशन आउटपुट के लिए पोस्ट-प्रोसेसिंग। मानक एनिमेशन फ़ाइलें प्राप्त करने के लिए इसे छोड़ दें।
motion_task_id के साथ, रीटार्गेट एक GLB-only एनिमेशन बना सकता है। यदि आप post_process भेजते हैं और कोई FBX फ़ाइल उपलब्ध नहीं है, तो टास्क task_error के साथ विफल हो जाता है, और Meshy आपके क्रेडिट वापस कर देता है। post_process के बिना, टास्क सफल होता है, और animation_fbx_url खाली होता है।
केवल तब लागू होता है जब post_process is set
Name
operation_type
Type
string
Description
चलाने के लिए ऑपरेशन। इसके बिना, Meshy कोई अतिरिक्त फ़ाइल नहीं बनाता। निम्न सूची में न होने वाला मान 400 लौटाता है।
उपलब्ध मान:
change_fps: फ्रेम रेट को fps में बदलता है
fbx2usdz: एनिमेशन को USDZ में कन्वर्ट करता है
extract_armature: आर्मेचर को FBX फ़ाइल के रूप में एक्सट्रैक्ट करता है
Name
fps
Type
integer
डिफ़ॉल्ट 30
Description
बदलने के लिए फ्रेम रेट, 24, 25, 30, या 60 में से एक। यह तभी लागू होता है जब operation_typechange_fps हो। कोई अन्य मान 400 लौटाता है।
action_ids के साथ, टास्क प्रति एक्शन एक फ़ाइल के बजाय एक मर्ज की गई फ़ाइल लौटाता है। animation_glb_url और animation_fbx_url में से हर एक एक फ़ाइल की ओर इशारा करता है जो हर अनुरोधित एक्शन को अलग क्लिप के रूप में रखती है। उस फ़ाइल में:
क्लिप का क्रम: action_ids ऐरे का क्रम, न कि IDs का न्यूमेरिक क्रम।
क्लिप के नाम: लाइब्रेरी में एनिमेशन का नाम। ये उन नामों से मेल खाते हैं जो आपको Meshy वेब ऐप से किसी कैरेक्टर के सभी एनिमेशन को एक फ़ाइल के रूप में एक्सपोर्ट करने पर मिलते हैं। यदि दो अनुरोधित IDs का क्लिप नाम समान है, तो Meshy नामों को यूनिक रखने के लिए बाद वाले में action_id जोड़ देता है।
पोस्ट-प्रोसेसिंग: Meshy इसे प्रत्येक क्लिप पर नहीं, बल्कि मर्ज की गई फ़ाइल पर लागू करता है।
रिटर्न
रिस्पॉन्स का result फ़ील्ड नए Animation टास्क की ID रखता है।
विफलता के तरीके
Name
400 - Bad Request
Description
अनुरोध नहीं चल सकता। एरर संदेश बताता है कि कौन सी समस्या मिली। उदाहरण के लिए:
पैरामीटर गायब है: rig_task_id गायब है, या action_id, action_ids, और motion_task_id में से कोई भी नहीं भेजा गया।
परस्पर विरोधी पैरामीटर: अनुरोध में action_id, action_ids, और motion_task_id में से एक से अधिक मौजूद हैं। केवल एक भेजें।
अमान्य रिग टास्क: rig_task_id या तो मान्य टास्क ID नहीं है, Rigging टास्क नहीं है, या एक ऐसे टास्क की ओर इशारा करता है जो सफल नहीं हुआ है।
अमान्य एक्शन ID: action_id, या action_ids में कोई एंट्री, एक मान्य एनिमेशन नहीं है।
बहुत अधिक एक्शन: action_ids में 10 से अधिक IDs हैं।
डुप्लिकेट एक्शन: action_ids में एक ही ID एक से अधिक बार है।
मोशन टास्क तैयार नहीं है: motion_task_id टास्क अभी तक SUCCEEDED तक नहीं पहुंचा है।
असमर्थित रिग: motion_task_id के लिए बाइपेड रिग चाहिए, और Meshy एक क्वाड्रूपेड रिग को अस्वीकार करता है।
अनुरोध को ठीक करें, फिर इसे फिर से भेजें। Errors देखें।
Name
401 - Unauthorized
Description
API की गायब है या अमान्य है। Authorization हेडर जाँचें।
Name
402 - Payment Required
Description
उदाहरण के लिए:
अपर्याप्त क्रेडिट: खाते में इस टास्क के लिए पर्याप्त क्रेडिट नहीं हैं, या खाता क्रेडिट सीमा तक पहुँच गया है। अपना क्रेडिट बैलेंस जाँचें, फिर पुनः प्रयास करें।
फ्री प्लान: टास्क बनाने के लिए पेड प्लान आवश्यक है। अपने सब्सक्रिप्शन सेटिंग्स में अपना प्लान अपग्रेड करें, फिर पुनः प्रयास करें।
Name
403 - Forbidden
Description
rig_task_id टास्क एक बास-रिलीफ मॉडल है, जिसे यह एंडपॉइंट एनिमेट नहीं कर सकता। संदेश है This model type does not support this operation। किसी अन्य मॉडल को रिग करें।
Name
404 - Not Found
Description
Meshy को अनुरोध के लिए आवश्यक टास्क या फ़ाइल नहीं मिल सकी। निम्न में से एक लागू होता है:
Meshy को आपके टास्क में rig_task_id टास्क नहीं मिल सकी। ID जाँचें।
Meshy ने rig_task_id टास्क की फ़ाइलों को उसके expires_at के बाद डिलीट कर दिया। कैरेक्टर को फिर से रिग करें।
Meshy को motion_task_id टास्क नहीं मिल सकी। ID जाँचें।
मोशन क्लिप एक्सपायर हो गई, क्योंकि Meshy एक Text to Motion टास्क की फ़ाइलों को 3 दिनों तक रखता है। एक और Text to Motion टास्क बनाएँ।
Name
429 - Too Many Requests
Description
आपने अपनी रेट लिमिट पार कर ली है। प्रतीक्षा करें, फिर पुनः प्रयास करें। 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."}
पाथ पैरामीटर
Name
id
Type
path
Description
हटाए जाने वाले टास्क की ID।
टास्क स्टेटस
किसी PENDING टास्क को डिलीट करने पर, उसे बनाते समय इस्तेमाल हुए क्रेडिट रिफंड कर दिए जाते हैं।
किसी IN_PROGRESS टास्क को डिलीट नहीं किया जा सकता। रिक्वेस्ट 409 Conflict
लौटाती है, और टास्क चलता रहता है। Meshy उस टास्क को रिफंड नहीं करता जो शुरू हो चुका है,
इसलिए उसे डिलीट करने पर आपको क्रेडिट और रिज़ल्ट दोनों का नुकसान होगा। इसके
SUCCEEDED, FAILED, या CANCELED तक पहुँचने का इंतज़ार करें, फिर उसे डिलीट करें।
किसी फाइनल स्टेटस (SUCCEEDED, FAILED, या CANCELED) वाले टास्क को डिलीट करने पर
उसके क्रेडिट रिफंड नहीं होते।
रिटर्न
जब टास्क डिलीट हो जाता है तो 200 OK, या जब टास्क IN_PROGRESS होता है तो
409 Conflict।
यह आपके Animation कार्यों की एक पेजिनेटेड सूची लौटाता है, जिसमें सबसे नए कार्य सबसे ऊपर होते हैं। सूची में पेज दर पेज जाने के लिए page_num और page_size का उपयोग करें।
API के माध्यम से बनाए गए कार्य वेब ऐप में My Assets में दिखाई नहीं देते, इसलिए आप उन्हें API के माध्यम से ही प्रबंधित करते हैं। जिस कार्य की ID आपके पास अब नहीं है, उसे खोजने के लिए इस एंडपॉइंट का उपयोग करें।
// 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?..." }}
प्रत्येक इवेंट में पूरा टास्क ऑब्जेक्ट होता है, उसी संरचना में जिसमें Get एंडपॉइंट रिटर्न करता है। जब तक टास्क PENDING या IN_PROGRESS स्थिति में रहता है, इसके result फ़ील्ड्स में अभी कोई वैल्यू नहीं होती।
एक Animation task object एक रिग्ड कैरेक्टर पर लागू की गई एक एनिमेशन का वर्णन करता है। इसमें स्टेटस, progress, और टास्क सफल होने पर एनिमेशन फाइलें होती हैं।
टास्क ID। इसे एक अपारदर्शी स्ट्रिंग मानें, और इसके फॉर्मेट पर निर्भर न रहें।
Name
type
Type
string
Description
टास्क का प्रकार, हमेशा animate।
Name
status
Type
string
Description
टास्क स्टेटस, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, या CANCELED में से एक।
Name
progress
Type
integer
Description
टास्क कितना पूरा हुआ है, प्रतिशत के रूप में। यह तब तक 0 रहता है जब तक टास्क शुरू नहीं होता और सफल होने पर 100 हो जाता है।
Name
created_at
Type
timestamp
Description
टास्क के बनाए जाने का समय, यूनिक्स मिलीसेकंड में।
Name
started_at
Type
timestamp
Description
टास्क के शुरू होने का समय, यूनिक्स मिलीसेकंड में। जब तक टास्क शुरू नहीं होता, यह 0 रहता है।
Name
finished_at
Type
timestamp
Description
टास्क के पूरा होने का समय, यूनिक्स मिलीसेकंड में। जब तक टास्क पूरा नहीं होता, यह 0 रहता है।
Name
expires_at
Type
timestamp
Description
टास्क की परिणाम फाइलों के समाप्त होने का समय, यूनिक्स मिलीसेकंड में।
Name
task_error
Type
object
Description
टास्क विफल होने पर एरर विवरण। यह null रहता है जब तक स्टेटस FAILED न हो। देखें एरर।
Name
consumed_credits
Type
integer
Description
टास्क द्वारा उपयोग किए गए क्रेडिट की संख्या। यह तब मौजूद होता है जब स्टेटस PENDING, IN_PROGRESS, या SUCCEEDED हो। FAILED टास्क के लिए यह 0 होता है, क्योंकि Meshy टास्क विफल होने पर क्रेडिट वापस कर देता है।
Name
result
Type
object
Description
एनिमेशन फाइलों के लिए डाउनलोड URL, जब टास्क का स्टेटस SUCCEEDED हो।
Name
animation_glb_url
Type
string
Description
एनिमेशन एक GLB फाइल के रूप में। action_ids के साथ बनाए गए टास्क के लिए, यह एक फाइल हर अनुरोधित action को एक अलग क्लिप के रूप में रखती है।
Name
animation_fbx_url
Type
string
Description
एनिमेशन एक FBX फाइल के रूप में। action_ids के साथ बनाए गए टास्क के लिए, यह एक फाइल हर अनुरोधित action को एक अलग क्लिप के रूप में रखती है।
Name
processed_usdz_url
Type
string
Description
प्रोसेस किया गया एनिमेशन एक USDZ फाइल के रूप में।
Name
processed_armature_fbx_url
Type
string
Description
प्रोसेस किया गया आर्मेचर एक FBX फाइल के रूप में।
Name
processed_animation_fps_fbx_url
Type
string
Description
बदली गई फ्रेम रेट पर एनिमेशन, एक FBX फाइल के रूप में, उदाहरण के लिए जब आपने change_fps ऑपरेशन का उपयोग किया हो।
Name
preceding_tasks
Type
integer
Description
क्यू में इस टास्क से आगे मौजूद टास्कों की संख्या। यह मान केवल तब सार्थक होता है जब टास्क PENDING हो। जब मान 0 होता है तो इस फ़ील्ड को छोड़ दिया जाता है।
लाइब्रेरी में मौजूद हर एनिमेशन को action_id के अनुसार क्रमबद्ध करके लौटाता है। प्रतिक्रिया पूरी सूची होती है, जिसमें कोई पेज नहीं होते, इसलिए एक ही कॉल से एक्शन पिकर भरा जा सकता है। फ़िल्टर परिणाम को सीमित करते हैं। हर एनिमेशन पाने के लिए, उन सभी को छोड़ दें।
हर एक्शन के एनिमेटेड प्रीव्यू के साथ उसी सूची को ब्राउज़ करने के लिए, Animation Library रेफरेंस देखें।
खोजने के लिए टेक्स्ट। Meshy उन एनिमेशन को लौटाता है जिनके name या key में यह टेक्स्ट मौजूद है, केस को नज़रअंदाज़ करते हुए। Meshy टेक्स्ट को शब्दशः मैच करता है, इसलिए % और _ वाइल्डकार्ड नहीं हैं।
Name
category
Type
string
Description
सूचीबद्ध करने के लिए कैटेगरी, एक सटीक मिलान के रूप में। एक अज्ञात कैटेगरी एक खाली सूची लौटाती है।
उपलब्ध मान:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
सूचीबद्ध करने के लिए सबकैटेगरी, एक सटीक मिलान के रूप में। आप इसे category के बिना भेज सकते हैं। सबकैटेगरी के नाम कैटेगरी में अद्वितीय नहीं होते। उदाहरण के लिए, TransitioningFighting और DailyActions दोनों के अंतर्गत आता है। इसलिए category के बिना, फ़िल्टर हर कैटेगरी में सबकैटेगरी से मेल खाता है।
Name
action_ids
Type
string
Description
लौटाए जाने वाले एनिमेशन, 200 तक कॉमा-सेपरेटेड action_id मानों के रूप में। ब्राउज़ करने के बजाय विशिष्ट ID खोजने के लिए इसका उपयोग करें। 200 से अधिक ID देने पर 400 लौटता है।
प्रतिक्रिया उस ID को छोड़ देती है जिसका कोई एनिमेशन नहीं है। इसलिए आप इस फ़िल्टर का उपयोग यह जाँचने के लिए भी कर सकते हैं कि आपने जो ID सहेजी थीं वे अभी भी उपलब्ध हैं या नहीं।
फ़िल्टर को संयोजित करना
Meshy फ़िल्टर को एक साथ लागू करता है। हर एक परिणाम को सीमित करता है, इसलिए Meshy एक एनिमेशन तभी लौटाता है जब वह उन सभी से मेल खाता हो। एक फ़िल्टर के भीतर, उसके किसी भी मान से मेल हो सकता है। उदाहरण के लिए, search, name या key से मेल खाता है, और action_ids सूची में किसी भी ID से मेल खाता है।
इसलिए बिना किसी ओवरलैप वाला संयोजन एक खाली ऐरे लौटाता है, कोई त्रुटि नहीं। एक्शन 92 "Double Combo Attack" है, जो एक Fighting एनिमेशन है। उदाहरण के लिए:
?action_ids=92&category=Fighting एक्शन 92 लौटाता है।
?action_ids=92&category=Dancing[] लौटाता है, क्योंकि यह Dancing एनिमेशन नहीं है।
?action_ids=92&search=walk[] लौटाता है, क्योंकि इसका नाम walk से मेल नहीं खाता।
किसी भी कैटेगरी में विशिष्ट एनिमेशन पाने के लिए, action_ids को अकेले भेजें।
एक एनिमेशन टास्क बनाएं वह हर action_id स्वीकार करता है जो यह एंडपॉइंट लौटाता है, और यह एंडपॉइंट वह हर ID लौटाता है जो बनाना स्वीकार करता है। इनमें से कोई भी रिटायर किए गए एनिमेशन शामिल नहीं करता। यदि आप लाइब्रेरी को कैश करते हैं, तो उसे समय-समय पर रिफ्रेश करें, ताकि कोई रिटायर की गई ID आपके पिकर में न रह जाए।
जब आप कोई एनिमेशन टास्क बनाते हैं, तो action_id के रूप में भेजने के लिए यह वैल्यू है। यह अद्वितीय और स्थिर है, लेकिन लगातार क्रम में नहीं है। रिटायर हो चुके एनिमेशन नंबरिंग में अंतराल छोड़ देते हैं, इसलिए यह मान कर न चलें कि किसी रेंज में हर ID मान्य है।
Name
name
Type
string
Description
एनिमेशन का डिस्प्ले नाम। यह अद्वितीय नहीं है, क्योंकि कुछ एनिमेशन किसी अन्य वेरिएंट के साथ नाम साझा करते हैं। किसी एनिमेशन को पहचानने के लिए action_id या key का उपयोग करें।
Name
key
Type
string
Description
एनिमेशन के लिए एक अद्वितीय, स्थिर स्लग। जब आपको अपने स्वयं के स्टोरेज को की करने के लिए किसी गैर-संख्यात्मक ID की आवश्यकता हो, तो इसका उपयोग करें।
Name
category
Type
string
Description
टॉप-लेवल समूह, उदाहरण के लिए Fighting।
Name
sub_category
Type
string
Description
कैटेगरी के भीतर का समूह, उदाहरण के लिए AttackingwithWeapon।
Name
preview_url
Type
string
Description
एक्शन के एनिमेटेड GIF प्रीव्यू का URL। आप इसे सीधे अपने खुद के पिकर में दिखा सकते हैं।