lowpoly будет отключён 30 окт. 2026 г.. Перейдите на другую модель до этих дат, чтобы избежать ошибок в запросах.
Rigging API
Rigging API позволяет программно добавлять скелет (арматуру) к 3D-моделям гуманоидов, связывая с ней сетку, чтобы они были готовы к анимации. Информацию о применении анимаций к риггованному персонажу см. в разделе Animation API.
Обратите внимание, что на данный момент программный риггинг хорошо работает только со стандартными гуманоидными (двуногими) ассетами с четко определенными конечностями и структурой тела.
Этот эндпоинт позволяет создать новую задачу ригинга для заданной 3D-модели. По успешному завершении он предоставляет риг персонажа в стандартных форматах и, опционально, базовые анимации ходьбы/бега.
Задача выполняется в фоновом режиме. Информацию о том, сколько времени это обычно занимает, см. в разделе Время обработки.
В настоящее время авто-ригинг не подходит для следующих моделей:
Сетки без текстур
Негуманоидные ассеты
Гуманоидные ассеты с нечёткой структурой конечностей и тела
При использовании input_task_id модели с более чем 300 000 полигонов не поддерживаются для ригинга. Используйте Remesh API, чтобы уменьшить количество полигонов перед ригингом.
При использовании model_url лицо персонажа должно быть направлено вдоль оси +Z (стандартное направление «вперёд» в glTF). Модели, обращённые в другую сторону, не пройдут оценку позы.
Параметры
Требуется указать только один из параметров — input_task_id или model_url. Если указаны оба, приоритет имеет input_task_id.
Name
input_task_id
Type
string
Обязательный
Description
Входная задача, которую нужно ригировать. В настоящее время поддерживаются текстурированные гуманоидные модели.
Name
model_url
Type
string
Обязательный
Description
Укажите 3D-модель, которую Meshy должен ригировать, через общедоступный URL или Data URI. В настоящее время поддерживаются текстурированные гуманоидные GLB-файлы (формат .glb).
Максимальный размер файла: 400 МБ для URL http или https, 100 МБ для data: URI.
Файл размером более 100 МБ с более чем 10 000 000 полигонов возвращает 400. Полигоны считаются как треугольники, а сетка, нарисованная более одного раза, считается один раз за каждую копию. GLB размером более 100 МБ не должен использовать сжатие Draco.
Name
height_meters
Type
number
по умолчанию 1.7
Description
Приблизительный рост модели персонажа в метрах. Это помогает точнее масштабировать и ригировать модель. Значение должно быть положительным числом.
Name
texture_image_url
Type
string
Description
UV-развёрнутая базовая текстура цвета модели. Общедоступный URL или Data URI. В настоящее время поддерживается формат .png.
Максимальный размер файла: 20 МБ.
Возвращаемое значение
Свойство result ответа содержит id задачи созданной задачи ригинга.
Режимы отказа
Name
400 - Bad Request
Description
Запрос неприемлем. Распространённые причины:
Отсутствует параметр: должен быть указан либо model_url, либо input_task_id.
Недопустимый формат модели: model_url указывает на файл с неподдерживаемым расширением (поддерживается только .glb).
Недоступный URL: не удалось скачать файл по model_url.
Файл модели слишком большой: файл по model_url превышает 400 МБ (URL http или https) или 100 МБ (data: URI).
Слишком много полигонов: файл по model_url превышает 100 МБ и имеет более 10 000 000 полигонов. Уменьшите количество полигонов и отправьте файл снова.
Нечитаемый файл модели: файл по model_url превышает 100 МБ, и его заголовок не удаётся прочитать, например GLB со сжатием Draco.
Слишком сложный заголовок модели: файл по model_url превышает 100 МБ, и его заголовок содержит слишком много сеток, узлов или записей для проверки. Уменьшите количество объектов в файле и отправьте его снова.
Изображение слишком большое: изображение по texture_image_url превышает 20 МБ.
Недопустимая входная задача: input_task_id не ссылается на корректную задачу API.
Превышено количество полигонов: входная модель содержит более 300 000 полигонов. Используйте Remesh API, чтобы уменьшить количество полигонов перед ригингом.
Name
401 - Unauthorized
Description
Ошибка аутентификации. Проверьте свой API-ключ.
Name
402 - Payment Required
Description
Недостаточно кредитов для выполнения этой задачи.
Name
422 - Unprocessable Entity
Description
Оценка позы не удалась. Предоставленная модель может не являться корректным гуманоидным персонажем.
Name
429 - Too Many Requests
Description
Вы превысили ограничение частоты запросов.
Request
POST
/openapi/v1/rigging
# Rig a model from a URLcurlhttps://api.meshy.ai/openapi/v1/rigging \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "YOUR_MODEL_URL_OR_DATA_URI", "height_meters": 1.8 }'
Этот эндпоинт позволяет получить задачу риггинга по действительному id задачи. Обратитесь к разделу Объект задачи риггинга, чтобы узнать, какие свойства включены.
Параметры
Name
id
Type
path
Description
Уникальный идентификатор задачи риггинга, которую нужно получить.
Возвращает
Ответ содержит объект задачи риггинга. Подробности см. в разделе Объект задачи риггинга.
Этот эндпоинт безвозвратно удаляет задачу на риггинг, включая все связанные модели и данные. Это действие необратимо.
Параметры пути
Name
id
Type
path
Description
ID задачи на риггинг, которую нужно удалить.
Статус задачи
Задача, которая всё ещё находится в статусе PENDING, удаляется, а кредиты,
списанные при создании, возвращаются.
Задачу, которая уже находится в статусе IN_PROGRESS, удалить нельзя: запрос
отклоняется с кодом 409 Conflict, и задача продолжает выполняться. Кредиты за задачу,
которую воркер уже начал выполнять, не подлежат возврату, поэтому удаление
во время выполнения обойдётся вам как потерей кредитов, так и потерей результата. Дождитесь, пока она перейдёт
в статус SUCCEEDED, FAILED или CANCELED, и только затем удаляйте её.
Задача в конечном статусе (SUCCEEDED, FAILED или CANCELED) удаляется
без возврата кредитов.
Возвращает
Возвращает 200 OK при успехе или 409 Conflict, если задача находится в статусе
IN_PROGRESS.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
Возвращает постраничный список задач риггинга вызывающего пользователя, начиная с самых новых. Стандартная пагинация через page_num и page_size.
Обратите внимание, что задачи, созданные через API, управляются через API — они не отображаются в разделе My Assets веб-приложения. Используйте этот эндпоинт, чтобы найти задачу, ID которой у вас больше нет.
Объект Rigging Task представляет собой единицу работы по риггингу персонажа.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи.
Name
type
Type
string
Description
Тип задачи Rigging. Значение — rig.
Name
status
Type
string
Description
Статус задачи. Возможные значения: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Прогресс выполнения задачи (0-100). 0, если не начата, 100, если выполнена успешно.
Name
created_at
Type
timestamp
Description
Временная метка (в миллисекундах от начала эпохи), когда задача была создана.
Временная метка представляет собой количество миллисекунд, прошедших с 1 января 1970 года UTC, согласно
стандарту RFC 3339.
Например, пятница, 1 сентября 2023 г., 12:00:00 PM GMT представляется как 1693569600000. Это применимо
ко всем временным меткам в Meshy API.
Name
started_at
Type
timestamp
Description
Временная метка (в миллисекундах от начала эпохи), когда задача начала обрабатываться. 0, если обработка не начата.
Name
finished_at
Type
timestamp
Description
Временная метка (в миллисекундах от начала эпохи), когда задача завершилась. 0, если не завершена.
Name
expires_at
Type
timestamp
Description
Временная метка (в миллисекундах от начала эпохи), когда результирующие ресурсы задачи истекают и могут быть удалены.
Name
task_error
Type
object
Description
Детали ошибки для неудачных задач. См. Ошибки для полного описания объекта task_error.
Name
consumed_credits
Type
integer
Description
Количество кредитов, потреблённых этой задачей. Присутствует, когда статус задачи PENDING, IN_PROGRESS или SUCCEEDED. Возвращает 0 для задач со статусом FAILED (кредиты возвращаются при неудаче).
Name
result
Type
object
Description
Содержит URL-адреса выходных ресурсов, если задача завершилась со статусом SUCCEEDED, иначе null.
Name
rigged_character_fbx_url
Type
string
Description
Скачиваемый URL для риггированного персонажа в формате FBX.
Name
rigged_character_glb_url
Type
string
Description
Скачиваемый URL для риггированного персонажа в формате GLB.
Name
basic_animations
Type
object (optional)
Description
Содержит URL-адреса для стандартных анимаций. (например, если generate_basic_animations было неявно true или включено по умолчанию).
Name
walking_glb_url
Type
string
Description
Скачиваемый URL для анимации ходьбы в формате GLB (с кожей/skin).
Name
walking_fbx_url
Type
string
Description
Скачиваемый URL для анимации ходьбы в формате FBX (с кожей/skin).
Name
walking_armature_glb_url
Type
string
Description
Скачиваемый URL для арматуры анимации ходьбы в формате GLB.
Name
running_glb_url
Type
string
Description
Скачиваемый URL для анимации бега в формате GLB (с кожей/skin).
Name
running_fbx_url
Type
string
Description
Скачиваемый URL для анимации бега в формате FBX (с кожей/skin).
Name
running_armature_glb_url
Type
string
Description
Скачиваемый URL для арматуры анимации бега в формате GLB.
Name
preceding_tasks
Type
integer
Description
Количество предшествующих задач в очереди. Имеет значение только если статус PENDING.