← 返回博客
UNITY 工作流 · 发布日期 2026-09-29

Unity 角色工作流:生成 GLB 并检查骨骼绑定

Unity 角色工作流有两个检查点:模型文件和项目导入。TO3D 可以用返回 GLB 的 REST 任务,以及接收人形 GLB 的独立 Skin Tokens 任务来说明第一个检查点。下面的代码片段可以配合你自己的 API 密钥和公开图片 URL 运行。它不会跳过 Unity 侧的导入与重定向检查。

1. 创建图片任务

设置 API 密钥和公开图片 URL,然后提交一个任务。响应是异步的;保留任务 ID,在第一个任务处理期间不要创建第二个任务。

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. 轮询任务并下载 GLB

轮询同一个任务 ID,直到状态变为 `succeeded`、`failed` 或 `canceled`。当 `status` 为 `succeeded` 时,下载 `.output.model_file` 中的 URL。

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. 请求独立的人形绑定任务

将 `character.glb` 放在 API 可以访问的 URL 上,然后提交第二个任务。如果想先检查这种命名约定,请选择 `mixamo`。轮询 `https://api.to3d.app/api/skin_tokens/tasks/$RIG_ID`,成功后下载其中的 `output.model_file`。

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. 在 Unity 中检查文件

使用项目采用的 Unity 包或导入器导入下载的 GLB。检查模型比例、材质、骨骼映射、绑定姿势和动画片段。如果 Unity 报告有未映射的骨骼或无法配置的 Avatar,请在项目中调整绑定或映射,并测试一个简单姿势。API 中的 `mixamo` 标签是命名选项,不是 TO3D 对 Unity Humanoid 重定向的认证。

  • 验证自己的角色时,将生成的 GLB、绑定后的 GLB 和 Unity 导入结果作为彼此独立的产物保存。

限定样例证据的范围

#56 的样例检查发现,四个公开 GLB 都包含骨架关节、蒙皮权重、UV 和内嵌 PNG。这些证据只说明这些文件包含什么,并不能证明每个新输入都能良好变形、包含面部形状或无需清理即可导入。

  • 四个样例不能证明面部形状、viseme、VRM 导出或 Unity 自动重定向。