Цель
Сделать две области с самостоятельными звуками без одновременной громкой музыки
Подготовка
Workspace → ForestZone и CaveZone (Anchored Part, Transparency=1, CanCollide=false), оба размера 30×14×30. SoundService → ForestSound и CaveSound (доступные SoundId); StarterPlayer → StarterPlayerScripts → LocalScript.
Пошаговая работа
- Подготовь две зоны, не накладывающиеся друг на друга; вставь свои разрешённые аудио ID.
- У обоих Sound поставь Looped=true, Volume=0 и Playing=true.
- Добавь LocalScript для определения позиции игрока и плавного изменения громкости.
- Перейди из леса в пещеру, затем выйди из обеих зон.
Пример Luau
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local SoundService = game:GetService("SoundService")
local player = Players.LocalPlayer
local zones = {
{part = workspace:WaitForChild("ForestZone"), sound = SoundService:WaitForChild("ForestSound")},
{part = workspace:WaitForChild("CaveZone"), sound = SoundService:WaitForChild("CaveSound")},
}
local function inside(part, position)
local p = part.CFrame:PointToObjectSpace(position)
local half = part.Size * 0.5
return math.abs(p.X) <= half.X and math.abs(p.Y) <= half.Y and math.abs(p.Z) <= half.Z
end
for _, z in ipairs(zones) do z.sound.Volume = 0; z.sound.Looped = true; z.sound:Play() end
local active = nil
while task.wait(0.35) do
local char = player.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local nextZone = nil
if root then
for _, z in ipairs(zones) do if inside(z.part, root.Position) then nextZone = z; break end end
end
if nextZone ~= active then
active = nextZone
for _, z in ipairs(zones) do
TweenService:Create(z.sound, TweenInfo.new(0.6), {Volume = z == active and 0.45 or 0}):Play()
end
end
endПроверка
Пройди три состояния: лес, пещера, вне зон; проверь, что музыка из другой зоны затихает.
В каждой зоне звучит своя атмосфера; вне зон обе записи тихие. При перекрытии зон приоритет у ForestZone.
Ошибка и ограничения
Не используй чужие недоступные аудиофайлы. Если звук не слышен, проверь разрешения аудио и SoundId.
Усложнение
Добавь третью зону и обсуди приоритет областей при пересечении.
Проверь пример в тестовой Roblox Studio перед публикацией. Используй отдельные копии проектов и соблюдай права на аудио и анимации.
