ロブロックス(Roblox)スタジオの飛行機の作り方|離陸・旋回・着陸までできる飛行機を画像で解説

制作手順難易度: 上級所要時間: 約60分(目安)情報確認日: 2026年10月30日

「ロブロックスで空を飛べる飛行機を作りたい」「配布の飛行機ではなく、自分で一から作ってみたい」

ロブロックス(Roblox)スタジオで、座って操縦できる飛行機の作り方を、実際の画像付きで誰でも簡単に分かるように解説します。配布モデルは使わず、「+」で入れた部品だけで作ります。滑走路を走って浮き上がり、傾きながら曲がり、遅くすると下りて着地するところまで動かします。

上級ステップ18/40 前の記事:ロブロックス(Roblox)スタジオの電車の作り方 全体の順番を見る

使うもの:Roblox Studioが起動するパソコン、マウス、キーボード。座って操作する席(VehicleSeat)は車の作り方と電車の作り方でも使いました。

先に答え

知りたいこと答え
どうやって前に進む?胴体に入れた LinearVelocity(決めた速さで動かし続ける部品)に、スクリプトが毎回「進む向きと速さ」を入れる
どうやって向きを変える?胴体に入れた AlignOrientation(決めた向きに回す部品)に、スクリプトが「向きたい向き」を入れる
どうやって操縦する?座席の VehicleSeat に座ってWキーで速く、Sキーで遅く、Aキー・Dキーで左右に曲がる
どうやって浮き上がる?速さが40以上になると機首を上げて上昇する。40より遅くすると、ゆっくり下りて着地する

今回の完成状態:座席に座ってWキーを押すと、滑走路を走って浮き上がります。下の画像のように、Aキー・Dキーで機体を傾けながら曲がれれば成功です。

作るものと流れ

名前種類置く場所役目
RunwayPartWorkspace滑走路
PlaneModelWorkspace飛行機をまとめる入れ物
BodyPartPlaneの中胴体。進める部品と向きを変える部品を入れる
Wings・TailPartPlaneの中主翼と尾翼
DriverSeatVehicleSeatPlaneの中座席。座るとW・A・S・Dキーで操縦できる
WeldConstraintWeldConstraintWings・Tail・DriverSeatの中に1つずつその部品を胴体にくっつける
FlyAttachmentAttachmentBodyの中2つの部品が力をかける場所の印
ThrustLinearVelocityBodyの中飛行機を、決めた向きと速さで動かす
SteerAlignOrientationBodyの中飛行機を、決めた向きに回す
FlyScriptScriptPlaneの中座席の操作を見て、速さと向きを毎回決める

1. 滑走路を作る

新しいBaseplateを開きます。エクスプローラの「Workspace」にマウスを乗せて、右に出る「+」を押します(赤い枠)。

一覧の検索欄に「Part」と入れて、一覧の「Part」を押します(赤い枠)。

Workspaceの中にPartが入ります。エクスプローラでPartを選んだままF2キーを押し、名前を「Runway」に変えます(赤い枠)。

続けてRunwayを選んだまま、次の4つのプロパティを1つずつ変えます。

プロパティ値理由
Size24, 1, 240幅24、長さ240スタッドの滑走路にする
Position(▼CFrameのすぐ下)0, 0.5, -140スタートの台の前から奥へのばす
Color70, 70, 70濃い灰色にする(BrickColorは「Dark taupe」になる)
Anchoredチェックを入れる滑走路が動かないように固定する
  1. プロパティの検索欄に「Size」と入れ、名前がちょうど「Size」の欄に「24, 1, 240」と入れてEnterキーを押します(下の1枚目)
  2. 検索欄に「Position」と入れ、3つ並ぶうちのいちばん上、「▼CFrame」のすぐ下のPositionに「0, 0.5, -140」と入れてEnterキーを押します(下の2枚目)
  3. 検索欄に「Color」と入れ、名前がちょうど「Color」の欄の右の数字を押して「70, 70, 70」と入れ、Enterキーを押します(下の3枚目)
  4. 検索欄に「Anchored」と入れ、右の四角を押してチェックを入れます(下の4枚目)

