目次
/ UPDATE :
/ Author: sasigume

バージョン1.9のコマンドに関する新機能と変更点まとめ (+配布ワールド制作も)

バージョン1.9のコマンドに関する新機能と変更点まとめ (+配布ワールド制作も)のアイキャッチ画像
1.9のコマンド関連まとめ

PC版のバージョン1.9、「The Combat Update」がついに配信されましたね。その名の通り戦闘に関する新要素と変更点が盛り沢山なアップデートですが、それに匹敵するほどコマンドや配布ワールド制作に関する新機能/変更点が盛りだくさんなんです。例えばAreaEffectCloud、タグ機能、Loot table、エンドゲートウェイ、新ステータス効果、MobのNBTタグの仕様変更など... この記事では、公式Wikiの情報をもとに配布ワールドの製作者さんには特に知って頂きたい、1.9のサバイバル"以外の"主な新機能や変更点をまとめました。

[2016年3月13日追記] JSONの記法が厳しくなったことについて追記。

コマンドブロックが新しくなり、クロック回路やコンパレーターが不要に

1.9のコマンドブロックの3つのモード

バージョン1.9のコマンド関連の新要素と言えば、まず思い浮かぶのはこのコマンドブロックの3つのモードでしょう。オレンジ色のインパルスモード水色のチェーンモード紫色のリピートモードが用意されたことによって何が変わるのでしょうか。

1.9からのコマンドを常時実行する装置

そう、このコマンドブロック達によってfillクロックが不要になるんです。まず左にリピートモード(Needs Redstone(レッドストーン動力が必要))のコマンドブロックを置いて、ON/OFF可能にします。それに繋がるようにチェーンモードのコマンドブロック(Always Active(常時実行))を並べていけば、ON/OFF可能なコマンド常時実行装置のできあがりです。向きをちゃんと合わせる必要があるので注意。

Conditional(条件付き)モードの使い方

そしてUnconditional(無条件)Conditional(条件付き)モードを正しく使えば、コンパレーターも不要になります。

Conditional(条件付き)モードの使い方2

Conditional(条件付き)状態のコマンドブロックは、接続元のコマンドの実行が成功したら実行されます。例えばコマンドブロックに/testfor @a[r=3]と入力して、隣にConditional(条件付き)/say Oh!と書いたコマンドブロックを設置すれば、これまでコンパレーターで行っていたことがコマンドブロックだけで可能になるんです。ちなみにConditional(条件付き)さらに先のコマンドブロックは、条件が合っていなくても実行されますのでご注意下さい。

 

Mobやプレイヤーの当たり判定を無効化する方法

バージョン1.9では貫通せず押してしまう

バージョン1.9の大きな変更点の一つに、「Mobやプレイヤーが衝突した際に貫通しなくなった」点があります。例えばゾンビに道を塞がれたりすると、なかなか突破できなくなるんです。既存のアドベンチャーマップの難易度が大きく変わったりしそうで心配。

Mobやプレイヤーの当たり判定を無効化する方法の解説
エンティティの当たり判定を設定するコマンド
https://sasigu.me/wp/collision-setting-command/

いきなり記事の宣伝で申し訳ないのですが、エンティティの当たり判定を無効化する方法(collisionRuleオプションについて)は別記事に詳しくまとめておりますので気になる方はチェックしてみてください。

 

Mobの騎乗/HP/装備品を設定する際の書き方が変わり、従来のコマンドは使えなくなった

1.8までのコマンドを1.9で使うと

1.9の変更点ではこれが最も重大かも知れません。なんとRidingHealFEquipmentタグが廃止されました。つまりMobを重ねたり、HPや装備品を設定したりしている従来のコマンドは1.9で使えなくなったんです。

 

HealFやRiding、Equipmentタグに置き換わる新しいNBTタグとは

