「ビルの2階に上がれるエレベーターを作りたい」「動く床は作れたけれど、ボタンで上下させる方法が分からない」
ロブロックス(Roblox)スタジオでエレベーターを作る方法を、実際の画像付きで誰でも簡単に分かるように解説します。エレベーターは、乗った人ごと上下に動く「かご」と、かごを呼ぶボタンでできています。動く床の作り方では、つなぎ目(Constraint)をスクリプトで作りました。今回は同じつなぎ目を、スクリプトを使わずにプロパティで組み立てます。スクリプトは、ボタンが押されたら行き先の階を変えるだけにします。
上級ステップ1/40 前の記事:ロブロックス(Roblox)のアスレチックゲームの作り方【後編】 全体の順番を見る
使うもの:Roblox Studioが起動するパソコン、マウス、キーボード。近づくと「Eを押して○○する」と出る部品(ProximityPrompt)は、NPCの作り方で使ったものと同じです。
今回の完成状態:下の画像のように、青いかごに乗ってEキーを押すと、かごごと2階の床の高さまで上がれば成功です(画像の1)。出力にも「エレベーター:2階へ動きます」と出ます(画像の2)。

エレベーターの部品
| 名前 | 役目 |
|---|---|
| Floor2(灰色の床) | 2階の床。宙に浮かせて固定する |
| Rail(黒い柱) | かごが上下する通り道。固定する |
| Car(青いかご) | 人が乗って上下する床。固定しない |
| Panel(かごの中の黄色いボタン) | かごと一緒に動くボタン。押すと反対の階へ行く |
| Call1・Call2(各階の黄色いボタン) | その階へかごを呼ぶボタン |
| PrismaticConstraint | かごを柱に沿って、まっすぐ上下にだけ動かすつなぎ目 |
| ElevatorService | ボタンが押されたら、行き先の高さを変えるスクリプト |
かごは固定(Anchored)しません。固定したパーツは、つなぎ目があっても動かないからです。そのかわり、つなぎ目がかごを柱に沿った線の上から外れないように支えます。
1. 部品を入れるフォルダーを作る
新しいBaseplateを開き、エクスプローラの「Workspace」にマウスを乗せて、右に出る「+」を押します(赤い枠)。

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

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

2. 2階の床を置く
エクスプローラの「Elevator」にマウスを乗せて「+」を押し、検索欄に「Part」と入れて、一覧の「Part」を押します(赤い枠)。

エクスプローラでF2キーを押し、名前を「Floor2」に変えます(赤い枠)。

プロパティの検索欄に「Size」と入れ、Sizeを「20, 1, 20」にします(赤い枠)。

プロパティの検索欄に「Position」と入れ、「▼CFrame」のすぐ下のPositionを「0, 20.5, -41」にします(赤い枠)。床が20スタッドの高さに浮きます。

プロパティの検索欄に「Anchored」と入れ、チェックを入れて固定します(赤い枠)。固定しないと、テストを始めたとたんに床が落ちます。

3. 柱(Rail)を置く
エクスプローラでFloor2を選び、Ctrlキーを押しながらDキーを押して複製します。エクスプローラでF2キーを押し、複製したパーツの名前を「Rail」に変えます(赤い枠)。複製すると、固定(Anchored)の設定も一緒に写ります。

プロパティの検索欄に「Size」と入力し、Sizeを「1, 24, 1」にします(赤い枠)。細長い柱になります。

プロパティの検索欄に「Position」と入力し、CFrameの下のPositionを「5, 12, -26」にします(赤い枠)。柱が地面から2階の床の横まで立ちます。

プロパティの検索欄に「BrickColor」と入れ、黒っぽい「Dark stone grey」を選びます(赤い枠)。

4. かご(Car)を置いて、固定を外す
もう一度エクスプローラでFloor2を選んでCtrl+Dで複製し、名前を「Car」に変えます(赤い枠)。

プロパティの検索欄に「Size」と入力し、Sizeを「8, 1, 8」にします(赤い枠)。人が乗れる広さの板になります。

プロパティの検索欄に「Position」と入力し、CFrameの下のPositionを「0, 0.5, -26」にします(赤い枠)。かごが柱の根もとの地面に置かれます。

プロパティの検索欄に「BrickColor」と入力し、BrickColorを「Bright blue」にします(赤い枠)。

プロパティの検索欄に「Anchored」と入れ、チェックを外します(赤い枠)。ここがほかの床と違うところです。

