特集:マイクラBEコマンド経験者が学ぶJEのコマンド

 すっかりいろいろとマイクラについて詳しくなってしまいましたが、いままでほとんどBE(とCE)しかさわってないので、実はJEについてのことは実況動画から得られるものや、自分がwikiで見たことしか知らなかったりします。
 実はつい最近に、JE(v1.7.10、v1.12)をさわる機会があって、そのときはじめて「クロスヘア(画面中央の十字)がエンティティなどに合っていないと剣が振れない」ことを知りました。
 その際はじめて自分でmodをいれたりと色々自由なことができて、同時に長年の憧れによる感動はもちろん、驚くほどたくさんの知らないことを見つけました。
 アドオンをやっていて、もちろんと言うほどアニコンを使い回していますが、アニコンにはコマンドを使うので当然コマンドの知識が必要です。それを使い回せているぐらいですから、ある程度BEではコマンドをよく使えるほうだということが伝わるでしょう。
 さて、ここまでだらだらと語ってきて何が言いたいかというと、タイトルにあるようにBEのコマンドの知識ではJEのコマンドを使えなかったということです。
 JEではごく最近v1.16でワールドの設定項目からゲームルールを操れるようになったので、わたしがプレイしたv1.7やv1.12でゲームルールを操作するためにはいちいちコマンドでやる必要があります。プレイ環境が悪いせいでフラットでもわりと重かったので、ゲームルールでdoMobSpawningをオフにして/tpでスライムたちを奈落に落とそうと思いました。

 /gamerule domobspawning false

/tp @e[type=!player] ~ -10 ~

 ──動かない!? これを動かすにもBEとJEの障壁にぶち当たるようです。
 その後めっちゃwiki見ましたね。

 これから伝える内容は、v1.7、v1.12の内容です。たとえv1.13以降でできることがあってアドバイスをいただいてもしかたありません。もし本当にv1.7、v1.12の内容で何かアドバイスがあれば、それについては大歓迎です。

○ 基本中の基本

 実は少し前に、BEのコマンドはとっくにできるようになってるからJEとどれくらい違うのか見に行こうということでwikiにざっと目を通して/executeや/particleなどに加えてBEにないコマンドがあるくらいで他はほとんどBEと同じであることは確認していました。──基本であるセレクターの項目を除いて
 要点だけを引っ張り出していきます。

・本当にそのセレクターは使えますか??

 バージョンのことは全く頭にありませんでした。せいぜいv1.13、v1.15で大きな変更があるぐらいでしょうか。
 ──実は、v1.7に「@e」セレクターは存在しません!!
 「@e」セレクターはv1.8に実装されたものなので、使うにはちょっと昔でした。
 ちなみに、「@s」セレクターもv1.12から実装されたものなので注意が必要です。

・タイプ指定が違う?

 じゃっっっっかん違います。上の例では「type=!player」と書いて間違っています(v1.7、v1.12)。じゃあ「type=!minecraft:player」かなあとか「type=!"minecraft:player"」かなあとか色々考えました(「type=!"player"」はなぜかやらなかった)。それでもできなかったので、基礎について今更調べていることに疑念を抱きながらwikiを見てみました。
 正解は、こうです──「type=!Player」(わたしの英語担当の先生風)
 大文字、ああなるほど、その発想はなかった。こうして、タイプ指定はBEの書き方を大文字スタートにするだけです。
 (アンダーバーがつく場合はアンダーバーの後も大文字かどうかは調べてませんね……)

・やっぱり大文字案件

 これは後で説明しようか迷ったんですが、上に例で出しちゃったのでここに書きます。
 最後のミスは「domobspawning」です。たしかBEはこれでよかったはず──ですが
 JEでの正式ID(?)は「doMobSpawning」です。doが大文字スタートじゃないのは機能語だからでしょう。


 こんな感じで、ちょこちょこ違いますね。構文こそほとんど一緒であれ、入力する値に小さな違いがあるそうです。

○ それぞれのコマンド

 いくつか厳選して違いなどを紹介しようと思います。ここで「@e」セレクターが1.7では使えないことを知ったわたしはv1.12でこれらのコマンドを遊んでいます。そしてその際の情報収集も大きく変更があったであろうv1.8以前のものは全くしていません。要するにv1.12に対応するように説明が続きます。

■ /effect

 構文はBEと変わりません。バージョンによってもv1.12以前には変更がありません。

/effect <セレクター> <clear|エフェクトID> [秒数] [強度] [パーティクル非表示]

 問題は「エフェクトID」です。BEと違って数字で指定する必要があるので、一覧を毎回見ることになるかもしれません。