バージョン1.9で置き換わったエンティティに関するNBTタグ
バージョン1.8までバージョン1.9
RidingPassengers
下に重なるエンティティを指定します。上に乗るエンティティを指定します。四角カッコ内に複数のエンティティを書くことで、同じ階層に複数のエンティティを置くこともできます。
例:Passengers:[{id:"Creeper"},{id:"Skeleton"}]
HealFHealth
HPを指定します。
例:HealF:100
HPを指定します。
例:Health:100.0f
Attributes:[{Name:generic.maxHealth,Base:○○}]で最大HPを増やす必要がある場合もあるので注意
EquipmentHandItems
右手と左手に持つアイテムだけを指定します。
例:HandItems:[{id:diamond_sword},{id:shield}]
手に持つアイテム+防具を指定します。
例:Equipment:[{id:diamond_sword},{id:diamond_boots},{id:diamond_leggings},{id:diamond_chestplate},{id:diamond_helmet}]
ArmorItems
体に付ける装備品だけを指定します。
例:ArmorItems:[{id:diamond_boots},{id:diamond_leggings},{id:diamond_chestplate},{id:diamond_helmet}]
DropChancesHandDropChances
右手と左手に持つアイテムのドロップ確率を指定します。
例:HandDropChances:[0.2F,0.8F]
手に持つアイテムと体に付ける装備品のドロップ確率をこのタグ1つで指定します。
例:DropChances:[0.2F,0.6F,0.5F,0.4F,0.3F]
ArmorDropChances
体に付ける装備品のドロップ確率を指定します。
例:ArmorDropChances:[0.6F,0.5F,0.4F,0.3F]
Passengersタグを上手に使おう

特にRidingの代わりに登場したPassengersタグには注目ですね。Passengers:[{id:"Cow"},{id:"Pig"}]とすればウシとブタを同じ階層に配置できます。さらに、/summon Zombie ~ ~ ~ {Passengers:[{id:"Creeper",Passengers:[{id:"Skeleton"}]}]}と重ねて書けば何層も重ねられます。


EquipmentタグとDropChancesタグが分離した

それともう一つ、従来のEquipmentDropChancesタグが1.9では手と体に分離しました。手に持つアイテムはHandItems、体に付ける装備品はArmorItems、手に持つアイテムのドロップ確率はHandDropChances、体に付ける装備品のドロップ確率はArmorDropChancesタグに書きます。

バージョン1.9のMobのNBTタグの仕様変更に伴うコマンドの変化
1.8まで
/summon Zombie ~ ~1 ~ {Equipment:[{id:diamond_sword},{},{id:diamond_leggings},{},{id:diamond_helmet}],DropChances:[0.7F,0.085F,0.5F,0.085F,0.3F]}

1.9から
/summon Zombie ~ ~1 ~ {ArmorItems:[{},{id:diamond_leggings},{},{id:diamond_helmet}],HandItems:[{id:diamond_sword},{}],ArmorDropChances:[0.085F,0.5F,0.085F,0.3F],HandDropChances:[0.7F,0.085F]}

▲要するに同じ装備内容でもコマンドが長くなってしまったわけです。手書きするのが面倒な方はMCStackerなどのコマンド生成ツールで作成することをおすすめします。

 

1.8仕様のsummonコマンドを1.9仕様に変換できるツールの紹介

1.8のsummonコマンドを1.9仕様に変換するツールの紹介記事
Summonコマンドを変換するツールの紹介
https://sasigu.me/wp/summon-command-converter/

従来の形式で書かれたsummonコマンドを、1.9仕様の形式に一瞬で変換してくれるツールもあります。気になる方は是非上記記事をチェックしてみてください。

 

新機能「Loot table(ドロップ表)」でチェストの中身やMobのドロップアイテムを設定可能に

LootTableの仕組み

見づらい図ですが、これが1.9の大きな新機能「Loot table(ドロップ表)」です。自然生成されるチェストの中身やMobのドロップアイテム、釣れるアイテムのデータが「Loot table」と呼ばれるjsonファイルに格納されていて、自由に呼び出して使えるんです。

Loot tableを呼び出して使うコマンドの例
チェストの場合:
/setblock ~ ~1 ~ minecraft:chest 0 replace {LootTable:"Loottableの場所と名前"}

エンティティ(例えばクリーパー)の場合:
/summon Creeper ~ ~1 ~ {DeathLootTable:"Loottableの場所と名前"}

チェスト/ホッパー/チェスト付きトロッコ/ホッパー付きトロッコの場合はLootTableタグ、エンティティの場合はDeathLootTableタグを使って指定します。