5. かごの中のボタン(Panel)をかごにくっつける
エクスプローラでCarを選んでCtrl+Dで複製し、名前を「Panel」に変えます(赤い枠)。

プロパティでSizeを「1, 3, 1」、▼CFrameのすぐ下のPositionを「3, 2.5, -26」、BrickColorを黄色の「New Yeller」にします。かごの上の、柱に近い側に黄色い柱が立ちます(赤い枠はPosition)。

Carを複製したので、PanelもプロパティのAnchoredのチェックが外れています(赤い枠)。このままにします。

このままでは、テストを始めるとPanelだけがかごから落ちます。かごと一緒に動くように、2つのパーツをくっつける部品を入れます。エクスプローラの「Panel」にマウスを乗せて「+」を押し、検索欄に「WeldConstraint」と入れて、一覧の「WeldConstraint」を押します(赤い枠)。WeldConstraint(ウェルドコンストレイント)は、2つのパーツを今の位置のまま溶接する部品です。

プロパティの検索欄に「Part」と入れます。「Part0」の右の空欄を押すと、空欄が選ぶ状態になります(画像の1)。そのままエクスプローラの「Car」を押します(画像の2)。

Part0に「Car」が入りました(赤い枠)。

同じようにプロパティの「Part1」の右の空欄を押し(画像の1)、エクスプローラの「Panel」を押します(画像の2)。

Part1に「Panel」が入りました(赤い枠)。これで、かごが動くとボタンも一緒に動きます。

6. かごを柱に沿って動かすつなぎ目を組む
つなぎ目は、柱とかごに1つずつ付ける「目印(Attachment)」と、2つの目印をつなぐ「PrismaticConstraint」でできています。
| 部品 | 入れる場所 | 役目 |
|---|---|---|
| Attachment | Rail | つなぎ目の、動かない側の目印 |
| Attachment | Car | つなぎ目の、動く側の目印 |
| PrismaticConstraint | Car | 2つの目印をつなぎ、目印の黄色い矢印の向きにだけ動かす |
柱に目印を付ける
エクスプローラの「Rail」にマウスを乗せて「+」を押し、検索欄に「Attachment」と入れて、一覧の「Attachment」を押します(赤い枠)。

プロパティの検索欄に「Position」と入れると、Positionが2つ出ます。下の「▼WorldCFrame」の下のPositionは、目印が今ある場所です。最初は柱の真ん中の「5, 12, -26」です(赤い枠)。

このPositionを「0, 0.5, -26」に書きかえます(赤い枠)。かごの真ん中と同じ場所です。目印は柱の外に出ますが、柱にくっついたまま動きません。上の「▼CFrame」の下のPositionは、柱から見た位置「-5, -11.5, 0」に自動で変わります。

2つの目印は、かごの真ん中にそろえます。目印の場所がずれていると、テストを始めたときに、かごが目印の場所まで引っぱられて飛んでいきます。
プロパティの検索欄に「Orientation」と入れ、「▼CFrame」の下のOrientationを「0, 0, 90」にします(赤い枠)。目印の黄色い矢印が真上を向きます。PrismaticConstraintは、この黄色い矢印の向きに動きます。

かごに目印を付ける
エクスプローラの「Car」にマウスを乗せて「+」を押し、同じように「Attachment」を入れます(赤い枠)。かごの目印は、最初からかごの真ん中にあるので、場所は変えません。

プロパティの検索欄に「Orientation」と入力し、「▼CFrame」の下のOrientationだけを「0, 0, 90」にします(赤い枠)。2つの目印の矢印の向きをそろえます。

2つの目印をつなぐ
エクスプローラの「Car」にマウスを乗せて「+」を押し、検索欄に「PrismaticConstraint」と入れて、一覧の「PrismaticConstraint」を押します(赤い枠)。

プロパティの検索欄に「Attachment」と入れます。「Attachment0」の右の空欄を押し(画像の1)、エクスプローラでRailの中の「Attachment」を押します(画像の2)。

Attachment0に「Attachment」が入りました(赤い枠)。

プロパティの「Attachment1」の右の空欄を押し(画像の1)、今度はエクスプローラでCarの中の「Attachment」を押します(画像の2)。

Attachment1にも「Attachment」が入りました(赤い枠)。2つとも同じ名前なので、Attachment0が柱、Attachment1がかごの順に選んだかを、押した場所で確かめてください。PrismaticConstraintを選んでいる間は、3D画面に柱とかごをつなぐ緑の線が出ます。

