ข้ามไปยังเนื้อหา
Tayakorn
คู่มือ Blender Animation

คู่มือ Blender Animation

LEVEL 0 · ปูพื้นจากศูนย์

Data path — ชื่อจริงของสิ่งที่ขยับได้

ถ้าทุกอย่างคือ property แล้ว Blender เรียกชื่อ property แต่ละตัวว่ายังไง

คำตอบคือ data path — สตริงหนึ่งเส้นที่บอกทางไปหาช่องเก็บค่านั้น เหมือนที่อยู่บ้าน ไม่ใช่ชื่อเล่น

ลองคีย์ตำแหน่งกล่องหนึ่งใบสองจุด แล้วเปิดดูว่า Blender เก็บอะไรไว้จริง ๆ:

cube.location.x = 0.0
cube.keyframe_insert(data_path="location", index=0, frame=1)
cube.location.x = 10.0
cube.keyframe_insert(data_path="location", index=0, frame=25)

ผลที่ได้:

action name      : BoxAction
จำนวน F-Curve     : 1
  data_path        : 'location' | array_index: 0    ← ชื่อจริงของสิ่งที่ถูกคีย์
  จำนวน keyframe   : 2

สังเกตสองอย่าง: ชื่อคือ location ไม่ใช่ location.x และมี array_index: 0 แยกออกมาต่างหาก

2.1 ทำไมต้องแยก path กับ index

เพราะ location เป็นค่าสามช่องรวมกัน (x, y, z) Blender จึงเก็บ path ไว้เส้นเดียวแล้วใช้ตัวเลข index ชี้ว่าเป็นช่องไหน — 0 คือ X, 1 คือ Y, 2 คือ Z

นี่คือเหตุผลเชิงออกแบบ ไม่ใช่ความบังเอิญ: ถ้าคีย์ทั้งสามแกน คุณจะได้เส้นโค้งสามเส้นที่ใช้ path เดียวกันแต่ index ต่างกัน ทำให้ Blender จัดกลุ่มมันเข้าด้วยกันในหน้าจอได้เอง โดยไม่ต้องมีตารางแยกบอกว่าเส้นไหนเป็นพวกเดียวกัน

💡 data path เขียนตามโครงสร้างข้อมูลจริงของ Blender เช่น location (ตำแหน่งวัตถุ) · rotation_euler (การหมุน) · scale (ขนาด) · ยิ่งของอยู่ลึก path ยิ่งยาว แต่หลักการเดิม คือทางเดินจากวัตถุไปถึงช่องเก็บค่า:

location                                    ← ตำแหน่งของวัตถุ
pose.bones["forearm"].rotation_quaternion   ← การหมุนของกระดูกชื่อ forearm

2.2 ทำไมคุณต้องรู้เรื่องนี้ตั้งแต่บทที่ 2

เพราะ data path เป็นสิ่งที่โผล่ซ้ำในทุกกลไกที่เหลือของเล่ม

  • ตอนคีย์ — มันคือสิ่งที่บอกว่าคีย์อะไร (บทที่ 3)
  • ตอนตั้ง driver — มันคือปลายทางที่ค่าจะไปลง (บทที่ 11)
  • ตอนไล่หาว่าใครเขียนทับ — มันคือชื่อที่คุณใช้ค้น (บทที่ 13)

พูดอีกแบบ: ถ้าตอบไม่ได้ว่ากำลังจะแอนิเมต data path ไหน แปลว่ายังไม่รู้ว่ากำลังจะทำอะไร

อ่านแบบเต็มเล่ม