ภาพเคลื่อนไหวแบบฉาก

โหมดช่วยให้คุณนําเข้าโมเดลด้วยภาพเคลื่อนไหวได้ คุณใช้ Sceneform API เพื่อเล่นและควบคุมภาพเคลื่อนไหว รวมถึงแนบโหนดกับโครงกระดูกของโมเดลได้ด้วย

ตัวอย่างเช่น ตัวอย่างภาพเคลื่อนไหวของ Sceneform จะมีไฟล์ที่ใช้สร้างโมเดลของ Andy ที่ใช้ Android และหมวกเบสบอล โมเดล Andy มีข้อมูลภาพเคลื่อนไหวและหมวกเบสบอลเป็นโมเดลที่ไม่เคลื่อนไหว เมื่อคุณดูตัวอย่าง แอนดี้ก็ทําท่าโบกมือและโบกแขนขณะที่หมวกยังคงอยู่ตรงศีรษะโดยใช้โหนด

ภาพเคลื่อนไหวของโมเดลฉากเทียบกับการเคลื่อนไหวของพร็อพเพอร์ตี้ Android

คุณต้องแยกความแตกต่างระหว่างภาพเคลื่อนไหวของโมเดลใน Sceneform กับภาพเคลื่อนไหวของพร็อพเพอร์ตี้ใน Android

  • ภาพเคลื่อนไหวของโมเดลถูกสร้างขึ้นล่วงหน้าโดยศิลปินที่ใช้ซอฟต์แวร์การสร้างแบบจําลองและแอนิเมชัน มีข้อมูลภาพเคลื่อนไหวแบบโครง ภาพเคลื่อนไหวเหล่านี้ต้องส่งออกเป็นไฟล์ *.fbx จากนั้นนําเข้าเป็นไฟล์ *.sfb สําหรับใช้ใน Sceneform

  • ภาพเคลื่อนไหวของพร็อพเพอร์ตี้ คือแนวคิดพื้นฐานของ Android และไม่ได้เฉพาะเจาะจงกับ Sceneform เท่านั้น ภาพเคลื่อนไหวประเภทนี้จะเปลี่ยนค่าที่เปลี่ยนแปลงไม่ได้บนออบเจ็กต์ Java ที่มี Getter และ Setter คุณสามารถตั้งค่าภาพเคลื่อนไหวแบบไดนามิกได้ แต่ไม่สามารถบรรจุลงในไฟล์ *.sfb

    ทั้งภาพเคลื่อนไหวในพร็อพเพอร์ตี้และโมเดลรองรับ Android Animator API ของ Android#39 ซึ่งรองรับทั้งผู้ฟัง การควบคุมการเล่น (เริ่ม/หยุด/สิ้นสุด/หยุดชั่วคราว/ยกเลิก) ระยะเวลา และการหน่วงเวลาเริ่มต้น

    มีเพียงภาพเคลื่อนไหวแบบจํากัด TimeInterpolators เท่านั้นที่เล่นได้ในภาพเคลื่อนไหวของโมเดล ภาพเคลื่อนไหวในโมเดล ไม่รองรับการเล่นย้อนกลับ

  • ดูตัวอย่างการสร้างภาพเคลื่อนไหวของฉากได้จากตัวอย่างภาพเคลื่อนไหว

  • ดูตัวอย่างภาพเคลื่อนไหวของพร็อพเพอร์ตี้โดยใช้ Sceneform ได้ที่ตัวอย่างระบบสุริยะ

แนวคิดภาพเคลื่อนไหวของโมเดล

ก่อนที่จะเริ่มทํางานกับโมเดลภาพเคลื่อนไหว คุณควรเข้าใจแนวคิดเฉพาะเจาะจงเกี่ยวกับภาพเคลื่อนไหวของโครงกระดูก รวมทั้งข้อจํากัดและฟีเจอร์ที่เกี่ยวข้องกับฉาก

  • กระดูก โมเดลภาพเคลื่อนไหวประกอบด้วยกระดูกที่เชื่อมต่อกัน ซึ่งทําให้เกิดความสัมพันธ์ระดับบนสุดและย่อย ภาพเคลื่อนไหวจะเปลี่ยนตําแหน่งและการวางแนวของกระดูกระหว่างการเล่น

    เช่นเดียวกับการย้าย Node ระดับบนสุดใน Sceneform ทําให้เด็กทุกคนNodeย้าย กระดูกจะย้ายได้โดยภาพเคลื่อนไหวหรือเข้าถึงเป็นโหนดผ่านคลาส SkeletonNode เมื่อเข้าถึงกระดูกเป็น Node ภาพเคลื่อนไหวจะเขียนทับตําแหน่งใหม่ทุกเฟรมหากมีการเล่นเฟรมนั้นอยู่

  • โครงกระดูก โครงกระดูกประกอบด้วยกระดูกทั้งหมดรวมกันเป็นลําดับชั้นของความสัมพันธ์ระดับบนสุดและระดับย่อย

    เช่น โมเดลของแขนมนุษย์อาจมีกระดูก เช่น "ซ้ายไหล่", "แขนซ้าย","ข้อศอกซ้าย" และ"ซ้ายแขนขวา เริ่มจาก "ซ้ายไหล่" เป็นผู้ปกครองของลําดับชั้นนี้ "ซ้ายบนซ้าย" จะได้รับมอบหมายเป็นลูก ลูกของ "ซ้าย-แขนซ้าย" อาจเป็น "ข้อศอกซ้าย&ยก. เมื่อกระดูกสะโพกหมุน แขนท่อนบน แขนท่อนล่าง ข้อศอก และกระดูกด้านล่างจะเคลื่อนไปในทิศทางเดียวกัน

    Sceneform ไม่มี API สําหรับการเปลี่ยนความสัมพันธ์ระหว่างแม่กับเด็กระหว่างกระดูกในโครงกระดูก ซึ่งต้องทําล่วงหน้าในแพ็กเกจการประมาณและภาพเคลื่อนไหวภายนอก

    แม้แต่โมเดลที่แสดงวัตถุอินทรีย์ก็สามารถใช้โครงกระดูกในการใช้ประโยชน์จากความสมจริงได้ เช่น โมเดลของโซฟาอาจมีกระดูกและโครงกระดูก

  • สกิน สกิน คือน้ําหนักที่ใช้กับตาข่ายพื้นผิวที่วาดของโมเดล ระบบจะคํานวณตําแหน่งและรูปร่างของโครงตาข่ายออกจากกระดูกที่อยู่ใกล้ การเชื่อมโยงกระดูกกับผิวนี้จะจับคู่กับวิธีที่โมเดลเสียรูป ซึ่งช่วยให้เคลื่อนไหวได้อย่างสมจริงมากขึ้น

    ต้องเตรียมสกินล่วงหน้าโดยใช้โมเดลและโมเดลแอนิเมชัน ฉากเปลี่ยนวัสดุของตาข่ายผิวเพื่อเปลี่ยนรูปลักษณ์ของโมเดลได้