WorldEdit 7.x (1.13以降) ブロックパターン
この記事はWorldEditプラグインを使用したことがある方向けの記事です。WorldEdit自体の解説は建築コミュのブログがおすすめです。
WorldEdit 7.x以降(Minecraft 1.13以降で使用可能)で、ブロックの指定方法が色々と変わっています。前の記事でちょっとだけ触れましたが、どうやら知らないことがまだまだたくさんあるご様子。
今回は、setコマンドやrepaceコマンドで使える、ブロックパターンの指定方法のざっくりまとめを行います。なお、最新のFAWE (FastAsyncWorldEdit)でも同様のコマンドを使用することができます。
- 参考: WorldEdit 7.1 documentation Petterns
https://worldedit.enginehub.org/en/latest/usage/general/patterns/
- ブロック名の確認方法
- 1. 単一ブロックの指定
- 2. ランダムブロックパターン
- 3. ランダムblockstatesパターン
- 4. blockstatesを維持した置換
- 5. ブロックカテゴリ
- 6. クリップボードパターン
- 7. 特殊パターン
- (補) ブロックパターンが反映されない場合の対処法
ブロック名の確認方法
WorldEditでブロック名を指定しようにも、1.13以降でブロック名がわからない場合があるかと思います。F3 + Hキーを同時に押すことで、クリエイティブモードのブロック選択画面でブロック名を表示することができます。
また、ブロック名入力中もサジェストが表示されますので、慣れれば意外と楽になります。
1. 単一ブロックの指定
まずは、いつものように木の斧で範囲を指定して、setコマンドで塗りつぶしましょう。以下のようにブロック名およびblockstates(ブロックの種類)とその値を列挙することで指定できます。
//set (ブロック名)[(blockstates)=(値),(blockstates)=(値),...]
以下に、いくつか例を載せておきます。もっと様々な例を知りたい場合は、過去のエントリも参照してください。
//set oak_slab[type=double] ...2段重ねのオーク木材の半ブロック //set stone_slab[type=top] ...上付きの焼石半ブロック //set andesite_stairs[facing=east,half=top] ...東向きの安山岩の逆向き階段
2. ランダムブロックパターン
複数のブロック名をカンマ区切りで指定することで、ランダムにブロックを配置することができます。仕様的には1.12.xまでのWorldEditと同じです。
//set ブロック[blockstates],ブロック[blockstates] ... 均等にブロックを配置 //set 比率%ブロック[blockstates],比率%ブロック[blockstates] ... 各ブロックをそれぞれの割合で配置
以下に、いくつか例を載せておきます。もっと様々な例を知りたい場合は、過去のエントリも参照してください。
//set stone,dirt,cobblestone ...石、土、丸石を均等に配置 //set 50%stone,30%dirt,20%cobblestone ...石を50%、土を30%、丸石を20%配置する
- POINT: 比率指定、実は合計で100%にする必要はないらしいです。例えば、以下の指定は75%と25%を指定したとき(3:1)と同じ意味を持ちます。
//set 30%dirt,10%stone ...(3:1の割合で土と石を配置する)
3. ランダムblockstatesパターン
ブロック名の先頭「*」をつけると、blockstatesもランダムに配置することができます。
//set *oak_log ...オークの丸太をランダムな向きに配置する
4. blockstatesを維持した置換
ブロック名の先頭に「^」をつけると、blockstatesを変更することなくブロックを置換することができます。これなら、階段ブロックで作った屋根など今まで置換が面倒だったブロックも一発で置換することができます。
//rep oak_stairs ^stone_stairs ...オークの階段を石の階段に置換する
//rep oak_stairs ^stone_stairs,^cobblestone_stairs ...オークの階段を石と丸石の階段にランダムパターンで置換する
//set ^[waterlogged=true] ...任意のブロックを水に沈めた状態にする
5. ブロックカテゴリ
ブロックは一定のグループごとに「タグ」でくくられている場合があります。例えば、「wool」というタグは任意の色の羊毛を表現しています。タグの詳細については、Minecraft Wikiの説明が詳しいです。英語ですが。
//rep ##carpets snow ...すべてのカーペットを雪に置き換える
6. クリップボードパターン
複雑なパターンを配置したい場合は、クリップボードパターンをつかうと良いかもしれません。copyコマンドでコピーした内容をsetコマンドでセットします。開始位置は適当なので、オフセットを指定したいときは[x,y,z]でオフセット指定できるらしいです。
//copy //set #clipboard
7. 特殊パターン
※ここから先はわりとどうでもいいコマンド達です。
プレイヤーヘッド
以下の指定により、特定のユーザのプレイヤーヘッドを配置することができます。
//set player_head|aka_idou ...コマナズの頭を配置する
看板の内容指定
以下の指定により、看板の内容を入力した状態で配置することができます。ダブルクォーテーションで囲う点に注意。
//set "oak_sign[rotation=0]|こんにちは世界|Hello World!" ...看板に文字を入力した状態で設置する //set "oak_wall_sign|Hello Wolrd!" ...壁看板バージョン
MOBスポナー
使う場面はまずないですが、実はsetコマンドで特定MOBのスポナーを作れます。
//set spawner|squid ...イカのスポナーを設置する
(補) ブロックパターンが反映されない場合の対処法
spigot等のプラグインでWorldEditを使用する場合、SpigotのバージョンまたはWorldEditのバージョンが古いと、ブロックパターンがうまく反映されないことがあります。この場合、どちらかのバージョンを上げるとうまく反映されることがあるようです。