“ |
|
„ | |
— Duncan Geere[1] |
コマンドブロック(英:Command Block)は、コマンドを実行することができるブロックである。サバイバルモードにおいてはチートなしでは入手できないため、主にマルチプレイサーバーやカスタムマップで使用される。
入手[]
Java Editionでは、操作設定から「管理者用アイテムタブ」をオンにしていると、クリエイティブインベントリの管理者用アイテムタブから利用できる。
コマンドブロックは、ブロック選択の操作、もしくは /give @s minecraft:command_block
や /setblock ~ ~ ~ minecraft:command_block
のようなコマンドを使用することで入手できる。
他のブロックと同様に NBT データを保持することができ、CTRL を押しながらブロック選択を行うことで、コマンドブロックのコマンドや設定をコピーすることができる。これにより、コマンドの再入力をすることなく同じコマンドのコマンドブロックを別の場所に設置することができる。
コマンドブロックは、オペレーター権限のないプレイヤーはサバイバルモードでは破壊することができない。また、可燃性はなく、ピストンで移動させることもできない。さらに、岩盤と同じ爆発耐久値を持つ。
用途[]
コマンドブロックは、レッドストーン信号によって起動することでコマンドを実行できる。コマンドブロックはすべての権限を有するので、コマンドを使用できないプレイヤーが特定のコマンドを使用できるようにすることができる(例えば、/give
を設定することで誰でも特定のアイテムを入手することができる)。
コマンドブロックの「向き」は、自身によってどのチェーンコマンドブロックが起動され、また「条件付き」モードのコマンドブロックが実行されるかどうかを決定する。[要改訳]
変更[]
コマンドブロックにコマンドを入力したり変更したりするには、コマンドブロックに対して使用の操作をしてコマンドブロックの GUI(グラフィカルユーザーインターフェース)を開けばよい。GUI はクリエイティブモードかつ適切な権限を持つプレイヤーにのみ表示される。シングルプレイでは、コマンドブロックの編集にはチートを有効にしなければならない。マルチプレイでは、コマンドブロックの編集はクリエイティブモード、かつオペレーター権限を持つプレイヤーのみが行える。また、コマンドブロックを正しく動作させるには、server.properties ファイルの以下の値を設定する必要がある。
enable-command-block
をtrue
に設定するop-permission-level
を2
以上に設定する(デフォルトは 4)
- コンソールコマンド
- コマンドは、上部のテキストエリアに入力することができる。入力できるコマンドの長さは32,500文字までだが、テキストエリアでは一度にこのわずかな部分しか表示できない。Tab ↹ キーを押すことで、コマンドの補完や候補の選択ができる。
- コマンドブロックのコマンドには、チャットウィンドウでの入力のように先頭にスラッシュ(
/
)を付ける必要はないが、付けても問題はない。
- コンソールコマンドのテキストエリアの下には、ターゲットセレクターの使用方法に関するヒントが記載されている。
- 前回の実行結果
- 下部のテキストエリアには、前回実行されたコマンドから出力されたメッセージ(成功/失敗)が表示される(初期は空欄)。このテキストは編集できない。
- テキストエリアの右に表示されているボタンには、前回の実行結果の出力を記憶しておくかどうかを設定できる。
O
(デフォルト)が表示されている時は出力は記憶され、X
が表示されている時は記憶されない。コマンドの実行中に出力を追跡しているコマンドブロックによりブロック更新が発生し、同じチャンクにコマンドを実行しながら出力を追跡するコマンドブロックが64個ある場合、1つのチャンク内で64個のブロック更新が発生し1つ以上のチャンク更新が発生する。チャンク更新の量が多いと、チャンクの更新が受信されている場合、プレイヤーのFPSが急落する可能性がある。これを回避するには、一時的なデバッグ目的を除き、全てのコマンドブロックで出力を全く追跡しないようにする。[要改訳]
- インパルス/チェーン/リピート
- 「インパルス/チェーン/リピート」のボタンをクリックすると、コマンドブロックの種類を変更できる。デフォルトの状態は「インパルス」だが、デフォルト以外の状態のコマンドブロックも設置できる。コマンドブロックの種類を変更すると、色も変わる:
- 「インパルス(衝撃[Bedrock Edition限定])」に設定されたコマンドブロックは橙色である。レッドストーン信号により起動される度に、一度だけ実行される。
- 「チェーン」に設定されたコマンドブロックは緑色である。コマンドブロックの処理が終了すると、そのコマンドブロックが指す方向に隣り合ったコマンドブロックが実行される。これは単に隣り合っているだけでなく、どれを指しているのかを検出するという点で、条件付きオプションとは異なる。隣り合うコマンドブロックの種類は、チェーンである必要はない。
- 「リピート」に設定されたコマンドブロックは紫色である。レッドストーン信号により起動している間は、1ゲームティックごとにコマンドが実行される(ラグなしで秒間20回)。
- 条件付き/無条件
- 「条件付き/無条件」のボタンをクリックすると、コマンドブロックの実行条件を変更できる。
- 「条件付き」:条件付きモードのコマンドブロックは、その前のコマンドブロック(チェーンの方向にかかわらず、そのコマンドブロックの方向とは反対にあるコマンドブロック)の実行が成功した場合にのみ実行される。
- 「無条件」(デフォルト):無条件モードのコマンドブロックは、(正しく起動していれば)その前のコマンドブロックの実行が失敗していたとしても実行される。
- 常時実行/動力が必要
- 「常時実行/動力が必要」のボタンをクリックすると、コマンドブロックの起動条件を変更できる。
- 「動力が必要」(インパルス、およびリピートコマンドブロックのデフォルト):「動力が必要」に設定されたコマンドブロックは、コマンドの実行にレッドストーン信号によって起動する必要がある。
- 「常時実行」(チェーンコマンドブロックのデフォルト):「常時実行」に設定されたコマンドブロックは、レッドストーン信号なしに起動することができる。
- チェーンコマンドブロックは、チェーンした際にコマンドが実行される。
- リピートコマンドブロックは、毎ゲームティックごと、すなわち秒間20回コマンドが実行される。
- インパルスコマンドブロックは、一度だけ起動され、その後再びレッドストーン信号が入力されない限りは起動されない。
- 完了
- 「完了」ボタンをクリックするか、↵ Enter キーを押すと、コマンドが保存され、コマンドブロックの GUI が閉じる。
- キャンセル
- 「キャンセル」ボタンをクリックするか、Esc キーを押すと、コマンドは保存されず、コマンドブロックの GUI が閉じる。
起動[]
コマンドブロックはレッドストーンの機械部品であり、以下の動力によって起動される。
- 隣接するON状態の動力部品: 例えば、レッドストーントーチ (ただしコマンドブロックに設置したレッドストーントーチは除く), レッドストーンブロック, 日照センサー, ボタンなど。
- 隣接する動力源化したブロック(例: レッドストーントーチの上に設置された不透過ブロック(コマンドブロックを含む))
- コマンドブロックの方向を向いていて、動力を受けているレッドストーンコンパレーターやレッドストーンリピーター
- 動力を受けているレッドストーンダストのうちコマンドブロックを向いているか、コマンドブロックの上に設置されているか、向きを持たないもの。コマンドブロックとは別の方向へ向いて設置されているレッドストーンダストはコマンドブロックを起動しない。
音符ブロックを除くすべてのレッドストーン要素とは異なり、コマンドブロックはゲームティック毎に起動できる。(1秒間に20ティック、ラグを除く)。ただし、[レッドストーンが必要]に設定されている場合、2ティック連続で起動させるには、同じティックの間に(例えばsetblockのクロック回路で)オンの状態からオフの状態に一回戻る必要がある。
「常にアクティブ」モードのコマンドブロックは常にアクティブになる。デフォルトの状態は「レッドストーンが必要」であり、動力がオンの状態にのみ実行される。
起動すると、コマンドブロックはそのコマンドを実行しようとする。コマンドブロックの種類に応じて:
- コマンドブロック("インパルス")はコマンドを一回実行しようとする
- チェーンコマンドブロック("チェーン")はそれの方向を向いている別のコマンドブロックがそのコマンドを実行するまでコマンドを実行しようとしない
- リピートコマンドブロック("リピート")は動力が無くなるまでゲームティックごとにコマンドを実行しようとする
連鎖実行[]
起動したコマンドブロックがチェーンコマンドブロック(「チェーン」モードのコマンドブロック)の方を向いている場合、実行するようチェーンコマンドに通知される。チェーンコマンドブロックは起動された場合、「条件付き」モードだとその背後のコマンドブロックが正常に実行された場合にのみコマンドを実行する(どのコマンドブロックが繋がっているかではなく、それが向いている方向)。
繋がったコマンドブロックは繋がっている順序で同じゲームティックで実行される。連鎖実行は、そのゲームティックで既に実行されているコマンドブロックに繋がることはできない(ループは一回だけ実行される)
出力[]
起動したコマンドブロックは複数の種類の信号を出力できる:
- レッドストーンコンパレータ―
- コマンドブロックで最後に実行されたコマンドの特定の(例えば、コマンドにあてはまるプレイヤーの数)信号強度を、ブロックと反対方向を向いているレッドストーンコンパレーター(ブロック越しでも可能)に出力できる
- コマンドブロックが無効になっても信号強度は常に最後に実行されたコマンドを反映する
- メッセージ
- 出力メッセージは、実行されたコマンドの成功または失敗を通知し、複数の場所に送られる場合もある:
- 前回の実行結果: 出力メッセージは常にコマンドブロックのGUIの「前回の実行結果」欄に表示される。
- チャット: 出力メッセージは
/gamerule commandBlockOutput false
で制限されていなければシングルプレイヤーモードではチャットテキストに表示され、マルチプレイヤーモードではすべてのオペレーター権限を持ったプレイヤーに表示される。コマンドによっては出力メッセージとは別に通常の機能として制限されずに追加でテキストがチャットに表示されることがある(例えば/say
コマンドではすべてのプレイヤーのチャットにメッセージが表示される) 。/me
,/say
,/tell
コマンドのようなプレイヤーが前に就くチャットメッセージではプレイヤー名として@
が使用される。コマンドブロックが設置前に金床で名前を付けられていた場合はその名前が使用される。
- ログ:
/gamerule logAdminCommands false
で制限されていなければ出力メッセージはマルチプレイヤーのサーバーログに表示される。
- コマンド統計
- コマンドブロックは、様々な成功結果をスコアボードのobjectiveに含めることができる:
- SuccessCount: 成功回数(以前はレッドストーンコンパレーターの出力でも利用できたがスコアボードだと16以上も出力できる)
- AffectedBlocks: 変更されたブロックの数
- AffectedEntities: 変更されたエンティティ(プレイヤーを含む)の数
- AffectedItems: 変更されたアイテムの数
- QueryResult: コマンドが返した値
備考[]
コマンドブロックでは使用できないコマンド:/ban
, /banlist
, /ban-ip
, /debug
, /deop
, /kick
, /op
, /pardon
, /pardon-ip
, /publish
, /save-all
, /save-off
, /save-on
, /stop
, /whitelist
(/debug
, /publish
, /list
を除くすべてのマルチプレイヤー専用コマンド)
使用できるが、機能が制限されている(出力がチャットに表示されずコマンドブロックの[前回の実行結果]欄にのみ表示される)コマンド:/help
, /seed
, /list
, /scoreboard objectives
, /scoreboard players
, /scoreboard teams list
出力でコマンドブロックの名前(デフォルトでは@
)を使用するコマンド:/me
, /say
, /tell
イースターエッグ[]
"/
"を前に付けずにコマンドブロックのコマンドで"Searge"を実行すると、前回の実行結果が"#itzlipofutzli"に設定される。また、/help
がコマンドブロックで実行されると"Searge says: "と様々なメッセージの前に表示される
技術的情報[]
ID[]
名前 | ID名 | ブロックID もしくはアイテムID |
---|---|---|
コマンドブロック | minecraft:command_block |
137 |
リピートコマンドブロック | minecraft:repeating_command_block |
210 |
チェインコマンドブロック | minecraft:chain_command_block |
211 |
データ値[]
Bedrock Editionでは、コマンドブロックのブロックデータはコマンドブロックが現在起動しているかどうかを指定する
ビット | 値 |
---|---|
0x1 0x2 0x4 |
コマンドブロックの向きを指定する:
6と7は未使用だが、コマンドブロックは下向きおよび上向きになる。 |
0x8 | 条件付きであるかどうか |
DV | 詳細 |
---|---|
0 | 下向き |
1 | 上向き |
2 | 北向き |
3 | 南向き |
4 | 西向き |
5 | 東向き |
8 | 下向き、条件付き |
9 | 上向き、条件付き |
10 | 北向き、条件付き |
11 | 南向き、条件付き |
12 | 西向き、条件付き |
13 | 東向き、条件付き |
ブロック状態[]
名前 | デフォルト値 | 取り得る値 | 説明 |
---|---|---|---|
conditional | false | true false | 条件付きの場合、trueになる |
facing | north | north south east west up down | コマンドブロックの向き |
ブロックエンティティ[]
コマンドブロックには、ブロックに関する追加データを持つブロックエンティティが関連付けられている。ブロックのブロックエンティティIDはcommand_block
。
- ブロックエンティティデータ
- すべてのブロックエンティティに共通するタグ
- CustomName: 任意で可能。
/say
や/tell
などのコマンドを使用する場合、名前は通常「@」で置き換えられる。 - Command: サーバーに送信するコマンド
- SuccessCount: このコマンドブロックに接続されたレッドストーンコンパレーターによって出力されるアナログ信号の強度。コマンドブロックがレッドストーン信号でオンにあった場合にのみ更新される
- LastOutput: コマンドブロックによって表示された出力の最後の行。gamerule commandBlockOutputがfalseでも保存される。右クリックするとブロックのGUIに表示され、出力が表示された際のタイムスタンプが含まれる
- TrackOutput: 1 / 0 (true/false) - LastOutputを保存するかどうか。GUIの「前回の実行結果」欄の近くのボタンをクリックして切り替えられる。ボタンの題名は現在の状態を示す:"O"はtrue, "X"はfalse
- powered: 1 / 0 (true/false) - コマンドブロックにレッドストーン信号が入力されているかどうか。
- auto: 1 / 0 (true/false) - レッドストーン信号を入力せずにコマンドを実行できる
- conditionMet: 1 / 0 (true/false) - 条件付きコマンドブロックが最後に起動された際に条件が満たされていたかどうか。条件付きコマンドブロックでない場合はtrue
- UpdateLastExecution: 1 / 0 (true/false) - デフォルトはtrue。falseに設定すると1つのティックで同じコマンドブロックのループを複数回実行できる
- LastExecution: チェーンコマンドブロックが最後に実行されたティックを保存する
歴史[]
Java Edition | |||||
---|---|---|---|---|---|
2012年7月27日 | Jebがアドベンチャーモードの拡張の開始のため作成した新しいブロックのツイートを開始。ブロックでできる事の写真、アイデア、ヒントを投稿した。 | ||||
2012年7月31日 | NotchのAMA中、ブロックが1.4にあるかもしれないと示唆した | ||||
1.4.2 | 12w32a | コマンドブロックを追加。 | |||
1.5 | 13w03a | コマンドブロックの成功をレッドストーンコンパレーターが検出できるようになった | |||
13w04a | 金床で改名されたコマンドブロックがチャットで@ではなくその名前を使用するようになった | ||||
1.6.1 | 13w19a | コマンドブロックはサバイバルでは破壊できなくなった | |||
コマンドブロックは青いウィザーの頭蓋骨以外の爆発でダメージを受けなくなった | |||||
1.7.2 | 13w37a | コマンドブロックに前回の実行結果のバーを追加 | |||
コマンドブロックにコマンドを挿入する文字数制限が256から16,369に増加。サードパーティのエディターを使用すると32,767文字にすることもできる。 | |||||
1.8 | 14w07a | ディスペンサーがコマンドブロックを発射せずに設置するようになった | |||
14w20a | ゲーム内の文字数制限である16,369が削除され、32,767文字すべてにアクセスできるようになった。 | ||||
14w27a | CommandStats NBTタグを追加 | ||||
1.8.6 | ディスペンサーがコマンドブロックを設置しなくなった[2] | ||||
1.9 | 15w33a | コマンドブロックの文字制限が32,767ではなく32,500になった | |||
15w34a | チェーンコマンドブロックとリピートコマンドブロックを追加 | ||||
コマンドブロックの向きを追加 | |||||
コマンドブロックのテクスチャを変更 | |||||
15w34b | コマンドブロックに条件付きモードを追加 | ||||
コマンドブロック内のタブ補完を追加 | |||||
15w35a | 3つのコマンドブロックのテクスチャを更新 | ||||
コマンドブロックに常にアクティブとレッドストーンが必要のオプションを追加 | |||||
コマンドブロックのレッドストーンオプションを制御するauto NBTタグを追加 | |||||
コマンドブロックを条件付きに設定すると矢印テクスチャの後ろが曲がるようになった | |||||
15w36a | プレイヤーコマンドブロック内で/give などのコマンドを使用できなくなった
| ||||
コマンドを使用できないプレイヤーはコマンドブロックを設置できなくなった | |||||
15w36d | それぞれのコマンドブロックの種類が地図上で違う色で表示されるようになった | ||||
16w02a | コマンドブロック内で/help を実行すると前回の実行結果として様々な文章の1つのがランダムに使用されるようになった | ||||
16w04a | "/ "を付けずにコマンドブロック内でコマンドとして"Searge"を実行すると前回の実行結果が"#itzlipofutzli"に設定されるようになった | ||||
1.11 | 16w32a | ブロックエンティティIDをControl からcommand_block に変更 | |||
1.12 | 17w16a | コマンドブロックのチェーンのコマンドが「次の」tickで実行されるなくなりったが、読み込まれた同じティックですべて実行されるようになった。これにより、チェーン内の後のブロックを前のブロックで変更できるようになり、すべて同じティックで分岐やループなどの手法が可能になった。 | |||
チェーンの最大長などを制御するmaxCommandChainLength game ruleを追加 | |||||
17w17a | チェーンコマンドブロックが最後に実行したティックの追跡を制御するUpdateLastExecution とLastExecution NBT タグを追加 | ||||
pre6 | 最初に/ を付けなくてもタブ補完のコマンド名が機能するようになった | ||||
1.13 | 17w47a | 平坦化以前は、コマンドブロック、リピートコマンドブロック、チェーンコマンドブロックの数字IDはそれぞれ137,210,211だった | |||
pre1 | プレイヤーが再びコマンドブロック内でタブ補完できるようになった | ||||
1.14 | 18w47b | インパルスとリピートコマンドブロックのテクスチャを変更 | |||
1.19.3 | 22w44a | チートがオンの時に限り、クリエイティブインベントリで利用可能になった。 | |||
22w45a | クリエイティブインベントリで、管理者用アイテムタブに移動した。このタブは、チートがオンかつ「管理者用アイテムタブ」設定を有効にしている時のみ表示される。 | ||||
Pocket Edition | |||||
1.0.5 | build 1 | 全種類のコマンドブロックを追加 | |||
Bedrock Edition | |||||
1.8 | beta 1.8.0.8 | コマンドブロックのデフォルト名を@ から! に変更 | |||
1.10.0 | beta 1.10.0.3 | テクスチャが変更された。 | |||
1.12.0 | beta 1.12.0.2 | タブによる補完機能が追加された。 | |||
遅延オプションが追加され、レッドストーンティックの遅延フィールドに遅延を追加できるようになった。 | |||||
Legacy Console Edition | |||||
TU19 | CU7 | 1.12 | Patch 1 | コマンドブロックを追加 | |
機能はない |
ギャラリー[]
Bedrock EditionのコマンドブロックのGUI
Mojangが公開した最初のコマンドブロックの画像
問題点[]
「コマンドブロック」に関する問題点は、バグトラッカーにて管理されている。問題点の報告はそちらで行ってほしい。
脚注[]