сделай скрипт для хоррора в роблокс студио
Created on: March 3, 2025
Created on: March 3, 2025
сделай скрипт для хоррора в роблокс студио
Ниже приведён пример простого сценария (Script) и локального сценария (LocalScript), которые вместе создают эффект «скримера» (jumpscare) в Roblox Studio. Скрипт вызывает удалённое событие (RemoteEvent) при касании определённого объекта (Part), а локальный скрипт на стороне игрока показывает пугающее изображение и воспроизводит звук. Скрипты написаны на Lua и предназначены для демонстрации – вы можете дорабатывать и изменять их в соответствии с вашими идеями для хоррора.
lualocal ReplicatedStorage = game:GetService("ReplicatedStorage") local JumpscareEvent = ReplicatedStorage:WaitForChild("JumpscareEvent") script.Parent.Touched:Connect(function(hit) -- Проверяем, действительно ли прикоснулась модель персонажа local humanoid = hit.Parent:FindFirstChild("Humanoid") if humanoid then local player = game.Players:GetPlayerFromCharacter(hit.Parent) if player then -- Запускаем событие на клиенте конкретного игрока JumpscareEvent:FireClient(player) end end end)
Что происходит: Когда какой-либо персонаж касается объекта (Part), скрипт ищет Humanoid в модели (это значит, что столкнулись именно персонаж/игрок, а не другой объект). Найдя Humanoid, он получает соответствующего игрока (player), а затем вызывает событие JumpscareEvent
именно для этого игрока, чтобы тот увидел скример (см. локальный скрипт ниже).
lualocal ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local player = Players.LocalPlayer local PlayerGui = player:WaitForChild("PlayerGui") -- Находим заранее созданное событие local JumpscareEvent = ReplicatedStorage:WaitForChild("JumpscareEvent") -- Создадим ScreenGui для отображения скримера local jumpscareGui = Instance.new("ScreenGui") jumpscareGui.Name = "JumpscareGui" jumpscareGui.ResetOnSpawn = false jumpscareGui.Parent = PlayerGui -- Фон (чёрная заливка на весь экран) local blackFrame = Instance.new("Frame") blackFrame.Size = UDim2.new(1, 0, 1, 0) blackFrame.BackgroundColor3 = Color3.new(0, 0, 0) blackFrame.BackgroundTransparency = 1 -- изначально невидим blackFrame.Parent = jumpscareGui -- Изображение «скримера» local scareImage = Instance.new("ImageLabel") scareImage.AnchorPoint = Vector2.new(0.5, 0.5) scareImage.Position = UDim2.new(0.5, 0, 0.5, 0) scareImage.Size = UDim2.new(0, 500, 0, 500) -- меняйте размер, если надо scareImage.BackgroundTransparency = 1 scareImage.Image = "rbxassetid://ВАШ_ИД_КАРТИНКИ" -- Укажите здесь ID своей картинки scareImage.ImageTransparency = 1 -- Изначально невидим scareImage.Parent = blackFrame -- Звук скримера local scareSound = Instance.new("Sound") scareSound.SoundId = "rbxassetid://ВАШ_ИД_ЗВУКА" -- Укажите ID звука из Roblox scareSound.Volume = 1 scareSound.Parent = player:WaitForChild("PlayerGui") -- Функция, реагирующая на событие local function onJumpscareFired() -- Плавно «проявляем» чёрный фон и картинку for transparency = 1, 0, -0.05 do blackFrame.BackgroundTransparency = transparency scareImage.ImageTransparency = transparency wait(0.02) end -- Воспроизводим звук scareSound:Play() -- Держим картинку на экране 2 секунды (при желании можно увеличить) wait(2) -- Плавно убираем for transparency = 0, 1, 0.05 do blackFrame.BackgroundTransparency = transparency scareImage.ImageTransparency = transparency wait(0.02) end end -- Подписываемся на событие: когда приходит FireClient, локальный скрипт запускает скример JumpscareEvent.OnClientEvent:Connect(onJumpscareFired)
Что происходит:
JumpscareEvent
локальный скрипт делает чёрный фон и картинку постепенно прозрачными (от 1 до 0), проигрывает звук, держит экран, а затем делает всё прозрачным вновь, возвращая обзор игроку.Где брать ImageId или SoundId
rbxassetid://...
.Регулировка скорости анимации
for transparency = 1, 0, -0.05 do ... end
вы можете настроить шаг (например, -0.1
вместо -0.05
) и задержку wait(0.02)
, чтобы сделать проявление резче или плавнее.Убедитесь, что все объекты правильно названы
Безопасность
Расширение
Таким образом, когда игрок наступит на указанный Part, сработает событие, а локальный скрипт для этого игрока отобразит экран скримера и воспроизведёт звук. Этот пример можно брать за основу и дополнять новыми идеями для создания полноценной хоррор-атмосферы в Roblox. Удачи в разработке!