← Volver al blog
FLUJO DE UNITY · Publicado 2026-09-29

Flujo de personaje para Unity: genera un GLB y comprueba el rig

Un flujo de personaje para Unity tiene dos puntos de control: el archivo del modelo y la importación en el proyecto. TO3D puede documentar el primer punto con una tarea REST que devuelve un GLB y una tarea separada de Skin Tokens que acepta un GLB humanoide. Los fragmentos siguientes se pueden ejecutar con tu propia clave de API y una URL de imagen pública. No omiten las comprobaciones de importación y retargeting del lado de Unity.

1. Crea la tarea de imagen

Configura una clave de API y una URL de imagen pública y envía una sola tarea. La respuesta es asíncrona: conserva el ID de la tarea y no crees una segunda mientras la primera esté procesándose.

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. Consulta la tarea y descarga el GLB

Consulta el mismo ID hasta que llegue a `succeeded`, `failed` o `canceled`. Cuando `status` sea `succeeded`, descarga la 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. Solicita un rig humanoide separado

Aloja `character.glb` en una URL accesible para la API y envía la segunda tarea. Elige `mixamo` si es la convención de nombres que quieres revisar primero. Consulta `https://api.to3d.app/api/skin_tokens/tasks/$RIG_ID` y descarga `output.model_file` cuando termine correctamente.

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. Comprueba el archivo en Unity

Importa el GLB descargado con el paquete o importador de Unity que use tu proyecto. Revisa la escala del modelo, los materiales, el mapeo del esqueleto, la pose de enlace y los clips de animación. Si Unity informa de huesos sin mapear o de un avatar que no se puede configurar, ajusta el rig o el mapeo en el proyecto y prueba una pose sencilla. La etiqueta `mixamo` de la API es una opción de nombres; no es una certificación de TO3D del retargeting de Unity Humanoid.

  • Conserva el GLB generado, el GLB con rig y el resultado de la importación en Unity como artefactos separados mientras validas tu personaje.

Mantén acotada la evidencia de las muestras

La inspección de muestras de #56 encontró articulaciones del esqueleto, pesos de skinning, UV y un PNG incrustado en cada uno de cuatro GLB públicos. Es evidencia de lo que contienen esos archivos. No demuestra que cada entrada nueva se deforme bien, incluya formas faciales o se importe sin limpieza.

  • Las cuatro muestras no establecen formas faciales, visemas, exportación VRM ni retargeting automático en Unity.
Flujo de personaje para Unity: genera un GLB y comprueba el rig | TO3D