つなぎ目をモーターのように動かす設定にする
プロパティの検索欄に「ActuatorType」と入れ、右の「None」の▼を押して、一覧から「Servo」を押します(赤い枠)。Servo(サーボ)にすると、決めた位置まで自分で動いて止まるようになります。

ActuatorTypeが「Servo」になりました(赤い枠)。

プロパティの検索欄に「Speed」と入れ、Speedを「6」にします(赤い枠)。1秒に6スタッド動く速さです。20スタッド上がるのに3秒ほどかかります。

プロパティの検索欄に「ServoMaxForce」と入れ、「1000000」(1の後ろに0が6つ)にします(赤い枠)。かごを押し上げる力の上限です。最初の「0」のままだと、かごは動きません。

7. 各階の呼びボタンを置く
エクスプローラでFloor2を選んでCtrl+Dで複製し、名前を「Call1」に変えます(赤い枠)。Floor2から複製したので、固定(Anchored)にチェックが入ったままです。呼びボタンは動かないので、固定のままにします。

プロパティでSizeを「1, 3, 1」、▼CFrameのすぐ下のPositionを「-6, 1.5, -21」、BrickColorを「New Yeller」にします。かごの手前の地面に、黄色いボタンが立ちます(赤い枠はPosition)。

エクスプローラでCall1を選んでCtrl+Dで複製し、名前を「Call2」に変えます(赤い枠)。

Call2を選んだ状態で、プロパティの検索欄に「Position」と入力し、CFrameの下のPositionを「-6, 22.5, -32」にします(赤い枠)。2階の床の上、かごの近くにボタンが移ります。

| 名前 | 複製のもと | Size | Position | 色 | 固定 |
|---|---|---|---|---|---|
| Floor2 | (新しく入れる) | 20, 1, 20 | 0, 20.5, -41 | そのまま | する |
| Rail | Floor2 | 1, 24, 1 | 5, 12, -26 | Dark stone grey | する |
| Car | Floor2 | 8, 1, 8 | 0, 0.5, -26 | Bright blue | しない |
| Panel | Car | 1, 3, 1 | 3, 2.5, -26 | New Yeller | しない |
| Call1 | Floor2 | 1, 3, 1 | -6, 1.5, -21 | New Yeller | する |
| Call2 | Call1 | 1, 3, 1 | -6, 22.5, -32 | New Yeller | する |
8. 押せるボタンにする(ProximityPrompt)
エクスプローラの「Panel」にマウスを乗せて「+」を押し、検索欄に「ProximityPrompt」と入れて、一覧の「ProximityPrompt」を押します(赤い枠)。

Panelの中にProximityPromptが入りました(赤い枠)。かごの中のボタンの文字(「2階へ」「1階へ」)は、スクリプトが書きかえるので、ここでは変えません。

エクスプローラのCall1にも同じようにProximityPromptを入れ、プロパティの検索欄に「ActionText」と入れて、「呼ぶ」にします(赤い枠)。

エクスプローラのCall2にもProximityPromptを入れ、プロパティでActionTextを「呼ぶ」にします(赤い枠)。

9. ボタンでかごを動かすスクリプトを入れる
エクスプローラの「ServerScriptService」にマウスを乗せて「+」を押し、検索欄に「Script」と入れて、一覧の「Script」を押します(赤い枠)。

エクスプローラでF2キーを押し、名前を「ElevatorService」に変え、プロパティの検索欄に「RunContext」と入れて、「▼動作」の欄にあるRunContextの一覧から「Server」を選びます(赤い枠)。

エクスプローラでElevatorServiceを開いて、もとから入っている1行を消し、次のコードを貼り付けます。エクスプローラのServerScriptServiceの中にElevatorServiceが見えます(赤い枠)。
local elevator = workspace:WaitForChild("Elevator")
local car = elevator:WaitForChild("Car")
local slider = car:WaitForChild("PrismaticConstraint")
local panelPrompt = elevator:WaitForChild("Panel"):WaitForChild("ProximityPrompt")
local call1Prompt = elevator:WaitForChild("Call1"):WaitForChild("ProximityPrompt")
local call2Prompt = elevator:WaitForChild("Call2"):WaitForChild("ProximityPrompt")
-- 階ごとの高さ(1階からどれだけ上がるか、スタッド)
local FLOORS = {
[1] = 0,
[2] = 20,
}
local current = 1 -- 今いる階
-- かごの動きはサーバーが計算する(乗った人の画面でガタつかないように)
car:SetNetworkOwner(nil)
-- 指定した階へかごを動かす
local function goTo(floor)
current = floor
slider.TargetPosition = FLOORS[floor]
-- かごの中のボタンの文字を、次に行く階に変える
if current == 1 then
panelPrompt.ActionText = "2階へ"
else
panelPrompt.ActionText = "1階へ"
end
print("エレベーター:" .. floor .. "階へ動きます")
end
-- かごの中のボタン:今と反対の階へ
panelPrompt.Triggered:Connect(function()
if current == 1 then
goTo(2)
else
goTo(1)
end
end)
-- 各階の呼びボタン:その階へかごを呼ぶ
call1Prompt.Triggered:Connect(function()
goTo(1)
end)
call2Prompt.Triggered:Connect(function()
goTo(2)
end)
goTo(1)

