บทที่ 6: การควบคุมและเพิ่มอนิเมชันให้กับตัวละคร
6.1 การควบคุมตัวละคร (Character Controls)
การควบคุมตัวละครใน Roblox Studio ใช้การตั้งค่ามาตรฐานที่ผู้เล่นสามารถใช้แป้นพิมพ์หรือจอยสติ๊กในการเคลื่อนที่ในเกม แต่หากคุณต้องการกำหนดการควบคุมเพิ่มเติมหรือสร้างสคริปต์เฉพาะเพื่อควบคุมตัวละคร คุณสามารถใช้ สคริปต์ (Scripts) เพื่อทำได้
การใช้สคริปต์ควบคุมตัวละคร:
- คลิกขวาที่ตัวละครในแถบ Explorer
- เลือก Insert Object (แทรกวัตถุ) แล้วเลือก Script (สคริปต์)
- ในหน้าต่างสคริปต์ คุณสามารถเขียนคำสั่งการควบคุมที่เฉพาะเจาะจง เช่น การเพิ่มความเร็วในการวิ่ง, การกระโดด, หรือการควบคุมการเคลื่อนไหวในทิศทางต่าง ๆ
ตัวอย่าง: คุณสามารถเขียนสคริปต์เพื่อให้ตัวละครสามารถวิ่งได้เมื่อกดปุ่ม Shift ดังนี้:
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local UIS = game:GetService("UserInputService")
UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.LeftShift then
humanoid.WalkSpeed = 32 -- เพิ่มความเร็ว
end
end)
UIS.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.LeftShift then
humanoid.WalkSpeed = 16 -- กลับไปความเร็วปกติ
end
end)
6.2 การเพิ่มอนิเมชันให้กับตัวละคร (Character Animation)
เพื่อทำให้ตัวละครดูมีชีวิตชีวามากขึ้น เราสามารถเพิ่มอนิเมชัน (Animation) ให้กับตัวละครได้ เช่น การเดิน, การวิ่ง, การกระโดด หรือการทำท่าทางต่าง ๆ
ขั้นตอนการเพิ่มอนิเมชัน:
- ไปที่แถบ Explorer แล้วคลิกขวาที่ตัวละครของคุณ
- เลือก Insert Object (แทรกวัตถุ) แล้วเลือก Animation Controller (ตัวควบคุมอนิเมชัน)
- ในแถบ Properties ของ Animation Controller คุณสามารถเพิ่มไฟล์อนิเมชันที่สร้างขึ้นหรือที่ดาวน์โหลดจาก Toolbox
ตัวอย่าง: คุณสามารถเพิ่มอนิเมชันการเดินที่สมจริงให้กับตัวละครของคุณ เช่น การเดินในรูปแบบพิเศษเมื่อผู้เล่นวิ่งผ่านฉากต่าง ๆ
6.3 การตั้งค่าการตอบสนองจากผู้เล่น (Player Input)
เพื่อให้เกมของคุณสามารถตอบสนองต่อผู้เล่นได้ คุณสามารถใช้ UserInputService เพื่อจัดการการรับข้อมูลจากผู้เล่น เช่น การกดปุ่มต่าง ๆ หรือการใช้เมาส์ในการควบคุมตัวละคร
ขั้นตอนการตั้งค่าการตอบสนองจากผู้เล่น:
- เขียนสคริปต์ใน Script เพื่อรับข้อมูลจากผู้เล่น เช่น การกดปุ่มบนคีย์บอร์ด
- ใช้ฟังก์ชัน InputBegan (เริ่มการกดปุ่ม) และ InputEnded (สิ้นสุดการกดปุ่ม) เพื่อควบคุมพฤติกรรมของตัวละครตามคำสั่งที่ได้รับ
ตัวอย่าง: คุณสามารถตั้งค่าให้ตัวละครกระโดดเมื่อผู้เล่นกดปุ่ม Space:
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local UIS = game:GetService("UserInputService")
UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space then
humanoid.Jump = true -- ทำให้ตัวละครกระโดด
end
end)