Thai Blender Wiki
Advertisement
Forums: หน้ารวมโฟรัม > Blender Development > DEV:ปัญหาว่าผมจะใช้คำสั่ง Python ในการขยับ Armature
หากผู้ใช้ต้องการตอบ,'เม้นต์,ปั่น,หรือ CHAT กระทู้ อย่าลังเลที่จะ กดที่นี่เพื่อแสดงความเห็น
แล้วข้อความของผู้ใช้จะปรากฏต่อท้ายหน้านี้โดยอัตโนมัติ


161.200.255.162 10:30, 28 ตุลาคม 2552 (UTC) คือผมเพิ่งเคยใช้ Blender เป็นครั้งแรก แต่ผมมีปัญหาว่าผมจะใช้คำสั่งPython ในการขยับ Armature ครับ แต่ไม่ทราบคำสั่งเลยอยากรบกวนว่าจะต้องใช้คำสั่งอะไรในการทำให้Armature ขยับอ่ะครับ

↓ ความเห็นจากไอพีแอดเดรส 58.64.112.65 เมื่อเวลา 23:03, 28 ตุลาคม 2552 (UTC)

ขยับนี่หมายถึงขยับในเกมใช่ไหมครับ หรือขยับในโมเดล ถ้าขยับเกมขยับเป็นแต่ใช้ logic brick ครับ ถ้าแค่ logic brick นี่ทำได้แล้วใช่ไหมครับ เดาว่า ก็คงเอา py ส่ง message ให้ sensor มั้งครับ แล้วเอา sensor ไปขยับกระดูกโดยเรียกผ่าน action เป็นต้น

↓ ความเห็นจากไอพีแอดเดรส 161.200.255.162 (Kong ) เมื่อเวลา 06:22, 29 ตุลาคม 2552 (UTC)
ขยับในโมเดลครับ คือผมไม่ทราบวิธีในการเรียกBoneแต่ละชิ้นอ่ะครับ เช่นผมมีBoneต่อกันอยู่2ชิ้นแต่ผมต้องการเขียนโปรแกรมให้มันคอนโทรลBoneที่เป็นparentแล้วให้Boneที่เป็นลูกขยับตามโดยขึ้นอยู่กับตัวparentอย่างเดียวต้องใช้คำสั่งอะไรครับ(ตอนนี้ผมใช้คำสั่งSet location(,,,)แล้วมันขยับทั้งสองBoneเลยอ่ะครับเลยไม่รู้จะทำยังไง) ขอบคุณที่ช่วยตอบนะครับ

↓ ความเห็นจากไอพีแอดเดรส 58.64.112.65 เมื่อเวลา 19:27, 29 ตุลาคม 2552 (UTC)

ผมไม่ได้เขียน python นะครับ และยังไม่แน่ใจคำถามเท่าไหร่ แต่สงสัยว่า setLocation นี่มันทำที่ object ไม่ใช่ object data หรือเปล่าครับ ผมลอง scan ดูคร่าว ๆ ใน armature_symmetry.py ตรง def armature_symetry( เค้าจะเข้าถึง data ก่อนคือ arm_ob.data แล้วเข้า editmode จากนั้นผมเห็นเค้าใส่ vector ให้ head กับ tail เลย คงได้เท่านี้ล่ะครับ

ใน 2.5 อาจลองเข้าถึง rna ตรง ๆ เลยนะครับ ผมคงได้เท่านี้ล่ะครับ รอคนอื่นมาตอบครับ

↓ ความเห็นจากไอพีแอดเดรส 161.200.255.162 ( kong) เมื่อเวลา 11:38, 30 ตุลาคม 2552 (UTC)
ขอบคูรที่ช่วยตอบนะครับตอนนี้ผมใช้คำสั่ง posebone.quat ในการหมุนกระดูกแล้วครับ แต่ก็มีปัญหาคือผมไม่เข้าใจพารามิเตอร์4ตัวอ่ะครับว่ามันใช้ยังไง ผมลองดูในdoc ในเว็บblenderแล้วมันก็บอกว่าเป็นค่าในแกน w,x,y,z แต่ผมต้องการเทียบว่าค่าพารามิเตอร์มันสัมพันธ์กับRotX,RotY,RotZใน transform propertieยังไง หรือมีวิธีอื่นที่สามารถเซ็ตค่า RotX,RotY,RotZใน transform propertie โดยตรงได้มั๊ยครับ

↓ ความเห็นจากไอพีแอดเดรส 58.64.112.65 เมื่อเวลา 12:33, 30 ตุลาคม 2552 (UTC)
มันเป็นค่า Quaternion ครับ (http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation) ไม่แน่ใจจะอธิบายอย่างไรดีเหมือนกัน แต่ว่าโดยทั่วไปมนุษย์คงมองเห็นภาพยากครับว่า quaternion จะหมายถึงอะไร โดยเฉพาะเมื่อมองจาก parameter ซึ่งแทบจะไม่มีความหมายอะไร โดยทั่วไป การใช้ quaternion ก็นำมาแก้ปัญหาทางคณิตศาสตร์ของการหมุนแบบออยเลอร์ (RX,RY,RZ) ประการนึงที่เรียกว่า gimbal lock ครับ เราสามารถ convert จากค่า quaternion เป็นค่าแบบออยเลอร์ได้ แต่จะมีมากกว่า 1 solution ครับ ตรงนี้ผมว่ามันคงมี function สำเร็จรูปให้อยู่แล้ว คงไม่ต้องเขียนเองครับ ก็ลองมองหาอะไรที่เป็น Euler กับ Quat ดูครับ

↓ ความเห็นจากไอพีแอดเดรส 161.200.255.162 ( kong) เมื่อเวลา 07:15, 31 ตุลาคม 2552 (UTC)
ขอบคุณครับ ตอนนี้กำลังงงกับการแปลงQuat เป็น Radiance อยู่ครับ

↓ ความเห็นจากไอพีแอดเดรส 161.200.255.162 (kong ) เมื่อเวลา 14:25, 31 ตุลาคม 2552 (UTC)
ขอถามอีกนิดนึงครับคือผมมีObject ที่เป็นEuler แล้ววผมจะใช้Method toQuat แต่มันใช้ไม่ได้อ่ะครับ ผมลองพิมพ์ออกมาดูมันพิมพ์ออกมาเป็น <built-in method toEuler of quaternion object at 0x025D1420> แล้วมันไม่ใช่Quaternion Object อ่ะครับ หรือไม่งั้นผมจะมีวิธีแปลงจาก Eulerเป็นquaternionยังไงครับ

↓ ความเห็นจากไอพีแอดเดรส 58.64.112.206 เมื่อเวลา 18:44, 31 ตุลาคม 2552 (UTC)

ลองดูอันนี้ครับ

http://blenderunderground.com/forums/viewtopic.php?f=2&t=3622&start=30

↓ ความเห็นจากไอพีแอดเดรส 161.200.255.162 (kong ) เมื่อเวลา 10:20, 1 พฤศจิกายน 2552 (UTC)
ขอบคุณครับที่ช่วยมาหลายครั้งครับ ถ้าผมมีอะไรจะรบกวนอีกนะครับ

↓ ความเห็นจากไอพีแอดเดรส 58.64.112.206 เมื่อเวลา 19:08, 2 พฤศจิกายน 2552 (UTC)
ยินดีครับ

Advertisement