はじめに
このブログは私が作成した建築アドオン「BetterBuilder」の使い方解説です。
このアドオンでは、コマンドと木の斧を使うことで、簡単に以下のような一括ブロック設置・置換ができます。
- 直方体状に一括設置
- 球体状に一括設置
- 円柱状に一括設置
- 直線状に一括設置
- 隣接する同種ブロックを一括で置換
解説動画もあるので必要に応じてご確認ください。
https://youtu.be/RsMPV8bySUA
共通項目
1.概要
木の斧でブロックを右クリック(破壊)すると、その座標を記録することができます。説明での便宜上、直近に記録した座標をpos1、その前に記録した座標をpos2として説明します。座標を1~2箇所記録した状態で、「scriptevent beb:」コマンドを実行することで、様々な設置・置換をすることができます。
2.導入方法
「BetterBuilder」からmcpackファイルをダウンロード(MineCraftで開く)。導入したいワールドの設定を開き、ビヘイビアパックの項目を開き、「BetterBuilder」を有効にする。
3.導入テスト
正しくワールドに導入できている場合、木の斧で適当なブロックを壊そうとすると、破壊がキャンセルされ、効果音とともにログが表示されるはずです。
4.導入テストがうまくいかない場合
以下の確認をお願いします。
- マイクラのバージョンは最新になっていますか?
- ビヘイビアパックが正しく選択されていますか?
簡単な例
細かい仕様やオプションをまとめると、結構な分量になってしまったので、よく使いそうな例のみをまとめておきます。詳細については次の項のスクリプトリファレンスを参照してください。
例1[直方体]:pos1からpos2までをガラスブロックで直方体状に埋め立てる
/scriptevent beb:box glass
例2[直線]:pos1とpos2を直線上にガラスブロックで結ぶ
/scriptevent beb:line glass
例3[塗りつぶし]:pos1と隣接する同種のブロックをすべてガラスブロックに置き換える
/scriptevent beb:fill glass
例4[球体]:pos1からpos2を直径とする球体をガラスブロックで作る
/scriptevent beb:sphere glass
例5[円柱]:pos1とpos2を通る円柱をガラスブロックで作る
/scriptevent beb:cylinder glass
スクリプトリファレンス(基本編)
スクリプト説明
三角カッコは<名前:型名or選択肢>を示しています。
丸括弧の中身は省略可能なものです。
直方体設置(cuboid/box)
/scriptevent beb:<command:cuboid/box> <blockId:string> (<mode1:keep/replace/destroy> <mode2:hollow/wireframe/wire/frame>)
pos1からpos2を直方体で囲んだ範囲を埋め立てます。
command
cuboidまたはboxのいずれかを記述してください。どちらを使用しても結果は同じです。
blockId
設置したいブロックのIDを記述してください。例えばガラスブロックであれば「minecraft:grass」と入力してください。ブロックステイトを入力したい場合、blockIdのあとに空白を開けずに連続して記述してください。
例)oak_log[“pillar_axis”=”z”]
mode1
・keep 範囲内の空気ブロックのみを置換します
・replace 範囲内のすべてのブロックを置換します(デフォルト)
・destroy 範囲内にブロックがあった場合、破壊後(アイテムはドロップする)ブロックを置換します
mode2
・hollow 直方体の面のみを置換します
・wireframe/wire/frame 直方体の辺のみを置換します
例1:p1からp2を鉄ブロックで直方体状に設置
/scriptevent beb:box iron_block
例2:z方向を向いたオークの原木をp1からp2の範囲を直方体状に中空で空気ブロックのみを置換して設置
/scriptevent beb:box oak_log["pillar_axis"="z"] keep hollow
球体設置(sphere)
/scriptevent beb:sphere <blockId:string> (<mode1:keep/replace/destroy> <mode2:hollow>)
pos1からpos2の線分を直径とする球体の範囲をブロックで埋め立てます。
例:
/scriptevent beb:sphere iron_block
円柱設置(cylinder)
/scriptevent beb:cylinder <blockId:string> (<mode1:keep/replace/destroy> <mode2:hollow>)
pos1とpos2を通る円柱で、上下方向に伸びるもののうち最小サイズの円柱の範囲をブロックで埋め立てます。
例:
/scriptevent beb:cylinder iron_block
線分設置(line)
/scriptevent beb:line <blockId:string> (<mode1:keep/replace/destroy>)
pos1とpos2を結ぶ線分状にブロック
例:
/scriptevent beb:line iron_block
埋め立て置換(fill)
/scriptevent beb:fill <blockId:string> (<serchMode:n/e/w/s/u/d/x/y/z>)
pos1にあるブロックと同種且つ隣接するブロックを一括で置換
serchMode
どの方向にあるブロックを探索するか指定します。以下の内、含まれる文字の示す方向を探索範囲として追加します。例えば「xz」と記述すると、pos1から、自身を含むxz平面上に同種のブロックが存在しないか確かめます。デフォルトは「xyz」で、全方向を探索します。
・e +x(east)方向に隣接するブロックを探索します
・w -x(west)方向に隣接するブロックを探索します
・x +x, -x方向に隣接するブロックを探索します
・n +z(north)方向に隣接するブロックを探索します
・s -z(south)方向に隣接するブロックを探索します
・z +z, -z方向に隣接するブロックを探索します
・u +y(up)方向に隣接するブロックを探索します
・d -y(down)方向に隣接するブロックを探索します
・y +y, -y方向に隣接するブロックを探索します
スクリプトリファレンス(ピボット編)
今までの範囲指定方法は基本的に2点を保存し、その範囲を埋め立てるものでした。以下の指定方法は、pos1のみを参照し、コマンドからサイズや設置位置を指定する方法です。
ピボット指定直方体設置(box_pivot/boxp/cuboid_pivot/cuboidp)
/scriptevent beb:<command:string> <pivot:pivot> <sx:int> <sy:int> <sz:int> <blockId:string> (<mode1:keep/replace/destroy> <mode2:hollow/wireframe/wire/frame>)
pivot
生成する立体のうち各軸の最小となる座標を0, 最大となる座標を1としたとき、どこをマーカーの位置とするかを設定します。例えば、立体の中心がマーカーの位置になるようにしたい場合「0.5,0.5,0.5」のように記述します。※カンマの後などに空白を入れないでください。また、簡略記法として以下の指定も可能です。
・c 立体の中心(center=0.5,0.5,0.5)を基準に生成
・u 立体の上面中心(up=0.5,1,0.5)を基準に生成
・d 立体の下面中心(up=0.5,0,0.5)を基準に生成
・0 立体の0,0,0を基準に生成
・1 立体の1,1,1を基準に生成
・n 立体の北面中心(up=0.5,0.5,1)を基準に生成
・s 立体の北面中心(up=0.5,0.5,0)を基準に生成
・e 立体の北面中心(up=1,0.5,0.5)を基準に生成
・w 立体の北面中心(up=0,0.5,0.5)を基準に生成
sx, sy, sz
それぞれ直方体のx, y, z方向の長さを指定します。
例:+x+z方向を見たとき、左手前の地面をマークしたとき、右奥上方向にサイズx:y:z=3:4:5の直方体を生成
/scriptevent beb:boxp 0 3 4 5 iron_block
/scriptevent beb:cuboid_pivot 0,0,0 3 4 5 iron_block
例:pos1を中心に3x3x3の中空の立方体を生成
/scriptevent beb:boxp c 3 3 3 iron_block keep hollow
/scriptevent beb:cuboid_pivot 0.5,0.5,0.5 3 3 3 iron_block keep hollow
ピボット指定球体設置(sphere_pivot/spherep)
/scriptevent beb:<command:string> <pivot:pivot> <sr:int> <blockId:string> (<mode1:keep/replace/destroy> <mode2:hollow>)
sr
球体の半径
例:pos1を中心に半径3(直径7ブロック)の球体を生成
/scriptevent beb:spherep c 3 iron_block
例:pos2を中心に半径3(直径7ブロック)の中空の球体を生成
/scriptevent beb:sphere_pivot 0.5,0.5,0.5 3 iron_block keep hollow
ピボット指定円柱設置(cylinder_pivot/cylinderp)
/scriptevent beb:<command:string> <pivot:pivot> <sr:int> <sh:int> <blockId:string> (<mode1:keep/replace/destroy> <mode2:hollow>)
sh
円柱の高さ+1
例:pos1を中心に上方向に高さ10、半径3の円柱を生成
/scriptevent beb:cylinderp d 3 9 iron_block
例:pos1を中心に上方向に高さ10、半径3の中空の円柱を生成
/scriptevent beb:cylinder_pivot d 3 9 iron_block keep hollow
方向指定線分生成(line_to/line2)
/scriptevent beb:<command:string> <dx:int> <dy:int> <dz:int> <blockId:string> (<mode1:keep/replace/destroy>)
dx, dy, dz
pos1からそれぞれx,y,z方向に何ブロック進んだ地点と結ぶかを指定。
例:pos1から上方向にブロックを10こ伸ばす(高さは11になる)
/scriptevent beb:line2 0 10 0 iron_block
コメント