เพื่อใช้งานแอนิเมชั่นในเกม ให้ใช้สคริปต์สำหรับบทแนะนำนี้ คุณจะใช้อนิเมชั่นชัยชนะที่ทำไว้ล่วงหน้าโดยใช้สคริปต์ที่ทำไว้ล่วงหน้าเมื่อเสร็จสิ้นแล้ว แอนิเมชั่นนี้สามารถใช้เพื่อเฉลิมฉลองความสำเร็จของผู้เล่น เช่น ไปถึงจุดสิ้นสุดของออบบี้หรือค้นหาความลับ
แอนิเมชั่นของสคริปต์
แอนิเมชั่นจะถูกเรียกใช้โดยใช้ สคริปต์ หนึ่งในวิธีคือการใช้เหตุการณ์เพื่อเล่นแอนิเมชันในสถานการณ์ต่างๆ เช่น ผู้เล่นจบระดับ เอาชนะศัตรู หรือแม้แต่ซื้อสินค้าในเกม
ตั้งค่าโครงการ
สำหรับโครงการนี้ คุณจะสร้างชิ้นส่วนที่เมื่อสัมผัสจะเรียกการแสดงภาพเคลื่อนไหวสำหรับผู้เล่นคนนั้น
เพื่อจัดระเบียบชิ้นส่วนทั้งหมดที่จะเล่นแอนิเมชัน เพิ่มโฟลเดอร์ในพื้นที่ทำงาน (เลื่อนเมาส์ไปที่พื้นที่ทำงานแล้วคลิก +) ชื่อ TouchPartFolder
ใน TouchPartFolder เพิ่มส่วน
ตรวจสอบให้แน่ใจว่าส่วนถูกวางในตำแหน่งที่เล่นแอนิเมชั่นจะมีเหตุผล เช่น ที่สิ้นสุดของระดับหรืออยู่ใกล้กับวัตถุที่ผู้เล่นรวบรวม
ส่วนชัยชนะตัวอย่าง ส่วนการโต้ตอบตัวอย่าง ใน StarterPlayer > StarterCharacterScripts สร้างสคริปต์ท้องถิ่นชื่อ TouchPartRegister จากนั้นคัดลอกและวางโค้ดด้านล่าง
-- ใช้กับสคริปต์ "PlayerAnimationFeedback" เพื่อเล่นแอนิเมชั่นบนส่วนสัมผัส-- บริการlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal character = player.Character or player.CharacterAdded:Wait()local humanoid = character:WaitForChild("Humanoid")local canTouch = false-- รวมโมดูลแอนิเมชั่นข้อเสนอแนะlocal PlayerAnimationFeedback = require(ReplicatedStorage:WaitForChild("PlayerAnimationFeedback"))-- ฟังก์ชันที่เรียกเมื่อส่วนถูกแตะlocal function onPartTouch(otherPart)if humanoid and canTouch == false thencanTouch = truePlayerAnimationFeedback:PlayAnimation()canTouch = falseendend-- เมื่อเริ่มต้น, เรียกฟังก์ชันการโหลดโมดูลแอนิเมชั่นPlayerAnimationFeedback:LoadAnimation(humanoid)-- ยังผูกโฟลเดอร์ของชิ้นส่วนไปยังอีเวนต์ "สัมผัส" เพื่อดําเนินการ "onPartTouch()"local touchPartFolder = workspace:WaitForChild("TouchPartFolder")local touchParts = touchPartFolder:GetChildren()for _, touchPart in touchParts dotouchPart.Touched:Connect(onPartTouch)endสคริปต์นี้ค้นหาส่วนทั้งหมดใน TouchPartFolder และให้กิจกรรม Touched() แก่พวกเขาเมื่อยิงแล้ว อีเวนต์จะรันฟังก์ชันที่เล่นแอนิเมชันสำหรับผู้เล่น
สคริปต์ต่อไปจะเรียกการแสดงภาพเคลื่อนไหวสำหรับผู้เล่นใน ReplicatedStorage สร้าง ModuleScript ใหม่ชื่อ PlayerAnimationFeedbackจากนั้นคัดลอกและวางโค้ดด้านล่าง
-- ใช้กับสคริปต์ "TouchPartRegister" เพื่อเล่นแอนิเมชั่นสำหรับผู้เล่นlocal PlayerAnimationFeedback = {}local feedbackAnimationTracklocal ANIMATION_FADE = 0.3local ANIMATION_ID = "rbxassetid://YOUR_ANIMATION"-- ฟังก์ชันในการโหลดแอนิเมชันลงบนตัวละครของผู้เล่นfunction PlayerAnimationFeedback:LoadAnimation(humanoid)local feedbackAnimation = Instance.new("Animation")feedbackAnimation.AnimationId = ANIMATION_IDfeedbackAnimationTrack = humanoid.Animator:LoadAnimation(feedbackAnimation)feedbackAnimationTrack.Priority = Enum.AnimationPriority.ActionfeedbackAnimationTrack.Looped = falseend-- แอนิเมชันfunction PlayerAnimationFeedback:PlayAnimation()feedbackAnimationTrack:Play(ANIMATION_FADE)task.wait(feedbackAnimationTrack.Length)endreturn PlayerAnimationFeedback
เล่นแอนิเมชั่น
แอนิเมชั่นต้องได้รับการระบุในสคริปต์ที่โหลดและเล่น
ตั้งค่าแอนิเมชัน
สคริปต์ต้องรู้ว่าจะเล่นแอนิเมชั่นไหนเพื่อใช้แอนิเมชั่นที่ส่งออก ค้นหา ID สินทรัพย์ ผ่านเบราว์เซอร์เว็บID นั้นจะอนุญาตให้แอนิเมชั่นถูกโหลดในสคริปต์
เปิดส่วน แอนิเมชั่น ของหน้าสร้าง
แอนิเมชัน
คัดลอก ID จาก URL ในเบราว์เซอร์ของคุณ
ในสคริปต์, PlayerAnimationFeedback, แทนที่ตัวชั่วคราว, YOUR_ANIMATION (บรรทัด 8), ด้วย ID ที่คุณคัดลอก
ดำเนินโครงการและทดสอบว่าเมื่อผู้เล่นตีส่วนหนึ่งคุณจะเห็นแอนิเมชัน
ขั้นตอนต่อไป
ต่อไปนี้เป็นวิธีการสองสามวิธีในการเรียนรู้ต่อไป
เรียนรู้เกี่ยวกับแอนิเมชัน
จนถึงตอนนี้คุณได้เรียนรู้วิธีสร้างแอนิเมชันและเพิ่มลงในประสบการณ์เพื่อดำเนินการเรียนรู้ต่อไป เราขอแนะนำให้คุณไปที่ภาพรวมของ แอนิเมชัน
บนหน้านั้น คุณจะพบลิงก์ที่มีประโยชน์ในการปรับปรุงแอนิเมชัน เช่น การใช้ตัวแก้ไขเส้นโค้งเพื่อการเคลื่อนไหวที่ราบรื่นหรือเคล็ดลับในการปรับปรุงแอนิเมชัน
แอนิเมชั่นส่วน
นอกจากนี้ยังเริ่มบทเรียนทางเลือก แอนิเมชั่นชิ้นส่วน เพื่อเรียนรู้วิธีการเขียนโค้ดวัยรุ่นซึ่งเป็นคุณลักษณะที่ช่วยให้คุณสามารถขยาย หมุน และย้ายชิ้นส่วนได้ตัวอย่างโครงการสุดท้ายอยู่ด้านล่าง