コマンド構文解説-自由な場所へ瞬間移動!/teleport ( /tp )-
投稿日:2021/05/22
最終更新日:2021/07/17
どうも、ユキミ大福です。
今回はMinecraft統合版のコマンドの内の1つである『 /teleport ( /tp )』について解説をしていきます。
ここで解説するコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。
今回のコマンドは?
今回ご紹介するコマンドは『 /teleport (テレポート)』と『 /tp (ティーピー)』です。このコマンドは、エンティティを特定の場所へテレポートできるというものです。
なお /teleport と /tp は構文と役割・動作が全く同じコマンド、つまりは同一のコマンドの別名関係なので、以下の様に「/teleport」の部分を「/tp」に置換しても動作します。
/teleport @p ~ ~10 ~
=
/tp @p ~ ~10 ~
それでは構文を見てみましょう。以下の解説では「/teleport」を用います。
/teleport のコマンド構文
タイプ1)
/teleport <テレポ先座標(int/float)> <テレポ先ブロック検知(bool)>
/teleport <テレポ先座標(int/float)> <y回転(int/float)> <x回転(int/float)> <テレポ先ブロック検知(bool)>
/teleport <テレポ先座標(int/float)> facing <フェイシング座標(int/float)> <テレポ先ブロック検知(bool)>
/teleport <テレポ先座標(int/float)> facing <フェイシングセレクター> <テレポ先ブロック検知(bool)>
タイプ2)
/teleport <テレポ対象セレクター> <テレポ先座標(int/float)> <テレポ先ブロック検知(bool)>
/teleport <テレポ対象セレクター> <テレポ先セレクター> <テレポ先ブロック検知(bool)>
/teleport <テレポ対象セレクター> <テレポ先座標(int/float)> <y回転(int/float)> <x回転(int/float)> <テレポ先ブロック検知(bool)>
/teleport <テレポ対象セレクター> <テレポ先座標(int/float)> facing <フェイシング座標(int/float)> <テレポ先ブロック検知(bool)>
/teleport <テレポ対象セレクター> <テレポ先座標(int/float)> facing <フェイシングセレクター> <テレポ先ブロック検知(bool)>
- <テレポ先座標(int/float)>:タイプ1では必須。タイプ2では<テレポ先セレクター>を入力しない場合に必須
XYZ座標をint型・float型で指定するか相対座標を入力する。相対座標を入力する場合、基準座標からの距離を指定する。 - <テレポ対象セレクター>:タイプ2では必須
テレポートさせる対象のターゲットセレクター。ゲーマータグを直接入力可。 - <テレポ先セレクター>:タイプ2では<テレポ先座標(int/float)を入力しない場合に必須
テレポートさせる先のターゲットセレクター。ゲーマータグを直接入力可。対象エンティティは必ず1体のみでなければならない。 - <y回転(int/float)>:省略可。<x回転(int/float)>を入力する場合は必須
Y軸を基準としてテレポ後のエンティティの向き(回転角)をint型・float型の数値か、テレポ前のY軸回転角を基準とする『~ (チルダ)』で指定する。省略した場合及び「~ (チルダ)」を入力し、数値を入力しなかった場合はテレポ前のY軸回転角を保持する。数値と方角の関係は以下の通り。
・北:-180 ( 180 )
・東:-90 ( 270 )
・南:0 ( -360 / 360 )
・西:90 ( -270 ) - <x回転(int/float)>:省略可
X軸を基準としてテレポ後のエンティティの向き(回転角)をint型・float型の数値か、テレポ前のX軸回転角を基準とする『~ (チルダ)』で指定する。省略した場合及び「~ (チルダ)」を入力し、数値を入力しなかった場合はテレポ前のX軸回転角を保持する。数値と角度の関係は以下の通り。
・真上:-90 (-90以下の数値は-90に丸め込まれる)
・真正面:0
・真下:90 (90以上の数値は90に丸め込まれる) - <フェイシング座標(int/float)>:省略可。facingを入力し、<フェイシングセレクター>を入力しない場合は必須
テレポ後のエンティティの顔を向かせる先のXYZ座標をint型・float型で指定するか相対座標を入力する。相対座標を入力する場合、基準座標からの距離を指定する。 - <フェイシングセレクター>:省略可。facingを入力し、<フェイシング座標(int/float)>を入力しない場合は必須
テレポ後のエンティティの顔を向かせる先のターゲットセレクター。ゲーマータグを直接入力可。対象エンティティは必ず1体のみでなければならない。 - <テレポ先ブロック検知(bool)>:省略可
テレポ対象をテレポ先へテレポートさせた結果、テレポ対象がブロックに埋まってしまう場合にテレポートさせるかどうかを true or false で設定する。true にするとテレポ対象がブロックに埋まってしまう場合にはテレポートしない(コマンドは失敗扱いになる)。省略した場合は false 扱いになる。
/teleport の失敗条件
- 構文が適切でない(スペルミス等)。
- タイプ1の構文で /execute を経由せずにコマンドブロックから実行した場合。
- facingを入力している場合に<フェイシング座標(int/float)>と<フェイシングセレクター>のどちらも入力していない場合。
- コマンド実行時点で<テレポ先セレクター>または<フェイシングセレクター>で指定したエンティティが2体以上存在している。
- <テレポ先ブロック検知>が true の場合に、テレポ対象エンティティがテレポ先へテレポートした結果、ブロックに埋まってしまう場合。
- 指定したセレクターの条件に合う対象が存在しないか、読み込まれているチャンク内に存在していない。
/teleport の成功条件
- 上記の失敗条件を満たしていない場合。
- 実行した結果、テレポ対象の位置・向きが全く変わらなかった場合でも成功扱いになる。
/teleport の実行例
例1)
コマンド:/teleport @p 100 70 120
実行結果:基準座標から1番近いプレイヤーを座標( 100, 70, 120 )にテレポートさせる。
例2)
コマンド:/teleport @a @p
実行結果:全てのプレイヤーを基準座標から1番近いプレイヤーにテレポートさせる。
例3)
コマンド:/tp @a ~ ~ ~ -90 0
実行結果:全てのプレイヤーを基準座標にテレポートさせ、Y軸回転角を真東、X軸回転角を真正面にする。
例4)
コマンド:/tp ~ ~ ~ facing ( 100, 70, 120 )
実行結果:コマンド実行者自身を基準座標(自身が居る座標、つまりその場)にテレポートさせ、座標( 100, 70, 120 )を向かせる。
例5)
コマンド:/tp @s ~ ~ ~ facing ( 100, 70, 120 )
実行結果:コマンド実行者自身を基準座標(自身が居る座標、つまりその場)にテレポートさせ、座標( 100, 70, 120 )を向かせる。
例6)
コマンド:/tp @p ~~~ facing @p[c=-1] true
実行結果:基準座標から1番近いプレイヤーを基準座標にテレポートさせ、基準座標から1番遠いプレイヤーを向かせる(対象が自分自身になる場合はテレポ前のX・Y軸回転角を保持する)。テレポートするとテレポ対象がブロックに埋まってしまう場合はテレポートしない(コマンドは失敗扱いになる)。
/teleport の詳細解説
/teleport の概要
/teleport ( /tp ) は指定したエンティティを指定した場所にテレポートさせるコマンドです。構文が複数あってややこしく見えますが、まとめると以下のようになります。以下の構文例では、以下の条件を満たすように構文を構築しています。
- テレポ対象
・実行者自身 - テレポ先(いずれか1つ)
・座標 ( 100, 65, 150 )
・基準座標から1番近い防具立て(armor_stand) - 向かせる方向(いずれか1つ)
・座標 ( 0, 40, -20 )
・基準座標から1番近いウシ(cow)
・Y軸回転角=-90, X軸回転角=-10
それでは以下が構文のまとめです。
- 誰をテレポートさせるか?
コマンド実行者自身のみ :タイプ1
例)/tp 100 65 150
コマンド実行者を含むその他:タイプ2
例)/tp @s 100 65 150 - どこにテレポートさせるか
特定の座標 :<テレポ先座標(int/float)>
例)/tp 100 65 150
特定のエンティティ:<テレポ先セレクター>
例)/tp @s @e[c=1,type=armor_stand] - どこに向けさせるか
特定の座標 :<フェイシング座標(int/float)>
例)/tp 100 65 150 facing 0 40 -20
特定のエンティティ :<フェイシングセレクター>
例)/tp @s 100 65 150 facing @e[c=1,type=cow]
特定のX・Y軸回転角:<y回転(int/float)>・<x回転(int/float)>
例)/tp @s 100 65 150 facing -90 -10 - テレポ対象がテレポートした結果ブロックに埋まる場合にテレポートさせるか
させる :<テレポ先ブロック検知>を false、または省略
例)/tp @s 100 65 150 facing 0 40 -20 false
させない:<テレポ先ブロック検知>を true
例)/tp @s 100 65 150 facing 0 40 -20 true
タイプ1は、タイプ2の<テレポ対象セレクター>を@sとした上で省略したもの、と思っていただければ問題ありません。そのため /execute 経由で実行させない限り、コマンド実行者が自身をテレポートさせる場合のみ有効となります。
逆に言えばタイプ1は、タイプ2の<テレポ対象セレクター>を@sとすれば同じ挙動となるため、覚えなくても問題無いと思います。
「/teleport 実行例」の例4と例5がそのいい例で、書き方が異なるものの同じ挙動をするコマンドになっています。
なお、/execute については ↓ の記事をご覧下さい。
/teleport の実行結果等々
コマンドの実行結果は「コマンドの成功・失敗・エラー」のいずれかになります。
失敗した場合には以下のように返ってきます。
- セレクターに合う対象がない:
<テレポ対象セレクター>・<テレポ先セレクター>・<フェイシングセレクター>のいずれかの対象が存在しない場合 - 領域のブロックが片付けられていないため、(対象名) を (テレポ先座標) にテレポートできない:
<テレポ先ブロック検知>を true とした上で、テレポ対象がテレポートした結果ブロックに埋まる場合
コマンドブロックが保持・出力する結果は「コマンドの実行に成功したか(True or False)」と「コマンドが何人に対して成功したか(int)」の2点です。コマンドが成功した人数については、RSコンパレーターを用いてRS動力の形で取り出せます。
/teleport の強み・使い道
ゲーム制作においては、もっぱらプレイヤーの移動に用いられますが、他にも<フェイシング座標(int/false)>や<フェイシングセレクター>、<y回転(int/false)>・<x回転(int/false)>を用いてのプレイヤーの目線の誘導、エンティティの移動などにも大活躍します。
特に最後のエンティティの移動に関しては、工夫次第では非常に面白いコマンド制御アイテムを作成できます。例えば地面に対して水平に飛ぶ魔法の弾や、ライバルを追尾して飛んで行くTNTトロッコなど、本当に非常に様々です。詳しくはコマンド解説応用編で解説する予定なのでお楽しみに!
/teleport の弱み・弱点
このコマンドにこれといった弱点は存在しませんが、強いて言うなら<テレポ先ブロック検知>が false の場合、ブロックにめり込んでしまう可能性があるため注意しましょう。
/teleport は慣れれば非常に便利なコマンドです。特に壁・床・天井を抜けたい時は「~ (チルダ)」や「^ (キャレット)」を用いれば簡単に抜けることができます。ぜひとも使ってみて下さい!
今回のまとめ
- 『 /teleport 』『 /tp 』は指定したエンティティを指定した場所にテレポートさせるコマンド!
関連記事
- コマンド構文解説-霧を操る…?/fog-
- コマンド構文解説-エンティティにライド・オン!/ride-
- コマンド構文解説-モブがアクションを起こす!?/event, /mobevent-
- コマンド構文解説-あのモブのあのモーションを!?/playanimation-
- コマンド構文解説-何が起こるんだ!?PART1!/connect ( /wsserver ), /help ( /? ), /kick
- コマンド構文解説-何が起こるんだ!?PART2!/list, /locate, /schedule-
- コマンド構文解説-コマンドに革命を起こす…!?/function, /reload-
当記事及び当ブログへのご意見・ご質問はいつでも受け付けております。
お気軽にコメント欄までどうぞ!
↓良ければポチッとお願いします。