2. 飛行機の形を作る

飛行機の入れ物(Plane)

  1. エクスプローラの「Workspace」にマウスを乗せて「+」を押し、一覧の検索欄に「Model」と入れて「Model」を押します(下の1枚目)
  2. エクスプローラでModelを選んだままF2キーを押し、名前を「Plane」に変えます(下の2枚目)

胴体(Body)

プロパティ値理由
Size4, 3, 14前後に長い胴体にする
Position(▼CFrameのすぐ下)0, 3, -40滑走路の上に置く
Color240, 240, 240白にする(BrickColorは「White」になる)
Anchoredチェックを外したまま固定すると飛ばない(「+」で入れたときは外れている)
  1. エクスプローラの「Plane」にマウスを乗せて「+」を押し、一覧の検索欄に「Part」と入れて「Part」を押します(下の1枚目)
  2. エクスプローラでPartを選んだままF2キーを押し、名前を「Body」に変えます(下の2枚目)
  3. Bodyを選んだまま、プロパティの検索欄に「Size」と入れ、名前がちょうど「Size」の欄に「4, 3, 14」と入れてEnterキーを押します(下の3枚目)
  4. 検索欄に「Position」と入れ、「▼CFrame」のすぐ下のPositionに「0, 3, -40」と入れてEnterキーを押します(下の4枚目)
  5. 検索欄に「Color」と入れ、名前がちょうど「Color」の欄の右の数字を押して「240, 240, 240」と入れ、Enterキーを押します(下の5枚目)
  6. 検索欄に「Anchored」と入れ、チェックが外れていることを確かめます(下の6枚目)

主翼(Wings)

プロパティ値理由
Size24, 0.6, 5左右に長い、うすい翼にする
Position(▼CFrameのすぐ下)0, 3.5, -41胴体のまん中より少し前に、横向きに通す
Color0, 90, 200青にする(BrickColorは「Deep blue」になる)
Anchoredチェックを外したまま胴体といっしょに飛ばすため
  1. エクスプローラの「Plane」にマウスを乗せて「+」を押し、一覧の検索欄に「Part」と入れて「Part」を押します(下の1枚目)
  2. エクスプローラでPartを選んだままF2キーを押し、名前を「Wings」に変えます(下の2枚目)
  3. Wingsを選んだまま、プロパティの検索欄に「Size」と入れ、名前がちょうど「Size」の欄に「24, 0.6, 5」と入れてEnterキーを押します(下の3枚目)
  4. 検索欄に「Position」と入れ、「▼CFrame」のすぐ下のPositionに「0, 3.5, -41」と入れてEnterキーを押します(下の4枚目)
  5. 検索欄に「Color」と入れ、名前がちょうど「Color」の欄の右の数字を押して「0, 90, 200」と入れ、Enterキーを押します(下の5枚目)。Anchoredは外れたままです

尾翼(Tail)

プロパティ値理由
Size0.6, 4, 3縦に立つ、うすい板にする
Position(▼CFrameのすぐ下)0, 6.5, -34.5胴体の後ろのはしの上に立てる
Color0, 90, 200主翼と同じ青にする(BrickColorは「Deep blue」になる)
Anchoredチェックを外したまま胴体といっしょに飛ばすため
  1. エクスプローラの「Plane」にマウスを乗せて「+」を押し、一覧の検索欄に「Part」と入れて「Part」を押します(下の1枚目)
  2. エクスプローラでPartを選んだままF2キーを押し、名前を「Tail」に変えます(下の2枚目)
  3. Tailを選んだまま、プロパティの検索欄に「Size」と入れ、名前がちょうど「Size」の欄に「0.6, 4, 3」と入れてEnterキーを押します(下の3枚目)
  4. 検索欄に「Position」と入れ、「▼CFrame」のすぐ下のPositionに「0, 6.5, -34.5」と入れてEnterキーを押します(下の4枚目)
  5. 検索欄に「Color」と入れ、名前がちょうど「Color」の欄の右の数字を押して「0, 90, 200」と入れ、Enterキーを押します(下の5枚目)。Anchoredは外れたままです

