ใช้การเคลื่อนไหว

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

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

เล่นการเคลื่อนไหวจากสคริปต์

ในบางกรณี คุณจะต้องเล่นการเคลื่อนไหวโดยตรงจากภายในสคริปต์ เช่น เมื่อผู้ใช้กดปุ่มเฉพาะหรือหยิบไอเท็มพิเศษ

มนุษย์

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

  1. ตรวจสอบว่า Humanoid ของผู้เล่นท้องถิ่นมีวัตถุ Animator
  2. สร้างอินสแตนซ์ Animation ใหม่พร้อมกับ AnimationId ที่ถูกต้อง
  3. โหลดการเคลื่อนไหวผ่าน Animator:LoadAnimation() เพื่อสร้าง AnimationTrack
  4. เล่นแทร็คด้วย AnimationTrack:Play()

ตัวอย่างเช่น LocalScript ต่อไปนี้ เมื่อวางไว้ใน StarterPlayerScripts จะโหลดการเคลื่อนไหว "เตะ" ลงในตัวละครของผู้เล่นและเล่นมัน สคริปต์ยังใช้เมธอด GetMarkerReachedSignal() เพื่อตรวจจับเมื่อเกิด เหตุการณ์การเคลื่อนไหว ที่เฉพาะเจาะจง

LocalScript - เล่นการเคลื่อนไหวที่กำหนดเองในตัวละครของผู้เล่น

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- ตรวจสอบว่า humanoid ของตัวละครมีวัตถุ "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- สร้างอินสแตนซ์ "Animation" ใหม่และกำหนดหมายเลข asset ของการเคลื่อนไหว
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- โหลดการเคลื่อนไหวเข้าไปใน animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- หากมีเหตุการณ์ที่ตั้งชื่อมาสำหรับการเคลื่อนไหว เชื่อมต่อกับ "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- เล่นแทร็คการเคลื่อนไหว
kickAnimationTrack:Play()

แบบไม่ใช่มนุษย์

ในการเล่นการเคลื่อนไหวบนร่างที่ ไม่มี วัตถุ Humanoid คุณต้องสร้าง AnimationController โดยมี Animator เป็นลูก ซึ่งตัวอย่างนี้ถือว่ามี Script เป็นลูกของร่างใช้ในการโหลดการเคลื่อนไหว "เตะ" และเล่นมัน

Script - เล่นการเคลื่อนไหวที่กำหนดเองในร่างตัวละคร

local rig = script.Parent
-- สร้างอินสแตนซ์ "Animation" ใหม่และกำหนดหมายเลข asset ของการเคลื่อนไหว
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
-- โหลดการเคลื่อนไหวไปยัง animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- หากมีเหตุการณ์ที่ตั้งชื่อมาสำหรับการเคลื่อนไหว เชื่อมต่อกับ "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- เล่นแทร็คการเคลื่อนไหว
kickAnimationTrack:Play()

แทนที่การเคลื่อนไหวเริ่มต้น

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

  1. รับ หมายเลข asset ของการเคลื่อนไหวใหม่ดังนี้:

  2. ในหน้าต่าง Explorer ให้เพิ่ม Script ใหม่ใน ServerScriptService

    1. เลื่อนเมาส์ไปที่ ServerScriptService และคลิกที่ปุ่ม ⊕
    2. จากเมนูบริบท เปลี่ยนเป็น Script
  3. ในสคริปต์ใหม่ ให้วางโค้ดต่อไปนี้:

    Script - แทนที่การเคลื่อนไหวเริ่มต้นของตัวละคร

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- รับ animator บน 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://"
    --animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation1.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation2.AnimationId = "rbxassetid://"
    --animateScript.fall.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.swim.Swim.AnimationId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. สำหรับแต่ละบรรทัดที่อ้างถึงการ เคลื่อนไหวเริ่มต้นของตัวละคร ให้ยกเลิกการแสดงความคิดเห็นและวาง ID แทนที่หลังจาก rbxassetid:// สำหรับตัวอย่าง หากต้องการเปลี่ยนการเคลื่อนไหววิ่งเริ่มต้นไปยัง Ninja Run ผันผม:

    Script - แทนที่การเคลื่อนไหวเริ่มต้นของตัวละคร

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- รับ animator บน 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"
    --animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation1.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation2.AnimationId = "rbxassetid://"
    --animateScript.fall.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.swim.Swim.AnimationId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

ตั้งค่าน้ำหนักการเคลื่อนไหว

คุณสามารถใช้การเคลื่อนไหวหลายรายการสำหรับการกระทำเดียวกัน ตัวอย่างเช่น มีการเปลี่ยนแปลง idle สองอย่างในตัวอย่างโค้ดสำหรับ การแทนที่การเคลื่อนไหวเริ่มต้น

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

  • น้ำหนักการเคลื่อนไหว / น้ำหนักรวมของการเคลื่อนไหวในสถานะทั้งหมด

ในตัวอย่างต่อไปนี้ idle.Animation1 จะเล่น ⅓ ของเวลาที่ตัวละครอยู่นิ่ง ขณะที่ idle.Animation2 จะเล่น ⅔ ของเวลา

Script - แทนที่การเคลื่อนไหวเริ่มต้นของตัวละคร

animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"
animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"
animateScript.idle.Animation1.Weight.Value = 5
animateScript.idle.Animation2.Weight.Value = 10

การอ้างอิงการเคลื่อนไหว

การเคลื่อนไหวเริ่มต้นของตัวละคร

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

การกระทำของตัวละครการอ้างอิงในสคริปต์ Animate
วิ่ง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

การเคลื่อนไหวจากคลัง

