Este endpoint permite criar uma nova tarefa para aplicar uma animação a uma personagem previamente sujeita a rigging — uma ação predefinida da biblioteca de animações (action_id), várias ações predefinidas fundidas num único ficheiro (action_ids), ou um clipe de movimento gerado com a Text to Motion API (motion_task_id). Inclui opções de pós-processamento.
Parâmetros
Name
rig_task_id
Type
string
Obrigatório
Description
O id de uma tarefa de rigging concluída com sucesso (de POST /openapi/v1/rigging). A personagem desta tarefa será animada.
Name
action_id
Type
integer
Description
O identificador da ação de animação predefinida a aplicar. Consulte a Referência da Biblioteca de Animações para uma lista completa das animações disponíveis. Forneça exatamente um de action_id, action_ids ou motion_task_id.
Name
action_ids
Type
array of integers
Description
Várias ações de animação predefinidas a aplicar de uma só vez, devolvidas como um único ficheiro contendo um clipe de animação por ação — útil para controlar uma personagem a partir de uma máquina de estados num motor de jogo. Forneça entre 1 e 10 valores de action_id da Referência da Biblioteca de Animações; os ids têm de ser únicos. Custa 3 créditos por ação. Forneça exatamente um de action_id, action_ids ou motion_task_id.
Passar um action_ids com um único elemento é equivalente a passar esse valor como action_id.
Name
motion_task_id
Type
string
Description
O id de uma tarefa de Text to Motion concluída com sucesso a aplicar em vez de uma ação predefinida. O clipe gerado é reorientado (retargeted) para a personagem com rig e o clipe é capturado no momento da criação, pelo que esta tarefa não é afetada caso a tarefa de origem expire ou seja eliminada mais tarde. Os assets da tarefa de origem são mantidos durante 3 dias — aplique o clipe antes de expirar. Requer um rig bípede. Forneça exatamente um de action_id, action_ids ou motion_task_id.
Name
post_process
Type
object
Description
Pós-processamento opcional para o resultado da animação. Omita para receber os ficheiros de animação padrão.
Aplica-se apenas quando post_process is set
Name
operation_type
Type
string
Obrigatório
Description
O tipo de operação a realizar. Valores disponíveis: change_fps, fbx2usdz, extract_armature.
Name
fps
Type
integer
predefinição 30
Description
A taxa de fotogramas pretendida. Aplicável apenas quando operation_type é change_fps. Valores permitidos: 24, 25, 30, 60.
Com action_ids, a tarefa devolve um único ficheiro fundido em vez de um ficheiro por ação: animation_glb_url e animation_fbx_url apontam cada um para um único asset contendo todas as ações pedidas como clipes separados.
Ordem dos clipes: a ordem do array action_ids, não a ordem numérica dos ids.
Nomes dos clipes: o nome da animação na biblioteca, correspondendo aos nomes obtidos ao exportar todas as animações de uma personagem como um único ficheiro a partir da aplicação web Meshy. Se dois ids pedidos resultarem no mesmo nome de clipe, o mais recente recebe um sufixo com o respetivo action_id para manter os nomes únicos.
Pós-processamento: aplicado ao ficheiro fundido, não aos clipes individuais.
Com motion_task_id, a reorientação (retarget) pode produzir uma animação apenas em GLB. Se tiver pedido post_process e não existir FBX disponível, a tarefa falha com um task_error e os seus créditos são reembolsados automaticamente; sem post_process a tarefa é bem-sucedida e animation_fbx_url fica vazio.
Valores devolvidos
A propriedade result da resposta contém o id da tarefa da tarefa de animação recém-criada.
Modos de Falha
Name
400 - Bad Request
Description
O pedido foi rejeitado. Causas comuns:
Parâmetro em falta: rig_task_id está em falta, ou nenhum de action_id, action_ids e motion_task_id foi fornecido.
Parâmetros em conflito: mais do que um de action_id, action_ids e motion_task_id foi fornecido — são mutuamente exclusivos.
Tarefa de rig inválida: O rig_task_id é inválido ou refere-se a uma tarefa falhada/inexistente.
ID de ação inválido: Um action_id — ou uma entrada de action_ids — não corresponde a uma animação válida.
Demasiadas ações: action_ids contém mais de 10 ids.
Ações duplicadas: action_ids contém o mesmo id mais do que uma vez.
Tarefa de movimento não pronta: a tarefa motion_task_id ainda não teve SUCCEEDED.
Rig não suportado: motion_task_id requer um rig bípede; rigs quadrúpedes são rejeitados.
Name
401 - Unauthorized
Description
Falha de autenticação. Verifique a sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarefa.
Name
404 - Not Found
Description
A tarefa de rigging especificada por rig_task_id não foi encontrada, a tarefa de movimento especificada por motion_task_id não foi encontrada, ou o clipe de movimento expirou (os assets da tarefa de origem são mantidos durante 3 dias).
Name
429 - Too Many Requests
Description
Excedeu o seu limite de taxa.
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 } }'
Este endpoint permite obter uma tarefa de animação a partir de um id de tarefa válido. Consulte The Animation Task Object para ver quais propriedades estão incluídas.
Parâmetros
Name
id
Type
path
Description
Identificador único da tarefa de animação a obter.
Devolve
A resposta contém o objeto Animation Task. Consulte a secção The Animation Task Object para mais detalhes.
Este endpoint elimina permanentemente uma tarefa de animação, incluindo todos os modelos e dados associados. Esta ação é irreversível.
Parâmetros de Caminho
Name
id
Type
path
Description
O ID da tarefa de animação a eliminar.
Estado da Tarefa
Uma tarefa que ainda esteja PENDING é eliminada e os créditos consumidos no
momento da criação são reembolsados.
Uma tarefa que já esteja IN_PROGRESS não pode ser eliminada: o pedido é
rejeitado com 409 Conflict e a tarefa continua em execução. Os créditos de uma tarefa
que o worker já iniciou não são reembolsáveis, pelo que eliminá-la a meio da execução
custar-lhe-ia tanto os créditos como o resultado. Aguarde até que atinja
SUCCEEDED, FAILED ou CANCELED, e só depois elimine-a.
Uma tarefa num estado terminal (SUCCEEDED, FAILED ou CANCELED) é eliminada
sem reembolso.
Retorna
Retorna 200 OK em caso de sucesso, ou 409 Conflict quando a tarefa está
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."}
Devolve uma lista paginada das tarefas de animação do autor da chamada, das mais recentes para as mais antigas. Paginação padrão através de page_num e page_size.
Note que as tarefas criadas através da API são geridas através da API — não aparecem em Os Meus Assets na aplicação web. Utilize este endpoint para encontrar uma tarefa cujo ID já não tenha.
O objeto Animation Task representa a unidade de trabalho para aplicar uma animação a uma personagem com rig.
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa.
Name
type
Type
string
Description
Tipo da tarefa de Animação. O valor é animate.
Name
status
Type
string
Description
Estado da tarefa. Valores possíveis: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progresso da tarefa (0-100).
Name
created_at
Type
timestamp
Description
Carimbo de data/hora (milissegundos desde a epoch) de quando a tarefa foi criada.
Um carimbo de data/hora representa o número de milissegundos decorridos desde 1 de janeiro de 1970 UTC, seguindo
o padrão RFC 3339.
Por exemplo, sexta-feira, 1 de setembro de 2023, às 12:00:00 GMT é representado como 1693569600000. Isto aplica-se
a todos os carimbos de data/hora na Meshy API.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora (milissegundos desde a epoch) de quando a tarefa começou a ser processada. 0 se não tiver começado.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora (milissegundos desde a epoch) de quando a tarefa terminou. 0 se não tiver terminado.
Name
expires_at
Type
timestamp
Description
Carimbo de data/hora (milissegundos desde a epoch) de quando os assets resultantes da tarefa expiram.
Name
task_error
Type
object
Description
Detalhes do erro para tarefas falhadas. Consulte Erros para a referência completa do objeto task_error.
Name
consumed_credits
Type
integer
Description
O número de créditos consumidos por esta tarefa. Presente quando o estado da tarefa é PENDING, IN_PROGRESS ou SUCCEEDED. Devolve 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
Name
result
Type
object
Description
Contém os URLs de saída da animação se a tarefa tiver SUCCEEDED.
Name
animation_glb_url
Type
string
Description
URL para download da animação em formato GLB. Para uma tarefa criada com action_ids, este único ficheiro contém todas as ações solicitadas como clips separados.
Name
animation_fbx_url
Type
string
Description
URL para download da animação em formato FBX. Para uma tarefa criada com action_ids, este único ficheiro contém todas as ações solicitadas como clips separados.
Name
processed_usdz_url
Type
string
Description
URL para download da animação processada em formato USDZ.
Name
processed_armature_fbx_url
Type
string
Description
URL para download do armature processado em formato FBX.
Name
processed_animation_fps_fbx_url
Type
string
Description
URL para download da animação com FPS alterado em formato FBX (por exemplo, se a operação change_fps tiver sido utilizada).
Name
preceding_tasks
Type
integer
Description
A contagem de tarefas precedentes na fila. Apenas relevante se o estado for PENDING.
Devolve todas as animações da biblioteca, ordenadas por action_id. A resposta é uma lista completa em vez de uma página, pelo que uma única chamada é suficiente para preencher um seletor de ações. Os filtros restringem o resultado; omita-os todos para obter tudo.
Correspondência de subcadeia sem distinção entre maiúsculas e minúsculas em name ou key. A correspondência é literal, pelo que % e _ são caracteres normais e não caracteres universais.
Name
category
Type
string
Description
Correspondência exata em category.
Valores disponíveis:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Correspondência exata em sub_category. Aceite de forma independente — os nomes das subcategorias não são únicos entre categorias (Transitioning aparece tanto em Fighting como em DailyActions), pelo que, sem uma category, o filtro corresponde a essa subcategoria onde quer que apareça.
Name
action_ids
Type
string
Description
Lista de valores action_id separados por vírgulas a devolver, para resolver ids específicos em vez de navegar. Aceita, no máximo, 200 ids. Os ids que nenhuma animação possui estão simplesmente ausentes da resposta, pelo que também pode usar isto para verificar se os ids que tem armazenados ainda estão disponíveis.
Combinar filtros
Os filtros são aplicados em conjunto — cada um restringe ainda mais o resultado, pelo que uma animação só é devolvida se satisfizer todos eles. Dentro de um único filtro, vários valores correspondem a qualquer um deles: search corresponde a name ou key, e action_ids corresponde a qualquer id na lista.
Isto significa que uma combinação sem sobreposição devolve um array vazio em vez de um erro. A ação 92 é "Double Combo Attack", uma animação Fighting:
?action_ids=92&category=Fighting devolve a ação 92.
?action_ids=92&category=Dancing devolve [] — não é uma animação Dancing.
?action_ids=92&search=walk devolve [] — o seu nome não corresponde a walk.
Para obter animações específicas independentemente da sua categoria, passe action_ids de forma independente.
Todos os action_id devolvidos aqui são aceites por Criar uma tarefa de animação acima, e todos os ids que essa aceita são devolvidos aqui. As animações retiradas estão ausentes de ambos. Se colocar a biblioteca em cache, atualize-a periodicamente para que um id retirado não permaneça no seu seletor.
O valor a passar como action_id ao criar 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 nunca assuma que um intervalo de ids é válido.
Name
name
Type
string
Description
Etiqueta legível por humanos, para exibição. Não é única: algumas animações partilham um nome com uma variante diferente, por isso use action_id ou key como identidade.
Name
key
Type
string
Description
Slug único e estável para a animação. Use-o quando precisar de um identificador não numérico para indexar o seu próprio armazenamento.
Name
category
Type
string
Description
Agrupamento de nível superior, por exemplo Fighting.
Name
sub_category
Type
string
Description
Agrupamento dentro da categoria, por exemplo AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL de um GIF animado que mostra uma pré-visualização da ação, adequado para ser renderizado diretamente no seu próprio seletor.