| コードの部分 | していること |
|---|---|
| FLOORS | 階ごとの高さ。1階は0、2階は20(かごが最初の場所からどれだけ上がるか) |
| slider.TargetPosition | PrismaticConstraintの行き先。ここを変えると、かごがその高さまで動いて止まる |
| SetNetworkOwner(nil) | かごの動きをサーバーが計算する。乗った人の画面でかごがガタつかないようにする |
| panelPrompt.ActionText | かごの中のボタンの文字を「2階へ」「1階へ」に変える |
| panelPrompt.Triggered | かごの中のボタンが押されたら、今と反対の階へ動かす |
| call1Prompt・call2Prompt | 呼びボタンが押されたら、その階へかごを呼ぶ |
かごを動かす力も速さも、6で入れたPrismaticConstraintの設定が受け持っています。スクリプトは行き先の数字を変えるだけなので、とても短くすみます。
10. テストでかごに乗る
3D画面の上の作品のタブ「Place2」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。青いかごに乗ります。かごの中の黄色いボタンに近づくと「E 2階へ」と出ます(画像の1、画像の2はアバター)。
画像は、かごと2階が見えるようにカメラを動かして写しています(画像ごとに見る向きが違います)。右上の名前の欄はモザイクにしています。

Eキーを押すと、かごがアバターを乗せたまま上がり、3秒ほどで2階の床と同じ高さに着きました(画像の1)。出力には「エレベーター:2階へ動きます」と出ます(画像の2)。かごの中のボタンの文字は「1階へ」に変わりました。

かごが本当に2階の高さに着いたかは、数字でも確かめられます。かごが2階に着いたまま、テスト中にエクスプローラの「Workspace」の左の「▶」を押し、中の「Elevator」も開いて、「Car」(画像の1)を押します。プロパティの検索欄に「Position」と入れると、「▼CFrame」の下のPositionが「0, 20.5, -26」になっていました(画像の2)。真ん中の数が高さで、テストを始める前の0.5から20.5に上がっています。3D画面では、選んだかご(画像の3)が青い線で囲まれます。

この数字は、かごがそのとき止まっている場所を表します。かごを1階へ戻したあとに見ると、0.5に戻っています。2階で見るときは、呼びボタンなどで1階へ戻す前に確かめてください。
続けてエクスプローラの「Floor2」(2階の床)を押して、同じようにPositionを見ます。高さは20.5です。

プロパティの検索欄に「Size」と入れると、Floor2の厚さ(真ん中の数)は1です(赤い枠)。Positionはパーツのまん中の高さなので、床の上の面は「20.5+厚さの半分の0.5」で21になります。かご(Car)も厚さ1・まん中20.5なので、上の面は同じ21です。

かごの上の面と2階の床の上の面が同じ21なので、段差なしで歩いて降りられます。Wキーで前へ歩くと、そのまま2階の床に移れました(赤い枠)。この画像は、出力の欄を消してから撮っています。

11. 呼びボタンを確かめる
かごが2階にあるときに、1階の呼びボタンの前に行くと「E 呼ぶ」と出ます(画像の1)。かごは2階にあります(画像の2)。

Eキーを押すと、かごが1階まで下りてきました(画像の1)。出力には「エレベーター:1階へ動きます」と出ました(画像の2)。

| 試したこと | 結果 |
|---|---|
| かごに乗ってEキー | かごの高さが0.5から20.5に上がり、2階の床の高さで止まった |
| 2階で前へ歩く | 段差なしで2階の床に降りられた |
| かごが2階のとき、1階の呼びボタンでEキー | かごが1階まで下りてきた |
3階を足すには
3階建てにするには、部品を3つ足し、スクリプトを書きかえます。下の画像は、3階を足し終えたところです。3階の床と呼びボタン(画像の1)と、高くした柱(画像の2)が増えています。

