バージョン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://napoan.com/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://napoan.com/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://napoan.com/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://napoan.com/howtouse-tag-system/

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


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

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

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

Mobもテレポートできます

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

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

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


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

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

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

AreaEffectCloudの解説記事
AreaEffectCloudのコマンド解説
https://napoan.com/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 2

この記事を読んだ人は、こんな記事も読んでいます

スポンサーリンク

コメント