Section 1 Essentials - 3. Application "Stretchy IK"

หลังจากได้รู้จักการทำงานของ 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 เฉพาะส่วน



No comments:

Post a Comment

Note: Only a member of this blog may post a comment.