lowpoly sẽ ngừng hoạt động vào 30 thg 10, 2026. Hãy chuyển sang mô hình khác trước các ngày này để tránh lỗi yêu cầu. Xem tất cả mục ngừng hỗ trợ

API Rigging

Thêm khung xương (bộ xương) vào một mô hình 3D dạng người và gắn lưới vào nó, để nhân vật sẵn sàng để tạo hoạt hình. Để áp dụng hoạt ảnh cho một nhân vật đã được rigging, xem API Hoạt hình.

Rigging chỉ hoạt động tốt với các nhân vật dạng người tiêu chuẩn (hai chân) có cấu trúc chi và cơ thể được xác định rõ ràng.


POST/openapi/v1/rigging

Tạo một tác vụ Rigging

Tạo một tác vụ Rigging cho một mô hình 3D. Khi tác vụ thành công, nó trả về một nhân vật đã được rig ở các định dạng tiêu chuẩn và, tùy chọn, các hoạt ảnh đi bộ và chạy cơ bản.

Tác vụ chạy ngầm. Để biết thời gian một tác vụ thường mất, xem Thời gian xử lý.

Rigging không phù hợp với các mô hình sau:

  • Lưới chưa có texture
  • Các asset không phải hình người
  • Các asset hình người có cấu trúc chi và cơ thể không rõ ràng

Request

POST
/openapi/v1/rigging
# Rig a model from a URL
curl https://api.meshy.ai/openapi/v1/rigging \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "model_url": "YOUR_MODEL_URL_OR_DATA_URI",
    "height_meters": 1.8
  }'

Response

{
  "result": "018b314a-a1b5-716d-c222-2f1776f7f579"
}

Tham số

  • Name
    input_task_id
    Type
    string
    Bắt buộc
    Description

    Bắt buộc trừ khi bạn gửi model_url. ID của tác vụ có mô hình mà bạn muốn rig. Meshy hỗ trợ các mô hình hình người có texture.

    Mô hình có thể có tối đa 380.000 tam giác (một tứ giác được tính là 2), và một mô hình có nhiều hơn sẽ trả về 400. Để giữ dưới giới hạn này, hãy chạy Remesh API trên đó trước với target_polycount là 300000 hoặc thấp hơn, hoặc 150000 hoặc thấp hơn với topology: quad.

  • Name
    model_url
    Type
    string
    Bắt buộc
    Description

    Bắt buộc trừ khi bạn gửi input_task_id. Mô hình cần rig, dưới dạng URL công khai hoặc data URI. Nếu bạn gửi cả hai, Meshy sẽ sử dụng input_task_id.

    Mô hình phải là một tệp GLB (.glb) có kích thước tối đa 400 MB từ URL http hoặc https, hoặc 100 MB dưới dạng data URI. Rigging hỗ trợ các mô hình hình người có texture.

    Mô hình có thể có tối đa 380.000 tam giác (một tứ giác được tính là 2), và một mô hình có nhiều hơn sẽ trả về 400. Để giữ dưới giới hạn này, hãy chạy Remesh API trên đó trước với target_polycount là 300000 hoặc thấp hơn, hoặc 150000 hoặc thấp hơn với topology: quad.

    Mặt của nhân vật phải hướng về trục +Z, hướng tiến chuẩn của glTF. Ước lượng tư thế sẽ thất bại đối với một mô hình hướng theo trục khác.

    Một tệp trên 100 MB cũng phải tuân theo các quy tắc sau:

    • Nó có thể có tối đa 10.000.000 mặt. Một tệp có nhiều hơn sẽ trả về 400. Meshy tính các mặt là tam giác, và một lưới được vẽ nhiều hơn một lần sẽ được tính một lần cho mỗi bản sao.
    • Nó không được sử dụng nén Draco.
  • Name
    height_meters
    Type
    number
    mặc định 1.7
    Description

    Chiều cao xấp xỉ của nhân vật, tính bằng mét. Meshy sử dụng giá trị này để tỷ lệ và rig mô hình chính xác hơn. Một giá trị âm sẽ trả về 400.

  • Name
    texture_image_url
    Type
    string
    ⚠ không dùng nữa
    Description

    Bỏ trống khi mô hình đã có texture riêng. Nếu không có giá trị này, Meshy sẽ sử dụng các texture được nhúng trong tệp model_url, hoặc texture của tác vụ đầu vào. Nếu bạn gửi giá trị này, hình ảnh này sẽ trở thành texture duy nhất của mô hình đã rig, và mô hình sẽ mất các bản đồ PBR.

    Texture màu cơ bản đã trải UV của mô hình, dưới dạng URL công khai hoặc data URI. Hình ảnh phải là tệp PNG có kích thước tối đa 20 MB. Một định dạng hình ảnh khác sẽ trả về 400.

