API Rigging

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

Xin lưu ý rằng việc rigging bằng lập trình hiện tại chỉ hoạt động tốt với các asset hình người tiêu chuẩn (hai chân) với các chi và cấu trúc cơ thể được xác định rõ ràng vào thời điểm này.


POST/openapi/v1/rigging

Tạo một Nhiệm vụ Rigging

Endpoint này cho phép bạn tạo một nhiệm vụ rigging mới cho một mô hình 3D nhất định. Sau khi hoàn thành thành công, nó cung cấp một nhân vật đã rigged ở các định dạng tiêu chuẩn và tùy chọn các hoạt ảnh đi/chạy cơ bản.

Hiện tại, auto-rigging không phù hợp cho các mô hình sau:

  • Mesh không có texture
  • Asset không phải hình người
  • Asset hình người có cấu trúc chi và cơ thể không rõ ràng

Tham số

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

    Nhiệm vụ đầu vào cần được rigged. Chúng tôi hiện hỗ trợ các mô hình hình người có texture.

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

    Vui lòng cung cấp một mô hình 3D cho Meshy để rig thông qua một URL công khai hoặc Data URI. Chúng tôi hiện hỗ trợ các tệp GLB hình người có texture (định dạng .glb).

  • Name
    height_meters
    Type
    number
    mặc định 1.7
    Description

    Chiều cao xấp xỉ của mô hình nhân vật tính bằng mét. Điều này hỗ trợ trong việc điều chỉnh tỷ lệ và độ chính xác của rigging. Nó phải là một số dương.

  • Name
    texture_image_url
    Type
    string
    Description

    Hình ảnh texture màu cơ bản đã UV-unwrapped của mô hình. URL công khai hoặc Data URI. Chúng tôi hiện hỗ trợ định dạng .png.

Trả về

Thuộc tính result của phản hồi chứa id của nhiệm vụ rigging mới được tạo.

Các chế độ thất bại

  • Name
    400 - Bad Request
    Description

    Yêu cầu không chấp nhận được. Các nguyên nhân phổ biến:

    • Thiếu tham số: Phải cung cấp model_url hoặc input_task_id.
    • Định dạng mô hình không hợp lệ: model_url trỏ đến một tệp có phần mở rộng không được hỗ trợ (chỉ hỗ trợ .glb).
    • URL không thể truy cập: model_url không thể tải xuống.
    • Nhiệm vụ đầu vào không hợp lệ: input_task_id không tham chiếu đến một nhiệm vụ API hợp lệ.
    • Số lượng mặt vượt quá: Mô hình đầu vào có hơn 300,000 mặt. Vui lòng sử dụng Remesh API để giảm số lượng mặt trước khi rigging.
  • Name
    401 - Unauthorized
    Description

    Xác thực thất bại. Vui lòng kiểm tra khóa API của bạn.

  • Name
    402 - Payment Required
    Description

    Không đủ tín dụng để thực hiện nhiệm vụ này.

  • Name
    422 - Unprocessable Entity
    Description

    Ước lượng tư thế thất bại. Mô hình cung cấp có thể không phải là một nhân vật hình người hợp lệ.

  • Name
    429 - Too Many Requests
    Description

    Bạn đã vượt quá giới hạn tốc độ của mình.

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"
}

GET/openapi/v1/rigging/:id

Truy xuất một Tác vụ Rigging

Endpoint này cho phép bạn truy xuất một tác vụ rigging với một id tác vụ hợp lệ. Tham khảo Đối tượng Tác vụ Rigging để xem các thuộc tính nào được bao gồm.

Tham số

  • Name
    id
    Type
    path
    Description

    Định danh duy nhất cho tác vụ rigging cần truy xuất.

Trả về

Phản hồi chứa đối tượng Tác vụ Rigging. Kiểm tra phần Đối tượng Tác vụ Rigging để biết chi tiết.

Yêu cầu

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}"

Phản hồi

{
  "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": {

    "message": ""

  },

  "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=..."
    }
  },
  "preceding_tasks": 0
}

DELETE/openapi/v1/rigging/:id

Xóa một Nhiệm vụ Rigging

Endpoint này xóa vĩnh viễn một nhiệm vụ rigging, bao gồm tất cả các mô hình và dữ liệu liên quan. Hành động này không thể đảo ngược.

Tham số Đường dẫn

  • Name
    id
    Type
    path
    Description

    ID của nhiệm vụ rigging cần xóa.

Trả về

Trả về 200 OK khi thành công.

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

// Returns 200 Ok on success.

GET/openapi/v1/rigging

Danh sách Nhiệm vụ Rigging

Trả về danh sách phân trang các nhiệm vụ rigging của người gọi, mới nhất trước. Phân trang tiêu chuẩn thông qua page_numpage_size.