座席(DriverSeat)

プロパティ値理由
Position(▼CFrameのすぐ下)0, 5, -42胴体の上の、主翼のあたりに乗せる

座席の向きは変えません。「+」で入れたVehicleSeatは、座った人が胴体の前(滑走路の奥)を向く向きで入ります。

  1. エクスプローラの「Plane」にマウスを乗せて「+」を押し、一覧の検索欄に「VehicleSeat」と入れて「VehicleSeat」を押します(下の1枚目)
  2. エクスプローラでVehicleSeatを選んだままF2キーを押し、名前を「DriverSeat」に変えます(下の2枚目)
  3. DriverSeatを選んだまま、プロパティの検索欄に「Position」と入れ、「▼CFrame」のすぐ下のPositionに「0, 5, -42」と入れてEnterキーを押します(下の3枚目)

3. 翼と座席を胴体にくっつける

主翼・尾翼・座席は、それぞれWeldConstraint(2つの部品をくっつける部品)で胴体につなぎます。WeldConstraintは、Part0とPart1に入れた2つの部品を、今の位置のまま1つの物のように動かします。

主翼をくっつける

  1. エクスプローラの「Wings」にマウスを乗せて「+」を押し、一覧の検索欄に「WeldConstraint」と入れて「WeldConstraint」を押します(下の1枚目)
  2. エクスプローラでWeldConstraintを選んだまま、プロパティの検索欄に「Part0」と入れます。右の空の欄を押してから、エクスプローラの「Wings」を押します(下の2枚目)
  3. 検索欄に「Part1」と入れ、右の空の欄を押してから、エクスプローラの「Body」を押します(下の3枚目)

尾翼をくっつける

  1. エクスプローラの「Tail」にマウスを乗せて「+」を押し、一覧の検索欄に「WeldConstraint」と入れて「WeldConstraint」を押します(下の1枚目)
  2. エクスプローラでTailの中のWeldConstraintを選んだまま、プロパティの検索欄に「Part0」と入れます。右の空の欄を押してから、エクスプローラの「Tail」を押します(下の2枚目)
  3. 検索欄に「Part1」と入れ、右の空の欄を押してから、エクスプローラの「Body」を押します(下の3枚目)

座席をくっつける

  1. エクスプローラの「DriverSeat」にマウスを乗せて「+」を押し、一覧の検索欄に「WeldConstraint」と入れて「WeldConstraint」を押します(下の1枚目)
  2. エクスプローラでDriverSeatの中のWeldConstraintを選んだまま、プロパティの検索欄に「Part0」と入れます。右の空の欄を押してから、エクスプローラの「DriverSeat」を押します(下の2枚目)
  3. 検索欄に「Part1」と入れ、右の空の欄を押してから、エクスプローラの「Body」を押します(下の3枚目)

4. 進める部品と向きを変える部品を入れる

胴体に印(FlyAttachment)を入れ、その印に、飛行機を進める部品と向きを変える部品をつなぎます。

  • LinearVelocityは、つないだ部品を決めた速さで動かし続けるように力をかけます(Robloxの公式の説明による働きです)
  • AlignOrientationは、つないだ印の向きを、決めた向きにそろえるように回します(Robloxの公式の説明による働きです)

どちらも「どの向きに、どれだけの速さで」「どちらを向くか」はスクリプトが毎回入れます。

力をかける印(FlyAttachment)

  1. エクスプローラの「Body」にマウスを乗せて「+」を押し、一覧の検索欄に「Attachment」と入れて「Attachment」を押します(下の1枚目)
  2. エクスプローラでAttachmentを選んだままF2キーを押し、名前を「FlyAttachment」に変えます(下の2枚目)。Positionは「0, 0, 0」のまま変えません

進める部品(Thrust)