1 移動速度上昇
2 移動速度低下
3 採掘速度上昇
4 採掘速度低下
5 攻撃力上昇
6 即時回復
7 ダメージ
8 跳躍力上昇
9 吐き気
10 再生能力
11 耐性
12 火炎耐性
13 水中呼吸
14 透明化
15 盲目
16 暗視
17 空腹
18 弱体化
19 毒
20 衰弱
21 基礎体力増加
22 衝撃吸収
23 満腹
24 発光
25 浮遊
26 幸運
27 不運

 そして、わたしが予習段階(?)で知っていた知識であり最も当時試したがった仕様があります。
 BEでは「強度(アンプリファイア)」の上限は255だったような気がします。その値を越えて指定すればもちろんエラーになってしまいます。
 一方JEでは、上限は127(BEが255で合っていれば)です。いいえ、グレードダウンはしてませんよ。この値を越えて指定すると、なんとエラーにはならず効果が付与できます。それだけじゃありません、なんと効果が反転するんです!
 一番分かりやすいのは「跳躍力上昇」です。上限が127であるところを130と指定すると──ジャンプができなくなりました! ウワサは本当だった!
 他に反転させたらどうなるかとか反転させたときの強度(アンプリファイア)はどう変わるのかは確かめてないので宿題ということにしましょうか(?)。

■ /enchant

 こちらもほとんど変わりません。

/enchant <セレクター> <エンチャントID> [エンチャントレベル]

 「エンチャントID」をまた数字で指定する必要があるみたいです。
 
0 ダメージ軽減
1  火炎耐性
2  落下耐性
3  爆発耐性
4  飛び道具耐性
5  水中呼吸
6  水中採掘
7  棘の鎧
8  水中歩行
9  氷渡り
10  束縛の呪い
16  ダメージ増加
17  アンデット特効
18  虫特効
19  ノックバック
20  火属性
21  ドロップ増加
22  範囲ダメージ増加
32  効率強化
33  シルクタッチ
34  耐久力
35  幸運
48  射撃ダメージ増加
49  パンチ
50  炎の矢
51  無限
61  宝釣り
62  入れ食い
70  修繕
71  消滅の呪い

 俗に言う「オーバーエンチャント」はできませんでした。コマンドでやるわけじゃないんですね。
 いちおうまだ手段の候補があるのでそちらに期待です。

■ /replaceitem

 こちらも中身の書き方についてというよりは仕様の違いについて紹介します。

/replaceitem entity <エンティティ> <スロット> <アイテムID> [個数] [メタデータ値] [データタグ]

/replaceitem block <x> <y> <z> <スロット> <アイテムID> [個数] [メタデータ値] [データタグ]

 JEではなんと、slot.armor.head(頭防具スロット)にブロックを入れるとちゃんとプレイヤーの頭にそのブロックが描画されます! わたしはガラスをつけて宇宙飛行士風にしてみました
 ちなみにBEでも、あらゆるアイテムをslot.armor.headに置くことはできますが、描画はされません。オシイ。

■ /worldborder

 これもずっと使ってみたかったコマンドですね~~

/worldborder center <x> <z>

 まずこれでワールドボーダーの中心を決めます。まだこの段階ではフォースフィールドは出てきません。これを設定した上で

/worldborder set <広さ> [秒数]

 これを実行すればフォースフィールドが現れます! 一辺が「広さ」の値のブロック数の正方形で展開され、わたしは試さなかったんですが「秒数」でその秒数ぶんゆっくりと広がっていきます。

/worldborder add <広さ> [秒数]

 これで広さを追加できます。何かをするたびにワールドボーダーがだんだん広がっていく系のデータパックはこれを使っているんですね!

○ お待ちかねのNBT操作──データタグの指定

 やっぱり、これやりたいですよね。とかいいつつある程度さわったらすぐに終わらせちゃったんですが。
 データタグはブロック・エンティティ・アイテムの状態、いわゆる「NBT」データを変更して/setblockなり/summonなり/giveができるというものです。それぞれ、

/setblock <x> <y> <z> <ブロックID> [メタデータ値] [replace|keep|destroy] [データタグ]

/summon <エンティティ> [x] [y] [z] [データタグ]

/give <セレクター> <アイテムID> [数量] [メタデータ値] [データタグ]

このような位置にデータタグを記述します。だいたい一番後ろです。
 そして、データタグはこう書きます。

{TagName1:"A",TagName2:true,TagName3:10}

 プロパティ名に対して値が連なって──あれ? どこかで見たことありますね。
 BEでは、土ブロックの上にしか置けない丸石を/giveしたかったらこう書きます:

/give @s cobblstone 1 0 { "minecraft:can_place_on": { "blocks": [ "dirt" ] } }

 実は、BE自体にもデータタグ(のようなもの)は一応存在します。ちなみにJEはタグ名などがちょっと異なります:

/give @s minecraft:cobblestone 1 0 { CanPlaceOn: [ "minecraft:dirt" ] }

 こう並べてみると実にそっくりだということが改めて実感できますね~。もしかしたらBEでもタグ名がわかればできちゃうかも? なんかふと思い出しました、いつの日か、BEでJEのコマンド(データタグあり)を動かしたらクラッシュしたような記憶があるのは気のせいでしょうか……?

 タグがたくさんあれば、それこそカッコが増えたりして複雑になるかもしれませんが、何を言っているか理解すれば、カッコをいくつ閉じればいいか覚えていれば、そんなに難しいことはないと思います。
 しかも、アドオンをやっているならタグの形なんてほぼJSONなので楽勝だと思います。ただ見づらいだけです。

