Anda juga dapat melakukan pasca-pemrosesan pada output. Task ini berjalan di latar belakang. Untuk berapa lama biasanya sebuah task berjalan, lihat 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"}
Parameter
Name
rig_task_id
Type
string
Wajib
Description
ID dari Rigging task yang karakternya akan dianimasikan, dari POST /openapi/v1/rigging. Task tersebut harus memiliki status SUCCEEDED.
Kirim tepat satu dari action_id, action_ids, dan motion_task_id.
Name
action_id
Type
integer
Wajib
Description
Wajib diisi kecuali Anda mengirim action_ids atau motion_task_id. ID dari animasi preset yang akan diterapkan. Untuk daftar lengkap animasi, lihat referensi Pustaka animasi atau List animations.
Name
action_ids
Type
array of integers
Wajib
Description
Wajib diisi kecuali Anda mengirim action_id atau motion_task_id. ID dari 1 hingga 10 preset animasi yang akan diterapkan sekaligus, tanpa ada yang berulang. Lebih dari 10 ID, atau ID yang berulang, akan mengembalikan 400. Untuk daftar ID, lihat referensi Pustaka animasi.
Meshy mengembalikan satu file dengan satu klip animasi per action, yang cocok untuk state machine dalam game engine. Meshy mengenakan biaya untuk setiap action dalam daftar. Lihat Harga.
Daftar dengan satu ID bekerja sama seperti mengirim ID tersebut sebagai action_id.
Name
motion_task_id
Type
string
Wajib
Description
Wajib diisi kecuali Anda mengirim action_id atau action_ids. ID dari task Text to Motion yang klipnya akan diterapkan, menggantikan preset action. Task tersebut harus memiliki status SUCCEEDED, dan rig harus berupa biped.
Meshy melakukan retarget klip tersebut ke karakter yang sudah di-rig. Meshy menyalin klip tersebut saat Anda membuat task ini, sehingga task ini tidak terpengaruh jika Text to Motion task tersebut nantinya kedaluwarsa atau Anda menghapusnya. Meshy menyimpan file dari Text to Motion task selama 3 hari, jadi terapkan klip tersebut sebelum masa itu berakhir.
Name
post_process
Type
object
Description
Pasca-pemrosesan untuk output animasi. Biarkan kosong untuk mendapatkan file animasi standar.
Dengan motion_task_id, hasil retarget bisa menghasilkan animasi yang hanya berupa GLB. Jika Anda mengirim post_process dan tidak ada file FBX yang tersedia, task akan gagal dengan task_error, dan Meshy mengembalikan kredit Anda. Tanpa post_process, task akan berhasil, dan animation_fbx_url akan kosong.
Hanya berlaku ketika post_process is set
Name
operation_type
Type
string
Description
Operasi yang akan dijalankan. Tanpa ini, Meshy tidak membuat file tambahan. Nilai yang tidak ada dalam daftar berikut akan mengembalikan 400.
Nilai yang tersedia:
change_fps: mengubah frame rate menjadi fps
fbx2usdz: mengonversi animasi menjadi USDZ
extract_armature: mengekstrak armature sebagai file FBX
Name
fps
Type
integer
default 30
Description
Frame rate yang akan diubah, salah satu dari 24, 25, 30, atau 60. Hanya berlaku ketika operation_type adalah change_fps. Nilai lain akan mengembalikan 400.
Dengan action_ids, task akan mengembalikan satu file gabungan, bukan satu file per action. animation_glb_url dan animation_fbx_url masing-masing mengarah pada satu file yang menyimpan setiap action yang diminta sebagai klip terpisah. Dalam file tersebut:
Urutan klip: sesuai urutan array action_ids, bukan urutan numerik dari ID.
Nama klip: nama animasi di pustaka. Nama ini sama dengan nama yang Anda dapatkan saat mengekspor semua animasi karakter sebagai satu file dari aplikasi web Meshy. Jika dua ID yang diminta memiliki nama klip yang sama, Meshy menambahkan action_id pada klip yang belakangan untuk menjaga agar nama tetap unik.
Pasca-pemrosesan: Meshy menerapkannya pada file gabungan, bukan pada tiap klip.
Hasil yang Dikembalikan
Field result pada respons berisi ID dari Animation task yang baru.
Mode kegagalan
Name
400 - Bad Request
Description
Permintaan tidak dapat dijalankan. Pesan kesalahan menunjukkan masalah yang ditemukan. Misalnya:
Parameter hilang: rig_task_id tidak ada, atau tidak satupun dari action_id, action_ids, dan motion_task_id yang dikirim.
Parameter saling bertentangan: Permintaan memiliki lebih dari satu dari action_id, action_ids, dan motion_task_id. Kirim hanya satu saja.
Rig task tidak valid: rig_task_id bukan ID task yang valid, bukan Rigging task, atau mengarah ke task yang belum berhasil.
ID action tidak valid: action_id, atau salah satu entri di action_ids, bukan animasi yang valid.
Terlalu banyak action: action_ids memiliki lebih dari 10 ID.
Action duplikat: action_ids memiliki ID yang sama lebih dari satu kali.
Motion task belum siap: Task motion_task_id belum mencapai status SUCCEEDED.
Rig tidak didukung: motion_task_id memerlukan rig biped, dan Meshy menolak rig quadruped.
Perbaiki permintaan tersebut, lalu kirim lagi. Lihat Kesalahan.
Name
401 - Unauthorized
Description
Kunci API hilang atau tidak valid. Periksa header Authorization.
Name
402 - Payment Required
Description
Misalnya:
Kredit tidak cukup: Akun tidak memiliki cukup kredit untuk task ini, atau akun telah mencapai batas kredit. Periksa saldo kredit Anda, lalu coba lagi.
Paket gratis: Membuat task memerlukan paket berbayar. Tingkatkan paket Anda di pengaturan langganan, lalu coba lagi.
Name
403 - Forbidden
Description
Task rig_task_id adalah model bas-relief, yang tidak dapat dianimasikan oleh endpoint ini. Pesannya adalah This model type does not support this operation. Rig model yang lain.
Name
404 - Not Found
Description
Meshy tidak dapat menemukan task atau file yang dibutuhkan oleh permintaan. Salah satu dari berikut ini berlaku:
Meshy tidak dapat menemukan task rig_task_id di antara task Anda. Periksa ID-nya.
Meshy menghapus file dari task rig_task_id setelah expires_at-nya. Rig karakter tersebut lagi.
Meshy tidak dapat menemukan task motion_task_id. Periksa ID-nya.
Klip gerakan telah kedaluwarsa, karena Meshy menyimpan file dari Text to Motion task selama 3 hari. Buat Text to Motion task yang lain.
Name
429 - Too Many Requests
Description
Anda melampaui batas laju Anda. Tunggu, lalu coba lagi. Lihat 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."}
Parameter jalur
Name
id
Type
path
Description
ID tugas yang akan dihapus.
Status tugas
Menghapus tugas PENDING akan mengembalikan kredit yang digunakan saat Anda membuatnya.
Tugas IN_PROGRESS tidak dapat dihapus. Permintaan akan mengembalikan 409 Conflict,
dan tugas tersebut akan terus berjalan. Meshy tidak mengembalikan kredit untuk tugas yang sudah dimulai,
jadi menghapusnya akan membuat Anda kehilangan baik kredit maupun hasilnya. Tunggu hingga tugas tersebut
mencapai status SUCCEEDED, FAILED, atau CANCELED, lalu hapus.
Menghapus tugas dengan status akhir (SUCCEEDED, FAILED, atau CANCELED)
tidak mengembalikan kreditnya.
Returns
200 OK ketika tugas berhasil dihapus, atau 409 Conflict ketika tugas
berstatus IN_PROGRESS.
Mengembalikan daftar berpaginasi dari tugas-tugas Animasi Anda, yang terbaru terlebih dahulu. Untuk menelusuri daftar tersebut, gunakan page_num dan page_size.
Tugas yang Anda buat melalui API tidak muncul di My Assets pada aplikasi web, sehingga Anda mengelolanya melalui API. Untuk menemukan tugas yang ID-nya tidak Anda miliki lagi, gunakan endpoint ini.
// 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?..." }}
Setiap event memuat objek tugas secara lengkap, dengan bentuk yang sama seperti yang dikembalikan oleh endpoint Get. Selama tugas masih berstatus PENDING atau IN_PROGRESS, bidang hasilnya belum memiliki nilai.
Objek task Animasi menjelaskan satu animasi yang diterapkan pada karakter yang sudah di-rig. Objek ini menyimpan status, progress, dan file animasi saat task berhasil.
Jumlah kredit yang digunakan task. Muncul saat statusnya PENDING, IN_PROGRESS, atau SUCCEEDED. Nilainya 0 untuk task yang FAILED, karena Meshy mengembalikan kredit saat task gagal.
Name
result
Type
object
Description
URL unduhan untuk file animasi, saat task berstatus SUCCEEDED.
Name
animation_glb_url
Type
string
Description
Animasi sebagai file GLB. Untuk task yang dibuat dengan action_ids, satu file ini menyimpan setiap aksi yang diminta sebagai clip terpisah.
Name
animation_fbx_url
Type
string
Description
Animasi sebagai file FBX. Untuk task yang dibuat dengan action_ids, satu file ini menyimpan setiap aksi yang diminta sebagai clip terpisah.
Name
processed_usdz_url
Type
string
Description
Animasi yang telah diproses sebagai file USDZ.
Name
processed_armature_fbx_url
Type
string
Description
Armature yang telah diproses sebagai file FBX.
Name
processed_animation_fps_fbx_url
Type
string
Description
Animasi dengan frame rate yang telah diubah, sebagai file FBX, misalnya saat Anda menggunakan operasi change_fps.
Name
preceding_tasks
Type
integer
Description
Jumlah task yang berada di depan task ini dalam antrean. Nilai ini hanya bermakna selama task berstatus PENDING. Kolom ini tidak disertakan saat nilainya 0.
Mengembalikan setiap animasi dalam pustaka, diurutkan berdasarkan action_id. Respons berupa daftar lengkap, tanpa halaman, sehingga satu panggilan dapat mengisi pemilih aksi. Filter mempersempit hasil. Untuk mendapatkan semua animasi, hilangkan semua filter.
Untuk menelusuri daftar yang sama dengan pratinjau animasi dari setiap aksi, lihat referensi Pustaka animasi.
Teks yang akan dicari. Meshy mengembalikan animasi yang name atau key-nya mengandung teks ini, tanpa membedakan huruf besar/kecil. Meshy mencocokkan teks secara harfiah, sehingga % dan _ bukan wildcard.
Name
category
Type
string
Description
Kategori yang akan ditampilkan, sebagai kecocokan persis. Kategori yang tidak dikenal akan mengembalikan daftar kosong.
Nilai yang tersedia:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Subkategori yang akan ditampilkan, sebagai kecocokan persis. Anda dapat mengirimkannya tanpa category. Nama subkategori tidak unik di seluruh kategori. Misalnya, Transitioning ada di bawah Fighting maupun DailyActions. Jadi tanpa category, filter akan mencocokkan subkategori di setiap kategori.
Name
action_ids
Type
string
Description
Animasi yang akan dikembalikan, berupa hingga 200 nilai action_id yang dipisahkan koma. Gunakan ini untuk mencari ID tertentu alih-alih menelusuri. Lebih dari 200 ID akan mengembalikan 400.
Respons tidak menyertakan ID yang tidak dimiliki animasi mana pun. Jadi Anda juga dapat menggunakan filter ini untuk memeriksa apakah ID yang Anda simpan masih tersedia.
Menggabungkan filter
Meshy menerapkan filter secara bersamaan. Setiap filter mempersempit hasil, sehingga Meshy hanya mengembalikan animasi jika cocok dengan semuanya. Dalam satu filter, salah satu nilainya dapat cocok. Misalnya, search cocok dengan name atau key, dan action_ids cocok dengan ID mana pun dalam daftar.
Jadi kombinasi yang tidak tumpang tindih akan mengembalikan array kosong, bukan error. Aksi 92 adalah "Double Combo Attack", sebuah animasi Fighting. Misalnya:
Buat tugas Animasi menerima setiap action_id yang dikembalikan oleh endpoint ini, dan endpoint ini mengembalikan setiap ID yang diterima oleh create. Keduanya tidak menyertakan animasi yang sudah tidak digunakan lagi. Jika Anda menyimpan pustaka dalam cache, perbarui dari waktu ke waktu, agar ID yang sudah tidak digunakan lagi tidak tetap berada di pemilih Anda.
Nilai yang dikirim sebagai action_id saat Anda membuat task Animasi. Nilai ini unik dan stabil, tetapi tidak berurutan. Animasi yang dipensiunkan meninggalkan celah dalam penomoran, jadi jangan berasumsi bahwa setiap ID dalam suatu rentang pasti valid.
Name
name
Type
string
Description
Nama tampilan animasi tersebut. Nilai ini tidak unik, karena beberapa animasi berbagi nama dengan varian lainnya. Untuk mengidentifikasi sebuah animasi, gunakan action_id atau key.
Name
key
Type
string
Description
Slug unik dan stabil untuk animasi tersebut. Gunakan ini saat Anda memerlukan ID non-numerik untuk menjadi kunci penyimpanan Anda sendiri.
Name
category
Type
string
Description
Grup tingkat atas, misalnya Fighting.
Name
sub_category
Type
string
Description
Grup di dalam kategori, misalnya AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL pratinjau GIF animasi dari action tersebut. Anda dapat menampilkannya langsung di pemilih (picker) Anda sendiri.