ว่าฉันมีกรอบที่มีตัวละครที่สามารถวิ่งและเดินได้และแน่นอนหยุดนิ่ง
ฉันคิดถูกมั้ยว่าการผสมอนิเมชั่นเป็นกระบวนการของการเปลี่ยนแปลงระหว่างสิ่งเหล่านี้ได้อย่างราบรื่น
ถ้าเป็นเช่นนั้นทฤษฎีพื้นฐานของการทำงานนี้คืออะไรและฉันจะใช้มันอย่างไร
ว่าฉันมีกรอบที่มีตัวละครที่สามารถวิ่งและเดินได้และแน่นอนหยุดนิ่ง
ฉันคิดถูกมั้ยว่าการผสมอนิเมชั่นเป็นกระบวนการของการเปลี่ยนแปลงระหว่างสิ่งเหล่านี้ได้อย่างราบรื่น
ถ้าเป็นเช่นนั้นทฤษฎีพื้นฐานของการทำงานนี้คืออะไรและฉันจะใช้มันอย่างไร
คำตอบ:
การผสมอนิเมชั่นของตัวละครนั้นเป็นเรื่องทั่วไปและสามารถใช้สำหรับ
แนวคิดพื้นฐานคือสำหรับโครงกระดูกที่เหมือนกันสองอันที่มีคลิปแอนิเมชั่นต่างกันสำหรับการหมุนแต่ละครั้งคุณคำนวณค่าที่อยู่ระหว่าง คลิปภาพเคลื่อนไหวแสดงด้วยการหมุน ดังนั้นการแก้ไขเชิงเส้นไม่ใช่สิ่งที่คุณควรใช้ถ้าคุณต้องการผลลัพธ์ที่แม่นยำ (แม้ว่าคุณจะใช้มุมออยเลอร์) คุณสามารถใช้ slerp ได้ แต่มีวิธีแก้ปัญหาที่ซับซ้อนกว่าอยู่
นี่เป็นปัญหาที่ซับซ้อนด้วยการแก้ปัญหาที่ซับซ้อน โดยทั่วไปถ้าคุณมีคลิปเคลื่อนไหวสองคลิป A และ B:
หากคุณสนใจฉันขอแนะนำให้คุณเริ่มต้นด้วยการอ่านบทความนี้เพื่อให้คุณสามารถเข้าใจได้ดีขึ้นว่าปัญหาคืออะไร: http://graphics.cs.wisc.edu/Papers/2003/KG03/regCurves.pdf
มันไม่ได้ทันสมัยที่สุด แต่อ่านง่าย
ฉันหวังว่านี่จะช่วยได้. ด้วยความเคารพ.
ก่อนอื่นฉันคิดว่าคุณกำลังพูดถึงภาพเคลื่อนไหวโครงกระดูก (โดยเฉพาะกราฟิก 3D) เนื่องจากการผสมภาพเคลื่อนไหวนั้นมีผลเฉพาะกับภาพเคลื่อนไหวโครงกระดูกเท่านั้น หากคุณกำลังพูดถึงภาพเคลื่อนไหว 2D sprite (คุณไม่ได้ระบุในคำถามของคุณ) จากนั้นคุณสามารถลืมเรื่องการผสมภาพเคลื่อนไหวได้
เมื่อพ้นทาง ...
ฉันคิดถูกมั้ยว่าการผสมอนิเมชั่นเป็นกระบวนการของการเปลี่ยนแปลงระหว่างสิ่งเหล่านี้ได้อย่างราบรื่น
นั่นคือความหมายของคำว่าใช่ วลีดังกล่าว "การสร้างภาพเคลื่อนไหวแบบไดนามิก" เป็นสิ่งที่ทำให้เข้าใจผิดเล็กน้อย ที่ทำให้นึกถึงแอนิเมชันเกี่ยวกับกระบวนการและนั่นไม่ใช่สิ่งที่คุณกำลังทำอยู่
"การผสมอนิเมชั่น" คือเมื่อคุณเปลี่ยนระหว่างคลิปอนิเมชั่นสองตัวโดยใช้ภาพเคลื่อนไหวทั้งสองเล็กน้อยโดยให้น้ำหนักของหนึ่งคลิปเพิ่มขึ้นขณะที่น้ำหนักของอีกคลิปลดลง วิธีนี้ทำงานได้ดีที่สุดกับภาพเคลื่อนไหวโครงกระดูกเพื่อให้การหมุนของข้อต่อแต่ละจุดถูกตั้งไว้ที่จุดกึ่งกลางระหว่างภาพเคลื่อนไหวของข้อต่อในสองภาพเคลื่อนไหวต่าง ๆ โดยน้ำหนักของแต่ละคลิปจะเปลี่ยนไปตามเวลา นั่นคือคุณจะคำนวณการหมุนของข้อต่อแต่ละข้อเช่น:
rotCombined = weightA*rotA + weightB*rotB
ขณะนี้ในขณะที่การผสมอนิเมชั่นทำงานได้ดีที่สุดกับอนิเมชั่นโครงกระดูกคุณสามารถทำได้ด้วยแอนนิเมชั่นจุดสุดยอด (เช่น MD2) นี่เป็นบันทึกประวัติศาสตร์มากกว่าเพราะเอ็นจิ้นเกมสมัยใหม่จำนวนไม่มากใช้อนิเมชั่นจุดยอด แต่คุณสามารถตั้งตำแหน่งจุดยอดได้ในลักษณะเดียวกันโดยให้น้ำหนักระหว่างตำแหน่งจุดสุดยอดในภาพเคลื่อนไหวสองแบบ สิ่งนี้อาจส่งผลให้การแก้ไขที่ดูแปลก ๆ (เช่นส่วนของตาข่ายยุบหรือหมุนด้านในออก) หากภาพเคลื่อนไหวสองภาพนั้นแตกต่างกันมากเกินไปในขณะที่ภาพเคลื่อนไหวโครงกระดูกทำให้แน่ใจได้ว่าส่วนต่าง ๆ ของตาข่ายยังคงอยู่