部品を3つ足す
| 足す部品 | 作り方 | 値 |
|---|---|---|
| Floor3(3階の床) | エクスプローラでFloor2を押してCtrl+Dキーで複製し、F2キーで名前を変える | Position 0, 40.5, -41 |
| Call3(3階の呼びボタン) | Call2を同じように複製して名前を変える。中のProximityPromptも一緒に複製される | Position -6, 42.5, -32 |
| Rail2(柱の上の部分) | Railを複製して名前を変え、中のAttachmentを選んでDeleteキーで消す | Position 5, 36, -26 |
柱は、見た目のためだけに上へのばします。Rail本体の大きさや場所を変えると、Railの中の目印(Attachment)も一緒に動いて、かごの動く場所がずれてしまいます。そのため、Railはそのままにして、上に同じ太さの柱をもう1本のせます。複製したRail2の中のAttachmentは使わないので消します。
スクリプトを書きかえる
今のコードでは、かごの中のボタンは「今と反対の階へ」動かすしくみです。2つの階を行き来するだけなら、これで足ります。3階建てでは「反対の階」が決まらないので、ボタンを押すたびに「1階→2階→3階→1階」の順に動くように変えます。
エクスプローラでElevatorServiceを開き、コードの画面の中を押してCtrl+A、Deleteで中身を消して、次のコードに貼りかえます。
local elevator = workspace:WaitForChild("Elevator")
local car = elevator:WaitForChild("Car")
local slider = car:WaitForChild("PrismaticConstraint")
local panelPrompt = elevator:WaitForChild("Panel"):WaitForChild("ProximityPrompt")
local call1Prompt = elevator:WaitForChild("Call1"):WaitForChild("ProximityPrompt")
local call2Prompt = elevator:WaitForChild("Call2"):WaitForChild("ProximityPrompt")
local call3Prompt = elevator:WaitForChild("Call3"):WaitForChild("ProximityPrompt") -- 3階の呼びボタン
-- 階ごとの高さ(1階からどれだけ上がるか、スタッド)
local FLOORS = {
[1] = 0,
[2] = 20,
[3] = 40, -- 3階
}
local current = 1 -- 今いる階
-- かごの動きはサーバーが計算する(乗った人の画面でガタつかないように)
car:SetNetworkOwner(nil)
-- 次に行く階(3階の次は1階に戻る)
local function nextFloor()
if current == #FLOORS then
return 1
end
return current + 1
end
-- 指定した階へかごを動かす
local function goTo(floor)
current = floor
slider.TargetPosition = FLOORS[floor]
-- かごの中のボタンの文字を、次に行く階に変える
panelPrompt.ActionText = nextFloor() .. "階へ"
print("エレベーター:" .. floor .. "階へ動きます")
end
-- かごの中のボタン:次の階へ(1→2→3→1の順)
panelPrompt.Triggered:Connect(function()
goTo(nextFloor())
end)
-- 各階の呼びボタン:その階へかごを呼ぶ
call1Prompt.Triggered:Connect(function()
goTo(1)
end)
call2Prompt.Triggered:Connect(function()
goTo(2)
end)
call3Prompt.Triggered:Connect(function()
goTo(3)
end)
goTo(1)
前のコードから変えたところは4つです。
| 変えたところ | 前のコード | 3階建てのコード |
|---|---|---|
| 3階の呼びボタン | なし | 7行目に call3Prompt を足し、いちばん下の近くで押されたら goTo(3) を呼ぶ |
| FLOORS | 1階 0、2階 20 | [3] = 40 を足す。3階は1階から40上がる |
| 次の階を決めるしくみ | なし | nextFloor という関数を足した。今の階の1つ上を返し、3階のときは1階を返す |
| かごの中のボタン | 今が1階なら goTo(2)、そうでなければ goTo(1) | goTo(nextFloor()) で、いつも次の階へ動かす |
goToは、コードの中ほどで local function goTo(floor) と書いて作った関数(決まった動きをまとめた名前)です。goTo(3) のように、かっこの中に行きたい階の番号を入れて呼ぶと、FLOORSからその階の高さを取り出して、かごをそこまで動かします。コードの中に「goTo」がいくつも出てくるのは、作った1か所と、ボタンが押されたときに呼ぶ何か所かがあるためです。
テストで3階まで上がる
F5キーでテストを始め、かごに乗ります。2階に着いたあと、かごの中の黄色いボタンに近づくと、ボタンの文字が「E 3階へ」に変わっています(赤い枠)。2階の呼びボタン(Call2)のほうが近いと「E 呼ぶ」が出るので、そのときはかごの中で黄色いボタンのほうへ少し歩きます。

