lowpoly จะยุติการให้บริการในวันที่ 30 ต.ค. 2569 โปรดเปลี่ยนโมเดลก่อนวันที่เหล่านี้เพื่อหลีกเลี่ยงข้อผิดพลาดของคำขอ

แอนิเมชัน API

เอนด์พอยต์สำหรับค้นหาแอนิเมชันที่มีอยู่และนำไปใช้กับตัวละครที่มี rig


POST/openapi/v1/animations

สร้างงานแอนิเมชัน

เอนด์พอยต์นี้ช่วยให้คุณสร้างงานใหม่เพื่อนำแอนิเมชันไปใช้กับตัวละครที่ผ่านการ rigging มาแล้ว — ไม่ว่าจะเป็นแอ็กชันสำเร็จรูปจากคลังแอนิเมชัน (action_id) แอ็กชันสำเร็จรูปหลายรายการรวมเป็นไฟล์เดียว (action_ids) หรือคลิปโมชันที่คุณสร้างด้วย Text to Motion API (motion_task_id) นอกจากนี้ยังรวมตัวเลือกการประมวลผลภายหลังด้วย

งานนี้ทำงานอยู่เบื้องหลัง สำหรับระยะเวลาที่มักใช้ โปรดดูที่ Processing Times

พารามิเตอร์

  • Name
    rig_task_id
    Type
    string
    จำเป็น
    Description

    id ของงาน rigging ที่เสร็จสมบูรณ์แล้ว (จาก POST /openapi/v1/rigging) ตัวละครจากงานนี้จะถูกนำมาใส่แอนิเมชัน

  • Name
    action_id
    Type
    integer
    Description

    ตัวระบุของแอ็กชันแอนิเมชันสำเร็จรูปที่จะนำไปใช้ ดูรายการแอนิเมชันที่มีทั้งหมดได้ที่ Animation Library Reference ให้ระบุเพียงค่าเดียวจาก action_id, action_ids หรือ motion_task_id

  • Name
    action_ids
    Type
    array of integers
    Description

    แอ็กชันแอนิเมชันสำเร็จรูปหลายรายการที่จะนำไปใช้พร้อมกัน โดยส่งคืนเป็นไฟล์เดียวที่มีคลิปแอนิเมชันหนึ่งคลิปต่อหนึ่งแอ็กชัน — มีประโยชน์สำหรับการขับเคลื่อนตัวละครจาก state machine ในเกมเอนจิน ให้ระบุค่า action_id จำนวน 1 ถึง 10 ค่าจาก Animation Library Reference โดยไอดีต้องไม่ซ้ำกัน มีค่าใช้จ่าย 3 เครดิตต่อหนึ่งแอ็กชัน ให้ระบุเพียงค่าเดียวจาก action_id, action_ids หรือ motion_task_id

    การส่ง action_ids ที่มีสมาชิกเพียงตัวเดียว เทียบเท่ากับการส่งค่านั้นเป็น action_id

  • Name
    motion_task_id
    Type
    string
    Description

    id ของงาน Text to Motion ที่เสร็จสมบูรณ์แล้ว เพื่อนำไปใช้แทนแอ็กชันสำเร็จรูป คลิปที่สร้างขึ้นจะถูก retarget ไปยังตัวละครที่ผ่านการ rigging และคลิปจะถูกบันทึกสแนปช็อตไว้ ณ เวลาที่สร้าง ดังนั้นงานนี้จะไม่ได้รับผลกระทบหากงานต้นทางหมดอายุหรือถูกลบในภายหลัง แอสเซ็ตของงานต้นทางจะถูกเก็บไว้ 3 วัน — ให้นำคลิปไปใช้ก่อนที่จะหมดอายุ ต้องใช้ rig แบบสองขา ให้ระบุเพียงค่าเดียวจาก action_id, action_ids หรือ motion_task_id

  • Name
    post_process
    Type
    object
    Description

    ตัวเลือกการประมวลผลภายหลังสำหรับผลลัพธ์แอนิเมชัน หากไม่ระบุ จะได้รับไฟล์แอนิเมชันแบบมาตรฐาน

