1. Crie a tarefa de imagem
Defina uma chave de API e uma URL pública de imagem e envie uma única tarefa. A resposta é assíncrona: guarde o ID da tarefa e não crie uma segunda enquanto a primeira estiver processando.
export TO3D_KEY='YOUR_API_KEY'
export TO3D_IMAGE_URL='https://example.com/character.png'
TASK_JSON=$(curl --fail-with-body --silent --show-error \
https://api.to3d.app/api/trellis/tasks \
-H "x-api-key: $TO3D_KEY" \
-H 'Content-Type: application/json' \
-d "$(jq -cn --arg image "$TO3D_IMAGE_URL" \
'{task_type:"image-to-3d",input:{image:$image}}')")
TASK_ID=$(jq -er '.id' <<<"$TASK_JSON")
printf 'Task: %s\n' "$TASK_ID"2. Consulte a tarefa e baixe o GLB
Consulte o mesmo ID até chegar a `succeeded`, `failed` ou `canceled`. Quando `status` for `succeeded`, baixe a URL de `.output.model_file`.
curl --fail-with-body --silent --show-error \
"https://api.to3d.app/api/trellis/tasks/$TASK_ID" \
-H "x-api-key: $TO3D_KEY" | jq '{id,status,output,error}'
MODEL_URL=$(curl --fail-with-body --silent --show-error \
"https://api.to3d.app/api/trellis/tasks/$TASK_ID" \
-H "x-api-key: $TO3D_KEY" | jq -er '.output.model_file')
curl --fail --location --silent --show-error "$MODEL_URL" --output character.glb
[ "$(head -c 4 character.glb)" = 'glTF' ]3. Solicite um rig humanoide separado
Hospede `character.glb` em uma URL que a API consiga alcançar e envie a segunda tarefa. Escolha `mixamo` se essa for a convenção de nomes que deseja verificar primeiro. Consulte `https://api.to3d.app/api/skin_tokens/tasks/$RIG_ID` e baixe `output.model_file` após o sucesso.
export TO3D_MODEL_URL='https://example.com/character.glb'
RIG_JSON=$(curl --fail-with-body --silent --show-error \
https://api.to3d.app/api/skin_tokens/tasks \
-H "x-api-key: $TO3D_KEY" \
-H 'Content-Type: application/json' \
-d "$(jq -cn --arg model "$TO3D_MODEL_URL" \
'{task_type:"rig",input:{model:$model,bone_names:"mixamo"}}')")
RIG_ID=$(jq -er '.id' <<<"$RIG_JSON")
printf 'Rig task: %s\n' "$RIG_ID"4. Verifique o arquivo no Unity
Importe o GLB baixado com o pacote ou importador de Unity usado pelo seu projeto. Verifique a escala do modelo, materiais, mapeamento do esqueleto, bind pose e clipes de animação. Se o Unity informar ossos não mapeados ou um avatar que não pode ser configurado, ajuste o rig ou o mapeamento no projeto e teste uma pose simples. O rótulo `mixamo` da API é uma opção de nomes; não é uma certificação da TO3D para retargeting do Unity Humanoid.
- Mantenha o GLB gerado, o GLB com rig e o resultado da importação no Unity como artefatos separados enquanto valida seu personagem.
Mantenha o escopo da evidência das amostras
A inspeção de amostras do #56 encontrou juntas do esqueleto, pesos de skinning, UVs e um PNG incorporado em cada um dos quatro GLBs públicos. Isso é evidência do conteúdo desses arquivos. Não prova que toda nova entrada deformará bem, terá formas faciais ou será importada sem ajustes.
- As quatro amostras não estabelecem formas faciais, visemas, exportação VRM ou retargeting automático no Unity.