コマンド解説-基礎編-
投稿日:2020/11/28
最終更新日:2021/05/02
どうも、ユキミ大福です。
今回はMinecraft統合版のコマンドについて、その基礎的な部分の解説をしていきます。
ここで解説するコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。
ちょっとだけ振り返り
以前の記事の通り、コマンドはチャット欄またはコマンドブロックに打ち込んで実行させます。
この時は特に意識する必要はありませんでしたが、コマンドを実行する時に重要となってくる要素があります。その1つが『基準座標』です。
『基準座標』とは?
コマンドを実行する際に、そのコマンドや相対座標が参照する中心座標のことです。基本的にはコマンドの実行者が存在する座標がそのまま基準座標になります。
つまり、チャット欄からコマンドを実行した場合には、自分自身が居る座標が、コマンドブロックからコマンドを実行した場合には、そのコマンドブロックが存在する座標が基準座標となります。
...と言われてもピンと来ない方が多いと思います。むしろ「これの何が重要なんや?」という人が大半だと思います。そんな方向けに解説していきます。
コマンドの1つに、プレイヤーにアイテムを付与する「/give」があります。以前の記事で実行したコマンドは
/give @p diamond 1
というものでしたが、このコマンドの中の「@p」が、ここで解説する基準座標と密接に関わっています。
先にこの「@p」について軽く説明しますと、これはターゲットセレクターといい、マイクラ上のプレイヤーやモブ、エンティティを、その名前を書かずに指定することができるものです。
ターゲットセレクターについて詳しくはまたおいおい解説しますが、この「@p」というターゲットセレクターは、基準座標に最も近いプレイヤーを指定するものです。
そう、『基準座標』に最も近いプレイヤーが対象になるのです。
この『基準座標に最も近いプレイヤー』というのは、チャット欄から実行した場合と、コマンドブロックから実行した場合で意味合いが違ってきます。
- チャット欄から実行した場合
この場合、基準座標は自分自身が居る座標になります。「@p」は自分自身が居る座標から最も近いプレイヤーが対象となるので、必然的に対象プレイヤーは自分になります。 - コマンドブロックから実行した場合
この場合、基準座標はコマンドブロックが存在する座標となります。そのため、コマンドブロックのある座標から最も近いプレイヤーが対象となるので、対象プレイヤーは自分だけとは限りません。
なお、この基準座標はターゲットセレクターの引数や「/execute」等で変更することができます。やり方については ↓ で解説しています。
絶対座標と相対座標
さて、コマンドにおいて重要な要素は基準座標だけではありません。
他に重要な要素として挙げられるのが絶対座標と相対座標です。
- 絶対座標
特定の座標を直接指し示す座標です。コマンドに絶対座標で座標を記載すれば、基準座標がどうであれ、必ずその座標に影響を及ぼします。
表記法は以下の通りです。
X座標 Y座標 Z座標
例)20 11 28
例)15.5 60.8 120.2 - 相対座標
基準座標または対象エンティティからの距離を指定する座標です。そのため、基準となる対象が変われば影響を及ぼす座標も変わります。
基準座標と対象エンティティのどちらを基準とするかはコマンドによって異なりますが、基本的にはターゲットセレクターを用いるコマンドは対象エンティティを、それ以外は基準座標が基準になります。
表記法はチルダ表記法とキャレット表記法があります。
チルダ表記法には「~ (チルダ)」を、キャレット表記法には「^ (キャレット)」を用います。
表記法は以下の通りです。
~Xの距離 ~Yの距離 ~Zの距離
^Xの距離 ^Yの距離 ^Zの距離
例)~20 ~11 ~28.8
例)^15.5 ^60 ^120.2
これ以上の詳細な解説は ↓ のページで解説します。
ターゲットセレクター
続いては、基準座標の解説でもチラッと説明したターゲットセレクターです。
これは、マイクラ上のプレイヤーやモブ、エンティティを、その名前を書かずに指定することができるものです。
上記の説明では難しすぎて意★味☆不★明だという方むけにもう少し簡単に説明しますと、コマンドの対象プレイヤー(例としてわたくしユキミ大福)を指定する時に、『ユキミ大福』と名前で指定するのではなく、『このブログを書いているアイツ』と代名詞的に指定するのがターゲットセレクターだと思ってください。
コマンドの一部にはターゲットセレクターを用いることができるものもありますが、そういったコマンドはターゲットセレクターの代わりに対象のプレイヤー名(ゲーマータグまたはSwitchでのニックネーム)を、以下の様に直接打ち込むこともできます。
以下の例で使用している「 /tp ( /teleport ) 」は、指定したエンティティを指定したエンティティの場所または座標にワープさせるコマンドです。
/tp YukimiD1999 0 100 0
または
/tp "ユキミだいふく" 0 100 0
上の様に記述すると、わたくしユキミ大福(YukimiD1999)を座標( 0, 100, 0 )にワープさせるコマンドになります。
ちなみに、プレイヤー名に日本語が含まれている場合やアイテム・ブロック・エンティティIDと被る単語が含まれている場合は「 " (ダブルクォーテーション)」で囲ってあげればOKです。
しかし、これではこの記事を読んで下さっている皆様がこのコマンドを使えませんし、コマンドを記述する度に一々プレイヤー名を記述するのは面倒ですよね?
そこで登場するのがこの『ターゲットセレクター』というわけです。
ターゲットセレクターには以下の5種類が存在します。
- @p
基準座標から最も近いプレイヤー1人が対象 - @r
ランダムなプレイヤー1人が対象 - @a
死亡中のプレイヤーも含め、プレイヤー全員が対象 - @e
プレイヤーも含め、全てのエンティティが対象 - @s
死亡中のプレイヤーも含め、コマンドを実行したエンティティ自身が対象
さらに、これらのターゲットセレクターには『引数(ひきすう)』を設定することができます。
『引数』を付けることでより細かく対象を選択できるのですが、その辺については ↓ の記事で解説します。
アイテム・ブロックID
この2つはほぼ同義で、コマンド上で使えるアイテムやブロックの名前です。
例)焼き石
stone 0
例)花崗岩
stone 1
例)レッドストーンブロック
redstone_block 0
基本的には英語そのままですが、上の例の焼き石と花崗岩の様に、ID部分が全く同じものが割と存在します。
これらを区別しているのが、その後ろに半角スペースを空けて記述される謎の数字です。
この数字はデータ値と言います。
「stone」の場合、データ値を入力することで以下の様になります。
これ以上の詳細な解説は ↓ のページで解説します。
エンティティ
今までの解説でちょこちょこ登場していましたが、ここまで説明がありませんでしたね。「エンティティとは何ぞ?」という方はおまたせしました。やっと解説します。
まず、マイクラのワールドを構成する要素は大きく分けて4つあるというところからお話しします。
- ブロック
マイクラの代名詞の様なもので、大半は立方体 - エンティティ
プレイヤーやモブなど、ブロックでないものは大体これ - パーティクル
ブロックを壊した時に出るカスみたいなものや、敵を倒した時に出る煙みたいなものなど、ブロックでもエンティティでもないものは大体これ - その他
空や雲等はブロックでもエンティティでも、そしてパーティクルでもないので、当ブログではその他としている
ここではこれらマイクラ4大要素の内、エンティティの解説を少しだけします。
上にもある通り、エンティティとはプレイヤーやモブなど、ブロックでもパーティクルでもないものを指します。
他にはボートやトロッコ、経験値オーブや設置した防具立て、絵画、ドロップしたアイテムや発射された矢、果ては雷等も実はエンティティです。
ちなみに、Java版ではエンティティである額縁は、統合版ではエンティティではありません。なんでだろう。
エンティティの中には、アイテム・ブロックIDのエンティティ版とも言える『エンティティID』を持ったものもあります。
エンティティIDを持ったものは「/summon」で呼び出すこともできます。
エンティティIDを持っていない絵画やドロップアイテム等も、ターゲットセレクターでは引数に設定することが可能です。
これ以上の詳細な解説は ↓ のページで解説します。
コマンドブロック
以前の記事でもチラッと登場しましたが、コマンドブロックは内部に1つコマンドを保存することができ、実行条件を満たすことで保存したコマンドを実行してくれるブロックです。
また、1度コマンドを実行しても、内部に保存したコマンドは消えないため、実行条件を満たす度に保存したコマンドを繰り返し実行できる優れものです。
注意!コマンドブロックは「設定」→「世界」→「ゲーム」→「チート」の中の「コマンドブロックが有効」がONでないと動作しません。
そんなコマンドブロックには以下の3種類が存在します。
なお、コマンドブロックは通常のクリエイティブタブには存在せず、コマンドによってのみ入手できます。
以下はそれぞれの入手コマンドです。
インパルスコマンドブロック
/give @p command_block 1
チェーンコマンドブロック
/give @p chain_command_block 1
リピートコマンドブロック
/give @p repeating_command_block 1
なお、これらのコマンドブロックを右クリックすると設定画面が開くのですが、設定画面の左側の『ブロックの種類』の項目によってコマンドブロックの種類が変化するので、インパルスコマンドブロックさえ手に入れば問題ありません。
それぞれのブロックがどのように動作するかは以下の通りです。
- インパルスコマンドブロック
ブロックの種類:衝撃
条件:無条件
レッドストーン:レッドストーンが必要
上記の様に設定することで完成します。
レッドストーン動力を受けるとコマンドを実行します。もう一度実行させるには、入力しているレッドストーン動力を一度OFFにする必要があります。
『レッドストーン』を『常にアクティブ』に設定した場合には、設定画面を閉じた瞬間にコマンドを一度だけ実行しますが、使いづらいので『レッドストーンが必要』にすることをオススメします。
『条件』を『条件付き』に設定した場合には、その前のコマンドブロックからTrue信号を受けると同時に『レッドストーンが必要』か『常にアクティブ』の実行条件を満たせばコマンドを一度だけ実行しますが、クッソ使いづらいので『無条件』を推奨します。 - チェーンコマンドブロック
ブロックの種類:チェーン
条件:無条件 or 条件付き
レッドストーン:常にアクティブ
上記の様に設定することで完成します。
前のブロックから『実行信号』を受けるとコマンドを実行します。『条件付き』の場合は『True信号』を受けた時のみ実行します。
『レッドストーン』を『レッドストーンが必要』に設定した場合には、レッドストーン動力が入力されている時に『実行信号』または『True信号』を受けると実行しますが、正直わたくしはあまり使いません。
『実行信号』や『True信号』については ↓ の記事で解説しています。 - リピートコマンドブロック
ブロックの種類:反復
条件:無条件
レッドストーン:レッドストーンが必要
上記の様に設定することで完成します。
レッドストーン動力を受けている限り、繰り返しコマンドを実行します。このブロックのコマンド1回の実行スピードは、デフォルトではなんと1/20秒です(1Gtick)。つまり、1秒間に20回もコマンドを実行できるのです。
『条件』を『条件付き』に設定した場合には、その前のコマンドブロックからTrue信号を受けると同時に『レッドストーンが必要』か『常にアクティブ』の実行条件を満たせばコマンドを実行しますが、クッソ使いづらいので『無条件』がオススメです。
『レッドストーン』を『常にアクティブ』に設定した場合には、設定画面を閉じた瞬間から再び設定画面を開くまで、何もせずともコマンドを無限に実行し続けます。コマンドの中には凄まじいスピードで繰り返し実行するのは危険なものもあるので、慣れない内は『レッドストーンが必要』にすることを強く推奨します。
ヤバいコマンドの例
/kill @a
「/kill」は指定したエンティティを問答無用で倒すコマンドで、ターゲットセレクターが「@a」なので、対象はワールドに存在する全てのプレイヤーとなります。
このコマンドは1回だけ実行する分には問題ないのですが、これをリピートコマンドブロックで実行させると、1秒間に20回という速さでワールドの全てのプレイヤーを倒し続けることになります。つまり、何度リスポーンしても、その瞬間に死にます。
こうなってしまった場合、ワールドを一旦閉じ、ワールドの設定画面から『コマンドブロックが有効』をOFFにしてからワールドに再度入り、悪さをしているコマンドブロックを破壊するかそのコマンドを修正するしかありません。
それで済むならまだマシな方で、コマンドによってはワールドが重くなりすぎて開けない、または入れてもまともに動けない、最悪の場合にはワールドやマイクラそのものが死ぬ可能性もあります。
これらの危険性があるので、もう一度言いますが『レッドストーンが必要』を強く推奨します。その上で、リピートコマンドブロックでコマンドを実行させるコマンドはよく考えましょう。
また、繰り返しになりますが、ここで解説したコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。
最後に脅すようなことを書いてしまいましたが、コマンドブロックはきちんと正しく扱えば非常に便利です。
レッドストーン回路と組み合わせれば、複雑な処理を要求するゲームなんかも作れます。
これ以上の詳細な解説は ↓ のページで解説します。
コマンド実行時のフィードバック
特にデフォルト設定から弄ってなければ、コマンドを実行すると以下の様になんか左上に色々と出てきます。
これはコマンド実行時のフィードバックです。コマンドが成功したか失敗したか、あるいは何かしらのエラーが発生したか、コマンドが成功したことで何が起きたか等が表示されます。
『コマンド実行時のフィードバック』だと長いので、以降は『実行結果』と略します。
この『実行結果』は3種類存在します。
- コマンドブロックの実行結果表示
上の画像では『 [/:YukimiD1999 に ダイヤモンド を 1 個与えました] 』と表示されている部分です。これはコマンドブロックから実行した場合にしか画面に表示されません。
どう表示されるかはコマンド及びその成功・失敗によって変わりますが、特徴は先頭に『 /: 』がついていることです。
なお、その実行したコマンドブロックに『ポイントしたときの注意』を設定している場合には『 (ポイントしたときの注意): 』に変わります。
- コマンド実行の成功・失敗の表示
上の画像では『ダイヤモンド を 1 個受け取りました』と表示されている部分です。どう表示されるかはコマンド及びその成功・失敗によって変わりますが、特徴は『 [ ] 』がついていないことです。 - 構文・実行エラー
これはチャット欄から実行した場合にしか画面に表示されません。コマンドブロックから実行した場合には、設定画面内の『前回の実行結果』をONにしていれば、そこから同様の内容を確認できます。
ちなみにコマンドブロックの場合、構文エラーであれば、一度設定画面を閉じてもう一度開けば、実行せずともエラーメッセージを表示してくれます。ただしその場合、コマンドを実行するまでは構文エラーを解消しても『前回の実行結果』はそのままなので注意しましょう。
これらの実行結果はコマンドによって表示しなくすることができます。ただし、構文・実行エラーだけは非表示にできません。
コマンドブロックの実行結果を表示しなくするコマンド
/gamerule commandblockoutput false
コマンド実行による影響の結果を表示しなくするコマンド
/gamerule sendcommandfeedback false
なお、実行結果を表示させたくなった場合には、上記のコマンドの『false』の部分を『true』に変えて実行して下さい。
ここまで長々と書いてしまいましたが、これらはコマンドにおいて非常に重要な要素ばかりなので、しっかりと押さえておきましょう。
今回のまとめ
- 基準座標は、チャット欄から実行したなら自分自身が居る座標!コマンドブロックから実行したならコマンドブロックの座標!
- 絶対座標はピンポイントで座標を指定!相対座標は基準となる場所からの距離を指定!
- ターゲットセレクターで楽にエンティティを指定できる!
- アイテムやブロック、エンティティにはコマンド上で使える名前(ID)がある!
- エンティティはブロックとパーティクル以外のもの!
- コマンドブロックはコマンドを実行してくれる便利なブロック!でも扱いには気を付けろ!
- 実行結果でコマンドの成功・失敗や影響、エラーの内容がわかる!非表示にもできる!
関連記事
当記事及び当ブログへのご意見・ご質問はいつでも受け付けております。
お気軽にコメント欄までどうぞ!
↓良ければポチッとお願いします。