ใช้เฉพาะเมื่อ post_process is set
  • Name
    operation_type
    Type
    string
    จำเป็น
    Description

    ประเภทของการดำเนินการที่จะทำ ค่าที่ใช้ได้: change_fps, fbx2usdz, extract_armature

  • Name
    fps
    Type
    integer
    ค่าเริ่มต้น 30
    Description

    เฟรมเรตเป้าหมาย ใช้ได้เฉพาะเมื่อ operation_type เป็น change_fps ค่าที่อนุญาต: 24, 25, 30, 60

ผลลัพธ์ที่ส่งคืน

พร็อพเพอร์ตี้ result ของการตอบกลับจะมี id ของงานแอนิเมชันที่สร้างขึ้นใหม่

รูปแบบความล้มเหลว

  • Name
    400 - Bad Request
    Description

    คำขอไม่สามารถยอมรับได้ สาเหตุทั่วไปได้แก่:

    • ขาดพารามิเตอร์: ไม่มี rig_task_id หรือไม่มีการระบุ action_id, action_ids หรือ motion_task_id เลย
    • พารามิเตอร์ขัดแย้งกัน: มีการระบุมากกว่าหนึ่งค่าจาก action_id, action_ids และ motion_task_id — ซึ่งเป็นพารามิเตอร์ที่แยกจากกันไม่สามารถใช้ร่วมกันได้
    • งาน rig ไม่ถูกต้อง: rig_task_id ไม่ถูกต้อง หรืออ้างอิงถึงงานที่ล้มเหลว/ไม่มีอยู่จริง
    • รหัสแอ็กชันไม่ถูกต้อง: action_id — หรือรายการใดรายการหนึ่งใน action_ids — ไม่ตรงกับแอนิเมชันที่ถูกต้อง
    • แอ็กชันมากเกินไป: action_ids มีไอดีมากกว่า 10 รายการ
    • แอ็กชันซ้ำกัน: action_ids มีไอดีเดียวกันปรากฏมากกว่าหนึ่งครั้ง
    • งานโมชันยังไม่พร้อม: งาน motion_task_id ยังไม่มีสถานะ SUCCEEDED
    • rig ไม่รองรับ: motion_task_id ต้องใช้ rig แบบสองขา rig แบบสี่ขาจะถูกปฏิเสธ
  • Name
    401 - Unauthorized
    Description

    การยืนยันตัวตนล้มเหลว กรุณาตรวจสอบ API คีย์ของคุณ

  • Name
    402 - Payment Required
    Description

    เครดิตไม่เพียงพอสำหรับการดำเนินงานนี้

  • Name
    404 - Not Found
    Description

    ไม่พบงาน rigging ที่ระบุโดย rig_task_id หรือไม่พบงานโมชันที่ระบุโดย motion_task_id หรือคลิปโมชันหมดอายุแล้ว (แอสเซ็ตของงานต้นทางจะถูกเก็บไว้ 3 วัน)

  • Name
    429 - Too Many Requests
    Description

    คุณใช้งานเกินการจำกัดอัตราที่กำหนดไว้

Request

POST
/openapi/v1/animations
# Animate a rigged model with required params only
curl https://api.meshy.ai/openapi/v1/animations \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579",
    "action_id": 92
  }'

# Apply several preset actions and get one file with one clip per action
curl https://api.meshy.ai/openapi/v1/animations \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579",
    "action_ids": [10, 25, 92]
  }'

# Apply a generated Text to Motion clip instead of a preset action
curl https://api.meshy.ai/openapi/v1/animations \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579",
    "motion_task_id": "018c425b-b2c6-727e-d333-3c1887i9h791"
  }'

# With post-processing to change FPS
curl https://api.meshy.ai/openapi/v1/animations \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579",
    "action_id": 92,
    "post_process": {
      "operation_type": "change_fps",
      "fps": 24
    }
  }'

Response

{
  "result": "018c425b-b2c6-727e-d333-3c1887i9h791"
}

GET/openapi/v1/animations/:id

เรียกข้อมูลงานแอนิเมชัน

เอนด์พอยต์นี้ช่วยให้คุณสามารถเรียกข้อมูลงานแอนิเมชันโดยใช้ id ของงานที่ถูกต้อง ดู The Animation Task Object เพื่อดูว่ามีคุณสมบัติใดบ้างที่รวมอยู่

