完成動画
はじめに
横スクロールアクションゲームを作成する際、カメラの追従 や プレイヤーの操作制限 を設定することは重要です。本記事では、Roblox Studioで 横スクロール仕様のカメラ を実装し、プレイヤーの操作をA/Dキーとジャンプのみに制限 する方法を紹介します。
実装する機能
- カメラの追従(プレイヤーの横移動に合わせて動く)
- プレイヤーの移動制限(W/Sキーまたは↑/↓キーを無効化)
スクリプトの説明
以下の LocalScript を StarterPlayerScripts
に配置してください。
local camera = workspace.CurrentCamera
local player = game.Players.LocalPlayer
local UserInputService = game:GetService("UserInputService")
camera.CameraType = Enum.CameraType.Scriptable -- スクリプトでカメラを制御可能にする
local function updateCamera()
if player.Character then
local root = player.Character:FindFirstChild("HumanoidRootPart")
if root then
camera.CFrame = CFrame.new(root.Position + Vector3.new(-20, 0, 0), root.Position) -- 横からキャラクターを見る
end
end
end
-- キャラクターがスポーンしたときにカメラを適用
local function onCharacterAdded(character)
camera.CameraType = Enum.CameraType.Scriptable
game:GetService("RunService").RenderStepped:Connect(updateCamera)
end
player.CharacterAdded:Connect(onCharacterAdded)
-- WキーとSキーが押されている間、プレイヤーのWalkSpeedを0にする(移動禁止)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Up or input.KeyCode == Enum.KeyCode.Down then
if player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid.WalkSpeed = 0
end
end
end)
UserInputService.InputEnded:Connect(function(input, gameProcessed)
if input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Up or input.KeyCode == Enum.KeyCode.Down then
if player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid.WalkSpeed = 16 -- 元の値に戻す
end
end
end)
-- すでにキャラクターが存在する場合は即座に適用
if player.Character then
onCharacterAdded(player.Character)
end
スクリプトのポイント
1. 横スクロール仕様のカメラ
CameraType
をScriptable
に設定し、スクリプトでカメラを制御。updateCamera
関数で、プレイヤーの移動に合わせてカメラを追従。Vector3.new(-20, 0, 0)
でカメラの位置を調整。
2. プレイヤーの操作制限
UserInputService
を使用して、W/Sキー(↑/↓キー)を押したときに速度を0にする。InputBegan
で キーが押されたらWalkSpeed
を 0 に。InputEnded
で キーを離したらWalkSpeed
を元の 16 に戻す。
まとめ
このスクリプトを使用すれば、横スクロールゲームの基本的なカメラ挙動とプレイヤー操作の制限 を簡単に実装できます。今後は 背景スクロールや障害物の配置 などを追加して、より本格的なゲームに仕上げていきましょう!
コメント