● ブロック編

■ CanPlaceOn

{CanPlaceOn:["minecraft:ブロック名", ...]}

 さっきもあったように、指定したブロックの上にしか置けなくするタグです。

■ Lock

{Lock:<TAG_String>}

 チェスト、かまど、ディスペンサー、ビーコンなどなど、インベントリを開く系統のブロックのみにつけられるタグです。持っていないとロックされてしまうアイテム名を指定します。
 わたしはてっきり、ブーリアンで指定するものだと思っていました。

■ LootTable

{LootTable:[<TAG_String>}

 チェストなどストレージを持つブロックにのみつけられるタグです。なんとルートテーブルが指定できちゃいます
 これはぜひBEにもほしい代物です!

■ ExactTeleport/ExitPortal

{ExactTeleport:<true|false>}

{ExitPortal:{X:<TAG_Int>,Y:<TAG_Int>,Z:<TAG_Int>}}

 二つセットで使うといいタグ。エンドゲートウェイにしか使えない。trueなら「ExitPortal」タグで指定した座標へテレポート、falseなら「ExitPortal」タグで指定した座標の近くの着地できる場所へテレポート。

● エンティティ編

■ NoGravity

{NoGravity:<true|false>}

 そのエンティティが重力の影響を受けないようにするかどうか。

■ Invulnerble

{Invulnerable:<true|false>}

 そのエンティティを無敵状態にするかどうか。これめっちゃ便利ですね。

■ Silent

{Silent:<true|false>}

 そのエンティティが何も音を発しないようにするかどうか。

■ NoAI

{NoAI:<true|false>}

 そのエンティティのAIの機能があるかどうか。棒立ち、ノックバック無効なので使うときはよく使えるタグですね。

■ Powered

{powered:<true|false>}

 クリーパー専用のタグ。帯電しているかどうか。

■ ExplosionRadius

{ExplosionRadius:<TAG_Byte>}

 爆発の半径を整数で指定します。これもクリーパー専用。
 爆発の大きさコマンドで変えられるんですね。

■ ExplosionPower

{ExplosionPower:<TAG_Int>}

 ガスト専用のタグ。ガストの火の玉の爆発の強さを整数で指定します。
 これもコマンドでできちゃうんですよ。JEすごくないですか?

■ Size

{Size:<TAG_Int>}

 スライム・マグマキューブ専用のタグ。大きさを変えられます。
 コマンドでスライムの大きさ変えられるなんて知りませんでした。言われてみればたしかに、肥大化したスライムは見たことありますね……。

■ ShowBottom

{ShowBottom:<true|false>}

 エンドクリスタル専用のタグ。台座の有無を指定できます。
 地味にほしかったり。

■ BeamTarget

{BeamTarget:{X:<TAG_Int>,Y:<TAG_Int>,Z:<TAG_Int>}}

 エンドクリスタル専用のタグ。エンドクリスタルのビームが指す座標を指定できます。
 これめっちゃほしいです。

● アイテム編

■ Unbreakable

{Unbreakable:<true|false>}

 耐久無限にするかどうかです。BEにもほしい。

■ CanDestroy

{CanDestroy:[<TAG_String>...]}

 そのアイテムを使って破壊できるブロックを指定します。形は違えど、これならBEにもありますね。

■ ench

{ench:[{id:<TAG_Short>, lvl:<TAG_Short>},...]}

 そのアイテムのエンチャントを指定します。IDはコマンドのと同じ数字です。v1.13で書式が変わってるので注意。
 これを使えばオーバーエンチャントができます!

■ display

{display:{Name:<TAG_String>, Lore:[<TAG_String>, ...]}}

 Nameでアイテムの名前、Loreで説明文を操作できます。
 これもBEにほしいデータタグ上位にランクインするでしょうね。

 以外と長々としてしまいました……。いつものことですね。
 もちろんこれ以外に面白いコマンド、データタグはたくさんあります。とくに、/executeとか/scoreboardは勉強して使いこなしたいですね~! コマンドだけに及ばず、他にもレッドストーンやデータパック、さらにはmodとまだまだJEにはわたしを楽しませるコンテンツがたくさんあります!
 わたしはちゃんと自分のパソコンで、ちゃんとした環境ですべてのコンテンツを遊び尽くしたいので、将来に向けて今やるべきことはしっかりやろうと思います。
 そのあかつきには、たくさんのトピックをこのように記事にして挙げていきたいと思います!

MinecraftBEアドオン-ヒント倉庫

MimecraftBEのアドオン作りで困ったときにここで解決できるようにと個人によって作られたものです

0コメント

  • 1000 / 1000