พารามิเตอร์

  • Name
    id
    Type
    path
    Description

    ตัวระบุเฉพาะสำหรับงานแอนิเมชันที่ต้องการเรียกข้อมูล

ค่าที่ส่งกลับ

การตอบกลับประกอบด้วยอ็อบเจ็กต์ Animation Task ดูรายละเอียดได้ที่ส่วน The Animation Task Object

Request

GET
/openapi/v1/animations/018c425b-b2c6-727e-d333-3c1887i9h791
curl https://api.meshy.ai/openapi/v1/animations/018c425b-b2c6-727e-d333-3c1887i9h791 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "animate",
  "status": "SUCCEEDED",
  "created_at": 1747032440896,
  "progress": 100,
  "started_at": 1747032441210,
  "finished_at": 1747032457530,
  "expires_at": 1747291657530,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 3,
  "result": {
    "animation_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/Animation_Reaping_Swing_withSkin.glb?Expires=...",
    "animation_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/Animation_Reaping_Swing_withSkin.fbx?Expires=...",
    "processed_usdz_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/processed.usdz?Expires=...",
    "processed_armature_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/processed_armature.fbx?Expires=...",
    "processed_animation_fps_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/processed_60fps.fbx?Expires=..."
  },
  "preceding_tasks": 0
}

DELETE/openapi/v1/animations/:id

ลบงานแอนิเมชัน

เอนด์พอยต์นี้จะลบงานแอนิเมชันอย่างถาวร รวมถึงโมเดลและข้อมูลที่เกี่ยวข้องทั้งหมด การกระทำนี้ไม่สามารถย้อนกลับได้

พารามิเตอร์ของ Path

  • Name
    id
    Type
    path
    Description

    ID ของงานแอนิเมชันที่ต้องการลบ

สถานะของงาน

งานที่ยังอยู่ในสถานะ PENDING จะถูกลบ และเครดิตที่ถูกใช้ไปตอนสร้างงาน จะได้รับการคืน

งานที่อยู่ในสถานะ IN_PROGRESS ไม่สามารถลบได้: คำขอจะถูกปฏิเสธด้วย 409 Conflict และงานจะยังคงทำงานต่อไป เครดิตสำหรับงานที่ worker เริ่มดำเนินการไปแล้วจะไม่สามารถคืนได้ ดังนั้นการลบงานขณะที่กำลังทำงานอยู่ จะทำให้คุณเสียทั้งเครดิตและผลลัพธ์ไปพร้อมกัน ให้รอจนกว่างานจะถึงสถานะ SUCCEEDED, FAILED หรือ CANCELED แล้วจึงลบงานนั้น

งานที่อยู่ในสถานะสุดท้าย (SUCCEEDED, FAILED หรือ CANCELED) จะถูกลบ โดยไม่มีการคืนเครดิต

ผลลัพธ์ที่ได้รับ

ส่งคืน 200 OK เมื่อสำเร็จ หรือ 409 Conflict เมื่องานอยู่ในสถานะ IN_PROGRESS

Request

DELETE
/openapi/v1/animations/018b314a-a1b5-716d-c222-2f1776f7f579
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/animations/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 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."
}

GET/openapi/v1/animations

List Animation Tasks

คืนค่ารายการงานแอนิเมชันของผู้เรียกแบบแบ่งหน้า โดยเรียงจากล่าสุดไปเก่าสุด ใช้การแบ่งหน้าแบบมาตรฐานผ่าน page_num และ page_size

โปรดทราบว่างานที่สร้างผ่าน API จะถูกจัดการผ่าน API เท่านั้น — งานเหล่านี้จะไม่ปรากฏในส่วน My Assets ของเว็บแอป ใช้เอนด์พอยต์นี้เพื่อค้นหางานที่คุณไม่มี ID อีกต่อไป

Request

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

GET/openapi/v1/animations/:id/stream

สตรีมงานแอนิเมชัน

เอนด์พอยต์นี้สตรีมข้อมูลอัปเดตแบบเรียลไทม์สำหรับงานแอนิเมชันโดยใช้ Server-Sent Events (SSE)