プロパティ値理由
Attachment0FlyAttachment胴体の印に力をかける
MaxForce1000000押す力の上限。入れたときは1000になっている
  1. エクスプローラの「Body」にマウスを乗せて「+」を押し、一覧の検索欄に「LinearVelocity」と入れて「LinearVelocity」を押します(下の1枚目)
  2. エクスプローラでLinearVelocityを選んだままF2キーを押し、名前を「Thrust」に変えます(下の2枚目)
  3. Thrustを選んだまま、プロパティの検索欄に「Attachment0」と入れます。右の空の欄を押してから、エクスプローラのBodyの中の「FlyAttachment」を押します(下の3枚目)
  4. 検索欄に「MaxForce」と入れ、右の欄に「1000000」と入れてEnterキーを押します(下の4枚目)

向きを変える部品(Steer)

プロパティ値理由
ModeOneAttachment(一覧から選ぶ)印1つだけを、スクリプトが決めた向きにそろえる
Attachment0FlyAttachment胴体の印を回す
MaxTorque1000000回す力の上限
Responsiveness20決めた向きに回る早さ。公式の説明では5から200まで入れられる
  1. エクスプローラの「Body」にマウスを乗せて「+」を押し、一覧の検索欄に「AlignOrientation」と入れて「AlignOrientation」を押します(下の1枚目)
  2. エクスプローラでAlignOrientationを選んだままF2キーを押し、名前を「Steer」に変えます(下の2枚目)
  3. Steerを選んだまま、プロパティの検索欄に「Mode」と入れ、右の「TwoAttachment」を押して開く一覧から「OneAttachment」を押します(下の3枚目)
  4. 検索欄に「Attachment0」と入れます。右の空の欄を押してから、エクスプローラのBodyの中の「FlyAttachment」を押します(下の4枚目)
  5. 検索欄に「MaxTorque」と入れ、右の欄に「1000000」と入れてEnterキーを押します(下の5枚目)
  6. 検索欄に「Responsiveness」と入れ、右の欄に「20」と入れてEnterキーを押します(下の6枚目)

5. 操縦のスクリプトを入れる

FlyScript

  1. エクスプローラの「Plane」にマウスを乗せて「+」を押し、一覧の検索欄に「Script」と入れて「Script」を押します(下の1枚目)
  2. エクスプローラでScriptを選んだままF2キーを押し、名前を「FlyScript」に変えます(下の2枚目)
  3. FlyScriptを選んだまま、プロパティの検索欄に「RunContext」と入れ、「Legacy」になっていることを確かめます(下の3枚目)。RunContextはスクリプトが動く場所の設定で、Workspaceの中のScriptはLegacyのままでサーバーで動きます

3D画面の上のタブ「FlyScript」を押して、スクリプトの画面を出します。中身を全部消して、次のコードを貼り付けます(コードの画面の中を押してからCtrl + Aキーで全部選び、Deleteキーで消します)。

-- 飛行機を飛ばすスクリプト
local plane = script.Parent
local body = plane:WaitForChild("Body")
local seat = plane:WaitForChild("DriverSeat")
local thrust = body:WaitForChild("Thrust")
local steer = body:WaitForChild("Steer")

local MAX_SPEED = 60 -- いちばん速いときの速さ
local ACCEL = 10 -- 1秒ごとに速くなる量
local TAKEOFF_SPEED = 40 -- この速さをこえると浮き上がる
local TURN_SPEED = math.rad(45) -- 1秒に曲がる角度
local CLIMB_ANGLE = math.rad(12) -- 上がるときの機首の角度
local MAX_HEIGHT = 60 -- これより高くは上がらない
local SINK_SPEED = 6 -- 遅くしたときに下りる速さ

local speed = 0
local _, yaw, _ = body.CFrame:ToOrientation()

local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = { plane }
rayParams.FilterType = Enum.RaycastFilterType.Exclude

