Animator

แสดงที่เลิกใช้งานแล้ว

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

คลาสหลักที่รับผิดชอบการเล่นและการเลียนแบบของ Animations ทั้งหมด การเลียนแบบการเล่น AnimationTracks จะได้รับการจัดการผ่านตัวอินสแตนซ์ Animator

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

สรุป

คุณสมบัติ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    ไม่สามารถเรียกดู
    เขียนพร้อมๆ กัน
  • อ่านพร้อมๆ กัน
  • อ่านอย่างเดียว
    ไม่ซ้ำ
    ไม่สามารถเรียกดู
    เขียนพร้อมๆ กัน
  • อ่านอย่างเดียว
    ไม่ซ้ำ
    ไม่สามารถเรียกดู
    เขียนพร้อมๆ กัน

วิธีการ

อีเวนต์

คุณสมบัติ

EvaluationThrottled

อ่านอย่างเดียว
ไม่ซ้ำ
ไม่สามารถเรียกดู
เขียนพร้อมๆ กัน

PreferLodEnabled

อ่านพร้อมๆ กัน

RootMotion

อ่านอย่างเดียว
ไม่ซ้ำ
ไม่สามารถเรียกดู
เขียนพร้อมๆ กัน

RootMotionWeight

อ่านอย่างเดียว
ไม่ซ้ำ
ไม่สามารถเรียกดู
เขียนพร้อมๆ กัน

วิธีการ

ApplyJointVelocities

void

เนื่องจากชุดปัจจุบันของ AnimationTracks ที่เล่นอยู่และเวลาและความเร็วเล่นของพวกเขาคำนวณความเร็วสัมพันธ์ระหว่างชิ้นส่วนและประยุกต์ให้กับ Motor6D.Part1 (ส่ว

วิธีนี้ไม่ใช้ค่าความเร็วสำหรับข้อต่อร่วมที่มีส่วนที่เป็นส่วนหนึ่งของข้อต่ออยู่ในขั้นตอนการประกอบที่เกี่ยวข้องกันโดยตรงหรืออ้อม เช่น หากพวกเขายังคงเชื่อมต่อโดยตรงหรือโดยอ้อมกันโดยมอเตอร

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

Motor6Ds ที่ให้ไม่จำเป็นต้องเป็นลูกหลานของ DataModel การลบข้อต่อจาก DataModel ก่อนที่จะเรียกวิธีนี้จะสนับสนุนได้

พารามิเตอร์

motors: Variant

ส่งค่ากลับ

void

GetPlayingAnimationTracks

กลับรายการเล่นปัจจุบัน AnimationTracks


ส่งค่ากลับ

LoadAnimation

ฟังก์ชันนี้จะโหลด Animation ที่มอบให้ใน Animator นี้ โดยการนำเสนอ ผู้เล่นAnimationTrack คืนมา เมื่อเรียกใ

คุณควรใช้ฟังก์ชันนี้โดยตรงแทนที่จะใช้ Humanoid:LoadAnimation() และ AnimationController:LoadAnimation() ฟังก์ชันเหล่านี้เป็นตัวแทนเก่าของฟังก์ชันนี้ซึ่งยังสร้าง

การโหลดแอนิเมชันบนลูกค้าหรือเซิร์ฟเวอร์

เพื่อให้ AnimationTracks สามารถเลียนแบบได้อย่างถูกต้อง สิ่งสำคัญคือต้องรู้ว่าเมื่อใดที่พวกเขาควรโหลดบนเครื่องคอมพิวเตอร์หรือบนเซิร์ฟเวอร์:

  • หาก Animator เป็นลูกหลานของ Humanoid หรือ AnimationController ในลูกหลานของผู้เล่น 2> Class.Player.Character2> อนิเมชั่นจะเริ่มในลูกค้าของผู้เล่นนั้นจะถ

  • หาก Animator เป็นลูกหลานของตัวละครผู้เล่น การอนิเมชั่นของมันจะต้องโหลดและเริ่มในเซิร์ฟเวอร์เพื่อวาดเลียนแบบ

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

พารามิเตอร์

animation: Animation

Class.Animation ที่จะใช้


ส่งค่ากลับ

RegisterEvaluationParallelCallback

void

พารามิเตอร์

callback: function

ส่งค่ากลับ

void

StepAnimations

void
การรักษาความปลอดภัยของปลั๊กอิน

เพิ่ม AnimationTrack.TimePosition ของทั้งหมดที่เล่น AnimationTracks ที่โหลดไปยัง Animator โดยใช้ออฟเซ็ตไปยังโมเดลที่เกี่ยวข้องกับ 1> Class.Animator1>

แอนิเมชันโดยปกติฟังก์ชันนี้จะถูกเรียกในล็อปเพื่อดูความยาวของอนิเมชัน (ดูตัวอย่าง)

หมายเหตุว่าเมื่ออนิเมชันหยุดเล่น ตำแหน่งของแม่พิมพ์จะต้องถูกรีเซ็ตด้วยมือ (ดูตัวอย่าง)

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

ผู้ออกแบบแอนิเมชันเองของพวกเขาแนะนำให้ใช้ฟังก์ชันนี้เพื่อดูตัวอย่างอนิเมชัน เนื่องจากเป็นวิธีการที่ Roblox Animation Editor ใช้

พารามิเตอร์

deltaTime: number

จำนวนเวลาในวินาทีที่เล่นอนิเมชั่นจะเพิ่มขึ้น


ส่งค่ากลับ

void

ตัวอย่างโค้ด

Preview Animation in Studio

local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- find the AnimationController and Animator
local animationController = model:FindFirstChildOfClass("Humanoid")
or model:FindFirstChildOfClass("AnimationController")
local animator = animationController and animationController:FindFirstChildOfClass("Animator")
if not animationController or not animator then
return
end
-- load the Animation to create an AnimationTrack
local track = animationController:LoadAnimation(animation)
track:Play()
-- preview the animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stop the animation
track:Stop(0)
animator:StepAnimations(0)
-- reset the joints
for _, descendant in pairs(model:GetDescendants()) do
if descendant:IsA("Motor6D") then
local joint = descendant
joint.CurrentAngle = 0
joint.Transform = CFrame.new()
end
end
end
local character = script.Parent
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
studioPreviewAnimation(character, animation)

อีเวนต์

AnimationPlayed

เปิดสำหรับทุก AnimationTrack:Play() การโทรที่ AnimationTracks ที่สร้างและเป็นเจ้าของโดย Animator

พารามิเตอร์

animationTrack: AnimationTrack