Eキーを押すと、かごが3階まで上がりました。エクスプローラでCar(画像の1)を選んで、▼CFrameのすぐ下のPositionを見ると「0, 40.5, -26」でした(画像の2)。かごの中のボタンは「1階へ」に変わり(画像の3)、出力には「エレベーター:3階へ動きます」と出ます(画像の4)。

数字を変えて調整する
表の「変える場所」が「〇〇の△△」の形のものは、エクスプローラで〇〇を押して選び、プロパティの検索欄に△△と入力して、右の欄の数字を変えます。たとえば「PrismaticConstraintのSpeed」なら、エクスプローラでCarの中の「PrismaticConstraint」を押して選び、プロパティの検索欄に「Speed」と入力して、Speedの右の欄に「10」と入力し、Enterキーを押します。
FLOORSだけはプロパティではなく、ElevatorServiceのコードの中の数字です。エクスプローラで「ElevatorService」をダブルクリックして開き、FLOORS の [2] = 20 の20を書き換えます。
| 変えたいこと | 変える場所 | 例 |
|---|---|---|
| 上がる速さ | PrismaticConstraintのSpeed | 6 → 10にすると、2秒ほどで2階に着く |
| 2階の高さ | Floor2とCall2のPosition、FLOORSの[2] | 2階を30の高さにするなら、Floor2のPositionのYを30.5、Call2のPositionのYを32.5、FLOORSの[2]を30にする |
| ボタンが反応する距離 | ProximityPromptのMaxActivationDistance | 最初は10。かごの外から押されたくないときは5にする |
床の高さ、Call2の高さ、FLOORSの数字は、必ず一緒に変えます。床とFLOORSのどちらかだけ変えると、かごが床の途中で止まって段差ができます。Call2を動かし忘れると、呼びボタンが2階の床の下に埋もれて押せなくなります。
かごが動かないときの確かめ方
| 症状 | 見るところ | 直し方 |
|---|---|---|
| テストを始めると、かごが落ちる・飛んでいく | 2つのAttachment | Railの目印のWorldCFrameのPositionがかごの真ん中「0, 0.5, -26」か |
| Eを押しても、かごが動かない | PrismaticConstraint | ActuatorTypeが「Servo」か、ServoMaxForceが0のままになっていないか |
| かごが動かない(設定は合っている) | CarのAnchored | かごの固定を外したか |
| かごが横に動く・斜めに動く | 2つのAttachment | 両方ともOrientationが「0, 0, 90」か |
| かごの中のボタンだけ落ちる | WeldConstraint | Part0が「Car」、Part1が「Panel」になっているか |
| 「E」の表示が出ない | ProximityPrompt | Panel・Call1・Call2の中に1つずつ入っているか |
AIに相談するときの伝え方
Roblox Studioでエレベーターを作っています。
固定したRailと、固定していないCar(かご)にAttachmentを1つずつ付け、CarのPrismaticConstraint(ActuatorType Servo、Speed 6、ServoMaxForce 1000000)でつないでいます。
ServerScriptServiceのScriptで、ProximityPromptが押されたらTargetPositionを0と20で切りかえています。
扉を付けて、かごが止まっているときだけ開くようにしたいです。
よくある質問
スクリプトでつなぎ目を作るのと何が違う?
動く床の作り方では、AttachmentとConstraintをスクリプトで作りました。今回のようにプロパティで組むと、テストを始める前にエクスプローラとプロパティで、どの目印どうしをつないだかを確かめられます。動きの決まりは同じです。
2人で乗れる?
かごの広さ(8×8)に乗れる人数なら、一緒に運ばれます。
次は、近づくと開く自動ドアと、カギで開くドアを作ります。次のステップ(上級 2/40)
次に知りたいことを選ぶ
- 次のステップ:近づくと開く自動ドアと、カギで開くドアを作ります → ロブロックス(Roblox)のドアの作り方
- つなぎ目の基本を知りたい → ロブロックス(Roblox)スタジオで動く床を作る方法
- 近づくと押せるボタンを知りたい → ロブロックス(Roblox)スタジオでNPCを作る方法
- 別の場所へ一瞬で移動させたい → ロブロックス(Roblox)でテレポートを作る方法