ใน ห้องสมุดตัวควบคุมตัวละคร (CCL) อินสแตนซ์ ControllerManager หลักจะจัดการการจำลองทางกายภาพของตัวละครและการโต้ตอบกับสภาพแวดล้อม ซึ่งรวมถึงการเปลี่ยนแปลงโดยเจตนาในด้านการเคลื่อนที่และความรู้สึกที่ออกแบบมาเพื่อแก้ไขความไม่สอดคล้องกันของ Humanoid ที่เกิดจากการออกแบบเดิม รวมถึงการปรับปรุงทางกายภาพ เช่น ความเสียดทานของพื้นดิน เส้นโค้งการเร่งเชิงเส้น และการอนุรักษ์โมเมนตัมเชิงเส้นและเชิงมุมอย่างสมจริงเมื่อกระโดด
เปิดใช้งาน CCL
CCL คือ เลือกเข้าใช้ ผ่านหน้าต่าง การตั้งค่าอวตาร์ ของ Studio เพื่อเปิดใช้งาน:
จากแท็บ อวตาร์ ให้เปิด การตั้งค่าอวตาร์.

เลือกแท็บ การเคลื่อนไหว ที่ด้านซ้ายของหน้าต่างและในส่วน ความสามารถ ให้เลือก ห้องสมุดตัวควบคุมตัวละคร.

ความสามารถมาตรฐานทั้งหมด เช่น การวิ่ง, การกระโดด, และ การปีน ถูกเปิดใช้งานโดยค่าเริ่มต้น หากต้องการปิดการใช้งานความสามารถใด ๆ ในระหว่างการทำงาน ให้ยกเลิกการเลือกกล่องที่เกี่ยวข้อง
โครงสร้าง
ภายใต้การจัดการของอินสแตนซ์ ControllerManager หลักภายในโมเดลตัวละคร ตัวควบคุมแต่ละตัว เช่น GroundController และ AirController จะกำหนดวิธีการใช้การเคลื่อนไหวกับตัวละคร ความสามารถต่าง ๆ จะโต้ตอบกับ ControllerManager และลูกหลานของมันเพื่อปรับเปลี่ยนพฤติกรรมของตัวควบคุมหรือตัดสลับระหว่างตัวควบคุม

การตั้งค่า
ในขณะที่เกมของคุณกำลังทำงาน (หรือผ่านสคริปต์ที่ทำงานจาก ServerScriptService) คุณสามารถทดลองกับ ControllerManager และตัวควบคุมที่สร้างขึ้นมา
ระหว่างการทำงาน
เพื่อทดลองกับการตั้งค่าตัวควบคุในขณะทำงาน:
เริ่มการทดสอบการเล่น
ใน Explorer ค้นหาโมเดลตัวละครใน Workspace และขยายต้นไม้ ControllerManager:

เลือก either ControllerManager หรือหนึ่งในลูกหลานของมันและในหน้าต่าง Properties ปรับแต่งคุณสมบัติต่าง ๆ เช่นที่สรุปไว้ในตารางด้านล่าง (โปรดทราบว่าตารางเหล่านี้ไม่ได้ครบถ้วน; กรุณาอ้างอิงเอกสาร คลาส API สำหรับตัวเลือกคุณสมบัติเพิ่มเติม)
คุณสมบัติ คำอธิบาย BaseMoveSpeed ความเร็วการเคลื่อนไหวเชิงเส้น พื้นฐาน ที่ใช้โดยตัวควบคุมทั้งหมด ตัวควบคุมจะปรับความเร็วการเคลื่อนไหวให้เหมาะสมจากคุณสมบัติ MoveSpeedFactor ของตนเอง BaseTurnSpeed ความเร็วการหมุนเชิงมุม พื้นฐาน ที่ใช้โดยตัวควบคุมทั้งหมดเพื่อจัดเรียงตัวละครให้หันไปในทิศทางที่ต้องการ ตัวควบคุมบางตัวปรับความเร็วการหมุนผ่านคุณสมบัติ TurnSpeedFactor ของตนเอง UpDirection Vector3 ซึ่งบ่งบอกเวกเตอร์ที่หันขึ้นสำหรับ ControllerManager.RootPart
สคริปต์
เพื่อกำหนดค่าตัวควบคุมสำหรับตัวละครทั้งหมดผ่านสคริปต์:
สร้าง Script ฝั่งเซิร์ฟเวอร์ใหม่ภายใน ServerScriptService และเปลี่ยนชื่อเป็น ControllerScript
คัดลอกและวางรหัสต่อไปนี้ลงในสคริปต์ใหม่ ตัวอย่างนี้จะเพิ่มความเร็วในการเคลื่อนที่/หมุนแบบอยู่กับที่บนพื้น รวมถึงเพิ่มเวลาการเร่งและการลดความเร็วเล็กน้อย คุณสามารถปรับแต่งคุณสมบัติอื่น ๆ เช่นที่อธิบายไว้ใน ตารางข้างต้น หรือสำหรับแต่ละคลาสตามเอกสาร (ControllerManager; GroundController; AirController; ClimbController; SwimController)
สคริปต์ใน ServerScriptServicelocal Players = game:GetService("Players")local function onCharacterAdded(character)local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")if ControllerManager thenlocal GroundController = ControllerManager:FindFirstChild("GroundController")if GroundController then-- เพิ่มความเร็วในการเคลื่อนที่และหมุนเป็นสองเท่าGroundController.MoveSpeedFactor *= 2GroundController.TurnSpeedFactor *= 2-- เพิ่มเวลาการเร่งและการลดความเร็วเล็กน้อยGroundController.AccelerationTime = 0.2GroundController.DecelerationTime = 0.4endendendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)