Loot table(ドロップ表)の呼び出し方/JSONの書き方完全ガイド
LootTable(ドロップ表)完全ガイド
https://sasigu.me/wp/loot-table-perfect-guide/

ここで解説すると非常に長くなりますので、各種ルートテーブルの呼び出し方、さらに自作する場合のJSONの書き方と各種設定項目を徹底解説した上記記事を是非お読み下さい。多分コマンド解説カテゴリでこのブログ最長の記事です。

 

プレイヤーやMobに「タグ」を付けて分類できるようになった

新機能「Tag」の概要

こちらは新システム「Tag」の概要図です。これまでプレイヤーやMobなどを分類するには、チームやスコアボードの値を使っていましたが、1.9からは「タグ」を付けて分類できるようになりました。

新システム「tag」に関するコマンド一覧
タグを付与するには/scoreboard players tag <ターゲット> add <タグ名> (条件となるデータタグ)
タグを削除するには/scoreboard players tag <ターゲット> remove タグ名 (データタグ)
タグの一覧を取得するには/scoreboard players tag <ターゲット(@eなど)> list
新システム「tag」の使い方の解説記事
Tag機能の使い方
https://sasigu.me/wp/howtouse-tag-system/

最初からタグをつけた状態でエンティティを召喚したり、複数のタグを条件にコマンドを実行したりする方法につきましては上記記事で詳しく解説しています。タグ機能をマスターしたい方は是非お読み下さい。

 

エンティティを好きな場所にテレポートできる「エンドゲートウェイ」が登場

これがエンドゲートウェイだ

エンダードラゴンを倒した後に出現する「エンドゲートウェイ」。本来はエンド内の島から島へとワープするための装置ですが、真ん中の黒い部分をコマンドで我が物にできるんです。

Mobもテレポートできます

このエンドゲートウェイ、/setblock ~ ~1 ~ minecraft:end_gateway 0 replace {ExactTeleport:1,ExitPortal:{X:X座標,Y:Y座標,Z:Z座標}}という風にテレポート先の座標を指定して設置すれば、様々なエンティティを指定した場所に瞬時にテレポートさせることができます。

エンドゲートウェイの使い方解説記事
エンドゲートウェイのコマンド解説
https://sasigu.me/wp/end-gateway-command-guide/

例えばオリジナルのポータルを作るだとか、さらなるエンドゲートウェイの使い方については上記記事で解説しています。

 

ポーション効果を範囲的に与えられる「AreaEffectCloud」が登場

ダンジョン系ワールドでの使用例1

新アイテム「残留ポーション」の正体である「AreaEffectCloud」という新エンティティ。効果やパーティクル、大きさなどを自由にカスタマイズできるんです。いかにも配布ワールド作成にピッタリって感じでしょ?

AreaEffectCloudの解説記事
AreaEffectCloudのコマンド解説
https://sasigu.me/wp/area-effect-cloud-command/

例えば触れると一定間隔でダメージを受けるだとか、回数制限付きで回復するだとか色々な設定をする手順の解説を別記事にまとめました。ご興味のある方は是非お読み下さい。

 

スポーンエッグからスポーンするエンティティを自由にカスタマイズできるように

オリジナルのスポーンエッグを作ってみよう

スポーンエッグから出てくるMobを自由にカスタマイズできたら... そんなあなたの夢が1.9で叶いました。バージョン1.9から、やっとスポーンエッグの中身を自由に設定可能になったんです。簡単な作り方を解説します。

高機能コマンド生成ツール MCStacker
http://mcstacker.bimbimma.com/
MCstackerでsummonコマンドを作成しよう

上記リンクからMCStackerにアクセスしたら、まずはスポーンエッグで召喚したいMobの、summonコマンドを作成しましょう。主な設定項目の解説はこちらの表にまとめています。生成されたsummonコマンドをコピーしておきましょう。

summonコマンドを入力してスポーンエッグのコマンドを作成

次にgiveコマンドモードに切り替えて、アイテム欄にspawn_eggと入力すればスポーンエッグの設定画面が出てきます。ちなみに「Spawn Egg Creeper」とか書かれていますが、ここに書かれているMobの種類は一切関係ありませんのでご注意。Entity Tag(1.9)の欄に先程作ったsummonコマンドを貼り付ければスポーンエッグのgiveコマンドが生成されます。

