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の方向を確認できます)