1. Создайте GLB
Отправьте задачу изображения с общедоступным URL. Ответ асинхронный, поэтому сохраните возвращённый ID задачи.
export TO3D_KEY='YOUR_API_KEY'
export TO3D_IMAGE_URL='https://example.com/prop-or-character.jpg'
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")Опросите и сохраните GLB
Опросите задачу до успеха и сохраните URL из `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 unreal-candidate.glb2. Запросите имена костей UE5, если нужен humanoid-риг
Загрузите скачанный GLB по общедоступному URL или разместите его там, затем отправьте отдельный запрос Skin Tokens. Опросите `/api/skin_tokens/tasks/$RIG_ID` и после успеха скачайте возвращённый `output.model_file`. Не описывайте два вызова как одно автоматическое преобразование.
export TO3D_MODEL_URL='https://example.com/unreal-candidate.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:"ue5"}}')")
RIG_ID=$(jq -er '.id' <<<"$RIG_JSON")
printf 'Rig task: %s\n' "$RIG_ID"3. Проверьте сторону Unreal
Импортируйте GLB с помощью импортера и плагинов проекта. Проверьте единицы и ориентацию asset, ссылки на материалы и текстуры, иерархию скелета, bind pose и поведение анимации или ретаргетинга.
- Значение `ue5` — это вариант именования костей API.
- #56 не проводил приёмочные тесты импорта или ретаргетинга в Unreal, поэтому это руководство не может обещать готовый скелет Unreal, настройку столкновений, LOD или игровую анимацию.
Используйте образцы как структурные ориентиры
В четырёх общедоступных образцах, проверенных для #56, были skin, суставы, веса, UV и одна встроенная PNG-текстура. Используйте их, чтобы понять возможную структуру файла; каждую новую генерацию проверяйте как отдельный asset.
- Если нужен статический объект, пропустите запрос риггинга и проверьте масштаб и материалы.