giveコマンドは長いのでコマンドブロックで使おう

できあがったgiveコマンドは長いので、コマンドブロックにCtrl+Vで貼り付けて使いましょう。

 

tellrawやtitleコマンドなどで使うJSONの記法が厳格化された

[2016年3月13日] 地味に重大な変更点なのですが書き忘れてました。実はtellrawコマンドやtitleコマンドなどで使うJSONの記法が厳しくなり、各設定項目も引用符で囲まないといけなくなりました。今までがガバガバだったのでやっと普通のJSONのルールになった、ということです。(コマンドは相変わらず簡易的なJSONです)

バージョン1.9からのJSONの書き方
バージョン1.8まで:
/tellraw @a ["",{text:"これが"},{text:"装飾",bold:"true",color:"aqua"},{text:"した",bold:"true"},{text:"テキスト",color:"red"},{text:"です"}]

バージョン1.9から:
/tellraw @a ["",{"text":"これが"},{"text":"装飾","bold":"true","color":"aqua"},{"text":"した","bold":"true"},{"text":"テキスト","color":"red"},{"text":"です"}]

手書きするのが余計面倒になったので、私はツールに頼ることをおすすめします。tellrawコマンドならこちら、看板の文章を装飾するならこちら、titleコマンドならこちらのツールをお使い下さい。


ポーションやplaysoundコマンドの仕様変更、新しいパーティクル... まだまだ盛り沢山です >>

ポーションを入手するコマンドが変わりました

従来のポーション入手コマンドを使うと

バージョン1.9でポーションを入手するコマンドが変わったことはご存じですか。これまでデータ値で指定していたポーションの種類が、Potion:"ポーションID"というNBTタグで指定する仕様に変わりました。

新しいポーションの入手コマンドの解説記事
ポーション入手コマンドが変わった
https://sasigu.me/wp/custom-potion-command/

ポーションのコマンドの新仕様については上記記事に詳しくまとめていますので、気になる方はチェックしてみてください。

 

scoreboardコマンドで取得できる新しい統計項目まとめ(空腹度など)

scoreboardの値として取得できる項目が色々増えた

scoreboardコマンドを使えば、キル数やデス数、HPを取得できることは皆さんご存知ですよね。バージョン1.9では、作成できるオブジェクトの種類が増えてよりいろいろな項目を数値化出来るようになりました。

スコアボードのオブジェクトを作成するコマンド
/scoreboard objectives add <スコア名> <種類> (表示名)
バージョン1.9で追加された、スコアボードのオブジェクトの種類
xpプレイヤーが取得した経験値の量の正確な数値です。
foodプレイヤーの満腹度を0から20で表した数値です。
airプレイヤーが水中に潜っている際の残りの空気の量です。
最初は300ですが、水中にいると1tickごとに1減っていきます。
armor防具ゲージ
画面に表示されている防具ゲージを0から20で表した数値です。「ダメージ軽減」などで防御力を上げても増えません。あくまで表示されている防具ゲージを数値化しただけです。
levelプレイヤーの経験値レベル(画面に表示されている数字)です。
stat.sleepInBedベッドで眠った回数です。
stat.sneakTimeスニークした時間です。スニークするだけで数値が増えます。
stat.pickupアイテムを拾った回数です。特定のアイテムを拾った回数を計測する方法についてはこちらの記事で解説しています。
stat.dropアイテムを落とした回数です。特定のアイテムを落とした回数を計測する方法についてはこちらの記事で解説しています。
stat.aviateOneCm新アイテム「elytra(エリトラ)」で飛んだ距離です。

 

判定できるプレイヤーの行動一覧
プレイヤーの行動をカウントするscoreboardコマンドまとめ
https://sasigu.me/wp/scoreboard-stat-count/

スコアボードを活用すれば、他にも様々なプレイヤーの行動を計測可能です。全てのカウント項目の一覧は上記記事にまとめていますので、ご興味のある方は是非お読み下さい。

 

新しいステータス効果(ポーション効果)まとめ

