บทที่ 5: การสร้าง Animation เบื้องต้น
การสร้าง Animation ในเกมเป็นสิ่งสำคัญที่ช่วยเพิ่มชีวิตชีวาและความน่าสนใจให้กับตัวละครและวัตถุในเกม ใน Unity เราสามารถสร้างแอนิเมชันที่ง่ายและรวดเร็วโดยใช้ Animation Window ในบทนี้ เราจะเรียนรู้วิธีสร้างแอนิเมชันเบื้องต้นให้กับวัตถุในเกม 2D และ 3D
การเปิด Animation Window
- ไปที่เมนู Window > Animation > Animation เพื่อเปิด Animation Window
- เลือกวัตถุที่ต้องการสร้างแอนิเมชันใน Hierarchy แล้วคลิก Create เพื่อสร้างคลิปแอนิเมชันใหม่
- ตั้งชื่อไฟล์แอนิเมชันและบันทึกในโฟลเดอร์ Assets
การสร้างแอนิเมชันการเคลื่อนไหวง่าย ๆ
เราสามารถสร้างการเคลื่อนไหวของวัตถุได้ง่าย ๆ โดยใช้ Keyframes ใน Animation Window โดยทำตามขั้นตอนต่อไปนี้:
- ใน Animation Window คลิกที่ปุ่ม Add Property
- เลือกคุณสมบัติที่ต้องการเคลื่อนไหว เช่น Position, Rotation, หรือ Scale
- ใน Timeline (ไทม์ไลน์) ให้เพิ่ม Keyframe ในจุดเริ่มต้นและจุดสิ้นสุดของการเคลื่อนไหว
- ปรับตำแหน่งหรือการหมุนของวัตถุในแต่ละ Keyframe โดย Unity จะสร้างการเคลื่อนไหวระหว่าง Keyframe ให้อัตโนมัติ
ตัวอย่างเช่น เราสามารถสร้างแอนิเมชันให้วัตถุเคลื่อนไหวจากจุดหนึ่งไปยังอีกจุดหนึ่งในฉากได้โดยการเพิ่ม Keyframe ที่ตำแหน่งเริ่มต้นและตำแหน่งสุดท้าย
การสร้างแอนิเมชันการเดินให้กับตัวละคร 2D
สำหรับเกม 2D เราสามารถสร้างแอนิเมชันให้ตัวละครเคลื่อนไหว เช่น การเดิน โดยใช้ภาพ Sprite หลาย ๆ ภาพ (เรียกว่า Sprite Sheet หรือชุดภาพแอนิเมชัน) ขั้นตอนคือ:
- นำเข้า Sprite Sheet ที่มีหลายภาพของตัวละครในท่าทางต่าง ๆ เช่น ท่ายืน ท่าเดิน
- เลือก Sprite Sheet และคลิกขวา > Sprite Editor เพื่อแยกแต่ละภาพออกจากกัน
- ใน Animation Window สร้างแอนิเมชันใหม่และลากแต่ละภาพ Sprite มาวางใน Timeline
- ปรับความเร็วในการเปลี่ยนภาพตามที่ต้องการ เพื่อให้ได้แอนิเมชันการเดินที่ลื่นไหล
การใช้งาน Animator Controller
เมื่อเราสร้างแอนิเมชันเสร็จแล้ว เราจะต้องใช้ Animator Controller เพื่อจัดการการเล่นแอนิเมชันต่าง ๆ และควบคุมลำดับการแสดงผล
- Unity จะสร้าง Animator ให้โดยอัตโนมัติเมื่อเราสร้างแอนิเมชันใหม่ โดยสามารถดูได้ใน Inspector ของวัตถุ
- ดับเบิ้ลคลิกที่ Animator เพื่อเปิด Animator Window
- ใน Animator Window เราจะเห็นคลิปแอนิเมชันที่สร้างไว้ และสามารถเชื่อมต่อแอนิเมชันต่าง ๆ ได้โดยการสร้าง Transitions (การเปลี่ยนผ่าน) ระหว่างแอนิเมชัน
ตัวอย่างเช่น เราสามารถสร้างการเปลี่ยนผ่านระหว่างแอนิเมชัน "เดิน" และ "หยุด" โดยเมื่อกดปุ่มเดิน แอนิเมชัน "เดิน" จะทำงาน และเมื่อปล่อยปุ่ม แอนิเมชัน "หยุด" จะเริ่มทำงานแทน
การควบคุมแอนิเมชันด้วยโค้ด
เราสามารถควบคุมการเล่นแอนิเมชันด้วยโค้ด C# ได้โดยใช้ Animator Component ที่ถูกเพิ่มในวัตถุ ตัวอย่างการเขียนโค้ดควบคุมแอนิเมชันคือ:
using UnityEngine;
public class PlayerAnimator : MonoBehaviour
{
public Animator animator;
void Update()
{
// ตรวจสอบว่าผู้เล่นกำลังเคลื่อนที่หรือไม่
if (Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0)
{
animator.SetBool("isWalking", true); // เล่นแอนิเมชันเดิน
}
else
{
animator.SetBool("isWalking", false); // หยุดแอนิเมชันเดิน
}
}
}
ในตัวอย่างนี้ เราใช้ SetBool
เพื่อควบคุมการเปลี่ยนแปลงของแอนิเมชัน "เดิน" โดยเมื่อกดปุ่มเดิน จะเปลี่ยนสถานะของแอนิเมชันเป็น true
และเมื่อปล่อยปุ่มจะเปลี่ยนเป็น false
ซึ่งทำให้แอนิเมชันเปลี่ยนไปตามการกระทำของผู้เล่น