Giá trị trả về

Trường result trong phản hồi chứa ID của tác vụ Rigging mới.

Các chế độ lỗi

  • Name
    400 - Bad Request
    Description

    Yêu cầu không thể chạy. Thông báo lỗi cho biết vấn đề mà nó phát hiện. Ví dụ:

    • Thiếu tham số: Không có model_url hay input_task_id nào được gửi.
    • Định dạng mô hình không hợp lệ: Tệp model_url có phần mở rộng không được hỗ trợ. Chỉ .glb được hỗ trợ.
    • URL không thể truy cập: Meshy không thể tải xuống tệp model_url.
    • Tệp mô hình quá lớn: Tệp model_url vượt quá 400 MB từ URL http hoặc https, hoặc vượt quá 100 MB dưới dạng data URI.
    • Quá nhiều mặt: Tệp model_url vượt quá 100 MB và có nhiều hơn 10.000.000 mặt. Giảm số lượng mặt, sau đó gửi lại tệp.
    • Tệp mô hình không đọc được: Tệp model_url vượt quá 100 MB, và Meshy không thể đọc tiêu đề của nó. Ví dụ, đó là một GLB đã nén Draco.
    • Tiêu đề mô hình quá phức tạp: Tệp model_url vượt quá 100 MB, và tiêu đề của nó có quá nhiều lưới, node, hoặc bản ghi cần kiểm tra. Giảm số lượng đối tượng trong tệp, sau đó gửi lại.
    • Hình ảnh quá lớn: Hình ảnh texture_image_url vượt quá 20 MB.
    • Định dạng texture không hợp lệ: Hình ảnh texture_image_url không phải là tệp PNG.
    • Chiều cao không hợp lệ: height_meters là số âm.
    • Tác vụ đầu vào không hợp lệ: input_task_id không trỏ đến một tác vụ API hợp lệ.
    • Tác vụ đầu vào chưa sẵn sàng: Tác vụ input_task_id chưa đạt trạng thái SUCCEEDED. Đợi cho đến khi nó thành công, sau đó thử lại.
    • Vượt quá số lượng mặt: Mô hình đầu vào có nhiều hơn 380.000 tam giác (một tứ giác được tính là 2). Chạy Remesh API trên đó với target_polycount là 300000 hoặc thấp hơn, hoặc 150000 hoặc thấp hơn với topology: quad, trước khi rig mô hình.

    Sửa yêu cầu, sau đó gửi lại. Xem Lỗi.

  • Name
    401 - Unauthorized
    Description

    Khóa API bị thiếu hoặc không hợp lệ. Kiểm tra header Authorization.

  • Name
    402 - Payment Required
    Description

    Ví dụ:

    • Không đủ tín dụng: Tài khoản không có đủ tín dụng cho tác vụ này, hoặc tài khoản đã đạt giới hạn tín dụng. Kiểm tra số dư tín dụng của bạn, sau đó thử lại.
    • Gói miễn phí: Tạo một tác vụ yêu cầu gói trả phí. Nâng cấp gói của bạn trong cài đặt đăng ký, sau đó thử lại.
  • Name
    403 - Forbidden
    Description

    input_task_id là một mô hình phù điêu, mà endpoint này không thể rig. Thông báo là This model type does not support this operation. Gửi một mô hình khác.

  • Name
    404 - Not Found
    Description

    Meshy không thể tìm thấy các tệp của tác vụ input_task_id. Một trong các trường hợp sau áp dụng:

    • Meshy đã xóa các tệp của tác vụ sau expires_at của nó. Tạo lại tác vụ, sau đó gửi ID của tác vụ đó.
    • Tác vụ không có bất kỳ tệp nào mà rigging cần, chẳng hạn như hình ảnh xem trước, ví dụ như một tác vụ Convert. Rig tác vụ mà nó bắt nguồn từ đó, hoặc gửi mô hình dưới dạng model_url.
  • Name
    422 - Unprocessable Entity
    Description

    Ước lượng tư thế thất bại. Mô hình có thể không phải là một nhân vật hình người hợp lệ. Gửi một mô hình của nhân vật hình người. Đối với model_url, cũng hãy kiểm tra rằng nhân vật hướng về trục +Z.

  • Name
    429 - Too Many Requests
    Description

    Bạn đã vượt quá giới hạn tốc độ. Đợi, sau đó thử lại. Xem Giới hạn tốc độ.