พารามิเตอร์

  • Name
    id
    Type
    path
    Description

    ตัวระบุเฉพาะสำหรับงานแอนิเมชันที่ต้องการสตรีม

ค่าที่ส่งกลับ

ส่งคืนสตรีมของ The Animation Task Objects ในรูปแบบ Server-Sent Events

สำหรับงานที่มีสถานะ PENDING หรือ IN_PROGRESS สตรีมการตอบกลับจะมีเฉพาะฟิลด์ progress และ status ที่จำเป็นเท่านั้น

Request

GET
/openapi/v1/animations/018c425b-b2c6-727e-d333-3c1887i9h791/stream
curl -N https://api.meshy.ai/openapi/v1/animations/018c425b-b2c6-727e-d333-3c1887i9h791/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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "progress": 50,
  "status": "IN_PROGRESS"
}

event: message
data: { // Example of a SUCCEEDED task stream item, mirroring The Animation Task Object structure
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "animate",
  "status": "SUCCEEDED",
  "created_at": 1747032440896,
  "progress": 100,
  "started_at": 1747032441210,
  "finished_at": 1747032457530,
  "expires_at": 1747291657530,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 3,
  "result": {
    "animation_glb_url": "https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.glb?...",
    "animation_fbx_url": "https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.fbx?...",
    "processed_usdz_url": "https://assets.meshy.ai/.../processed.usdz?...",
    "processed_armature_fbx_url": "https://assets.meshy.ai/.../processed_armature.fbx?...",
    "processed_animation_fps_fbx_url": "https://assets.meshy.ai/.../processed_60fps.fbx?..."
  },
  "preceding_tasks": 0
}

The Animation Task Object

Animation Task object แสดงถึงหน่วยงานสำหรับการนำแอนิเมชันไปใช้กับตัวละครที่มีการจัดวางโครงกระดูกแล้ว

Properties

  • Name
    id
    Type
    string
    Description

    ตัวระบุที่ไม่ซ้ำกันสำหรับงานนี้

  • Name
    type
    Type
    string
    Description

    ประเภทของงานแอนิเมชัน ค่าคือ animate

  • Name
    status
    Type
    string
    Description

    สถานะของงาน ค่าที่เป็นไปได้: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED

  • Name
    progress
    Type
    integer
    Description

    progress ของงาน (0-100)

  • Name
    created_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ (หน่วยเป็นมิลลิวินาทีนับจาก epoch) เมื่อสร้างงานนี้

  • Name
    started_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ (หน่วยเป็นมิลลิวินาทีนับจาก epoch) เมื่อเริ่มดำเนินการงานนี้ ค่าเป็น 0 หากยังไม่เริ่มดำเนินการ

  • Name
    finished_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ (หน่วยเป็นมิลลิวินาทีนับจาก epoch) เมื่อเสร็จสิ้นงานนี้ ค่าเป็น 0 หากยังไม่เสร็จสิ้น

  • Name
    expires_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ (หน่วยเป็นมิลลิวินาทีนับจาก epoch) เมื่อแอสเซ็ตผลลัพธ์ของงานนี้หมดอายุ

  • 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

    • Name
      animation_glb_url
      Type
      string
      Description
      URL สำหรับดาวน์โหลดแอนิเมชันในรูปแบบ GLB สำหรับงานที่สร้างด้วย action_ids ไฟล์เดียวนี้จะมีทุกแอ็กชันที่ร้องขอเป็นคลิปแยกกัน
    • Name
      animation_fbx_url
      Type
      string
      Description
      URL สำหรับดาวน์โหลดแอนิเมชันในรูปแบบ FBX สำหรับงานที่สร้างด้วย action_ids ไฟล์เดียวนี้จะมีทุกแอ็กชันที่ร้องขอเป็นคลิปแยกกัน
    • Name
      processed_usdz_url
      Type
      string
      Description
      URL สำหรับดาวน์โหลดแอนิเมชันที่ผ่านการประมวลผลแล้วในรูปแบบ USDZ
    • Name
      processed_armature_fbx_url
      Type
      string
      Description
      URL สำหรับดาวน์โหลดอาร์เมเจอร์ที่ผ่านการประมวลผลแล้วในรูปแบบ FBX
    • Name
      processed_animation_fps_fbx_url
      Type
      string
      Description
      URL สำหรับดาวน์โหลดแอนิเมชันที่มีการเปลี่ยน FPS ในรูปแบบ FBX (เช่น หากมีการใช้การดำเนินการ change_fps)
  • Name
    preceding_tasks
    Type
    integer
    Description

    จำนวนงานที่อยู่ก่อนหน้าในคิว มีความหมายเฉพาะเมื่อสถานะเป็น PENDING เท่านั้น

