이 엔드포인트를 사용하면 이전에 리깅된 캐릭터에 애니메이션을 적용하는 새로운 작업을 생성할 수 있습니다 — 애니메이션 라이브러리의 사전 설정 액션(action_id), 여러 개의 사전 설정 액션을 하나의 파일로 병합한 것(action_ids), 또는 Text to Motion API로 생성한 모션 클립(motion_task_id) 중 하나를 사용할 수 있습니다. 후처리 옵션도 포함됩니다.
이 작업은 백그라운드에서 실행됩니다. 일반적으로 소요되는 시간에 대해서는 처리 시간을 참고하세요.
파라미터
Name
rig_task_id
Type
string
필수
Description
성공적으로 완료된 리깅 작업(POST /openapi/v1/rigging)의 id입니다. 이 작업에서 나온 캐릭터에 애니메이션이 적용됩니다.
Name
action_id
Type
integer
Description
적용할 사전 설정 애니메이션 액션의 식별자입니다. 사용 가능한 전체 애니메이션 목록은 애니메이션 라이브러리 참조를 확인하세요. action_id, action_ids, motion_task_id 중 정확히 하나를 제공해야 합니다.
Name
action_ids
Type
array of integers
Description
한 번에 적용할 여러 개의 사전 설정 애니메이션 액션으로, 각 액션당 하나의 애니메이션 클립을 포함하는 단일 파일로 반환됩니다 — 게임 엔진에서 상태 머신으로 캐릭터를 구동할 때 유용합니다. 애니메이션 라이브러리 참조에서 1개에서 10개 사이의 action_id 값을 제공하세요. id는 고유해야 합니다. 액션당 3크레딧이 소요됩니다. action_id, action_ids, motion_task_id 중 정확히 하나를 제공해야 합니다.
단일 요소로 구성된 action_ids를 전달하는 것은 해당 값을 action_id로 전달하는 것과 동일합니다.
Name
motion_task_id
Type
string
Description
사전 설정 액션 대신 적용할, 성공적으로 완료된 Text to Motion 작업의 id입니다. 생성된 클립은 리깅된 캐릭터에 리타겟팅되며 클립은 생성 시점에 스냅샷으로 저장되므로, 이후 원본 작업이 만료되거나 삭제되더라도 이 작업에는 영향을 미치지 않습니다. 원본 작업의 애셋은 3일간 보관되므로, 만료되기 전에 클립을 적용하세요. 2족 보행 리그가 필요합니다. action_id, action_ids, motion_task_id 중 정확히 하나를 제공해야 합니다.
Name
post_process
Type
object
Description
애니메이션 출력에 대한 선택적 후처리입니다. 생략하면 표준 애니메이션 파일을 받게 됩니다.
다음 경우에만 적용 post_process is set
Name
operation_type
Type
string
필수
Description
수행할 작업의 유형입니다. 사용 가능한 값: change_fps, fbx2usdz, extract_armature.
action_ids를 사용하면 작업은 액션당 하나의 파일이 아니라 병합된 하나의 파일을 반환합니다: animation_glb_url과 animation_fbx_url은 각각 요청한 모든 액션을 개별 클립으로 포함하는 단일 애셋을 가리킵니다.
클립 순서: id의 숫자 순서가 아니라 action_ids 배열의 순서입니다.
클립 이름: 라이브러리 내 애니메이션의 이름으로, Meshy 웹 앱에서 캐릭터의 모든 애니메이션을 단일 파일로 내보낼 때 얻게 되는 이름과 동일합니다. 요청한 두 개의 id가 동일한 클립 이름으로 귀결되는 경우, 나중 것에는 이름을 고유하게 유지하기 위해 해당 action_id가 접미사로 붙습니다.
후처리: 개별 클립이 아니라 병합된 파일에 적용됩니다.
motion_task_id를 사용하면 리타겟팅 결과로 GLB 전용 애니메이션이 생성될 수 있습니다. post_process를 요청했는데 FBX를 사용할 수 없는 경우, 작업은 task_error로 실패하며 크레딧은 자동으로 환불됩니다. post_process를 요청하지 않은 경우에는 작업이 성공하며 animation_fbx_url은 비어 있습니다.
반환 값
응답의 result 속성에는 새로 생성된 애니메이션 작업의 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: action_id 또는 action_ids의 항목이 유효한 애니메이션에 해당하지 않습니다.
액션 개수 초과: action_ids에 10개를 초과하는 id가 포함되어 있습니다.
중복 액션: action_ids에 동일한 id가 두 번 이상 포함되어 있습니다.
모션 작업 준비 안 됨: motion_task_id 작업이 아직 SUCCEEDED 상태가 아닙니다.
지원되지 않는 리그: motion_task_id에는 2족 보행 리그가 필요합니다. 4족 보행 리그는 거부됩니다.
Name
401 - Unauthorized
Description
인증에 실패했습니다. API 키를 확인하세요.
Name
402 - Payment Required
Description
이 작업을 수행하기 위한 크레딧이 부족합니다.
Name
404 - Not Found
Description
rig_task_id로 지정된 리깅 작업을 찾을 수 없거나, motion_task_id로 지정된 모션 작업을 찾을 수 없거나, 모션 클립이 만료되었습니다(원본 작업의 애셋은 3일간 보관됩니다).
Name
429 - Too Many Requests
Description
속도 제한을 초과했습니다.
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 } }'
이 엔드포인트는 연관된 모든 모델과 데이터를 포함하여 애니메이션 작업을 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.
경로 매개변수
Name
id
Type
path
Description
삭제할 애니메이션 작업의 ID입니다.
작업 상태
아직 PENDING 상태인 작업은 삭제되며, 생성 시 소모된 크레딧이 환불됩니다.
이미 IN_PROGRESS 상태인 작업은 삭제할 수 없습니다. 요청은 409 Conflict로 거부되며
작업은 계속 실행됩니다. 워커가 이미 시작한 작업에 대한 크레딧은 환불되지 않으므로,
실행 중에 삭제하면 크레딧과 결과물을 모두 잃게 됩니다. 작업이 SUCCEEDED, FAILED 또는
CANCELED 상태에 도달할 때까지 기다린 후 삭제하세요.
종료 상태(SUCCEEDED, FAILED 또는 CANCELED)인 작업은 환불 없이 삭제됩니다.
반환값
성공 시 200 OK를 반환하며, 작업이 IN_PROGRESS 상태일 때는 409 Conflict를
반환합니다.
// 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."}
라이브러리에 있는 모든 애니메이션을 action_id 순으로 정렬하여 반환합니다. 응답은 페이지 단위가 아닌 전체 목록이므로, 한 번의 호출로 액션 선택기를 채우기에 충분합니다. 필터는 결과를 좁히는 역할을 하며, 모두 생략하면 전체를 가져옵니다.
각 액션의 애니메이션 미리보기와 함께 동일한 카탈로그를 눈으로 둘러보려면 애니메이션 라이브러리 레퍼런스를 참고하세요.
이 엔드포인트는 무료이며 크레딧을 소모하지 않습니다.
매개변수
Name
search
Type
string
Description
name 또는 key에 대한 대소문자를 구분하지 않는 부분 문자열 일치입니다. 문자 그대로 일치시키므로 %와 _는 와일드카드가 아닌 일반 문자로 처리됩니다.
Name
category
Type
string
Description
category와 정확히 일치합니다.
사용 가능한 값:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
sub_category와 정확히 일치합니다. 단독으로 사용할 수 있습니다 — 서브 카테고리 이름은 카테고리 간에 고유하지 않으므로(Transitioning은 Fighting과 DailyActions 모두에 존재), category 없이 사용하면 해당 서브 카테고리가 어디에 나타나든 모두 일치합니다.
Name
action_ids
Type
string
Description
반환할 action_id 값의 쉼표로 구분된 목록으로, 둘러보기가 아닌 특정 id를 확인할 때 사용합니다. 최대 200개의 id를 허용합니다. 어떤 애니메이션에도 속하지 않는 id는 응답에서 단순히 제외되므로, 저장해 둔 id가 여전히 사용 가능한지 확인하는 용도로도 사용할 수 있습니다.
필터 조합하기
필터는 함께 적용됩니다 — 각 필터는 결과를 더 좁히므로, 애니메이션은 모든 조건을 만족해야만 반환됩니다. 단일 필터 내에서는 여러 값 중 하나라도 일치하면 됩니다: search는 name 또는 key와 일치하며, action_ids는 목록 내 어떤 id와도 일치합니다.
즉, 조건이 겹치지 않는 조합은 오류가 아닌 빈 배열을 반환합니다. 액션 92는 Fighting 애니메이션인 "Double Combo Attack"입니다:
?action_ids=92&category=Fighting은 액션 92를 반환합니다.
?action_ids=92&category=Dancing은 []를 반환합니다 — 이는 Dancing 애니메이션이 아니기 때문입니다.
?action_ids=92&search=walk는 []를 반환합니다 — 이름이 walk와 일치하지 않기 때문입니다.
카테고리에 상관없이 특정 애니메이션을 가져오려면 action_ids만 단독으로 전달하세요.
여기서 반환되는 모든 action_id는 위의 애니메이션 작업 생성하기에서 허용되며, 그곳에서 허용되는 모든 id는 여기서도 반환됩니다. 사용 중단된 애니메이션은 둘 다에서 제외됩니다. 라이브러리를 캐시하는 경우, 사용 중단된 id가 선택기에 남아있지 않도록 주기적으로 갱신하세요.