RobloxStudioでシンプルなボート(いかだ)を作成|Robloxゲーム作成メモ

RobloxStudioで「海面を移動する」シンプルなボートを作成するメモになります。ボートというよりはイカダに近いです。

移動する乗り物の基本的な仕組みになります。

はじめに

下記で、RobloxStudioで簡単な地形を作成を行いました。今回は、作成した地形(水の上)を動く簡単なイカダを作成していきます。

制作開始

まずは上記の記事を参考にして、簡単に地形(陸地・水)を作成します。

次に水の上にボートを浮かせます。

「Part」から「Block」を選択してスケールを変更してイカダのような形にします。

次にキャラクターが座る部分を作成します。「Part」の配下に「VehicleSeat」を追加します。「VehicleSeat」のプロパティの「Control」の値は下記のように仮にセットしておきます。

「VehicleSeat」の詳細は下記公式リファレンスが参考になります。

「VehicleSeat」の配下に「WeldConstraint」を追加して、Partsにセットします。

イカダを動くようにする

キー操作でイカダが動くようにしていきます。まずは前進、後退するようにします。「VehicleSeat」の配下に「VectorForce」を追加します。

「Part」の配下に「Attachment」を追加します。「Attachment」の位置をイカダの後ろの真ん中のあたりにします。

「VectorForce」の「Attachement0」にセットします。

「VectorForce」のForceの値を「0,1000,0」としてみます。矢印がイカダの後ろに向いていればOKです。

矢印の向きが後ろではない場合、「Attachment」の「Axis」、「SecondaryAxis」を変更します。

ここで、試しに実行してみます。

キャラクターが椅子に座り、キーボードのWASDを押した時に、Steer、Throttleの値が1,-1に変わればOKです。

スクリプトの作成

「Part」の配下に「Script」を追加します。

スクリプトの中身を下記に変更します。

local Part = script.Parent
local VehicleSeat = Part.VehicleSeat

VehicleSeat.Changed:Connect(function()
	VehicleSeat.VectorForce.Force = Vector3.new(0,-VehicleSeat.Throttle * 1000,0)
end)

キーボードのWキー、Sキーを押した時、Y方向に力が加わります。

矢印が後ろ向きなので「-VehicleSeat.Throttle」として向きを反転しています。

試しに実行してみて、Wキーを押した時に前進、Sキーを押した時に後退すればOKです。動かない場合は「VectorForceの矢印方向が合っているか」、「Wキーを押した時にThrottleの値が1になるか」、「Partがアンカーで固定されていないか」などを確認します。

イカダを回転させる

「VehicleSeat」の配下に「Torque」を追加します。

「Torque」の「Attachment0」をセットして、「Torque」の値を変更したときに回転方向を確認します。

理屈は「VectorForce」と同じです。キーボードのAキー、Dキーを押した時にイカダの後ろに回転力を加えるので、スクリプトを下記のように変更します。

local Part = script.Parent
local VehicleSeat = Part.VehicleSeat

local Force = VehicleSeat:WaitForChild("VectorForce")
local Torque = VehicleSeat:WaitForChild("Torque")

VehicleSeat.Changed:Connect(function()

	Force.Force = Vector3.new(0,-VehicleSeat.Throttle * 1000,0)
	Torque.Torque = Vector3.new(0,0,-VehicleSeat.Steer*1000)

end)

実行して下記のように動けばOKです。イカダの速度や回転力を変えたい場合は「1000」の部分を変更します。

「VectorForce」、「Torque」で力を加えて物体を移動してみました。速度を与える方法や、他のパーツを加えることでより細かい制御を行うことなども出来ます。

タイトルとURLをコピーしました