更新日:
3種類の座標
| 書き方 | 名前 | 基準 |
|---|---|---|
100 64 -200 | 絶対座標 | ワールドの決まった位置 |
~ ~1 ~ | 相対座標 | 実行位置から、X(東西)・Y(上下)・Z(南北)方向にずらす |
^ ^ ^5 | ローカル座標 | 実行者の向きから、左・上・前方向にずらす |
~ は方角で決まる
~の3つの数字は、順にX・Y・Zです。Xは東がプラス、Zは南がプラス、Yは上がプラスです。
/tp @s ~ ~10 ~ ← 10ブロック上へ
/tp @s ~5 ~ ~ ← 東へ5ブロック
/setblock ~ ~-1 ~ minecraft:gold_block ← 足元を金ブロックに
どちらを向いていても結果は同じです。~だけで数字がなければ「0ずらす」、つまり今の位置そのままです。
^ は向いている方向で決まる
^の3つの数字は、順に左・上・前です。右や後ろに動かしたいときはマイナスを付けます。
/tp @s ^ ^ ^5 ← 向いている方向に5ブロック前進
/tp @s ^-3 ^ ^ ← 右へ3ブロック
/summon arrow ^ ^1 ^2 ← 目の前に矢を出す
上を向いていれば「前」は空の方向になります。^は視線の上下の角度も含めて計算されるので、ダッシュや弾を飛ばす仕組みに向いています。
~ と ^ は混ぜられない
~ ~ ^5のように1つの座標の中で混ぜるとエラーになります。~と数字(~ 64 ~)は混ぜられますが、^は3つとも^にする必要があります。
コマンドブロックで^を使うとき
コマンドブロック自体は向きを持たないため、そのまま^を使うと常に同じ方角(南向き)を基準に計算されます。プレイヤーの向きを使いたいときは、executeで実行者と位置をプレイヤーに切り替えます。
/execute as @p at @s run tp @s ^ ^ ^3
as @pで向き、at @sで位置がプレイヤーのものになり、プレイヤーが向いている方向に3ブロック進みます。
目の高さから測りたいとき(Java版)
ローカル座標の基準は足元です。視線の先にブロックを置きたいときはanchored eyesを付けると、目の高さを基準にできます。
/execute anchored eyes run setblock ^ ^ ^3 minecraft:glass
上を向いていても水平に進む(Java版)
/execute rotated ~ 0 run tp @s ^ ^ ^3
^ ^ ^3 だけだと、上を向いていると斜め上へ進みます。rotated ~ 0 を付けると、左右の向きはそのままで上下の角度だけ0(水平)として計算するので、見ている方角へまっすぐ3ブロック進みます。
よくあるつまずき
- tpの向き指定と混同する:
/tp @s ~ ~ ~ ~90 ~の4つ目と5つ目は向き(回転)で、位置ではありません。 - 絶対座標のtpは、Java版ではブロックの中心(.5)に移動します。
~の場合は今の小数点以下がそのまま残ります。 - Y座標に
~-1を使うと足元のブロック、~だと体の下半分がある位置です。setblockで足元を変えるときは~-1です。
よくある質問
~や^はどうやって入力しますか?
日本語キーボードでは、~はShiftキーを押しながら「へ」のキー、^は「へ」のキーをそのまま押します。日本語入力をオフにして、半角で入力してください。
^で上下の角度を無視して水平に進みたいです。
Java版では、向きの上下を0にした状態で実行すれば水平になります。/execute rotated ~ 0 run tp @s ^ ^ ^3のようにrotatedで縦の角度だけ0にできます。
fillやcloneでも^は使えますか?
使えます。座標を受け取るコマンドなら、~と同じように^で指定できます。ただし範囲の2つの角を別々の基準で書くと分かりにくくなるので、まずは~で試すのがおすすめです。