GET/openapi/v1/rigging/:id

Lấy tác vụ Rigging

Trả về một tác vụ Rigging theo ID của nó.

Request

GET
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579
curl https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": null,
  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
    "rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
      "walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
      "walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
      "running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
      "running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
      "running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
    }
  }
}

Tham số

  • Name
    id
    Type
    path
    Description

    ID tác vụ từ phản hồi tạo tác vụ.

Giá trị trả về

Đối tượng tác vụ Rigging.


DELETE/openapi/v1/rigging/:id

Xóa một tác vụ Rigging

Xóa vĩnh viễn một tác vụ Rigging, bao gồm các model và dữ liệu của nó. Bạn không thể hoàn tác thao tác xóa.

Request

DELETE
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps 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."
}

Tham số đường dẫn

  • Name
    id
    Type
    path
    Description

    ID của tác vụ cần xóa.

Trạng thái tác vụ

Xóa một tác vụ PENDING sẽ hoàn lại số tín dụng đã sử dụng khi bạn tạo tác vụ đó.

Một tác vụ IN_PROGRESS không thể bị xóa. Yêu cầu sẽ trả về 409 Conflict, và tác vụ vẫn tiếp tục chạy. Meshy không hoàn tín dụng cho một tác vụ đã bắt đầu, vì vậy việc xóa nó sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy đợi cho đến khi tác vụ đạt trạng thái SUCCEEDED, FAILED, hoặc CANCELED, sau đó mới xóa nó.

Xóa một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED, hoặc CANCELED) sẽ không hoàn lại tín dụng.

Kết quả trả về

200 OK khi tác vụ được xóa, hoặc 409 Conflict khi tác vụ đang ở trạng thái IN_PROGRESS.


GET/openapi/v1/rigging

Liệt kê các tác vụ Rigging

Trả về danh sách phân trang các tác vụ Rigging của bạn, mới nhất trước. Để chuyển qua các trang trong danh sách, hãy dùng page_num và page_size.

Các tác vụ bạn tạo bằng API sẽ ở lại trong API và không xuất hiện trong My Assets trên ứng dụng web. Để tìm một tác vụ mà bạn không còn ID, hãy dùng endpoint này.

Request

GET
/openapi/v1/rigging
curl "https://api.meshy.ai/openapi/v1/rigging?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"

GET/openapi/v1/rigging/:id/stream

Stream a Rigging task

Truyền trực tiếp (stream) các cập nhật của một tác vụ Rigging dưới dạng Server-Sent Events (SSE).

Request

GET
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/stream
curl -N https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "progress": 50,
  "status": "IN_PROGRESS"
}

event: message
data: { // Example of a SUCCEEDED task event, with the same fields as the Rigging task object
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": null,
  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/.../Character_output.fbx?...",
    "rigged_character_glb_url": "https://assets.meshy.ai/.../Character_output.glb?...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.glb?...",
      "walking_fbx_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.fbx?...",
      "walking_armature_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin_armature.glb?...",
      "running_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.glb?...",
      "running_fbx_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.fbx?...",
      "running_armature_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin_armature.glb?..."
    }
  }
}

Tham số

  • Name
    id
    Type
    path
    Description

    ID tác vụ từ phản hồi tạo (create response).

Giá trị trả về

Một luồng (stream) các đối tượng tác vụ Rigging dưới dạng Server-Sent Events.

Mỗi sự kiện chứa toàn bộ đối tượng tác vụ, theo cùng cấu trúc mà endpoint Get trả về. Trong khi tác vụ đang ở trạng thái PENDING hoặc IN_PROGRESS, các trường kết quả của nó vẫn chưa có giá trị.