game:GetService("RunService").Heartbeat:Connect(function(dt)
	speed = math.clamp(speed + seat.ThrottleFloat * ACCEL * dt, 0, MAX_SPEED)
	local onGround = workspace:Raycast(body.Position, Vector3.new(0, -4, 0), rayParams) ~= nil

	if speed > 10 then
		yaw = yaw - seat.SteerFloat * TURN_SPEED * dt
	end
	local turnCFrame = CFrame.Angles(0, yaw, 0)

	local pitch = 0
	local roll = 0
	local velocity
	if speed >= TAKEOFF_SPEED then
		if body.Position.Y < MAX_HEIGHT then
			pitch = CLIMB_ANGLE
		end
		roll = -seat.SteerFloat * math.rad(25)
		velocity = (turnCFrame * CFrame.Angles(pitch, 0, 0)).LookVector * speed
	elseif onGround then
		velocity = turnCFrame.LookVector * speed + Vector3.new(0, -2, 0)
	else
		pitch = -math.rad(8)
		velocity = turnCFrame.LookVector * speed + Vector3.new(0, -SINK_SPEED, 0)
	end

	steer.CFrame = turnCFrame * CFrame.Angles(pitch, 0, roll)
	thrust.VectorVelocity = velocity
end)
コードの部分していること
seat.ThrottleFloat座席でWキーを押すと1、Sキーで-1、何もしないと0になる数。speed を少しずつ変える。speedは0より小さくならないので、Sキーを押し続けても後ろへは進まない
seat.SteerFloatDキーで1、Aキーで-1、何もしないと0になる数。yaw(左右の向き)を少しずつ変える
TURN_SPEED1秒に曲がる角度。TURN_SPEEDで決めた45度を8秒続けると、1周する
if speed > 10 then速さが10以下のときは、Aキー・Dキーを押しても曲がらない
MAX_SPEEDいちばん速いときの速さ。MAX_SPEEDで決めた60は、1秒に60スタッド進む速さ
ACCEL1秒ごとに速さが変わる量。ACCELで決めた10なら、止まった状態から4秒で40になる
TAKEOFF_SPEEDTAKEOFF_SPEEDで決めた40以上になると、機首をCLIMB_ANGLEで決めた12度上げて上昇する
MAX_HEIGHT胴体の高さが、MAX_HEIGHTで決めた60より上になると、上昇をやめてまっすぐ飛ぶ
SINK_SPEEDTAKEOFF_SPEEDより遅く、地面の上にいないとき、SINK_SPEEDで決めた6スタッドずつ1秒に下りる
onGround胴体の真下4スタッド以内に何かがあるか。地面の上にいるかどうかを見る
steer.CFrameSteer(AlignOrientation)が向く向き。左右の向き・機首の上げ下げ・傾きを入れる
thrust.VectorVelocityThrust(LinearVelocity)で動かす向きと速さ
game:GetService("RunService").Heartbeat1秒に何十回も、くり返し中の処理を行う。dt は前の回からの時間(秒)

6. テストで飛ばす

座席に座る

3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。

座席は胴体の上にあるので、胴体に乗ってから座席に触れます。

  1. Wキーを押して、飛行機の後ろまで歩きます(下の1枚目)
  2. 尾翼の横に立ち、Spaceキーでジャンプして胴体の上に乗ります(下の2枚目)。尾翼は胴体のまん中に立っているので、少し右か左にずれてからジャンプします
  3. 胴体の上でWキーを押して前へ歩き、座席に触れると座れます。座ると、画面の下に「速度」の表示が出ます(下の3枚目)

3枚目は、座席に向かって歩いたWキーで少し進み、速度が2になっています。ジャンプしても胴体に乗れなかったり、座席の上に立ってしまったりしたときは、いったん下りてやり直します。座席の上に立っても座れません。胴体の上を歩いて、座席の後ろから触れると座れます。

離陸して曲がる

Wキーを押し続けると、滑走路を走って速くなります(下の1枚目)。速さが40以上になると、機首が上がって浮き上がります(下の2枚目)。そのまま上昇を続けます(下の3枚目)。

空を飛んでいるあいだにAキーを押すと、機体が左に傾きながら左へ曲がります。Dキーなら右です。指を離すと傾きがもどり、まっすぐ飛びます。

