ใช้แอนิเมชัน

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

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

เล่นแอนิเมชั่นจากสคริปต์

ในบางกรณี คุณจะต้องเล่นแอนิเมชันโดยตรงจากภายในสคริปต์ เช่น ไอเท็ม

มนุษย์โนอิด

เพื่อเล่นแอนิเมชันบนฮาร์ดแวร์ที่มีวัตถุ Humanoid เช่นตัวละครที่สามารถเล่นได้ทั่วไปให้ทำตามรูปแบบพื้นฐานนี้:

  1. ตรวจสอบให้แน่ใจว่า Humanoid ของผู้เล่นท้องถิ่นมีวัตถุ Animator
  2. สร้างตัวอย่างใหม่ Animation ด้วย AnimationId ที่เหมาะสม
  3. โหลดแอนิเมชันผ่าน Animator:LoadAnimation() เพื่อสร้าง AnimationTrack
  4. เล่นเพลงด้วย 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 รวมถึงภาพเคลื่อนไหวทั่วไปเช่นการวิ่ง ปีน ว่ายน้ํา และกระโดดคุณสามารถแทนที่แอนิเมชั่นเริ่มต้นเหล่านี้ ด้วยแอนิเมชั่นจากแคตตาล็อก หรือด้วยแอนิเมชั่นที่กําหนดเองของคุณเอง ก็ได้

  1. รับ ID สินทรัพย์ ของแอนิเมชั่นใหม่ ดังต่อไปนี้:

  2. ในหน้าต่าง สํารวจ เพิ่ม Script ใหม่ให้กับ ServerScriptService

    1. เลื่อนเมาส์ไปที่ ServerScriptService และคลิกที่ปุ่ม ⊕
    2. จากเมนูบริบทใส่ สคริปต์
  3. รหัส:

    สคริปต์ - แทนที่แอนิเมชั่นตัวละครเริ่มต้น

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- รับอนิเมเตอร์บน humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- หยุดการเล่นแอนิเมชั่นทั้งหมด
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. สำหรับแต่ละบรรทัดที่อ้างถึงอนิเมชั่นตัวละครเริ่มต้น ไม่ต้องแสดงความคิดเห็นและวางรหัสแทนที่หลังจาก rbxassetid://ตัวอย่างเช่นเพื่อเปลี่ยนแอนิเมชั่นการเรียกเริ่มต้นเป็นแอนิเมชั่น Ninja Run ตัวแปร:

    สคริปต์ - แทนที่แอนิเมชั่นตัวละครเริ่มต้น

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- รับอนิเมเตอร์บน humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- หยุดการเล่นแอนิเมชั่นทั้งหมด
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.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 = 5
animateScript.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