Đối tượng tác vụ Rigging

Một đối tượng tác vụ Rigging mô tả việc rigging của một nhân vật. Nó chứa trạng thái, progress, và các tệp đầu ra khi tác vụ thành công.

Thuộc tính

Example Rigging Task Object

{
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": null,
  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
    "rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
      "walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
      "walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
      "running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
      "running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
      "running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
    }
  }
}
  • Name
    id
    Type
    string
    Description

    ID của tác vụ. Hãy coi đây là một chuỗi không minh bạch (opaque), và đừng phụ thuộc vào định dạng của nó.

  • Name
    type
    Type
    string
    Description

    Loại tác vụ, luôn là rig.

  • Name
    status
    Type
    string
    Description

    Trạng thái tác vụ, là một trong các giá trị PENDING, IN_PROGRESS, SUCCEEDED, FAILED, hoặc CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Mức độ hoàn thành của tác vụ, tính theo phần trăm. Giá trị là 0 cho đến khi tác vụ bắt đầu và 100 khi tác vụ thành công.

  • Name
    created_at
    Type
    timestamp
    Description

    Thời điểm tác vụ được tạo, tính bằng mili giây Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Thời điểm tác vụ bắt đầu, tính bằng mili giây Unix. Giá trị là 0 cho đến khi tác vụ bắt đầu.

  • Name
    finished_at
    Type
    timestamp
    Description

    Thời điểm tác vụ kết thúc, tính bằng mili giây Unix. Giá trị là 0 cho đến khi tác vụ kết thúc.

  • Name
    expires_at
    Type
    timestamp
    Description

    Thời điểm các tệp kết quả của tác vụ hết hạn, tính bằng mili giây Unix. Sau thời điểm này, Meshy có thể xóa các tệp này.

  • Name
    task_error
    Type
    object
    Description

    Thông tin chi tiết về lỗi khi tác vụ thất bại. Giá trị là null trừ khi trạng thái là FAILED. Xem Lỗi.

  • Name
    consumed_credits
    Type
    integer
    Description

    Số lượng tín dụng mà tác vụ đã sử dụng. Có mặt khi trạng thái là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Giá trị là 0 đối với tác vụ FAILED, vì Meshy sẽ hoàn lại tín dụng khi một tác vụ thất bại.

  • Name
    result
    Type
    object
    Description

    Các URL tệp đầu ra. Cho đến khi tác vụ thành công, mỗi URL là một chuỗi rỗng, và basic_animations là null.

    • Name
      rigged_character_fbx_url
      Type
      string
      Description

      URL tải xuống cho nhân vật đã được rigging dưới dạng tệp FBX.

    • Name
      rigged_character_glb_url
      Type
      string
      Description

      URL tải xuống cho nhân vật đã được rigging dưới dạng tệp GLB.

    • Name
      basic_animations
      Type
      object (optional)
      Description

      URL tải xuống cho các hoạt hình đi bộ và chạy mặc định.

      • Name
        walking_glb_url
        Type
        string
        Description
        Hoạt hình đi bộ kèm da (skin), dưới dạng tệp GLB.
      • Name
        walking_fbx_url
        Type
        string
        Description
        Hoạt hình đi bộ kèm da (skin), dưới dạng tệp FBX.
      • Name
        walking_armature_glb_url
        Type
        string
        Description
        Bộ xương của hoạt hình đi bộ, dưới dạng tệp GLB.
      • Name
        running_glb_url
        Type
        string
        Description
        Hoạt hình chạy kèm da (skin), dưới dạng tệp GLB.
      • Name
        running_fbx_url
        Type
        string
        Description
        Hoạt hình chạy kèm da (skin), dưới dạng tệp FBX.
      • Name
        running_armature_glb_url
        Type
        string
        Description
        Bộ xương của hoạt hình chạy, dưới dạng tệp GLB.
  • Name
    preceding_tasks
    Type
    integer
    Description

    Số lượng tác vụ đứng trước tác vụ này trong hàng đợi. Giá trị này chỉ có ý nghĩa khi tác vụ đang ở trạng thái PENDING. Trường này sẽ không xuất hiện khi giá trị là 0.