バージョン1.9で追加されたステータスエフェクト一覧
Glowing/effect <セレクタ> minecraft:glowing (秒数) (レベル) (パーティクルを隠すならtrueと書く)
または/summon エンティティID ~ ~ ~ {Glowing:1b}
Glowing効果
枠が光ってどこからでも場所が分かるようになります。レベルに意味はありません。
Levitation (浮遊)/effect <セレクタ> minecraft:levitation (秒数) (レベル) (true)
浮遊効果
1秒に(レベル+1)ブロック分上昇します。レベルを255にすると、ジャンプしたり落下したり階段を登ったりできなくなります。この浮遊効果を使った「空中浮遊PvP」のワールドを配布しましたよね。
Luck (運)/effect セレクタ minecraft:luck 秒数 レベル (true)
「luck(幸運)」がレベルの分だけ与えられます。この「運」は、例えばLoot tableでアイテムを決定する際に使われます。詳しくはこちらの解説をお読み下さい。
Bad Luck/effect <セレクタ> minecraft:unluck (秒数) (レベル) (true)
レベルの分だけ、「luck(幸運)」のレベルが下がります。

 

playsoundコマンドが色々強化された。カテゴリ指定 / サウンド大量追加

音源の「カテゴリ」を指定して再生できるようになった

バージョン1.9ではplaysoundコマンドの書き方がちょっと変わりました。

バージョン1.9からの新しいplaysoundコマンドの書き方
/playsound <音源> <カテゴリ> <プレイヤー> (x) (y) (z) (音量) (ピッチ) (最小音量)
「カテゴリ」には、「master」「music」「record」「weather」「block」「hostile」「neutral」「player」「ambient」「voice」が入ります。

例えば「声」カテゴリとしてブタの鳴き声を再生する場合は、/playsound mob.pig.say voice @p と書くわけです。なんでカテゴリを指定しないといけなくなったかと言いますと...

playsoundコマンドのカテゴリはサウンド設定と対応している

...そう、「サウンド設定」でカテゴリごとに音量を調節できるようにするためです。例えば配布ワールドに音声データを同梱して再生する際、カテゴリを「声」にすればサウンド設定で「声」をOFFにしている人には再生されなくなります。

 

大量のサウンドが追加された

バージョン1.9を遊んでみると、効果音がより豊富になったのがお分かり頂けるかと思います。例えばバケツをひっくり返した時の音装備品を付けた時の音... つまりplaysoundコマンドで使えるサウンドがその分増えたということです!

1.9のサウンドイベント一覧がまとめてある記事様
赤石愛氏のブロマガ
http://ch.nicovideo.jp/akaishi_ai/blomaga/ar928909

あまりにも膨大過ぎて書くに書けない1.9のサウンド一覧を、赤石愛先生がブロマガにまとめられています。ご興味のある方は是非お読み下さい。ありがたや~

 

particleコマンドが色々強化された + 追加パーティクル一覧

パーティクルが見えるプレイヤーを指定できるようになった

particleコマンドに新しい機能が追加されました。なんと「パーティクルが見える人」を指定できるようになったんです。

1.9からはparticleコマンド末尾にセレクターを追記して見える人を指定できるようになった
/particle explode <x> <y> <z> <xd> <yd> <zd> <スピード> (カウント) (モード) <セレクター>
「(モード)」を「normal」にすれば通常、「force」にすれば256ブロック離れても、またビデオ設定で「パーティクル:最小」にしても見えるようになります。

▲セレクターに「@a[m=1]」と書けば、クリエイティブモードの人だけに見えるパーティクルになります。

特定のプレイヤーだけドッキリ

例えば/particle mobappearance ~ ~ ~ 1 1 1 1 1 force @pとすれば最寄りのプレイヤー一人だけにエルダーガーディアンのドッキリを見せることが可能です。プレイヤー名で指定することも可能ですので、マルチプレイで誰かさんに仕掛けてみては?

 

一部のパーティクルで、ブロック/アイテムの種類を指定する方法が変わった

例: ピンク色の羊毛を破壊した際のパーティクルを表示
blockcrackの数値の書き方
/particle blockcrack <x> <y> <z> <xd> <yd> <zd> <スピード> (カウント) (モード) @a 24611