Example Animation Task Object

{
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "animate",
  "status": "SUCCEEDED",
  "created_at": 1747032440896,
  "progress": 100,
  "started_at": 1747032441210,
  "finished_at": 1747032457530,
  "expires_at": 1747291657530,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 3,
  "result": {
    "animation_glb_url": "https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.glb?...",
    "animation_fbx_url": "https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.fbx?...",
    "processed_usdz_url": "https://assets.meshy.ai/.../processed.usdz?...",
    "processed_armature_fbx_url": "https://assets.meshy.ai/.../processed_armature.fbx?...",
    "processed_animation_fps_fbx_url": "https://assets.meshy.ai/.../processed_60fps.fbx?..."
  },
  "preceding_tasks": 0
}

GET/openapi/v1/animations/library

List Animations

ส่งคืนแอนิเมชันทุกรายการในคลัง เรียงลำดับตาม action_id การตอบกลับเป็นรายการทั้งหมด ไม่ใช่การแบ่งหน้า ดังนั้นการเรียกเพียงครั้งเดียวก็เพียงพอที่จะใช้สร้างตัวเลือกแอคชัน ตัวกรองใช้เพื่อจำกัดผลลัพธ์ให้แคบลง หากไม่ใส่ตัวกรองใดเลยจะได้ผลลัพธ์ทั้งหมด

หากต้องการเรียกดูแคตตาล็อกเดียวกันด้วยตาเปล่า พร้อมตัวอย่างแบบแอนิเมชันของแต่ละแอคชัน ดูที่ เอกสารอ้างอิง Animation Library

เอนด์พอยต์นี้ใช้งานได้ฟรี — ไม่มีการใช้เครดิต

พารามิเตอร์

  • Name
    search
    Type
    string
    Description

    จับคู่สตริงย่อยแบบไม่สนตัวพิมพ์เล็ก-ใหญ่กับ name หรือ key จับคู่แบบตรงตัวอักษร ดังนั้น % และ _ ถือเป็นอักขระธรรมดา ไม่ใช่ไวลด์การ์ด

  • Name
    category
    Type
    string
    Description

    จับคู่แบบตรงทั้งหมดกับ category

    ค่าที่ใช้ได้:

    • WalkAndRun
    • BodyMovements
    • DailyActions
    • Fighting
    • Dancing
  • Name
    sub_category
    Type
    string
    Description

    จับคู่แบบตรงทั้งหมดกับ sub_category สามารถใช้เดี่ยวๆ ได้ — ชื่อ sub-category ไม่ได้มีลักษณะเฉพาะตัวข้ามหมวดหมู่ (Transitioning ปรากฏทั้งใน Fighting และ DailyActions) ดังนั้นหากไม่มี category ตัวกรองนี้จะจับคู่กับ sub-category นั้นไม่ว่าจะปรากฏที่ใดก็ตาม

  • Name
    action_ids
    Type
    string
    Description

    รายการค่า action_id คั่นด้วยจุลภาคที่ต้องการให้ส่งคืน สำหรับระบุ id เฉพาะแทนการเรียกดูทั้งหมด รองรับสูงสุด 200 id โดย id ที่ไม่มีแอนิเมชันใดใช้จะไม่ปรากฏในผลลัพธ์เพียงเท่านั้น ดังนั้นคุณยังสามารถใช้วิธีนี้เพื่อตรวจสอบว่า id ที่คุณจัดเก็บไว้ยังใช้งานได้อยู่หรือไม่

การใช้ตัวกรองร่วมกัน

