MC CommanderMinecraft非公式コマンド支援

エレベーターをコマンドで作る

高い建物やタワーでは、階段を上り下りするのが大変です。鉄ブロックの上でジャンプすると上の階へ、しゃがむと下の階へ移動するエレベーターを、コマンドブロックだけで作ります。

tpscoreboardJava版

tpコマンドを作る

更新日:

1. 準備(最初に1回だけ)

/scoreboard objectives add jump minecraft.custom:minecraft.jump
/scoreboard objectives add sneak minecraft.custom:minecraft.sneak_time

jump はジャンプすると1増え、sneak はしゃがんでいる間1ティックごとに1増えるスコアです。しゃがみの判定は しゃがむと発動するコマンド でもくわしく説明しています。

2. 鉄ブロックの並べ方

鉄ブロックを、同じX・Zの場所に5マスおきに縦に並べます。たとえば Y=64 の床に鉄ブロックを置いたら、上の階は Y=69、その上は Y=74 です。それぞれの階の床にこの鉄ブロックが埋まっている形になります。

3. ジャンプで上の階へ

# 反復・常時実行
execute as @a[scores={jump=1..}] at @s if block ~ ~-0.5 ~ minecraft:iron_block if block ~ ~4.5 ~ minecraft:iron_block run tp @s ~ ~5 ~
# チェーン・常時実行(ここから下は全部チェーン)
scoreboard players reset @a[scores={jump=1..}] jump

足元と5マス上の両方に鉄ブロックがあるときだけ、5マス上へテレポートします。ジャンプした瞬間は少し体が浮いているので、~-1 ではなく ~-0.5 で足元を調べます。~ の意味は ~ と ^ の違い にまとめています。

4. しゃがむと下の階へ

execute as @a[scores={sneak=10..}] at @s if block ~ ~-0.5 ~ minecraft:iron_block if block ~ ~-5.5 ~ minecraft:iron_block run tp @s ~ ~-5 ~
scoreboard players reset @a[scores={sneak=10..}] sneak
execute as @a at @s unless block ~ ~-0.5 ~ minecraft:iron_block run scoreboard players reset @s sneak

鉄ブロックの上で0.5秒(10ティック)しゃがむと、下の階へ移動します。しゃがみ続けると0.5秒ごとにもう1つ下へ進みます。3行目で、鉄ブロックの上にいない人のしゃがみ時間を消しておくので、ほかの場所でしゃがんだ分は数えません。

5. 音を鳴らす

execute as @a[scores={jump=1..}] at @s if block ~ ~-0.5 ~ minecraft:iron_block run playsound minecraft:entity.enderman.teleport master @s ~ ~ ~ 1 1.5

3の反復ブロックのすぐ後ろ(jumpを消す行より前)にチェーンで入れます。テレポートしたあとの足元は上の階の鉄ブロックなので、移動した先で音が鳴ります。

うまくいかないときの確認ポイント

よくある質問

鉄ブロック以外にできますか?

できます。if block の minecraft:iron_block を、使いたいブロックのIDに変えます。

階と階の間を5マス以外にできますか?

4.5と5、-5.5と-5の数を、間の高さに合わせて変えます。全部の階で同じ高さにします。

ほかのプレイヤーも一緒に運べますか?

このしくみでは、ジャンプやしゃがみをした本人だけが移動します。

関連ページ

しゃがむと発動するコマンド

しゃがみの判定のしかたです。

ジャンプ台・加速床・ワープ床を作るコマンド

乗ると動く床の作り方です。

tpコマンドの使い方

テレポートの基本です。

~ と ^ の違い

相対座標の意味です。

コマンド辞典

基本構文とコマンド別の使い方を確認できます。