以下は、アソビシフト編集部が試した結果です。Wキーを押し続けると、速度の表示は60で止まりました。高さは、MAX_HEIGHTで決めた60を少しこえた所で上昇をやめ、まっすぐ飛び続けました。Aキーを8秒押し続けると、ほぼ1周して元の向きに戻りました。TURN_SPEEDで決めた1秒に45度を8秒続けると、360度になるためです。

着地する

Sキーを押して速さを40より遅くすると、機首が少し下がり、ゆっくり下りていきます(下の1枚目)。地面に着くと、そのまま滑走路や地面の上を走ります(下の2枚目)。止まるときは、Sキーを押し続けて速度を0にします。Sキーを押し続けても、後ろへは進みません。

以下は、アソビシフト編集部が試した結果です。Wキーで上昇してからAキーで半周し、Sキーで速度を30ほどに下げると、少しずつ下りて地面に着き、速度30前後のまま地面の上を走りました。

地面(Baseplate)の外へ出ると、下に何もないので着地できず、遅くしても下り続けます。編集部の試しでも、まっすぐ飛び続けると地面の外へ出て、下り続けました。遠くまで行ったら、Aキー・Dキーで曲がって戻ってから下ります。地面の外へ落ちたときは、Shift + F5キーでテストを停止します。3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでもう一度テストを始めます(タブの名前はパソコンによって違います)。

確かめ終わったら、Shift + F5キーでテストを停止します。

7. 完成した飛行機

テストを止めたあとの3D画面です。胴体の上に座席、横に主翼、後ろに尾翼が付いています。

8. 飛行機が飛ばないときに確かめる所

以下は、アソビシフト編集部がわざと設定を変えて、座席に座ってWキーを6秒押し続けたときの結果です。正しく作った飛行機は、同じ操作で浮き上がりました。この節は読むだけで大丈夫です。

変えた所結果直し方
BodyのAnchoredにチェックを入れた座れるが、速度は0のままで動かないエクスプローラでPlaneの中のBodyを選び、プロパティの検索欄に「Anchored」と入れてチェックを外す
Bodyの中のThrustのMaxForceを、入れたときの1000のままにした座れるが、速度は0のままで動かないエクスプローラでBodyの中のThrustを選び、プロパティの検索欄に「MaxForce」と入れ、右の欄に「1000000」と入れてEnterキーを押す
Bodyの中のSteerのAttachment0を空にした浮き上がるが、機体が横倒しになって回ってしまうエクスプローラでBodyの中のSteerを選び、プロパティの検索欄に「Attachment0」と入れ、右の欄を押してからBodyの中の「FlyAttachment」を押す

試したあとは、どれも表の直し方のとおりに戻しています。

AIに相談するときの伝え方

Roblox Studioで飛行機を作っています。
Plane(Model)の中の Body に Attachment(FlyAttachment)を入れ、LinearVelocity(Thrust)と、Mode が OneAttachment の AlignOrientation(Steer)をつないでいます。
Plane の中の Script で VehicleSeat の ThrottleFloat と SteerFloat を見て、Thrust.VectorVelocity と Steer.CFrame を毎回変えています。速さが40をこえると上昇します。
Qキー・Eキーで機首を上げ下げできるようにしたいです。どう書き足せばよいですか。

よくある質問

速さを変えたいときは?

エクスプローラでPlaneの中の「FlyScript」をダブルクリックして開き、コードの8行目の MAX_SPEED の「60」を書きかえます。浮き上がる速さは、コードの10行目の TAKEOFF_SPEED の「40」で決まります。

もっと高く飛ばしたいときは?

エクスプローラでPlaneの中の「FlyScript」をダブルクリックして開き、コードの13行目の MAX_HEIGHT の「60」を大きくします。下りる速さは、コードの14行目の SINK_SPEED の「6」で決まります。1秒に6スタッドずつ下りるので、高くするほど着地までに時間がかかります。

次のステップ(上級 19/40)

次は、ロープで荷物を吊って上げ下げし、ブランコとばねのトランポリンを作ります。

→ ロブロックス(Roblox)スタジオのロープの作り方

次に知りたいことを選ぶ

次に読む記事