マインクラフトの統合版(Bedrock版)で、配布ワールドやミニゲームに使えそうなコマンドを書きました。
今後他のコマンドについてや、このコマンドでどういったものが作れるのかを含めて加筆していきたいと思います。
(ver1.12の時に書いたものなので一部できないものがあるかもしれません)
最終更新:2019/08/21 particleコマンド追加
- ターゲットについて
- 条件について
- 【tp】エンティティを指定した座標に移動(テレポート)させる
- 【summon】指定したエンティティを召喚する
- 【setblock】指定した座標に指定したブロックを設置する
- 【say, me】チャット欄にメッセージを出す
- 【title】画面上に文字を出す
- 【spawnpoint】プレイヤーのスポーン地点を設定する
- 【playsound】指定した音を再生する
- 【effect】ステータス効果を追加・消去する
- 【testfor】指定した条件に合うエンティティをカウントする
- 【testforblock】指定した座標に指定したブロックがあるかを判定する
- 【testforblocks】指定した範囲を比較する
- 【particle】パーティクルを出現させる
< > が必ず書く場所で、[ ] が任意で書く場所です。
ターゲットについて
ターゲットはIDを直接入れるか下のような書き方のプレイヤー、エンティティを書きます。
エンティティとはプレイヤーやゾンビや牛、トロッコ、矢、防具立てなどの事です。
@a 全てのプレイヤー
@e 全てのエンティティ
@p 最も近いプレイヤー(コマンド実行位置から最も近い)
@r ランダムなプレイヤー(今いるプレイヤーからランダム)
@s 自分自身
条件について
ターゲットを更に絞るには、@なんとかの後ろに[条件]を入れます。
2つ以上の条件を入れたい時は 「, (カンマ)」で区切ります。
モード:[m=○] s=サバイバル、c=クリエイティブ、a=アドベンチャー
距離:[r=○] ○マス以内。数字を入れる
タイプ:[type=○] ゾンビならzombie、クリーパーならcreeperなど
例1:@a[m=s] <サバイバルモードの全てのプレイヤー>
例2:@e[type=creeper, r=5] コマンド実行位置から <5マス以内にいるクリーパー>
【tp】エンティティを指定した座標に移動(テレポート)させる
/tp <ターゲット> <座標> [横の向き] [縦の向き]
ターゲットを指定した座標に移動させます。
座標の後に[横の向き]、[縦の向き]を書けばどこを向くかも指定出来ます。
/tp <ターゲット> <座標> facing <座標 or ターゲット>
指定した座標orターゲットを方向を向かせたい時はこちらを使います。
facingの後に座標かターゲットを指定する事でその方向に向かせられます。
「座標」
x,y,zの座標を書くか、@rや@eを書きます。
また各座標に「~(数字)」 と書けばコマンド実行位置から数字分離れた位置を指定出来ます。これを相対座標といいます。
移動させない、0の場合は何も書かないで大丈夫です。
注意点として、絶対座標(100 70 50 のような)では大丈夫なんですが
相対座標(~5 ~ ~3 のような)で書く場合にy座標(高さ)が0.5高い場所になってしまいます。
相対座標で書く場合は、y座標に "-0.5" を足しましょう。
下のコマンドを使えば今いる場所の座標を左上に表示出来ます。
/gamerule showcoordinates true
「縦、横の向き」
[横の向き]は-179.9~180で指定して、-90は東、0は南、90は西、180は北になります。
270にしても東(-90と同じ)、360にしても南(0と同じ)になります。
[縦の向き]は-90~90で指定して、-90は上、0は真横、90は下になります。
「使用例」
/tp @s 30 60 10
<自分> を <座標30,60,10> に移動させる
/tp @e[type=cow] ~ ~10 ~
<読み込んでいる範囲内の全ての牛> を <コマンド実行位置の10マス上> に移動させる
/tp @p ~-3 ~5 ~ 0 -90
<最も近いプレイヤー> を <コマンド実行位置からx座標が-3、y座標が5マス離れた位置>に <下を向かせて> 移動させる
/tp @a ~ ~2 ~ facing @e[name=豚野郎]
<全てのプレイヤー> を <コマンド実行位置から2マス上> に移動させ <豚野郎という名前のエンティティの方向に向かせる>
tpコマンド応用例
tpコマンドで出来る応用例を画像と共に上で書きました。
よければこちらも合わせてどうぞ。
【summon】指定したエンティティを召喚する
/summon <ターゲット> [座標]
ターゲットを召喚します。
座標を指定していればその座標に召喚します。
指定しなければコマンドを実行した場所で召喚されます。
「座標」
x,y,zの座標を書くか、相対座標を書きます。
「使用例」
/summon zombie 100 80 120
<ゾンビ> を <座標100,80,120> に召喚する
/summon arrow ~ ~ 5 ~
<矢> を <コマンド実行位置の5マス上> に召喚する
【setblock】指定した座標に指定したブロックを設置する
/setblock <座標> <ブロックID> [データ値] [モード]
指定した座標に指定したブロックを設置します。
「データ値」
木材(planks)や羊毛(wool)などは違う色でも同じブロックIDになっています。
トウヒの木材や黄色の羊毛を出したい時はデータ値に数字を入れて分別します。
ドアの向きもこのデータ値で変えれます。指定しない場合は0を入れます。
ブロックIDとデータ値は以下のサイトを参考にしてみてください。
minecraft-ids.grahamedgecombe.com
(minecraft:○○) ○○がブロックID
□:△ 右の△がデータ値 となっています。
例えば「5:4 Acacia Wood Plank(アカシアの木材)」だったら「4」がデータ値になり、
/setblock ~ ~ ~ planks 4 このように書きます。
「モード」
3つのモードがあり以下の中から1つ選ぶ。指定しない場合はreplaceになる。
- 「destroy」 既存のブロックがある場合、それを壊しアイテムとしてドロップし破壊音も鳴る。
- 「keep」 何もない場合だけ変更する。ブロックがある場合は変更しない。
- 「replace」 既存のブロックがある場合、それを壊しドロップ化はせずに破壊音も鳴らない。
「使用例」
/setblock ~ ~1 ~ diamond_block
<ダイヤモンドのブロック> を <1マス上> に設置する
/setblock 40 50 60 stone 0 keep
<石> を <座標40,50,60> に <ブロックが無かったら> 設置する
【say, me】チャット欄にメッセージを出す
/say <メッセージ>
メッセージを全プレイヤーに出すことが出来ます。
コマンドブロックの左上の「ポイントしたときの注意」に「村人A」と入れればRPG風に名前を入れる事も出来ます。
<メッセージ>に@pや@aなどを入れる事も出来ます。
「使用例」
/say こんにちは
(自分自身で):[自分のID] こんにちは
(コマンドブロックで):[!] こんにちは
(コマンドブロック、村人Aを入れた場合):[村人A] こんにちは
/say @p さん、こんにちは
(コマンドブロック、村人Aを入れた場合):[村人A] (近くの人)さん、こんにちは
/me <メッセージ>
これでもメッセージを出すことが出来ます
自分自身がやった場合は自分のIDが先頭に出ます。
RPG風のメッセージを出したいのならば say、me のどちらかを好みで選ぶといいと思います。
「使用例」
/me 「こんにちは」
(自分自身で):* 自分のID 「こんにちは」
(コマンドブロックで):* ! 「こんにちは」
(コマンドブロック、村人Aを入れた場合):* 村人A 「こんにちは」
【title】画面上に文字を出す
/title <ターゲット> title <テキスト>
/title <ターゲット> subtitle <テキスト>
/title <ターゲット> actionbar <テキスト>
ターゲットに対して画面上に文字を出します。
それぞれ文字が出る場所が異なります。
subtitleはtitleの下に出て、actionbarは下の手持ち欄の上辺りに出てきます。
文字について、色付きの文字や斜体、太字にも出来ます。
§(セクション)の後に数字や文字を入れてその後ろにテキストを入れます。
「使用例」
/title @a title §6こんにちは
<全てのプレイヤー> に <オレンジ色でこんにちは> と文字を出す
どの数字や文字を入れれば何色になるかは以下のサイトを参考にしてみてください。
ただし、現バージョン(1.12)では§n(下線)、§m(打ち消し線)が使えません。
/title <ターゲット> times <フェードイン時間> <表示時間> <フェードアウト時間>
文字を出す時のフェードイン時間、表示時間、フェードアウト時間を設定することが出来ます。
20で1秒で、初期値がフェードイン時間から順番に、10,70,20となっています。
/title <ターゲット> clear
ターゲットのタイトルを消去します。
/title <ターゲット> reset
ターゲットのタイトルの設定をリセットします。
以上を組み合わせて、ダンジョンに入ろうとした時にダンジョン名出したり、点滅するタイトルを出してホラー感を出したりすることが出来ます。
【spawnpoint】プレイヤーのスポーン地点を設定する
/spawnpoint [プレイヤー] [座標]
指定した座標にプレイヤーのスポーン地点を設定することが出来ます。
中間地点やセーブポイントを設定したい時などに使えます。
プレイヤーを指定しない場合は実行者が対象になります。
「使用例」
/spawnpoint @p 100 70 50
<最も近いプレイヤー> のスポーン地点を <座標100,70,50> に設定する
/spawnpoint @a[m=a] ~ ~2 ~
<アドベンチャーモードの全てのプレイヤー> のスポーン地点を <2マス上> に設定する
【playsound】指定した音を再生する
/playsound <サウンド> [プレイヤー] [座標] [音量] [ピッチ] [最小音量]
指定した音を指定したプレイヤー、座標、音量などで再生出来ます。
ホラーものならゾンビの鳴き声やガラスが割れる音などを鳴らしたりと色々な用途に使えると思います。
プレイヤーを指定しない場合は実行者が対象になります。
「サウンド」
サウンド名については以下のサイトを参考にすると良さそうです。
「音量」
0.0以上で指定します。
1.0より小さくすると音が小さくなり、聞こえる距離が短くなります。
1.0より大きくすると音は大きくはなりませんが、聞こえる距離が大きくなります。
指定した座標から離れるほど音が小さく聞こえます。
「ピッチ」
0.0から2.0で指定します。
1.0より小さくするとピッチが下がり、低く、遅く聞こえます。
1.0より大きくするとピッチが上がり、高く、速く聞こえます。
「最小音量」
0.0から1.0で指定します。
「音量」で設定した聞こえる範囲の外にいるプレイヤーに対する音量を指定します。
「使用例」
/playsound mob.zombie.say @a ~ ~ ~ 1 1 1
<全てのプレイヤー> に対して <ゾンビの鳴き声> を <コマンド実行位置> で音量1、ピッチ1、最小音量1で再生する
【effect】ステータス効果を追加・消去する
/effect <ターゲット> clear
指定したターゲットの全てのステータス効果を消去します。
/effect <ターゲット> <効果> [秒数] [強度] [パーティクルを隠すか]
指定したターゲットにステータス効果を追加します。
速さを上げたりジャンプ力を上げたりする事が出来るのでゲーム性が幅広くなります。
「効果」
追加するステータス効果を指定します。
ステータス効果一覧
ステータス効果のID一覧を上で書きました。
よければこちらも合わせてどうぞ。
「秒数」
ステータス効果の秒数を指定します。
指定しない場合は30秒になります。
「強度」
ステータス効果のレベルを指定します。
0から255で指定します。
レベル1が0、レベル2が1、レベル3が2・・・といった感じになります。
指定しない場合は0になります。
「パーティクルを隠すか」
ステータス効果を受けてるエンティティから出るもやもやを隠すかを指定します。
trueが隠す、falseが隠さない、となります。
指定しない場合はfalseになります。
「使用例」
/effect @p speed 10 0
<最も近いプレイヤー> に <移動速度上昇> <レベル1> のステータス効果を <10秒間> 追加する
/effect @p jump_boost 10 9
<最も近いプレイヤー> に <跳躍力上昇> <レベル10> のステータス効果を <10秒間> 追加する
【testfor】指定した条件に合うエンティティをカウントする
/testfor <ターゲット>
ターゲットの部分に条件を指定して条件が合えばカウント、検知する。
コマンドブロックの反復を使えば、村人に近づいたら村人が話しかけてきたり、ゾンビを全員倒せば扉が開いて次のステージに進めるようになる、といったものが作れます。
「使用例」
/testfor @a[r=5]
<半径5マス以内の全てのプレイヤー> をカウントする
/testfor @e[x=0, y=70, z=0, r=20, type=zombie]
<座標0,70,0から半径20マス以内のゾンビ> をカウントする
【testforblock】指定した座標に指定したブロックがあるかを判定する
/testforblock <座標> <ブロックID> [データ値]
指定した座標に指定したブロックがあるかを判定します。
これを使ってとあるブロックを置いたり、壊したら何かが起きるという仕掛けが作れます。
「使用例」
/testforblock 50 80 100 iron_block
<座標50,80,100> に <鉄ブロック> があるか判定する
【testforblocks】指定した範囲を比較する
/testforblocks <始点座標> <終点座標> <比較先座標> [モード]
指定した範囲と比較先の範囲を比較して一緒なら反応を出します。
コマンドブロックの反復にコマンドを書いて隣にレッドストーンコンパレーターを設置して使います。
「始点座標、終点座標」
比較したい範囲の端と端を指定します。
「比較先座標」
比較先の範囲の座標の一番値が小さい所を指定します。
「モード」
all か masked のどちらかを入れます。
指定しない場合はallになります。
- 「all」 範囲内の全てのブロックを判定する。
- 「masked」 判定元の範囲内の空気ブロック以外が比較対象になる
「使用例」
/testforblocks 30 80 50 35 80 55 50 80 50
<座標30,80,50> から <座標35,80,55> の範囲と <比較先座標50,80,50> を比較する
この場合6×6の範囲で比較先座標は <座標50,80,50> から <座標50+5,80,50+5> の範囲を指定しています。
「応用例」
下の記事で応用例や実際のギミック例を紹介しています。
【particle】パーティクルを出現させる
/particle <パーティクル名> <座標>
指定した座標にパーティクルを出現させます。
演出のために使ったりexcuteコマンドを使って敵にパーティクルを付けることが出来ます。
「パーティクル名一覧」
下の記事でパーティクル名の一覧をまとめています。
「使用例」
/particle minecraft:dragon_death_explosion_emitter 40 50 60
<座標40,50,60> に <爆発のパーティクル> を出す
他のマイクラ統合版の記事はこちら