หลังจากได้รู้จักการทำงานของ Maya และทำความรู้จักกับ DG Node มาบ้างแล้ว ลองมาดูการประยุกต์ใช้งานกันบ้างครับ ตัวอย่างที่ผมเอามาให้ดูเป็นการทำ Stretchy Ik ลองมาดูว่ามีขั้นตอนอย่างไรกันบ้างครับ
ใน section แรกก็ไม่มีอะไรมาก เป็นแค่การเขียนกระดูก ทำ IK Handle และ Control ครับ ก่อนเข้าสู่การทำ Stretchy IK ลองมาดูรูปภาพประกอบนะครับว่า Stretch Principle มีอะไรบ้าง
จากรูปภาพระยะ A เป็นระยะของขาท่อนบน และระยะ B เป็นระยะของขาท่อนล่าง ระยะ C เป็นระยะจากต้นขาถึง IK Control โดยระยะ C จะเป็น Dynamic คือมีการเปลี่ยนแปลงเมื่อ IK Control มีการเคลื่อนที่ แต่ A และ B เป็น Static คือไม่มีการเปลี่ยนแปลง โดยใช้ค่าเริ่มต้น หรือระยะดั้งเดิมของความยาวกระดูก
กระดูกจะมีการ Stretch ก็ต่อเมื่อความยาวของ C มากกว่า A + B และกระดูกจะ Stretch เท่ากับ C / ( A + B ) คือความยาวปัจจุบันหารด้วยความยาวของขาเดิม
ใน Section ที่สองจะเริ่มมีการหาระยะระหว่างต้นขาถึง IK Control( Dynamic Value ) ดังนั้น Node ที่เราต้องใช้เพิ่มเติมคือ Distance Node เพื่อหาระยะของต้นขา จนถึง IK Control และใช้ multiplyDivide Node เพื่อคำนวน C / ( A + B )
แต่เมื่อจบ Section นี้ จะเห็น Stretchy IK จะยังไม่สามารถทำงานได้ครับ เนื่องจากเราต้องการให้ระบบ Stretch ทำงานก็ต่อเมื่อ C นั้นยาวกว่า A + B หรือหมายความว่าเราต้องการให้ขายืด ไม่ต้องการให้ขาหดมาดูการแก้ปัญหาใน Ssection ถัดไปได้เลยครับ
ใน Section ที่สาม ผมจะแก้ปัญหาโดยใช้ condition Node ครับ เพื่อเป็นตัวกำหนดเงื่อนไขว่า ถ้าระยะของ C มีความยาวมากกว่า A + B ผมจะให้ condition Node ส่งค่า C / ( A + B ) จาก multiplyDivide Node แต่ถ้า C ไม่ได้ยาวกว่า A + B ผมจะให้ Condition Node ส่งค่า 1 ซึ่งเป็น Scale ของขาปกติ
=====================================================
vdo ด้านล่างนี้ ผมรวมการทำ stretchy IK มาให้ตั้งแต่ต้นจนจบอีกรอบนะครับ แต่จะต่อด้วยการเปิดปิด Auto Stretch และ เพิ่มการ Stretch เฉพาะส่วน
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.