พื้นฐานการผสมภาพเคลื่อนไหว


23

ว่าฉันมีกรอบที่มีตัวละครที่สามารถวิ่งและเดินได้และแน่นอนหยุดนิ่ง

ฉันคิดถูกมั้ยว่าการผสมอนิเมชั่นเป็นกระบวนการของการเปลี่ยนแปลงระหว่างสิ่งเหล่านี้ได้อย่างราบรื่น

ถ้าเป็นเช่นนั้นทฤษฎีพื้นฐานของการทำงานนี้คืออะไรและฉันจะใช้มันอย่างไร


1
ฉันเชื่อว่ามันเป็นแค่การแก้ไขเชิงเส้นตรงระหว่างกระดูกแต่ละชิ้นจากเฟรมสุดท้ายของอนิเมชั่นหนึ่งไปยังเฟรมแรกของอีกเฟรมหนึ่ง
ระบุชื่อ

หรือการแก้ไขเชิงเส้นด้วยสมูปสเต็ปหากคุณต้องการค่าเฉลี่ยถ่วงน้ำหนัก (:
Gustavo Maciel

@ Gustavo-Gtoknu คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับสิ่งที่คุณพูดไปได้ไหม?
SirYakalot

คุณทำการแก้ไขเชิงเส้นในอัลฟาของเฟรมทั้งสองเพื่อผสมบนผกผันของอีกเฟรม ทั้งในฟังก์ชั่นของเวลา คุณสามารถปรับขั้นตอนได้อย่างราบรื่นหรือใช้ค่าเฉลี่ยถ่วงน้ำหนักในการแก้ไขเพื่อให้ได้ผลที่แตกต่างกัน
Gustavo Maciel

คำตอบ:


18

การผสมอนิเมชั่นของตัวละครนั้นเป็นเรื่องทั่วไปและสามารถใช้สำหรับ

  • การคำนวณช่วงการเปลี่ยนภาพที่ราบรื่นระหว่าง 2 คลิป;
  • การสร้างภาพเคลื่อนไหวใหม่อย่างสมบูรณ์จากภาพที่มีอยู่ (อาจมากกว่า 2 ในเวลาเดียวกัน);
  • บรรลุพฤติกรรมที่เหมือนฉัน;
  • เป็นต้น

แนวคิดพื้นฐานคือสำหรับโครงกระดูกที่เหมือนกันสองอันที่มีคลิปแอนิเมชั่นต่างกันสำหรับการหมุนแต่ละครั้งคุณคำนวณค่าที่อยู่ระหว่าง คลิปภาพเคลื่อนไหวแสดงด้วยการหมุน ดังนั้นการแก้ไขเชิงเส้นไม่ใช่สิ่งที่คุณควรใช้ถ้าคุณต้องการผลลัพธ์ที่แม่นยำ (แม้ว่าคุณจะใช้มุมออยเลอร์) คุณสามารถใช้ slerp ได้ แต่มีวิธีแก้ปัญหาที่ซับซ้อนกว่าอยู่

นี่เป็นปัญหาที่ซับซ้อนด้วยการแก้ปัญหาที่ซับซ้อน โดยทั่วไปถ้าคุณมีคลิปเคลื่อนไหวสองคลิป A และ B:

  • ถ้า A และ B แตกต่างไปจากเดิมอย่างสิ้นเชิง (การผสมผสานการกระโดดและการว่ายน้ำ) โอกาสที่คุณจะได้ผลลัพธ์แปลก ๆ / ตลก
  • หาก A และ B มีความคล้ายคลึงกัน (คลิปภาพเคลื่อนไหวสำหรับเดินสองคลิป) จากนั้นคุณต้องซิงโครไนซ์คลิปวิดีโอเหล่านั้นเพื่อผสมผสานเมื่อเท้าซ้ายทั้งสองอยู่บนพื้น
  • เป็นต้น

หากคุณสนใจฉันขอแนะนำให้คุณเริ่มต้นด้วยการอ่านบทความนี้เพื่อให้คุณสามารถเข้าใจได้ดีขึ้นว่าปัญหาคืออะไร: http://graphics.cs.wisc.edu/Papers/2003/KG03/regCurves.pdf

มันไม่ได้ทันสมัยที่สุด แต่อ่านง่าย

ฉันหวังว่านี่จะช่วยได้. ด้วยความเคารพ.


5

ก่อนอื่นฉันคิดว่าคุณกำลังพูดถึงภาพเคลื่อนไหวโครงกระดูก (โดยเฉพาะกราฟิก 3D) เนื่องจากการผสมภาพเคลื่อนไหวนั้นมีผลเฉพาะกับภาพเคลื่อนไหวโครงกระดูกเท่านั้น หากคุณกำลังพูดถึงภาพเคลื่อนไหว 2D sprite (คุณไม่ได้ระบุในคำถามของคุณ) จากนั้นคุณสามารถลืมเรื่องการผสมภาพเคลื่อนไหวได้

เมื่อพ้นทาง ...

ฉันคิดถูกมั้ยว่าการผสมอนิเมชั่นเป็นกระบวนการของการเปลี่ยนแปลงระหว่างสิ่งเหล่านี้ได้อย่างราบรื่น

นั่นคือความหมายของคำว่าใช่ วลีดังกล่าว "การสร้างภาพเคลื่อนไหวแบบไดนามิก" เป็นสิ่งที่ทำให้เข้าใจผิดเล็กน้อย ที่ทำให้นึกถึงแอนิเมชันเกี่ยวกับกระบวนการและนั่นไม่ใช่สิ่งที่คุณกำลังทำอยู่

"การผสมอนิเมชั่น" คือเมื่อคุณเปลี่ยนระหว่างคลิปอนิเมชั่นสองตัวโดยใช้ภาพเคลื่อนไหวทั้งสองเล็กน้อยโดยให้น้ำหนักของหนึ่งคลิปเพิ่มขึ้นขณะที่น้ำหนักของอีกคลิปลดลง วิธีนี้ทำงานได้ดีที่สุดกับภาพเคลื่อนไหวโครงกระดูกเพื่อให้การหมุนของข้อต่อแต่ละจุดถูกตั้งไว้ที่จุดกึ่งกลางระหว่างภาพเคลื่อนไหวของข้อต่อในสองภาพเคลื่อนไหวต่าง ๆ โดยน้ำหนักของแต่ละคลิปจะเปลี่ยนไปตามเวลา นั่นคือคุณจะคำนวณการหมุนของข้อต่อแต่ละข้อเช่น:

rotCombined = weightA*rotA + weightB*rotB

ขณะนี้ในขณะที่การผสมอนิเมชั่นทำงานได้ดีที่สุดกับอนิเมชั่นโครงกระดูกคุณสามารถทำได้ด้วยแอนนิเมชั่นจุดสุดยอด (เช่น MD2) นี่เป็นบันทึกประวัติศาสตร์มากกว่าเพราะเอ็นจิ้นเกมสมัยใหม่จำนวนไม่มากใช้อนิเมชั่นจุดยอด แต่คุณสามารถตั้งตำแหน่งจุดยอดได้ในลักษณะเดียวกันโดยให้น้ำหนักระหว่างตำแหน่งจุดสุดยอดในภาพเคลื่อนไหวสองแบบ สิ่งนี้อาจส่งผลให้การแก้ไขที่ดูแปลก ๆ (เช่นส่วนของตาข่ายยุบหรือหมุนด้านในออก) หากภาพเคลื่อนไหวสองภาพนั้นแตกต่างกันมากเกินไปในขณะที่ภาพเคลื่อนไหวโครงกระดูกทำให้แน่ใจได้ว่าส่วนต่าง ๆ ของตาข่ายยังคงอยู่


เมื่อคุณบอกว่าคุณไม่สามารถทำสิ่งนี้ด้วยกราฟิก 2D คุณหมายถึงภาพเคลื่อนไหวตามผีสางหรือไม่? ฉันกำลังพยายามหาวิธีผสมผสานภาพเคลื่อนไหว 2D บางอย่างที่สร้างขึ้นใน mecanim ตามตำแหน่งและการหมุนของส่วนต่าง ๆ ของร่างกาย แต่ฉันไม่เห็นสาเหตุที่เป็นไปไม่ได้เพราะมันเป็น 2D
mallardz

เนื่องจากไม่มีวิธีในการสร้างเฟรมใหม่ในภาพเคลื่อนไหวสไปรต์ ในภาพเคลื่อนไหว 3D ภาพแต่ละภาพจะไม่ถูกสร้างขึ้นล่วงหน้า
jhocking

ฉันเข้าใจแล้ว แต่แอนิเมชั่น 2D ไม่จำเป็นต้องขึ้นอยู่กับการเปลี่ยนแปลงเทพดาทั้งหมดเพียงอย่างเดียว คุณสามารถเขียนวัตถุจากสไปรต์หลาย ๆ อันและเคลื่อนไหวการหมุนและตำแหน่ง ฯลฯ ฉันพยายามหาวิธีทำเมื่อฉันอ่านคำตอบของคุณและบรรทัดแรกของคุณทำให้ฉันเศร้า :( แต่โชคดีที่มันกลายเป็นอย่างมาก ง่ายที่จะทำใน Unity และฉันจินตนาการว่าไม่ยากไปกว่าการผสม 3 มิติสำหรับผู้ที่หมุนเครื่องยนต์ของตัวเอง
mallardz

1
อ่าใช่ฉันหมายถึงภาพเคลื่อนไหวผีสางฉันจะแก้ไขคำตอบของฉัน
jhocking
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.