มาเริ่มกันเลยครับ (ผมจะอ้างอิ้งจากบทความ วิธีการใช้งาน Animation Blend Tree นะครับ)
1. จาก Animation ที่มีอยู่นะครับให้ทำการ Import Animation Reload เข้ามาครับ
2. ไปที่หน้าของ Animator แล้วทำการคลิด "+" ตรง Layers แล้วทำการตั้งชื่อครับ (ตัวอย่างป็น Reload)
3. ให้ทำการคลิกขวาแล้วเลือก Create State -> Empty แล้วทำการลาก Reload Animation เข้ามา
4. Set Transition (สร้าง Parameters isReload แบบ Trigger)
- New State -> reloading ให้ isReload == true
- reloading -> New State ให้เป็น Exit Time
- Name : ชื่อ Layer
- Weight : จะเป็นน้ำหนักในการเล่น Animation เช่น ถ้าค่าเป็น 0.5 จะเล่น Animation วิ่ง 50% Reload 50%
- Mask : เป็นการกำหนดอวัยวะที่จะทำการเล่น เช่นถ้าจะให้ Reload ก็ต้องกำหนดให้ มือ, ตัว และหัว
- Blending : Additive คือการ Add Animation ปัจจุบันเข้ากับ Animation เดิม
- Sync : เป็นการ re-use state เข้ากับ Layer อื่น (ยังไม่เคยลองครับ)
- นอกนั้นไม่ทราบครับ
6. ให้ทำการสร้าง Avatar Mask โดยไปที่ Assets -> Create -> Avatar Mask (ตั้งชื่อเป็น HandMask)
7. จากนั้นให้ทำคลิกเพื่อ Mask อวัยวะตามรูป แล้วคลิกที่ Mask ใน Layer แล้วเลือก HandMask
void Update()
{
// some code.....
if(Input.GetKeyDown(KeyCode.R)) {
// reload animation
animator.SetLayerWeight(1, 1); // Base Layer = 0, Reload Layer = 1, ....
animator.SetTrigger("isReload");
}
}
9. เท่านี้ก็สามารถนำไปใช้ประยุกต์ในกรณีอื่นๆได้แล้วครับ
ปล. มีอะไรแนะนำได้นะครับ