อารมณ์คือชนิดของการเคลื่อนไหวทางใบหน้าสำหรับ หัวที่สามารถเคลื่อนไหวได้ ซึ่งวนซ้ำไม่รู้จบ ช่วยให้ผู้ใช้สามารถแสดงออกและตอบสนองต่อผู้อื่นด้วยอารมณ์ทางใบหน้าอย่างต่อเนื่อง อารมณ์เล่นพร้อมกันกับ การเคลื่อนไหวเริ่มต้น อื่น ๆ เช่น การเดิน การปีนป่าย และการว่ายน้ำ และหากการเคลื่อนไหวเริ่มต้นมีการเคลื่อนไหวทางใบหน้า การเคลื่อนไหวเริ่มต้นจะผสมผสานกับอารมณ์ของตัวละคร
สร้างอารมณ์
หากคุณมีโมเดลตัวละครที่มีหัวที่สามารถเคลื่อนไหวได้ คุณสามารถสร้างการเคลื่อนไหวอารมณ์ใดก็ได้ที่คุณคิดขึ้นโดยใช้ Face Animation Editor หากคุณไม่ต้องการใช้โมเดลอ้างอิง Blocky หรือ Goblin คุณสามารถสร้างหรือแก้ไขโมเดลที่มีอยู่เพื่อสนับสนุนหัวที่เคลื่อนไหวได้ในซอฟต์แวร์การสร้างโมเดลของบุคคลที่สาม เช่น Blender หรือ Maya สำหรับข้อมูลเกี่ยวกับวิธีการสร้างหัวที่สามารถเคลื่อนไหวได้ โปรดดูที่ สร้างหัวพื้นฐาน
ในการสร้างอารมณ์:
เพิ่มโมเดลตัวละครที่มีหัวที่สามารถเคลื่อนไหวได้ลงใน viewport
เปิด Face Animation Editor
- ใน viewport ให้เลือกโมเดลตัวละครที่มีหัวที่สามารถเคลื่อนไหวได้
ใน Face Animation Editor ปรับเลื่อนสำหรับส่วนต่าง ๆ ของใบหน้าที่คุณต้องการปรับเปลี่ยน แทร็กการเคลื่อนไหวสำหรับแต่ละส่วนใบหน้าที่คุณปรับเปลี่ยนจะแสดงขึ้นมาโดยอัตโนมัติใน track list พร้อมกับ keyframes สำหรับตำแหน่งปัจจุบันของคุณใน timeline ใบหน้าของตัวละครจะถูกอัปเดตใน viewport
- หากต้องการยกเลิกการเปลี่ยนแปลงในเลื่อน ให้กด CtrlZ (⌘Z)
- หากต้องการทำซ้ำการเปลี่ยนแปลงในเลื่อน ให้กด CtrlY (⌘Y)
- หากต้องการรีเซ็ตเลื่อนไปยังค่าดีฟอลต์ ให้คลิกขวาที่เลื่อน เมนูบริบทจะแสดงขึ้น เลือก Reset Selected
เมื่อคุณสร้างการเคลื่อนไหวเสร็จสิ้น ให้นำทางไปที่ Media and Playback Controls และคลิกที่ปุ่ม … เมนูป๊อปอัปจะแสดงขึ้น

เลือก Save หรือ Save As เพื่อบันทึกการเคลื่อนไหวอารมณ์ การเคลื่อนไหวจะแสดงในหน้าต่าง Explorer เป็นบุตรของวัตถุ AnimSaves (ซึ่งเป็นบุตรของ rig)

