メインコンテンツまでスキップ

Roblox 2D ゲームクイックスタート

カメラと動きの制限

今回は StarterPlayer/StarterCharacterScriptsCameraScript をローカルスクリプト (LocalScript) として追加します。

  • プレイヤーの動作を左右方向のみに制限する
  • カメラをプレイヤーへの追随ではなくスクリプト制御 (Scriptable) にしプレイヤーの位置に手動で追随させる

alt text

CameraScript
local Camera = game.Workspace.CurrentCamera
local ContextActionService = game:GetService("ContextActionService")
local RunService = game:GetService("RunService")

local Character = script.Parent
local RootPart = Character:WaitForChild("HumanoidRootPart")

local ZpositionOffset = 30

-- 前後の動きを停止
ContextActionService:UnbindAction("moveForwardAction")
ContextActionService:UnbindAction("moveBackwardAction")

RunService.RenderStepped:Connect(function()
-- カメラをスクリプト制御に変更
Camera.CameraType = Enum.CameraType.Scriptable
-- カメラの位置をプレイヤーの RootPart を基準に設定
-- ZpositionOffset でどの程度プレイヤーから手前に距離を出すかを決める
Camera.CFrame = CFrame.new(RootPart.Position.x, RootPart.Position.y + 1, RootPart.Position.z + ZpositionOffset)
end)

マップ

alt text

CameraScript の方で ZpositionOffset としていたように、Z マイナス方向にカメラを固定するようにしています。

よって、上記のように Z軸を基準にマップを作成します。(右上でXYZの方向を確認できます)