Lưu ý rằng các nhiệm vụ được tạo thông qua API được quản lý qua API — chúng không xuất hiện trong phần Tài sản của tôi của ứng dụng web. Sử dụng endpoint này để tìm một nhiệm vụ mà bạn không còn ID.

Yêu cầu

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

Phát trực tiếp một Tác vụ Rigging

Endpoint này phát trực tiếp các cập nhật theo thời gian thực cho một tác vụ Rigging sử dụng Server-Sent Events (SSE).

Tham số

  • Name
    id
    Type
    path
    Description

    Định danh duy nhất cho tác vụ Rigging để phát trực tiếp.

Trả về

Trả về một luồng của Các Đối tượng Tác vụ Rigging dưới dạng Server-Sent Events.

Đối với các tác vụ PENDING hoặc IN_PROGRESS, luồng phản hồi sẽ chỉ bao gồm các trường progressstatus cần thiết.

Yêu cầu

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}"

Luồng Phản hồi

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

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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 stream item, mirroring The Rigging Task Object structure
  "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": {

    "message": ""

  },

  "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?..."
    }
  },
  "preceding_tasks": 0
}

Đối tượng Nhiệm vụ Rigging

Đối tượng Nhiệm vụ Rigging đại diện cho đơn vị công việc để rigging một nhân vật.

Thuộc tính

  • Name
    id
    Type
    string
    Description

    Định danh duy nhất cho nhiệm vụ.

  • Name
    type
    Type
    string
    Description

    Loại nhiệm vụ Rigging. Giá trị là rig.

  • Name
    status
    Type
    string
    Description

    Trạng thái của nhiệm vụ. Các giá trị khả dụng: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress của nhiệm vụ (0-100). 0 nếu chưa bắt đầu, 100 nếu thành công.

  • Name
    created_at
    Type
    timestamp
    Description

    Dấu thời gian (mili giây kể từ epoch) khi nhiệm vụ được tạo.

  • Name
    started_at
    Type
    timestamp
    Description

    Dấu thời gian (mili giây kể từ epoch) khi nhiệm vụ bắt đầu xử lý. 0 nếu chưa bắt đầu.

  • Name
    finished_at
    Type
    timestamp
    Description

    Dấu thời gian (mili giây kể từ epoch) khi nhiệm vụ hoàn thành. 0 nếu chưa hoàn thành.

  • Name
    expires_at
    Type
    timestamp
    Description

    Dấu thời gian (mili giây kể từ epoch) khi kết quả nhiệm vụ hết hạn và có thể bị xóa.

  • Name
    task_error
    Type
    object
    Description

    Chi tiết lỗi cho các nhiệm vụ thất bại. Xem Lỗi để tham khảo đầy đủ đối tượng task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Số tín dụng đã tiêu thụ bởi nhiệm vụ này. Có mặt khi trạng thái nhiệm vụ là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Trả về 0 cho các nhiệm vụ FAILED (tín dụng được hoàn lại khi thất bại).

  • Name
    result
    Type
    object
    Description

    Chứa các URL tài sản đầu ra nếu nhiệm vụ SUCCEEDED, null nếu không.

    • Name
      rigged_character_fbx_url
      Type
      string
      Description

      URL có thể tải xuống cho nhân vật đã rigging ở định dạng FBX.

    • Name
      rigged_character_glb_url
      Type
      string
      Description

      URL có thể tải xuống cho nhân vật đã rigging ở định dạng GLB.

    • Name
      basic_animations
      Type
      object (optional)
      Description

      Chứa các URL cho hoạt hình mặc định. (ví dụ: nếu generate_basic_animations được ngầm định là đúng hoặc được bật theo mặc định).

      • Name
        walking_glb_url
        Type
        string
        Description
        URL có thể tải xuống cho hoạt hình đi bộ ở định dạng GLB (có da).
      • Name
        walking_fbx_url
        Type
        string
        Description
        URL có thể tải xuống cho hoạt hình đi bộ ở định dạng FBX (có da).
      • Name
        walking_armature_glb_url
        Type
        string
        Description
        URL có thể tải xuống cho bộ xương hoạt hình đi bộ ở định dạng GLB.
      • Name
        running_glb_url
        Type
        string
        Description
        URL có thể tải xuống cho hoạt hình chạy ở định dạng GLB (có da).
      • Name
        running_fbx_url
        Type
        string
        Description
        URL có thể tải xuống cho hoạt hình chạy ở định dạng FBX (có da).
      • Name
        running_armature_glb_url
        Type
        string
        Description
        URL có thể tải xuống cho bộ xương hoạt hình chạy ở định dạng GLB.
  • Name
    preceding_tasks
    Type
    integer
    Description

    Số lượng nhiệm vụ trước đó trong hàng đợi. Chỉ có ý nghĩa nếu trạng thái là PENDING.

Ví dụ Đối tượng Nhiệm vụ Rigging

{
  "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": {

    "message": ""

  },

  "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=..."
    }
  },
  "preceding_tasks": 0
}