(เลือกทำ) หากต้องการกำหนด ID ของแอสเซทให้กับการเคลื่อนไหวอารมณ์ของคุณและบันทึกไปยัง Toolbox เพื่อใช้ในเกมของคุณ
ในหน้าต่าง Explorer ให้คลิกขวาที่การเคลื่อนไหวอารมณ์ใหม่ของคุณ เมนูบริบทจะแสดงขึ้น
เลือก Save to Roblox หน้าต่าง Asset Configuration จะแสดงขึ้น
กรอกข้อมูลในฟิลด์ต่อไปนี้:
- Title: ชื่อสำหรับปลั๊กอินของคุณ
- Description: คำบรรยายที่บรรยายถึงสิ่งที่ผู้ใช้ที่มีศักยภาพควรคาดหวังให้ปลั๊กอินทำ
- Creator: ผู้สร้างที่คุณต้องการระบุว่าเป็นผู้สร้างปลั๊กอิน
คลิกที่ปุ่ม Submit หลังจากนั้นสักครู่ กล่องโต้ตอบ Asset Configuration จะแสดง Animation.AnimationID ของอารมณ์ของคุณที่คุณสามารถใช้เพื่อตั้งค่าอารมณ์ให้กับตัวละครในเกมของคุณ

ตั้งค่าอารมณ์
ตัวละครทุกตัวที่มีหัวที่สามารถเคลื่อนไหวได้จะมี Animate LocalScript เป็นลูกพร้อมกับ mood StringValue ที่มีการเคลื่อนไหวอารมณ์ที่เล่นอยู่บนหัวของตัวละคร การเคลื่อนไหวอารมณ์เริ่มต้น Animation.AnimationID จะเล่นการเคลื่อนไหวยิ้ม แต่คุณสามารถเปลี่ยนอารมณ์ของตัวละครไปอย่างอื่นได้โดยการแก้ไข Animation.AnimationID ภายใน StringValue ของอารมณ์โดยตรง หรือใช้ระบบ HumanoidDescription

แก้ไข AnimationIds
คุณสามารถตั้งค่าอารมณ์เฉพาะสำหรับแต่ละตัวละครในเกมของคุณได้โดยการแก้ไข Animation.AnimationID ของอารมณ์เมื่อใดก็ตามที่ผู้ใช้เรียกใช้งานเหตุการณ์ ตัวอย่างเช่น สคริปต์ Script ต่อไปนี้จะแก้ไขอารมณ์ที่ตั้งไว้ก่อนหน้านี้ให้เป็นการเคลื่อนไหวที่ เปิดปากของตัวละคร ทันทีเมื่อผู้ใช้เข้าสู่เกม:
local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local animateScript = character:WaitForChild("Animate")
animateScript.mood.Animation1.AnimationId = "rbxassetid://7715145252" -- Mood
end
local function onPlayerAdded(player)
player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
ใช้ HumanoidDescription
คุณยังสามารถใช้ระบบ HumanoidDescription เพื่อค้นหาตัวละครของผู้ใช้และแก้ไข AnimationIDs ของการเคลื่อนไหวเริ่มต้นใด ๆ ตัวอย่างเช่น สคริปต์ Script ต่อไปนี้จะแก้ไขอารมณ์ที่ตั้งไว้ก่อนหน้านี้ให้เป็นการเคลื่อนไหวที่ให้ตัวละครมี ครึ่งยิ้ม บนซีกซ้ายของใบหน้าของพวกเขาเมื่อใดก็ตามที่ตัวละครของพวกเขาอยู่ในท่าเฉย:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.IdleAnimation = 10725833199-- Apply modified "descriptionClone" to humanoidhumanoid:ApplyDescription(descriptionClone)end
ปิดการใช้งานอารมณ์
เพื่อปิดการใช้งานอารมณ์จากเกมของคุณ คุณสามารถลบวัตถุอารมณ์ที่อยู่ใต้ Animate LocalScript ตัวอย่างเช่น สคริปต์ Script ต่อไปนี้จะลบ mood StringValue ของตัวละครทุกตัวทันทีที่พวกเขาเข้าร่วมเกม:
local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local animateScript = character:WaitForChild("Animate")
animateScript.mood:Destroy()
end
local function onPlayerAdded(player)
player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)