Também pode processar o resultado posteriormente. A tarefa é executada em segundo plano. Para saber quanto tempo demora normalmente uma tarefa, consulte Tempos de processamento.
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"}
Parâmetros
Name
rig_task_id
Type
string
Obrigatório
Description
O ID da tarefa de Rigging cuja personagem deve ser animada, obtido através de POST /openapi/v1/rigging. A tarefa tem de ter o estado SUCCEEDED.
Envie exatamente um dos parâmetros action_id, action_ids e motion_task_id.
Obrigatório, exceto se enviar action_id ou motion_task_id. Os IDs de 1 a 10 ações predefinidas a aplicar de uma só vez, sem repetições. Mais de 10 IDs, ou um ID repetido, devolve 400. Para os IDs, consulte a referência da Biblioteca de animações.
A Meshy devolve um ficheiro com um clip de animação por ação, o que é adequado para uma state machine num motor de jogo. A Meshy cobra por cada ação na lista. Consulte Preços.
Uma lista com um único ID funciona da mesma forma que enviar esse ID como action_id.
Name
motion_task_id
Type
string
Obrigatório
Description
Obrigatório, exceto se enviar action_id ou action_ids. O ID de uma tarefa Text to Motion cujo clip deve ser aplicado em vez de uma ação predefinida. A tarefa tem de ter o estado SUCCEEDED, e o rig tem de ser bípede.
A Meshy faz o retarget do clip para a personagem com rig. Copia o clip quando esta tarefa é criada, por isso esta tarefa não é afetada caso a tarefa de Text to Motion expire mais tarde ou a elimine. A Meshy mantém os ficheiros da tarefa de Text to Motion durante 3 dias, por isso aplique o clip antes de esse prazo terminar.
Name
post_process
Type
object
Description
Pós-processamento para o resultado da animação. Omita este parâmetro para obter os ficheiros de animação padrão.
Com motion_task_id, o retarget pode produzir uma animação apenas em GLB. Se enviar post_process e não estiver disponível nenhum ficheiro FBX, a tarefa falha com um task_error, e a Meshy reembolsa os seus créditos. Sem post_process, a tarefa é concluída com sucesso, e animation_fbx_url fica vazio.
Aplica-se apenas quando post_process is set
Name
operation_type
Type
string
Description
A operação a executar. Sem este parâmetro, a Meshy não cria nenhum ficheiro adicional. Um valor fora da lista seguinte devolve 400.
Valores disponíveis:
change_fps: altera a taxa de frames para fps
fbx2usdz: converte a animação para USDZ
extract_armature: extrai o armature como um ficheiro FBX
Name
fps
Type
integer
predefinição 30
Description
A taxa de frames para a qual alterar, uma de 24, 25, 30 ou 60. Aplica-se apenas quando operation_type é change_fps. Qualquer outro valor devolve 400.
Com action_ids, a tarefa devolve um ficheiro combinado em vez de um ficheiro por ação. animation_glb_url e animation_fbx_url apontam cada um para um ficheiro que contém todas as ações pedidas como clips separados. Nesse ficheiro:
Ordem dos clips: a ordem do array action_ids, não a ordem numérica dos IDs.
Nomes dos clips: o nome da animação na biblioteca. Estes correspondem aos nomes que obtém ao exportar todas as animações de uma personagem como um único ficheiro a partir da aplicação web Meshy. Se dois IDs pedidos tiverem o mesmo nome de clip, a Meshy adiciona o action_id ao mais recente para manter os nomes únicos.
Pós-processamento: a Meshy aplica-o ao ficheiro combinado, não a cada clip individualmente.
Resultados devolvidos
O campo result da resposta contém o ID da nova tarefa de Animação.
Modos de falha
Name
400 - Bad Request
Description
O pedido não pode ser executado. A mensagem de erro indica qual o problema encontrado. Por exemplo:
Parâmetro em falta: rig_task_id está em falta, ou nenhum dos parâmetros action_id, action_ids e motion_task_id foi enviado.
Parâmetros em conflito: O pedido tem mais do que um dos parâmetros action_id, action_ids e motion_task_id. Envie apenas um.
Tarefa de rig inválida: rig_task_id não é um ID de tarefa válido, não é uma tarefa de Rigging, ou aponta para uma tarefa que não foi concluída com sucesso.
ID de ação inválido: Um action_id, ou uma entrada em action_ids, não é uma animação válida.
Demasiadas ações: action_ids tem mais de 10 IDs.
Ações duplicadas: action_ids tem o mesmo ID mais do que uma vez.
Tarefa de movimento não pronta: A tarefa motion_task_id ainda não atingiu o estado SUCCEEDED.
Rig não suportado: motion_task_id requer um rig bípede, e a Meshy rejeita um rig quadrúpede.
Corrija o pedido e envie-o novamente. Consulte Erros.
Name
401 - Unauthorized
Description
A chave de API está em falta ou é inválida. Verifique o cabeçalho Authorization.
Name
402 - Payment Required
Description
Por exemplo:
Créditos insuficientes: A conta não tem créditos suficientes para esta tarefa, ou a conta atingiu um limite de créditos. Verifique o seu saldo de créditos e tente novamente.
Plano gratuito: Criar uma tarefa requer um plano pago. Atualize o seu plano nas definições de subscrição e tente novamente.
Name
403 - Forbidden
Description
A tarefa rig_task_id é um modelo em baixo-relevo, que este endpoint não consegue animar. A mensagem é This model type does not support this operation. Faça rig de um modelo diferente.
Name
404 - Not Found
Description
A Meshy não consegue encontrar uma tarefa ou ficheiro de que o pedido necessita. Aplica-se uma das seguintes situações:
A Meshy não consegue encontrar a tarefa rig_task_id entre as suas tarefas. Verifique o ID.
A Meshy eliminou os ficheiros da tarefa rig_task_id após o respetivo expires_at. Faça rig da personagem novamente.
A Meshy não consegue encontrar a tarefa motion_task_id. Verifique o ID.
O clip de movimento expirou, porque a Meshy mantém os ficheiros de uma tarefa de Text to Motion durante 3 dias. Crie outra tarefa de Text to Motion.
Name
429 - Too Many Requests
Description
Excedeu o seu limite de taxa. Aguarde e tente novamente. Consulte Limites de taxa.
// 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."}
Parâmetros do caminho
Name
id
Type
path
Description
O ID da tarefa a eliminar.
Estado da tarefa
Eliminar uma tarefa PENDING reembolsa os créditos utilizados na sua criação.
Uma tarefa IN_PROGRESS não pode ser eliminada. O pedido devolve 409 Conflict,
e a tarefa continua em execução. O Meshy não reembolsa uma tarefa que já foi iniciada,
pelo que eliminá-la custar-lhe-ia tanto os créditos como o resultado. Aguarde que
atinja o estado SUCCEEDED, FAILED ou CANCELED e depois elimine-a.
Eliminar uma tarefa num estado final (SUCCEEDED, FAILED ou CANCELED)
não reembolsa os seus créditos.
Devolve
200 OK quando a tarefa é eliminada, ou 409 Conflict quando a tarefa está
IN_PROGRESS.
Devolve uma lista paginada das suas tarefas de Animação, da mais recente para a mais antiga. Para percorrer a lista, utilize page_num e page_size.
As tarefas que cria através da API não aparecem em My Assets na aplicação web, pelo que as gere através da API. Para encontrar uma tarefa cujo ID já não tem, utilize este endpoint.
// 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?..." }}
Parâmetros
Name
id
Type
path
Description
O ID da tarefa proveniente da resposta de criação.
Cada evento contém o objeto de tarefa completo, na mesma forma que o endpoint Get devolve. Enquanto a tarefa está PENDING ou IN_PROGRESS, os seus campos de resultado ainda não têm valores.
Um objeto de tarefa Animation descreve uma animação aplicada a uma personagem com rig. Contém o estado, o progress e os ficheiros de animação quando a tarefa é bem-sucedida.
O ID da tarefa. Trate-o como uma string opaca e não dependa do seu formato.
Name
type
Type
string
Description
O tipo de tarefa, sempre animate.
Name
status
Type
string
Description
O estado da tarefa, um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ou CANCELED.
Name
progress
Type
integer
Description
Quanto da tarefa está concluído, em percentagem. É 0 até a tarefa começar e 100 quando é bem-sucedida.
Name
created_at
Type
timestamp
Description
Momento em que a tarefa foi criada, em milissegundos Unix.
Name
started_at
Type
timestamp
Description
Momento em que a tarefa começou, em milissegundos Unix. É 0 até a tarefa começar.
Name
finished_at
Type
timestamp
Description
Momento em que a tarefa terminou, em milissegundos Unix. É 0 até a tarefa terminar.
Name
expires_at
Type
timestamp
Description
Momento em que os ficheiros de resultado da tarefa expiram, em milissegundos Unix.
Name
task_error
Type
object
Description
Os detalhes do erro quando a tarefa falha. É null a menos que o estado seja FAILED. Consulte Erros.
Name
consumed_credits
Type
integer
Description
O número de créditos que a tarefa utilizou. Presente quando o estado é PENDING, IN_PROGRESS, ou SUCCEEDED. É 0 para uma tarefa FAILED, porque a Meshy reembolsa os créditos quando uma tarefa falha.
Name
result
Type
object
Description
URLs de transferência para os ficheiros de animação, quando a tarefa tem o estado SUCCEEDED.
Name
animation_glb_url
Type
string
Description
A animação como um ficheiro GLB. Para uma tarefa criada com action_ids, este único ficheiro contém todas as ações pedidas como clipes separados.
Name
animation_fbx_url
Type
string
Description
A animação como um ficheiro FBX. Para uma tarefa criada com action_ids, este único ficheiro contém todas as ações pedidas como clipes separados.
Name
processed_usdz_url
Type
string
Description
A animação processada como um ficheiro USDZ.
Name
processed_armature_fbx_url
Type
string
Description
O armature processado como um ficheiro FBX.
Name
processed_animation_fps_fbx_url
Type
string
Description
A animação com a taxa de fotogramas alterada, como um ficheiro FBX, por exemplo quando utilizou a operação change_fps.
Name
preceding_tasks
Type
integer
Description
O número de tarefas à frente desta na fila. O valor só é significativo enquanto a tarefa está PENDING. O campo é omitido quando o valor é 0.
Devolve todas as animações na biblioteca, ordenadas por action_id. A resposta é a lista completa, sem paginação, pelo que uma única chamada pode preencher um seletor de ações. Os filtros restringem o resultado. Para obter todas as animações, omita-os todos.
Texto a pesquisar. O Meshy devolve as animações cujo name ou key contém este texto, ignorando maiúsculas/minúsculas. O Meshy compara o texto literalmente, pelo que % e _ não são caracteres universais.
Name
category
Type
string
Description
A categoria a listar, como correspondência exata. Uma categoria desconhecida devolve uma lista vazia.
Valores disponíveis:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
A subcategoria a listar, como correspondência exata. Pode enviá-la sem category. Os nomes de subcategoria não são únicos entre categorias. Por exemplo, Transitioning está presente tanto em Fighting como em DailyActions. Assim, sem category, o filtro corresponde à subcategoria em todas as categorias.
Name
action_ids
Type
string
Description
As animações a devolver, até 200 valores de action_id separados por vírgulas. Utilize-o para procurar IDs específicos em vez de navegar. Mais de 200 IDs devolve 400.
A resposta omite um ID que nenhuma animação possui. Pode também usar este filtro para verificar se os IDs que armazenou ainda estão disponíveis.
Combinar filtros
O Meshy aplica os filtros em conjunto. Cada um restringe o resultado, pelo que o Meshy só devolve uma animação se esta corresponder a todos eles. Dentro de um único filtro, qualquer um dos seus valores pode corresponder. Por exemplo, search corresponde a name ou key, e action_ids corresponde a qualquer ID na lista.
Assim, uma combinação sem sobreposição devolve um array vazio, não um erro. A ação 92 é "Double Combo Attack", uma animação Fighting. Por exemplo:
?action_ids=92&category=Fighting devolve a ação 92.
?action_ids=92&category=Dancing devolve [], porque não é uma animação Dancing.
?action_ids=92&search=walk devolve [], porque o seu nome não corresponde a walk.
Para obter animações específicas em qualquer categoria, envie action_ids sozinho.
Criar uma tarefa de Animação aceita todos os action_id que este endpoint devolve, e este endpoint devolve todos os IDs que a criação aceita. Nenhum deles inclui animações retiradas. Se armazenar a biblioteca em cache, atualize-a periodicamente, para que um ID retirado não permaneça no seu seletor.
O valor a enviar como action_id quando cria uma tarefa de Animação. É único e estável, mas não contíguo. As animações retiradas deixam lacunas na numeração, por isso não assuma que todos os IDs num intervalo são válidos.
Name
name
Type
string
Description
O nome de exibição da animação. Não é único, porque algumas animações partilham o nome com outra variante. Para identificar uma animação, use action_id ou key.
Name
key
Type
string
Description
Um slug único e estável para a animação. Use-o quando precisar de um ID não numérico para indexar o seu próprio armazenamento.
Name
category
Type
string
Description
O grupo de nível superior, por exemplo Fighting.
Name
sub_category
Type
string
Description
O grupo dentro da categoria, por exemplo AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL de uma pré-visualização em GIF animado da ação. Pode mostrá-lo diretamente no seu próprio seletor.