Skip to content
Tayakorn

คู่มือ Blender Animation

LEVEL 3 · ระดับสูง

Shape key กับ Lattice — เปลี่ยนรูปโดยไม่แตะกระดูก

ไม่ใช่ทุกการเปลี่ยนรูปที่เหมาะกับกระดูก การยิ้ม การขมวดคิ้ว การพองของลูกโป่ง — สิ่งเหล่านี้ไม่มี "ข้อต่อ" ให้หมุน

Shape key เก็บ ปลายทางของทุกจุด ไว้เป็นชุด แล้วให้เลขตัวเดียวคุมว่าจะเดินทางไปถึงกี่เปอร์เซ็นต์

=== ข้อมูลที่ถูกเก็บ ===
  key 'Basis' : จุดที่ 0 อยู่ที่ (-1.0, -1.0, 0.0)
  key 'Smile' : จุดที่ 0 อยู่ที่ (-1.0, -1.0, 1.0)

=== เลื่อนสไลเดอร์ตัวเดียว แล้วดูจุดจริง ===
  Smile = 0.0   -> จุดที่ 0 อยู่ที่ z = 0.000
  Smile = 0.25  -> จุดที่ 0 อยู่ที่ z = 0.250
  Smile = 0.5   -> จุดที่ 0 อยู่ที่ z = 0.500
  Smile = 0.75  -> จุดที่ 0 อยู่ที่ z = 0.750
  Smile = 1.0   -> จุดที่ 0 อยู่ที่ z = 1.000

เป็นการผสมเชิงเส้นตรงไปตรงมา ไม่มีอะไรซับซ้อนกว่านั้น

12.1 จุดที่มันเชื่อมกับสองบทก่อน

ค่าของ shape key คือ property ตัวหนึ่ง — แปลว่ามันคีย์ได้ (บทที่ 3) และมันถูก driver ขับได้ (บทที่ 11)

นั่นคือวิธีที่ระบบใบหน้าของงานจริงทำงาน: กระดูกตัวควบคุมหนึ่งตัวเลื่อนขึ้น → driver อ่านค่านั้น → shape key หลายตัวขยับตามสัดส่วนที่กำหนด กลไกสามอย่างจากสามบทต่อกันเป็นสายเดียว

12.2 Lattice — กรงที่บีบของข้างในตาม

Lattice คือกรงจุดควบคุมหยาบ ๆ ที่ครอบวัตถุไว้ ขยับจุดบนกรง แล้วทุกอย่างข้างในบิดตามอย่างนุ่มนวล

ลองพิสูจน์ด้วยตาเอง — ครอบท่อด้วย lattice แล้วขยับจุดควบคุมบนสุดไปทางแกน X:

จุดบนสุดใน mesh ต้นฉบับ         = (0.0, 0.3, 1.0)
ผลหลังประเมิน ก่อนขยับ lattice  = (0.0, 0.3, 1.0)   ← ยังไม่มีอะไรเกิดขึ้น
ผลหลังประเมิน หลังขยับจุดควบคุม  = (0.172, 0.3, 1.0) ← เนื้อบิดตามแล้ว
mesh ต้นฉบับหลังทุกอย่าง        = (0.0, 0.3, 1.0)   ← ไม่เคยถูกแตะเลย
จำนวนกระดูกในซีน                = 0

สองบรรทัดสุดท้ายคือหัวใจ เนื้อบิดจริงแต่ข้อมูล mesh ต้นฉบับไม่เปลี่ยนเลยสักจุด และทำได้โดยไม่มีกระดูกอยู่ในซีนแม้แต่ตัวเดียว — กฎเดียวกับ constraint ในบทที่ 10 เป๊ะ คือทำงานบนผลลัพธ์ ไม่ใช่บนค่าที่เก็บ

มันมีอยู่เพราะบางครั้งคุณอยากบิด ทั้งก้อน โดยไม่สนใจว่าข้างในมีกี่จุด เช่น ทำให้ตัวหนังสือทั้งบรรทัดโค้งเป็นคลื่น — ถ้าใช้ shape key ต้องกำหนดปลายทางทุกจุดเอง ซึ่งไม่มีใครทำ

Read the full book