ตัวกรองจะถูกนำมาใช้ร่วมกัน — แต่ละตัวจะจำกัดผลลัพธ์ให้แคบลงไปอีก ดังนั้นแอนิเมชันจะถูกส่งคืนก็ต่อเมื่อตรงตามเงื่อนไขทั้งหมด ภายในตัวกรองเดียวกัน ค่าหลายค่าจะจับคู่กับค่าใดค่าหนึ่งก็ได้: search จับคู่กับ name หรือ key และ action_ids จับคู่กับ id ใดก็ได้ในรายการ

นั่นหมายความว่าการผสมเงื่อนไขที่ไม่มีส่วนที่ซ้อนทับกันจะส่งคืนอาร์เรย์ว่างแทนที่จะเป็นข้อผิดพลาด แอคชัน 92 คือ "Double Combo Attack" ซึ่งเป็นแอนิเมชัน Fighting:

  • ?action_ids=92&category=Fighting ส่งคืนแอคชัน 92
  • ?action_ids=92&category=Dancing ส่งคืน [] — เพราะไม่ใช่แอนิเมชัน Dancing
  • ?action_ids=92&search=walk ส่งคืน [] — เพราะชื่อไม่ตรงกับ walk

หากต้องการดึงแอนิเมชันที่เจาะจงโดยไม่สนใจหมวดหมู่ ให้ส่ง action_ids เพียงอย่างเดียว

ค่าที่ส่งคืน

ส่งคืนรายการของ The Animation Objects

Request

GET
/openapi/v1/animations/library
curl "https://api.meshy.ai/openapi/v1/animations/library?category=Fighting" \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "action_id": 4,
    "name": "Attack",
    "key": "Attack",
    "category": "Fighting",
    "sub_category": "AttackingwithWeapon",
    "preview_url": "https://cdn.meshy.ai/webapp-assets/feature-demo/animation/preview/biped/Attack.gif"
  },
  {
    "action_id": 92,
    "name": "Double Combo Attack",
    "key": "Double_Combo_Attack",
    "category": "Fighting",
    "sub_category": "AttackingwithWeapon",
    "preview_url": "https://cdn.meshy.ai/webapp-assets/feature-demo/animation/preview/biped/Double_Combo_Attack.gif"
  }
]

The Animation Object

  • Name
    action_id
    Type
    integer
    Description

    ค่าที่ใช้ส่งเป็น action_id เมื่อสร้างงานแอนิเมชัน มีลักษณะเฉพาะตัวและคงที่ แต่ไม่ต่อเนื่องกัน — แอนิเมชันที่ถูกเลิกใช้งานจะทิ้งช่องว่างไว้ในลำดับเลข ดังนั้นอย่าสันนิษฐานว่าช่วงของ id ใดจะใช้งานได้ทั้งหมด

  • Name
    name
    Type
    string
    Description

    ป้ายชื่อที่มนุษย์อ่านเข้าใจได้ สำหรับใช้แสดงผล ไม่ได้มีลักษณะเฉพาะตัว: บางแอนิเมชันอาจใช้ชื่อร่วมกับตัวแปรอื่นที่ต่างกัน ดังนั้นให้ใช้ action_id หรือ key เป็นตัวระบุตัวตนแทน

  • Name
    key
    Type
    string
    Description

    สลักที่มีลักษณะเฉพาะตัวและคงที่สำหรับแอนิเมชัน ใช้เมื่อคุณต้องการตัวระบุที่ไม่ใช่ตัวเลขเพื่อใช้เป็นคีย์ในระบบจัดเก็บข้อมูลของคุณเอง

  • Name
    category
    Type
    string
    Description

    กลุ่มระดับบนสุด เช่น Fighting.

  • Name
    sub_category
    Type
    string
    Description

    กลุ่มย่อยภายในหมวดหมู่ เช่น AttackingwithWeapon.

  • Name
    preview_url
    Type
    string
    Description

    URL ของภาพ GIF แอนิเมชันที่แสดงตัวอย่างการกระทำ เหมาะสำหรับนำไปแสดงผลโดยตรงในตัวเลือกของคุณเอง

Example Animation Object

{
  "action_id": 92,
  "name": "Double Combo Attack",
  "key": "Double_Combo_Attack",
  "category": "Fighting",
  "sub_category": "AttackingwithWeapon",
  "preview_url": "https://cdn.meshy.ai/webapp-assets/feature-demo/animation/preview/biped/Double_Combo_Attack.gif"
}