How to create Cutscene on touch in Roblox Studio simple TUTORIAL!

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ธ.ค. 2024

ความคิดเห็น •

  • @Daniel_StalkYT
    @Daniel_StalkYT  2 วันที่ผ่านมา

    Here is the script! local player = game.Players.LocalPlayer
    local camera = workspace.CurrentCamera
    local runService = game:GetService("RunService")
    -- Знаходимо TriggerPart та камери
    local triggerPart = workspace:WaitForChild("TriggerPart")
    local cameraPositions = {
    workspace:WaitForChild("Camera1").CFrame, -- Перша камера
    workspace:WaitForChild("Camera2").CFrame, -- Друга камера
    workspace:WaitForChild("Camera3").CFrame, -- Третя камера
    workspace:WaitForChild("Camera4").CFrame -- Четверта камера
    }
    -- Час на кожний перехід
    local transitionTime = 2
    -- Перевірка на повторний запуск катсцени
    local cutscenePlaying = false
    -- Функція плавного переходу камери
    local function moveCamera(targetCFrame, duration)
    local startCFrame = camera.CFrame
    local elapsedTime = 0
    while elapsedTime < duration do
    runService.RenderStepped:Wait()
    elapsedTime = elapsedTime + runService.RenderStepped:Wait() -- Оновлення часу
    local alpha = math.clamp(elapsedTime / duration, 0, 1)
    camera.CFrame = startCFrame:Lerp(targetCFrame, alpha)
    end
    camera.CFrame = targetCFrame
    end
    -- Функція для запуску катсцени
    local function playCutscene()
    if cutscenePlaying then return end -- Перевірка, чи вже грається катсцена
    cutscenePlaying = true
    -- Зберігаємо початковий тип камери
    local originalCameraType = camera.CameraType
    local character = player.Character or player.CharacterAdded:Wait()
    local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
    -- Встановлюємо камеру в Scriptable
    camera.CameraType = Enum.CameraType.Scriptable
    -- Запуск послідовності камер
    for _, camPos in ipairs(cameraPositions) do
    moveCamera(camPos, transitionTime)
    end
    -- Повертаємо камеру назад до гравця
    moveCamera(humanoidRootPart.CFrame * CFrame.new(0, 2, 10), transitionTime)
    -- Повертаємо камеру в початковий режим
    camera.CameraType = originalCameraType
    cutscenePlaying = false
    end
    -- Обробник доторкання до TriggerPart
    triggerPart.Touched:Connect(function(hit)
    if hit.Parent:FindFirstChild("Humanoid") then
    local playerCharacter = game.Players:GetPlayerFromCharacter(hit.Parent)
    if playerCharacter == player then
    playCutscene()
    end
    end
    end)
    Follow our Discord Server for more tutorials and free models!