เมื่อคุณได้สร้างแอนิเมชัน แล้ว คุณต้องใช้สคริปต์เพื่อรวมพวกเขาในประสบการณ์ของคุณคุณสามารถเล่นแอนิเมชั่นด้วยตนเองได้ จากสคริปต์ หรือ แทนที่แอนิเมชั่นเริ่มต้น สําหรับตัวละครผู้เล่น
เล่นแอนิเมชั่นจากสคริปต์
ในบางกรณี คุณจะต้องเล่นแอนิเมชันโดยตรงจากภายในสคริปต์ เช่น ไอเท็ม
มนุษย์โนอิด
เพื่อเล่นแอนิเมชันบนฮาร์ดแวร์ที่มีวัตถุ Humanoid เช่นตัวละครที่สามารถเล่นได้ทั่วไปให้ทำตามรูปแบบพื้นฐานนี้:
- สร้างตัวอย่างใหม่ Animation ด้วย AnimationId ที่เหมาะสม
- โหลดแอนิเมชันผ่าน Animator:LoadAnimation() เพื่อสร้าง AnimationTrack
- เล่นเพลงด้วย AnimationTrack:Play() .
ตัวอย่างเช่น LocalScript ด้านล่าง เมื่อวางใน StarterPlayerScripts จะโหลดแอนิเมชั่น "ไล่ออก" ลงบนตัวละครของผู้เล่นและเล่นสคริปต์ยังใช้วิธี ในการตรวจจับเมื่อเกิดเหตุการณ์แอนิเมชั่นเฉพาะ ขึ้น
สคริปท์ท้องถิ่น - เล่นแอนิเมชันที่กําหนดเองบนตัวละครผู้เล่น
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- ตรวจสอบให้แน่ใจว่าตัวละครมนุษย์มีวัตถุ "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- สร้างตัวอย่าง "แอนิเมชัน" ใหม่และกำหนดรหัสทรัพยากรแอนิเมชัน
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- โหลดแอนิเมชั่นไปยังนักแสดงแอนิเมชั่น
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- เล่นเพลงแอนิเมชัน
kickAnimationTrack:Play()
-- หากอีเวนต์ที่มีชื่อถูกกำหนดสําหรับแอนิเมชัน เชื่อมต่อกับ "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
ไม่ใช่มนุษย์เทียม
เพื่อเล่นแอนิเมชั่นบนริกที่ไม่ได้ มี ประกอบด้วย Humanoid คุณต้องสร้าง AnimationController ด้วยลูก Animatorตัวอย่างเช่นการโหลดต่อไปนี้ Script (คาดว่าเป็นลูกหลานโดยตรงของริก) โหลดแอนิเมชั่น "ไล่ออก" และเล่นมัน
สคริปต์ - เล่นแอนิเมชันที่กําหนดเองบนตัวละครบนริก
local rig = script.Parent
-- สร้างตัวอย่าง "แอนิเมชัน" ใหม่และกำหนดรหัสทรัพยากรแอนิเมชัน
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- สร้าง "AnimationController" และ "Animator" ใหม่
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- โหลดแอนิเมชั่นไปยังนักแสดงแอนิเมชั่น
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- เล่นเพลงแอนิเมชัน
kickAnimationTrack:Play()
-- หากอีเวนต์ที่มีชื่อถูกกำหนดสําหรับแอนิเมชัน เชื่อมต่อกับ "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
แทนที่แอนิเมชั่นเริ่มต้น
โดยปกติแล้วตัวละครผู้เล่น Roblox รวมถึงภาพเคลื่อนไหวทั่วไปเช่นการวิ่ง ปีน ว่ายน้ํา และกระโดดคุณสามารถแทนที่แอนิเมชั่นเริ่มต้นเหล่านี้ ด้วยแอนิเมชั่นจากแคตตาล็อก หรือด้วยแอนิเมชั่นที่กําหนดเองของคุณเอง ก็ได้
รับ ID สินทรัพย์ ของแอนิเมชั่นใหม่ ดังต่อไปนี้:
- สำหรับแอนิเมชั่นที่กําหนดเองที่สร้างขึ้นด้วย เครื่องมือส่งออกแอนิเมชั่น ให้ทําตามคําแนะนํา ส่งออก
- คัดลอก ID ที่เหมาะสมจาก การอ้างอิงแอนิเมชั่นคาตาล็อก ด้านล่างตัวอย่างเช่น เพื่อแทนที่แอนิเมชั่นการทำงานเริ่มต้นด้วยตัวแปร Ninja Run ใช้ 656118852
รหัส:
สคริปต์ - แทนที่แอนิเมชั่นตัวละครเริ่มต้นlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- รับอนิเมเตอร์บน humanoidlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- หยุดการเล่นแอนิเมชั่นทั้งหมดfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--อนิเมชั่นสคริปต์.run.RunAnim.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.เดิน.WalkAnim.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.กระโดด.JumpAnim.AnimationId = "rbxassetid://"--animateScript.นิ่งเฉย.Animation1.AnimationId = "rbxassetid://"--animateScript.นิ่งเฉย.Animation2.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.หล่น.FallAnim.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.ว่ายน้ำ.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.ปีน.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)สำหรับแต่ละบรรทัดที่อ้างถึงอนิเมชั่นตัวละครเริ่มต้น ไม่ต้องแสดงความคิดเห็นและวางรหัสแทนที่หลังจาก rbxassetid://ตัวอย่างเช่นเพื่อเปลี่ยนแอนิเมชั่นการเรียกเริ่มต้นเป็นแอนิเมชั่น Ninja Run ตัวแปร:
สคริปต์ - แทนที่แอนิเมชั่นตัวละครเริ่มต้นlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- รับอนิเมเตอร์บน humanoidlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- หยุดการเล่นแอนิเมชั่นทั้งหมดfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--อนิเมชั่นสคริปต์.เดิน.WalkAnim.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.กระโดด.JumpAnim.AnimationId = "rbxassetid://"--animateScript.นิ่งเฉย.Animation1.AnimationId = "rbxassetid://"--animateScript.นิ่งเฉย.Animation2.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.หล่น.FallAnim.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.ว่ายน้ำ.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--อนิเมชั่นสคริปต์.ปีน.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
ตั้งน้ำหนักแอนิเมชัน
คุณสามารถใช้แอนิเมชั่นหลายอันสำหรับการดำเนินการเดียวกันได้ตัวอย่างเช่นมีการเปลี่ยนแปลงสองรายการ ในตัวอย่างโค้ดสำหรับการแทนที่แอนิเมชั่นเริ่มต้น
เมื่อมีแอนิเมชันหลายอันสำหรับสถานะของตัวละครแล้ว สคริปต์ แอนิเมชัน จะเลือกแบบสุ่มว่าจะเล่นอันไหน แต่คุณสามารถมีอิทธิพลต่อผลลัพธ์ได้โดยการตั้งค่าค่าแอนิเมชัน Weight ภายใต้สูตรต่อไปนี้:
- น้ำหนักแอนิเมชัน / น้ำหนักรวมของแอนิเมชันทั้งหมดของสถานะ ในตัวอย่างต่อไปนี้ idle.Animation1 จะเล่น ⅓ นิ่งเฉยidle.Animation2 จะเล่น ⅔ ของเวลา
สคริปต์ - แทนที่แอนิเมชั่นตัวละครเริ่มต้น
animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
การอ้างอิงการเคลื่อนไหว
แอนิเมชั่นตัวละครเริ่มต้น
ตารางต่อไปนี้มีการแอนิเมชั่นตัวละครเริ่มต้นทั้งหมดที่คุณสามารถแทนที่ได้ ด้วยแอนิเมชั่นแคตตาล็อก หรือแอนิเมชั่นที่กําหนดเองของคุณ เองโปรดทราบว่า ไม่ได้ใช้งาน มีสองรูปแบบที่คุณสามารถ น้ำหนัก เพื่อเล่นบ่อยหรือน้อยกว่า
การกระทําของตัวละคร | อ้างอิงสคริปต์แอนิเมชัน |
ดำเนินการ | animateScript.run.RunAnim.AnimationId |
เดิน | animateScript.walk.WalkAnim.AnimationId |
กระโดด | animateScript.jump.JumpAnim.AnimationId |
ไม่ได้ใช้งาน | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
ตก | animateScript.fall.FallAnim.AnimationId |
ว่ายน้ำ | animateScript.swim.Swim.AnimationId |
ว่ายน้ำ (ไม่ได้ใช้งาน) | animateScript.swimidle.SwimIdle.AnimationId |
ปีน | animateScript.climb.ClimbAnim.AnimationId |
แอนิเมชั่นแคตตาล็อก
เมื่อใช้ชุดแอนิเมชั่นอวาตาร์เพื่อ แทนที่แอนิเมชั่นเริ่มต้น ให้ใช้การอ้างอิงต่อไปนี้สำหรับรหัสสินทรัพย์ที่เกี่ยวข้องตัวอย่างเช่น หากคุณต้องการใช้แอนิเมชั่น Ninja Jump ให้ใช้ 656117878โปรดทราบว่า ไม่ได้ใช้งาน มีหลายรูปแบบ
นักบินอวกาศ | วิ่ง 891636393 เดิน 891636393 กระโดด 891627522 ไม่ได้ใช้งาน 891621366, 891633237, 1047759695 ไม่ได้ใช้งาน (รอ) 891617961 ว่ายน้ำ 891639666 ว่ายน้ำ (ไม่ได้ใช้งาน) 891663592 |
ฟองอากาศ | วิ่ง 910025107 เดิน 910034870 กระโดด 910016857 ไม่ได้ใช้งาน 910004836, 910009958, 1018536639 ว่ายน้ำ 910001910 ว่ายน้ำ (ไม่ได้ใช้งาน) 910030921 ว่ายน้ำ (ไม่ได้ใช้งาน) 910030921 |
การ์ตูน | วิ่ง 742638842 เดิน 742640026 กระโดด 742637942 ไม่ได้ใช้งาน 742637544, 742638445, 885477856 ว่ายน้ำ 742637151 ว่ายน้ำ (ไม่ได้ใช้งาน) 742639220 ว่ายน้ำ (ไม่ได้ใช้งาน) 742636889 |
ผู้สูงอายุ | วิ่ง 845386501 เดิน 845403856 กระโดด 845398858 ไม่ได้ใช้งาน 845397899, 845400520, 901160519 ว่ายน้ำ 845396048 ว่ายน้ำ (ไม่ได้ใช้งาน) 845403127 ว่ายน้ำ (ไม่ได้ใช้งาน) 845392038 |
อัศวิน | วิ่ง 657564596 เดิน 657552124 กระโดด 658409194 ไม่ได้ใช้งาน 657595757, 657568135, 885499184 ว่ายน้ำ 657600338, 657568135, 885499184 ว่ายน้ำ (ไม่ได้ใช้งาน) 657557095 ว่ายน้ำ (ไม่ได้ใช้งาน) 658360781 |
การลอยตัว | วิ่ง 616010382 เดิน 616013216 กระโดด 616008936 ไม่ได้ใช้งาน 616006778, 616008087, 886862142 ไม่ได้ใช้งาน (รอ) 616005863 ว่ายน้ำ 616011509 ว่ายน้ำ (ไม่ได้ใช้งาน) 616003713 |
นักเวทย์ | วิ่ง 707861613 เดิน 707897309 กระโดด 707853694 ไม่ได้ใช้งาน 707742142, 707855907, 885508740 ว่ายน้ำ 707829716 ว่ายน้ำ (ไม่ได้ใช้งาน) 707894699 ว่ายน้ำ (ไม่ได้ใช้งาน) 707826056 |
นินจา | วิ่ง 656118852 เดิน 656121766 กระโดด 656117878 ไม่ได้ใช้งาน 656117400, 656118341, 886742569 ไม่ได้ใช้งาน 656115606, 656118341, 886742569 ว่ายน้ำ 656119721 ว่ายน้ำ (ไม่ได้ใช้งาน) 656121397 |
โจรสลัด | วิ่ง 750783738 เดิน 750785693 กระโดด 750782230 ไม่ได้ใช้งาน 750781874, 750782770, 885515365 ไม่ได้ใช้งาน (รอ) 750780242, 750782770, 885515365 ว่ายน้ำ 750784579 ว่ายน้ำ (ไม่ได้ใช้งาน) 750785176 |
หุ่นยนต์ | วิ่ง 616091570 เดิน 616095330 กระโดด 616088211, 616089559, 885531463 ไม่ได้ใช้งาน 616088211, 616089559, 885531463 ไม่ได้ใช้งาน 616087089, 616089559, 885531463 ว่ายน้ำ 616092991 ว่ายน้ำ (ไม่ได้ใช้งาน) 616086039 |
Rthro | วิ่ง 2510198475 เดิน 2510202577 กระโดด 2510197830 ไม่ได้ใช้งาน 2510197257, 2510196951, 3711062489 ว่ายน้ำ 2510195892 ว่ายน้ำ (ไม่ได้ใช้งาน) 2510201162 ว่ายน้ำ (ไม่ได้ใช้งาน) 2510192778 |
สวยงาม | วิ่ง 616140816 เดิน 616146177 กระโดด 616139451 ไม่ได้ใช้งาน 616136790, 616138447, 886888594 ว่ายน้ำ 616134815 ว่ายน้ำ (ไม่ได้ใช้งาน) 616144772 ว่ายน้ำ (ไม่ได้ใช้งาน) 616133594 |
ซุปเปอร์ฮีโร่ | วิ่ง 616117076 เดิน 616122287 กระโดด 616115533 ไม่ได้ใช้งาน 616111295, 616113536, 885535855 ไม่ได้ใช้งาน (ไม่ได้ใช้งาน) 616108001, 616113536, 885535855 ว่ายน้ำ 616119360 ว่ายน้ำ (ไม่ได้ใช้งาน) 616120861 |
ของเล่น | วิ่ง 782842708 เดิน 782843345 กระโดด 782847020 ไม่ได้ใช้งาน 782841498, 782845736, 980952228 ว่ายน้ำ 782846423 ว่ายน้ำ (ไม่ได้ใช้งาน) 782845186 ว่ายน้ำ (ไม่ได้ใช้งาน) 782843869 |
แวมไพร์ | วิ่ง 1083462077 เดิน 1083473930 กระโดด 1083455352 ไม่ได้ใช้งาน 1083445855, 1083450166, 1088037547 ว่ายน้ำ 1083443587 ว่ายน้ำ (ไม่ได้ใช้งาน) 1083467779 ว่ายน้ำ (ไม่ได้ใช้งาน) 1083464683 |
แวมไพร์ | วิ่ง 1083216690 เดิน 1083178339 กระโดด 1083218792 ไม่ได้ใช้งาน 1083195517, 1083214717, 1099492820 ไม่ได้ใช้งาน (ไม่ได้ใช้งาน) 1083222527 ว่ายน้ำ 1083225406 ว่ายน้ำ (ไม่ได้ใช้งาน) 1083182000 |
ซอมบี้ | วิ่ง 616163682 เดิน 616168032 กระโดด 616161997 ไม่ได้ใช้งาน 616158929, 616160636, 885545458 ว่ายน้ำ 616157476 ว่ายน้ำ (ไม่ได้ใช้งาน) 616166655 ว่ายน้ำ (ไม่ได้ใช้งาน) 616156119 |