เมื่อใช้แพ็คเกจการเคลื่อนไหวของอวตารเพื่อ แทนที่การเคลื่อนไหวเริ่มต้น ให้ใช้การอ้างอิงต่อไปนี้สำหรับหมายเลข asset ที่เหมาะสม ตัวอย่างเช่น หากคุณต้องการใช้การเคลื่อนไหว Ninja Jump ให้ใช้ 656117878 โปรดทราบว่า Idle มีการเปลี่ยนแปลงหลายแบบ

นักบินอวกาศ
วิ่ง
891636393
เดิน
891636393
กระโดด
891627522
นั่งนิ่ง
891621366, 891633237, 1047759695
ตก
891617961
ว่ายน้ำ
891639666
ว่ายน้ำ (นั่งนิ่ง)
891663592
ปีน
891609353
มีฟอง
วิ่ง
910025107
เดิน
910034870
กระโดด
910016857
นั่งนิ่ง
910004836, 910009958, 1018536639
ตก
910001910
ว่ายน้ำ
910028158
ว่ายน้ำ (นั่งนิ่ง)
910030921
ปีน
909997997
การ์ตูน
วิ่ง
742638842
เดิน
742640026
กระโดด
742637942
นั่งนิ่ง
742637544, 742638445, 885477856
ตก
742637151
ว่ายน้ำ
742639220
ว่ายน้ำ (นั่งนิ่ง)
742639812
ปีน
742636889
ผู้สูงอายุ
วิ่ง
845386501
เดิน
845403856
กระโดด
845398858
นั่งนิ่ง
845397899, 845400520, 901160519
ตก
845396048
ว่ายน้ำ
845401742
ว่ายน้ำ (นั่งนิ่ง)
845403127
ปีน
845392038
อัศวิน
วิ่ง
657564596
เดิน
657552124
กระโดด
658409194
นั่งนิ่ง
657595757, 657568135, 885499184
ตก
657600338
ว่ายน้ำ
657560551
ว่ายน้ำ (นั่งนิ่ง)
657557095
ปีน
658360781
การลอย
วิ่ง
616010382
เดิน
616013216
กระโดด
616008936
นั่งนิ่ง
616006778, 616008087, 886862142
ตก
616005863
ว่ายน้ำ
616011509
ว่ายน้ำ (นั่งนิ่ง)
616012453
ปีน
616003713
พ่อมด
วิ่ง
707861613
เดิน
707897309
กระโดด
707853694
นั่งนิ่ง
707742142, 707855907, 885508740
ตก
707829716
ว่ายน้ำ
707876443
ว่ายน้ำ (นั่งนิ่ง)
707894699
ปีน
707826056
นินจา
วิ่ง
656118852
เดิน
656121766
กระโดด
656117878
นั่งนิ่ง
656117400, 656118341, 886742569
ตก
656115606
ว่ายน้ำ
656119721
ว่ายน้ำ (นั่งนิ่ง)
656121397
ปีน
656114359
โจรสลัด
วิ่ง
750783738
เดิน
750785693
กระโดด
750782230
นั่งนิ่ง
750781874, 750782770, 885515365
ตก
750780242
ว่ายน้ำ
750784579
ว่ายน้ำ (นั่งนิ่ง)
750785176
ปีน
750779899
หุ่นยนต์
วิ่ง
616091570
เดิน
616095330
กระโดด
616090535
นั่งนิ่ง
616088211, 616089559, 885531463
ตก
616087089
ว่ายน้ำ
616092998
ว่ายน้ำ (นั่งนิ่ง)
616094091
ปีน
616086039
Rthro
วิ่ง
2510198475
เดิน
2510202577
กระโดด
2510197830
นั่งนิ่ง
2510197257, 2510196951, 3711062489
ตก
2510195892
ว่ายน้ำ
2510199791
ว่ายน้ำ (นั่งนิ่ง)
2510201162
ปีน
2510192778
มีสไตล์
วิ่ง
616140816
เดิน
616146177
กระโดด
616139451
นั่งนิ่ง
616136790, 616138447, 886888594
ตก
616134815
ว่ายน้ำ
616143378
ว่ายน้ำ (นั่งนิ่ง)
616144772
ปีน
616133594
ซุปเปอร์ฮีโร่
วิ่ง
616117076
เดิน
616122287
กระโดด
616115533
นั่งนิ่ง
616111295, 616113536, 885535855
ตก
616108001
ว่ายน้ำ
616119360
ว่ายน้ำ (นั่งนิ่ง)
616120861
ปีน
616104706
ของเล่น
วิ่ง
782842708
เดิน
782843345
กระโดด
782847020
นั่งนิ่ง
782841498, 782845736, 980952228
ตก
782846423
ว่ายน้ำ
782844582
ว่ายน้ำ (นั่งนิ่ง)
782845186
ปีน
782843869
แวมไพร์
วิ่ง
1083462077
เดิน
1083473930
กระโดด
1083455352
นั่งนิ่ง
1083445855, 1083450166, 1088037547
ตก
1083443587
ว่ายน้ำ
1083464683
ว่ายน้ำ (นั่งนิ่ง)
1083467779
ปีน
1083439238
มนุษย์หมาป่า
วิ่ง
1083216690
เดิน
1083178339
กระโดด
1083218792
นั่งนิ่ง
1083195517, 1083214717, 1099492820
ตก
1083189019
ว่ายน้ำ
1083222527
ว่ายน้ำ (นั่งนิ่ง)
1083225406
ปีน
1083182000
ซอมบี้
วิ่ง
616163682
เดิน
616168032
กระโดด
616161997
นั่งนิ่ง
616158929, 616160636, 885545458
ตก
616157476
ว่ายน้ำ
616165109
ว่ายน้ำ (นั่งนิ่ง)
616166655
ปีน
616156119
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