▲ブロックを破壊した際のパーティクルである、blockcrackパーティクルではこれまでblockcrack_(id+(データ値*4096))と書いて指定していましたが、1.9ではid+(データ値*4096)をコマンドの末尾に書く仕様に変更されました。例えばピンク色の羊毛の場合、35 + (6*4096)なので24611と末尾に書きます。

例: ラピスラズリブロックのblockdustパーティクルを表示
blockdustパーティクルでラピスラズリのパーティクルを表示
/particle blockdust <x> <y> <z> <xd> <yd> <zd> <スピード> (カウント) (モード) @a 22

blockdustのパーティクルを使う際、これまではblockdust_(id)という風にIDを指定していましたが、blockcrack同様末尾にブロックID + (データ値 * 4096)を数字で指定することで、パーティクルのブロックを指定できるようになりました。例えばラピスラズリの場合、「22+(0*4096)」なので「22」と書いています。

例: 骨粉のアイコンを破壊した際のパーティクルを表示
骨粉を破壊した際のパーティクル
/particle iconcrack <x> <y> <z> <xd> <yd> <zd> <スピード> (カウント) (モード) @a 35 6

iconcrackパーティクルも書き方が変わり、これまでiconcrack_id_データ値だったのがIDとデータ値は末尾に書く仕様に変更されました。iconcrackだけは、ID データ値という風に2つの数値を分けて書きます。

 

1.9で追加されたパーティクル一覧

バージョン1.9で追加されたパーティクル一覧
endRodエンドロッドやシュルカーの撃ち出す弾のパーティクル
endRodパーティクル
dragonbreathエンダードラゴンのブレス
dragonbreathパーティクル
damageIndicatorダメージを与えた際のパーティクル
damageIndicatorパーティクル
sweepAttack範囲攻撃(sweep攻撃)のパーティクル
sweepAttackパーティクル

 

エンダークリスタルのビームの向きを自由に設定できるようになった

エンダークリスタルのビームの向きを設定

バージョン1.9では、エンダードラゴンの復活にも使われる「エンダークリスタル」。ビームの向きを自由に設定できるようになったんです。

エンダークリスタルのビームのターゲット座標を設定するコマンド
/summon EnderCrystal ~ ~ ~ {BeamTarget:{X:X座標,Y:Y座標,Z:Z座標}}

 

Attribute Modifiersでスロットを指定できるようになった

胸に装備した時だけ効果を発揮

「手に持った時/装備した時に能力を変化させる」AttributeModifiers機能。バージョン1.9では、「このスロットに装備した時だけ効果を発揮する」という「スロット」を指定できるようになりました。

/give @p minecraft:diamond_chestplate 1 0 {
AttributeModifiers:[
        {
AttributeName:"generic.maxHealth",
Name:"generic.maxHealth",
Amount:5,
Operation:0,
Slot:"chest"
}
],
display:{
Name:"すごいチェストプレート",
Lore:[
胸に装備した時だけ効果を発動します
]
}
}

▲各属性にSlotタグが追加されたんです。Slot:には"mainhand""offhand""head""torso""legs""feet"が指定できます。mainhandは利き手、offhandは反対の手、torsoはチェストプレートのスロットのことです。

AttributeModifiersのスロットの指定

MCStackerで属性効果のスロットを指定するのはとっても簡単。「Attirbute Modifies」にチェックを入れて、各効果の数値を設定後、Slotを選択するだけです。

ちなみに装備品じゃなくてもAttributeModifiersは付けられます。

 


「○○についてまとめてほしい/解説してほしい」などのご意見ご感想、コメント欄やTwitterでお待ちしています。
記事が役に立ったら、
シェアしてね!
Tweet

こちらの記事も読まれています

バージョン1.9のコマンドに関する新機能と変更点まとめ (+配布ワールド制作も)”には13件のコメントが付いています

コメントを残す

メールアドレスが公開されることはありません。

記事の内容・画像・動画その他ファイルを引用・転載する際や、アンテナサイトに掲載する場合は該当ページへのリンクをお願いします。当サイトで紹介する著作物はそれぞれの権利者に帰属します。当サイトはMojang ABおよびMicrosoft社とは無関係であり、記事を利用したことによる如何なる損害も管理人は責任を負いません。