การสนทนาด้วยเสียง

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

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

ผู้ใช้สองคนสนทนาด้วยเสียงภายในเกม.

เปิดใช้งานการสนทนาด้วยเสียง

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

ในการเปิดใช้งานเสียงสำหรับเกมที่มีอยู่หรือปิดใช้งานสำหรับเกมใหม่:

  1. เปิดเกมของคุณใน Studio
  2. เปิด ไฟล์การตั้งค่าประสบการณ์
  3. ไปที่แท็บ การสื่อสาร ที่ด้านซ้ายของหน้าต่าง
  4. เปลี่ยน เปิดใช้งานการสนทนาด้วยเสียง เป็นการตั้งค่าที่คุณต้องการ
  5. ทางเลือก
    เพื่อการสื่อสารที่ดีกว่าระหว่างผู้เล่นภายในเกมของคุณ ให้เปิดใช้งาน เปิดใช้งานกล้อง เพื่อให้ผู้เล่นที่มีสิทธิ์สามารถเคลื่อนไหวอวตารของตนได้
  6. เผยแพร่ สถานที่เพื่อบันทึกการเปลี่ยนแปลง

ตั้งค่าผู้เล่นสูงสุด

หากคุณตั้งค่าจำนวนผู้เล่นสูงสุดในสถานที่มากกว่า 100 คุณจะต้องลดจำนวนลงเพื่อรองรับการสนทนาด้วยเสียง

  1. เลือกเกมใน แดชบอร์ดผู้สร้าง และไปที่ กำหนดค่าสถานที่
  2. เลือกสถานที่ที่ต้องการและไปที่การเข้าถึงในคอลัมน์ด้านซ้าย
  3. สำหรับ จำนวนผู้เข้าชมสูงสุด ให้ป้อนหมายเลขที่น้อยกว่าหรือเท่ากับ 100
  4. คลิกที่ปุ่ม บันทึกการเปลี่ยนแปลง

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

ปรับแต่งพฤติกรรมเสียง

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

หาก VoiceChatService ไม่ปรากฏอยู่แล้ว:

  1. คลิกขวาในหน้าต่าง Explorer และเลือก แสดง บริการ… จากเมนูบริบท

  2. เลือก VoiceChatService ในหน้าต่างป๊อปอัปและคลิก แทรก บริการจะปรากฏในลำดับชั้น Explorer

    VoiceChatService ในลำดับชั้น Explorer
  3. เมื่อเลือก VoiceChatService ให้ตรวจสอบว่า UseAudioApi เป็น Enabled ในหน้าต่าง คุณสมบัติ ซึ่งอาจทำให้คุณเสร็จสิ้นแล้ว

ตามทีม

ในการดำเนินการสนทนาที่อิงตาม Team ซึ่งผู้เล่นในทีมเท่านั้นที่สามารถได้ยินกันและกัน คุณสามารถใช้ Script ต่อไปนี้ภายใน ServerScriptService:

การสนทนาตามทีม
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- สมมติว่ามี AudioDeviceInput เพียงหนึ่งตัวต่อผู้เล่น ซึ่งเป็นลูกของวัตถุ Player
-- สิ่งนี้จะถูกจัดเตรียมให้คุณหาก VoiceChatService.EnableDefaultVoice เป็นจริง
-- อาจต้องปรับปรุงเพื่อความทั่วไปหากสถานที่ของคุณวาง AudioDeviceInput ไว้ที่อื่น
return forPlayer:FindFirstChildWhichIsA("AudioDeviceInput")
end
local function onTeamChanged(player : Player)
local team = player.Team
if not team then return end
local device = findAudioInput(player)
if not device then return end
-- อนุญาตให้สมาชิกในทีมได้ยินกันเท่านั้น
device.AccessType = Enum.AccessModifierType.Allow
local allowed = {}
for _, player : Player in team:GetPlayers() do
table.insert(allowed, player.UserId)
end
device:SetUserIdAccessList(allowed)
end
local function onTeamAdded(team : Team)
team.PlayerAdded:Connect(onTeamChanged)
team.PlayerRemoved:Connect(onTeamChanged)
end
for _, team : Team in Teams:GetTeams() do
onTeamAdded(team)
end
Teams.ChildAdded:Connect(function(child : Instance)
if child:IsA("Team") then
onTeamAdded(child)
end
end)

ไม่ตามพื้นที่

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

การสนทนาแบบไม่ตามระยะ
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance)
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = source
end
-- ตั้งค่าตัวควบคุมระดับเสียงทั่วโลกสำหรับเสียงของทุกคน
local volumeSlider = Instance.new("AudioFader", Workspace)
local output = Instance.new("AudioDeviceOutput", Workspace)
wireUp(volumeSlider, output)
local function onPlayerAdded(player : Player)
local device = Instance.new("AudioDeviceInput", player)
device.Player = player
-- ส่งข้อมูลไมโครโฟนของผู้เล่นใหม่แต่ละคนไปยังตัวควบคุมระดับเสียงทั่วโลก
wireUp(device, volumeSlider)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
LocalScript
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onDescendantAdded(descendant : Instance)
if descendant:IsA("Wire") then
descendant:Destroy()
end
end
for _, descendant in player:GetDescendants() do
onDescendantAdded(descendant)
end
player.DescendantAdded:Connect(onDescendantAdded)

ปิดใช้งานต่อสถานที่

หากคุณไม่ต้องการเปิดใช้งานการสนทนาด้วยเสียงสำหรับทุกสถานที่ภายในเกมของคุณ คุณสามารถปิดใช้งานในสถานที่เฉพาะที่อาจมีสิทธิ์ในการสนทนาด้วยเสียง

ในการปิดใช้งานการสนทนาด้วยเสียงสำหรับสถานที่เฉพาะภายในเกม:

  1. คลิกขวาในหน้าต่าง Explorer และเลือก แสดง บริการ… จากเมนูบริบท

  2. เลือก VoiceChatService ในหน้าต่างป๊อปอัปและคลิก แทรก บริการจะปรากฏในลำดับชั้น Explorer

    VoiceChatService ในลำดับชั้น Explorer
  3. เมื่อเลือก VoiceChatService ให้ปิดใช้งาน EnableDefaultVoice ในหน้าต่าง คุณสมบัติ

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

ตรวจสอบสถานะ

คุณสามารถตรวจสอบว่าผู้เล่นเปิดใช้งานการสนทนาด้วยเสียงหรือไม่โดยการเรียกใช้ IsVoiceEnabledForUserIdAsync() ใน LocalScript หรือใน Script ที่มี RunContext ตั้งค่าเป็น Enum.RunContext.Client

สคริปต์ไคลเอนต์ - ตรวจสอบสถานะการสนทนาด้วยเสียง
local Players = game:GetService("Players")
local VoiceChatService = game:GetService("VoiceChatService")
local localPlayer = Players.LocalPlayer
local success, enabled = pcall(function()
return VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId)
end)
if success and enabled then
print("การสนทนาด้วยเสียงเปิดใช้งานแล้ว!")
end
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