Endpoint ini memungkinkan Anda membuat tugas baru untuk menerapkan animasi ke karakter yang sebelumnya sudah di-rig — sebuah preset action dari pustaka animasi (action_id), beberapa preset action yang digabung menjadi satu file (action_ids), atau klip gerakan yang Anda hasilkan dengan Text to Motion API (motion_task_id). Mencakup opsi pasca-pemrosesan.
Tugas ini berjalan di latar belakang. Untuk mengetahui berapa lama biasanya proses ini berlangsung, lihat Waktu Pemrosesan.
Parameter
Name
rig_task_id
Type
string
Wajib
Description
id dari tugas rigging yang berhasil diselesaikan (dari POST /openapi/v1/rigging). Karakter dari tugas ini akan dianimasikan.
Name
action_id
Type
integer
Description
Pengenal (identifier) dari preset action animasi yang akan diterapkan. Lihat Referensi Pustaka Animasi untuk daftar lengkap animasi yang tersedia. Berikan tepat satu dari action_id, action_ids, atau motion_task_id.
Name
action_ids
Type
array of integers
Description
Beberapa preset action animasi untuk diterapkan sekaligus, dikembalikan sebagai satu file tunggal yang berisi satu klip animasi per action — berguna untuk menggerakkan karakter dari state machine dalam game engine. Berikan 1 hingga 10 nilai action_id dari Referensi Pustaka Animasi; id harus unik. Dikenakan biaya 3 kredit per action. Berikan tepat satu dari action_id, action_ids, atau motion_task_id.
Memberikan action_ids dengan satu elemen setara dengan memberikan nilai tersebut sebagai action_id.
Name
motion_task_id
Type
string
Description
id dari tugas Text to Motion yang berhasil diselesaikan untuk diterapkan sebagai pengganti preset action. Klip yang dihasilkan di-retarget ke karakter yang sudah di-rig dan klip tersebut diambil snapshot-nya pada saat pembuatan, sehingga tugas ini tidak terpengaruh jika tugas sumber kemudian kedaluwarsa atau dihapus. Aset dari tugas sumber disimpan selama 3 hari — terapkan klip tersebut sebelum kedaluwarsa. Membutuhkan rig biped. Berikan tepat satu dari action_id, action_ids, atau motion_task_id.
Name
post_process
Type
object
Description
Pasca-pemrosesan opsional untuk output animasi. Abaikan parameter ini untuk mendapatkan file animasi standar.
Hanya berlaku ketika post_process is set
Name
operation_type
Type
string
Wajib
Description
Jenis operasi yang akan dilakukan. Nilai yang tersedia: change_fps, fbx2usdz, extract_armature.
Name
fps
Type
integer
default 30
Description
Frame rate target. Hanya berlaku saat operation_type adalah change_fps. Nilai yang diizinkan: 24, 25, 30, 60.
Dengan action_ids, tugas mengembalikan satu file gabungan, bukan satu file per action: animation_glb_url dan animation_fbx_url masing-masing menunjuk ke satu aset yang berisi setiap action yang diminta sebagai klip terpisah.
Urutan klip: urutan array action_ids, bukan urutan numerik dari id.
Nama klip: nama animasi di pustaka, sesuai dengan nama yang Anda dapatkan saat mengekspor semua animasi dari karakter sebagai satu file dari aplikasi web Meshy. Jika dua id yang diminta mengarah ke nama klip yang sama, id yang belakangan akan diberi akhiran action_id-nya untuk menjaga keunikan nama.
Pasca-pemrosesan: diterapkan pada file gabungan, bukan pada masing-masing klip.
Dengan motion_task_id, proses retarget mungkin hanya menghasilkan animasi GLB saja. Jika Anda meminta post_process dan tidak ada FBX yang tersedia, tugas akan gagal dengan task_error dan kredit Anda akan dikembalikan secara otomatis; tanpa post_process, tugas akan berhasil dan animation_fbx_url akan kosong.
Hasil Pengembalian
Properti result dari respons berisi id tugas dari tugas animasi yang baru dibuat.
Mode Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak dapat diterima. Penyebab umum:
Parameter hilang: rig_task_id hilang, atau tidak ada satu pun dari action_id, action_ids, dan motion_task_id yang diberikan.
Parameter yang bertentangan: lebih dari satu dari action_id, action_ids, dan motion_task_id diberikan — parameter ini saling eksklusif.
Tugas rig tidak valid: rig_task_id tidak valid atau merujuk pada tugas yang gagal/tidak ada.
ID action tidak valid: action_id — atau salah satu entri dari action_ids — tidak sesuai dengan animasi yang valid.
Terlalu banyak action: action_ids berisi lebih dari 10 id.
Action duplikat: action_ids berisi id yang sama lebih dari satu kali.
Tugas motion belum siap: tugas motion_task_id belum SUCCEEDED.
Rig tidak didukung: motion_task_id membutuhkan rig biped; rig quadruped ditolak.
Name
401 - Unauthorized
Description
Autentikasi gagal. Silakan periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak cukup untuk melakukan tugas ini.
Name
404 - Not Found
Description
Tugas rigging yang ditentukan oleh rig_task_id tidak ditemukan, tugas motion yang ditentukan oleh motion_task_id tidak ditemukan, atau klip motion telah kedaluwarsa (aset tugas sumber disimpan selama 3 hari).
Name
429 - Too Many Requests
Description
Anda telah melampaui batas laju Anda.
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 } }'
Endpoint ini memungkinkan Anda untuk mengambil animation task menggunakan id task yang valid. Lihat The Animation Task Object untuk melihat properti apa saja yang disertakan.
Parameter
Name
id
Type
path
Description
Pengenal unik untuk animation task yang akan diambil.
Endpoint ini menghapus tugas animasi secara permanen, termasuk semua model dan data yang terkait. Tindakan ini tidak dapat dibatalkan.
Parameter Path
Name
id
Type
path
Description
ID dari tugas animasi yang akan dihapus.
Status Tugas
Tugas yang masih berstatus PENDING akan dihapus dan kredit yang terpakai
pada saat pembuatan akan dikembalikan.
Tugas yang sudah berstatus IN_PROGRESS tidak dapat dihapus: permintaan akan
ditolak dengan 409 Conflict dan tugas tersebut akan terus berjalan. Kredit untuk tugas
yang sudah mulai dikerjakan oleh worker tidak dapat dikembalikan, sehingga menghapusnya
di tengah proses akan membuat Anda kehilangan kredit sekaligus hasilnya. Tunggu hingga tugas
mencapai status SUCCEEDED, FAILED, atau CANCELED, baru kemudian hapus.
Tugas dalam status akhir (SUCCEEDED, FAILED, atau CANCELED) akan dihapus
tanpa pengembalian kredit.
Returns
Mengembalikan 200 OK jika berhasil, atau 409 Conflict ketika tugas
berstatus IN_PROGRESS.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left 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."}
Mengembalikan daftar tugas Animasi milik pemanggil dengan paginasi, dari yang terbaru. Paginasi standar melalui page_num dan page_size.
Perhatikan bahwa tugas yang dibuat melalui API dikelola melalui API — tugas tersebut tidak muncul di My Assets pada aplikasi web. Gunakan endpoint ini untuk menemukan tugas yang ID-nya sudah tidak Anda miliki lagi.
Objek Animation Task merepresentasikan unit pekerjaan untuk menerapkan animasi pada karakter yang sudah di-rig.
Properties
Name
id
Type
string
Description
Pengidentifikasi unik untuk task tersebut.
Name
type
Type
string
Description
Tipe dari task Animation. Nilainya adalah animate.
Name
status
Type
string
Description
Status task tersebut. Kemungkinan nilai: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress dari task tersebut (0-100).
Name
created_at
Type
timestamp
Description
Stempel waktu (dalam milidetik sejak epoch) saat task dibuat.
Stempel waktu merepresentasikan jumlah milidetik yang telah berlalu sejak 1 Januari 1970 UTC, mengikuti
standar RFC 3339.
Sebagai contoh, Jumat, 1 September 2023 pukul 12:00:00 GMT direpresentasikan sebagai 1693569600000. Ini berlaku
untuk semua stempel waktu di Meshy API.
Name
started_at
Type
timestamp
Description
Stempel waktu (dalam milidetik sejak epoch) saat task mulai diproses. 0 jika belum dimulai.
Name
finished_at
Type
timestamp
Description
Stempel waktu (dalam milidetik sejak epoch) saat task selesai. 0 jika belum selesai.
Name
expires_at
Type
timestamp
Description
Stempel waktu (dalam milidetik sejak epoch) saat asset hasil task kedaluwarsa.
Name
task_error
Type
object
Description
Detail kesalahan untuk task yang gagal. Lihat Errors untuk referensi lengkap objek task_error.
Name
consumed_credits
Type
integer
Description
Jumlah kredit yang dikonsumsi oleh task ini. Muncul ketika status task adalah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk task FAILED (kredit dikembalikan jika terjadi kegagalan).
Name
result
Type
object
Description
Berisi URL animasi hasil keluaran jika task SUCCEEDED.
Name
animation_glb_url
Type
string
Description
URL yang dapat diunduh untuk animasi dalam format GLB. Untuk task yang dibuat dengan action_ids, file tunggal ini berisi setiap aksi yang diminta sebagai klip terpisah.
Name
animation_fbx_url
Type
string
Description
URL yang dapat diunduh untuk animasi dalam format FBX. Untuk task yang dibuat dengan action_ids, file tunggal ini berisi setiap aksi yang diminta sebagai klip terpisah.
Name
processed_usdz_url
Type
string
Description
URL yang dapat diunduh untuk animasi yang telah diproses dalam format USDZ.
Name
processed_armature_fbx_url
Type
string
Description
URL yang dapat diunduh untuk armature yang telah diproses dalam format FBX.
Name
processed_animation_fps_fbx_url
Type
string
Description
URL yang dapat diunduh untuk animasi dengan FPS yang diubah dalam format FBX (misalnya, jika operasi change_fps digunakan).
Name
preceding_tasks
Type
integer
Description
Jumlah task sebelumnya dalam antrean. Hanya berarti jika status adalah PENDING.
Mengembalikan setiap animasi dalam pustaka, diurutkan berdasarkan action_id. Respons berupa daftar lengkap, bukan sebuah halaman, sehingga satu panggilan sudah cukup untuk mengisi pemilih aksi. Filter mempersempit hasil; abaikan semuanya untuk mengambil seluruh data.
Untuk menelusuri katalog yang sama secara visual, dengan pratinjau animasi untuk setiap aksi, lihat referensi Pustaka animasi.
Endpoint ini gratis — tidak menggunakan kredit.
Parameter
Name
search
Type
string
Description
Pencocokan substring yang tidak case-sensitive pada name atau key. Dicocokkan secara literal, sehingga % dan _ adalah karakter biasa, bukan wildcard.
Name
category
Type
string
Description
Pencocokan persis pada category.
Nilai yang tersedia:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Pencocokan persis pada sub_category. Dapat diterima sendiri — nama sub-kategori tidak unik di seluruh kategori (Transitioning muncul baik di Fighting maupun DailyActions), sehingga tanpa category, filter ini akan mencocokkan sub-kategori tersebut di mana pun ia muncul.
Name
action_ids
Type
string
Description
Daftar nilai action_id yang dipisahkan koma untuk dikembalikan, untuk menyelesaikan id tertentu alih-alih menelusuri. Menerima paling banyak 200 id. Id yang tidak dimiliki oleh animasi mana pun hanya akan tidak muncul dalam respons, sehingga Anda juga dapat menggunakan ini untuk memeriksa apakah id yang Anda simpan masih tersedia.
Menggabungkan filter
Filter diterapkan bersama-sama — masing-masing semakin mempersempit hasil, sehingga sebuah animasi hanya dikembalikan jika memenuhi semuanya. Dalam satu filter yang sama, beberapa nilai cocok dengan salah satunya: search mencocokkan name atau key, dan action_ids mencocokkan id mana pun dalam daftar.
Itu berarti kombinasi yang tidak tumpang tindih akan mengembalikan array kosong, bukan error. Aksi 92 adalah "Double Combo Attack", sebuah animasi Fighting:
Setiap action_id yang dikembalikan di sini diterima oleh Create an Animation Task di atas, dan setiap id yang diterimanya dikembalikan di sini. Animasi yang sudah tidak digunakan lagi tidak muncul di keduanya. Jika Anda meng-cache pustaka ini, segarkan secara berkala agar id yang sudah tidak digunakan tidak tertinggal di pemilih Anda.
Nilai yang dikirim sebagai action_id saat membuat tugas animasi. Unik dan stabil, tetapi tidak berurutan — Animasi yang sudah tidak digunakan lagi meninggalkan celah dalam penomoran, jadi jangan pernah berasumsi bahwa suatu rentang id pasti valid.
Name
name
Type
string
Description
Label yang mudah dibaca manusia, untuk ditampilkan. Tidak unik: beberapa Animasi memiliki nama yang sama dengan varian yang berbeda, jadi gunakan action_id atau key sebagai identitas.
Name
key
Type
string
Description
Slug unik dan stabil untuk Animasi. Gunakan ini jika Anda memerlukan pengidentifikasi non-numerik untuk menjadi kunci penyimpanan Anda sendiri.
Name
category
Type
string
Description
Pengelompokan tingkat atas, misalnya Fighting.
Name
sub_category
Type
string
Description
Pengelompokan dalam kategori, misalnya AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL dari GIF animasi yang menampilkan pratinjau aksi, cocok untuk dirender langsung di pemilih (picker) Anda sendiri.