1. 画像タスクを作成する
API キーと公開画像 URL を設定して、1 件のタスクを送信します。レスポンスは非同期です。タスク ID を保持し、最初のタスクの処理中に 2 件目を作成しないでください。
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 に置き、2 件目のタスクを送信します。最初に確認したい命名規則がある場合は `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 でファイルを確認する
ダウンロードした GLB をプロジェクトで使う Unity パッケージまたはインポーターに読み込みます。モデルのスケール、マテリアル、スケルトンのマッピング、バインドポーズ、アニメーションクリップを確認します。Unity が未マッピングのボーンや設定できないアバターを報告した場合は、プロジェクト側でリグまたはマッピングを調整し、簡単なポーズをテストします。API の `mixamo` は命名オプションであり、TO3D が Unity Humanoid のリターゲティングを認定するものではありません。
- 生成した GLB、リグ済み GLB、Unity でのインポート結果を別々の成果物として保持し、自分のキャラクターを検証します。
サンプルの証拠範囲を守る
#56 のサンプル検査では、4 つの公開 GLB すべてにスケルトンジョイント、スキンウェイト、UV、埋め込み PNG が見つかりました。これはファイルの内容を理解するための証拠です。すべての新しい入力がきれいに変形し、表情形状を含み、手直しなしでインポートできることを示すものではありません。
- 4 つのサンプルから、表情形状、viseme、VRM 出力、Unity の自動リターゲティングは確認できません。