ช่องเสียง

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

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

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

เปิดใช้งานช่องเสียง

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

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

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

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

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

  1. ในการนำทางด้านซ้ายของหน้าต่าง การตั้งค่าประสบการณ์ ให้เลือก สถานที่ ทุกสถานที่ภายในเกมของคุณจะแสดงขึ้น
  2. คลิกที่ปุ่ม ข้างสถานที่ที่มีผู้เล่นมากกว่า 100 คน แล้วเลือก กำหนดค่าสถานที่
  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 เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