【Roblox Studio】ProximityPrompt(近接プロンプト)による運転席への移動

○○の作り方

完成動画

はじめに

今回は、近接プロンプト(ProximityPrompt)を使って、プレイヤーが運転席に座る方法を紹介します。

使用する機能

  • ProximityPrompt(近接プロンプト)
    プレイヤーがパーツに近づくと操作可能なUIが表示される仕組み。
  • VehicleSeat(運転席)
    プレイヤーが操作できる座席。車を動かすのに使われます。
  • Disabledプロパティ
    機能を一時的に無効化するための設定。

手順動画

エクスプローラー構成

Workspace
└Jeep
 └DriveSeat(VehicleSeat)
  ├ProximityPrompt
  └Script

プロパティの変更箇所

DriveSeat(VehicleSeat)
Disabledをオフからオンに変更

Disabledがオンだと、VehicleSeatの機能が無効になり、座れなくなります。

スクリプトの内容

local seat = script.Parent
local prompt = seat:FindFirstChildOfClass("ProximityPrompt")

-- 最初は座席を無効化(勝手に乗れないように)
seat.Disabled = true

-- ProximityPromptが発火したときの処理
prompt.Triggered:Connect(function(player)
	local character = player.Character
	if not character then return end

	local root = character:FindFirstChild("HumanoidRootPart")
	if root then
		-- Seatを一時的に有効化
		seat.Disabled = false

		-- ProximityPromptを非表示にする
		prompt.Enabled = false

		-- プレイヤーを座席位置にワープ(自動で座る)
		root.CFrame = seat.CFrame + Vector3.new(0, 2, 0)
	end
end)

-- プレイヤーが降りたとき(Occupantがnilになる)→ Seatを無効化&プロンプトを再表示
seat:GetPropertyChangedSignal("Occupant"):Connect(function()
	if seat.Occupant == nil then
		-- 降りたら再び座席を無効に
		seat.Disabled = true
		-- ProximityPromptを再び表示
		prompt.Enabled = true
	end
end)

1. SeatとProximityPromptを取得する

local seat = script.Parent
local prompt = seat:FindFirstChildOfClass("ProximityPrompt")

Scriptの親にあるDriveSeatと、その中にあるProximityPromptを取得します。

2. 最初はSeatを無効にしておく

seat.Disabled = true

ゲーム開始時にSeatが有効だと、近づくだけで勝手に乗れてしまうため、ここで無効化しておきます。

3. ProximityPromptが押されたときの処理

prompt.Triggered:Connect(function(player)
local character = player.Character
if not character then return end

local root = character:FindFirstChild("HumanoidRootPart")
if root then
seat.Disabled = false
prompt.Enabled = false
root.CFrame = seat.CFrame + Vector3.new(0, 2, 0)
end
end)
  • プレイヤーがProximityPromptを押すと発火。
  • プレイヤーの位置をSeatの真上にワープさせる。
  • Seatを一時的に有効化することで自動で乗れるように。
  • プロンプトは一度非表示にします(押しっぱなし対策)。

4. 降りたときの処理

seat:GetPropertyChangedSignal("Occupant"):Connect(function()
if seat.Occupant == nil then
seat.Disabled = true
prompt.Enabled = true
end
end)
  • プレイヤーが降りたことを検知します(Occupantnil に)。
  • Seatを再び無効化。
  • ProximityPromptを再び表示して、次のプレイヤーにも使えるようにします。

まとめ

本記事では、ProximityPrompt(近接プロンプト)を使って、プレイヤーが車の運転席に移動する方法を紹介しました。

ポイントは、VehicleSeat の Disabled プロパティを使って、最初は座席に勝手に座れないようにしておくことです。プレイヤーがプロンプトを押したときにだけ Disabled をオフにして乗れるようにし、その後は再び無効化して制御します。

チュートリアル系電子書籍の紹介
Roblox Studioでゲーム制作を始めてみませんか?
日本語版 ※英語版あり 「10時間でできる Roblox Studio アクションゲーム制作入門」では、Roblox Studioでのゲーム制作の基本から応用までを短時間で効率的に学びます。この一冊で、初心者でも簡単にアクションゲームを制作できるようになり、ゲーム制作の面白さと達成感を存分に味わうことができます。Roblox Studioの世界への扉を開き、あなたのクリエイティブな旅を始めましょう。
チュートリアル系動画
電子書籍を動画にしました!※無料クーポンあり!

「10時間でできる Roblox Studio アクションゲーム制作入門」の動画版では、書籍の内容をさらにわかりやすく、実際の画面操作を見ながら学べる形式でお届けします。初心者でも安心して取り組めるように、Roblox Studioの基本操作からアクションゲームの完成までを丁寧に解説。テンポよく進むレクチャー動画で、あなたのペースに合わせて学習できます。この動画シリーズを通して、ゲーム制作の基礎をしっかり習得し、Roblox Studioの可能性を広げましょう!

割引クーポンコードはこちらです↓
※3月12日21時まで!
6E0150A3770784ADF77D

Luaに関する電子書籍の紹介
Roblox Studioで使用するLua言語の基本を学ぼう!
日本語版 ※英語版あり 「5時間でできる Roblox Studio を使ったLuaの基本」では、Roblox Studioで使用するプログラミング言語Luaの基本をRoblox Studio上で学びます。また、学んだ知識を活かして、Roblox StudioでLuaを使用する応用部分も一部盛り込まれています。この一冊でLuaの基本を学ぶことで、よりRoblox Studioでのゲーム制作を楽しめるようになります。
アニメーション制作系電子書籍の紹介
Roblox Studioでアニメーションを作ってみよう!
「5時間でできる Roblox Studio アニメーション制作入門」では、Roblox Studioでのアニメーション制作の基本から実際に作るところまでを短時間で効率的に学びます。この一冊で、アニメーション制作の第一歩を踏み出すことができます。Roblox Studioで自由自在にアニメーションを作成し、よりクリエイティブなゲームを作りましょう!
○○の作り方Roblox Studio
シェアする
hideをフォローする
Roblox Studio 制作tips

コメント

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