すーみそー
sumiso_c0db8c だ
本記事は クソアプリ Advent Calendar 2022 11日目 の記事です
枠が空いていたので、初投稿ですが参加してみます
今回は統合版マイクラ対応
ボーリング調査AddOnを作成します
アプリではなくアドオンですが
機能なのでセーフ、たぶん
地質調査用コマンドをまとめた
functionを用意し
どんな地質でも正確にボーリング調査できることを目指します
ボーリング調査とは
地面に細長く穴を掘り、地質を調べることです
ボールを投げてピンを倒すゲームはボウリングと表記します
環境
本アドオンは統合版 Bedrock Editionで動作します
Java版には対応していません
- windows11
- 統合版Minecraft 1.19.50
帰ってきた経験値無限かまどに、アイテム無限増殖
リリースログには修正とあるが直ってないドーピング馬
ここ数回稀にみるバグりバージョンです
統合版マイクラにはバージョン指定する方法が無いので
執筆時最新のこのバージョンを使用します
ファイル構成
/boring_survey ← 任意の名前
├ manifest.json
├ pack_icon.png
└ functions/
└ c0db8c ← 名前空間
└ boring.mcfunction
functionsの下には任意のフォルダを作成できます
他のビヘイビアーパックとの重複を防ぐため
名前を付けておきます
ちなみに筆者の名前が16進数なだけであって
6桁の16進数を指定する必要はありません
それぞれのファイルを説明します
manifest.json
アドオンの設定ファイルです
公式ドキュメントはこちら
MinecraftはMicrosoftに買収されたのでMicrosoft Docsに公式ドキュメントがあります
{
"format_version": 1,
"header": {
"description": "/function c0db8c/boring で実行点から地下64ブロックを3ブロック上にコピーします",
"name": "ボーリング調査アドオン",
"uuid": "57eead48-1b57-4516-ad70-a2842e76b55e",
"version": [1, 0, 0]
},
"modules": [
{
"type": "data",
"uuid": "87e557e2-3df2-4281-b742-8eadca94e2ce",
"version": [1, 0, 0]
}
],
"metadata": {
"authors": ["sumiso_c0db8c"],
"url": "https://www.youtube.com/@sumiso_craft"
}
}
headerの内容がゲーム内に表示されます
metadataはゲーム内で表示を確認できませんが
一応チャンネルの宣伝をしておきます
uuidは下記サイトなどを利用して生成します
pack_icon.png
ゲーム内に表示されるアイコン画像です
正方形ならサイズは不問です
今回は1200 x 1200 で作成しました
画力はないです
そして画像無くても問題ありません
boring.mcfunction
アドオンの本体です
マイクラで実行するコマンドをまとめて記述できます
テキストファイルを作成し
1行に1コマンドを記述
拡張子をmcfunctionに書き換えます
cloneコマンドを中心に
ボーリング調査用コマンドを組み立てていきます
各コマンドの説明をします
clone
指定範囲のブロックを指定箇所にコピーします
/clone <begin:x y z> <end:x y z> <destination: x y z>
/clone ~~-64~ ~~-1~ ~~4~
実行基準点の64ブロック下から、実行基準点の1ブロック下を
実行場所の3ブロック上にコピーします
~は実行基準点からの相対座標を示します
コピー元のx,y,zの最も値が小さい場所が
destinationで指定した座標にコピーされます
beginとendは逆にしても
結果は変わりません
beginの方を小さい座標にしておく方が
結果が予測しやすいです
このアドオンのクソポイント
cloneコマンド1つだけで
ボーリング調査が出来ます
アドオンは必要ないです
fill
しかし、cloneコマンド1つでは出来ないことがあります
例えば、ボーリング調査範囲に水ブロックが含まれていた場合です
マインクラフト物理学によると水は8ブロック流れます
水がボーリング調査範囲に含まれていた場合
周辺が水浸しになります
地質にコンクリートパウダーが含まれていた場合
コンクリートに変化するため
正しい地質調査ができません
水がこぼれないように周囲をバリアブロックで囲います
/fill <from:x y z> <to:x y z> <tileName: Block>
/fill ~1~4~ ~1~67~ barrier
/fill ~-1~4~ ~-1~67~ barrier
/fill ~~4~1 ~~67~1 barrier
/fill ~~4~-1 ~~67~-1 barrier
fromとtoは逆になっても動作に影響はありません
また、ボーリング調査範囲に浮いた落下するブロックがある場合
具体的には、砂利、砂ブロックです
動作が予測できません
マインクラフト物理学によると
ブロックは空中に浮くことができます
この現象は大乱闘スマッシュブラザーズでも観測することができます
ただし、砂利と砂は落下するブロックです
ですが、地形生成時に設置された砂利と砂は浮いた状態で存在します
浮いた状態の砂利と砂は不安定であり
何らかの刺激、ブロックアップデートが入ると落下します
地形生成時の地質調査のために
ブロックの落下を防ぐ必要があります
そこで、ブロックが落下可能な空間
調査範囲に空気ブロックがあった場合
バリアブロックに置換する処理を行います
/fill <from:x y z> <to:x y z> <tileName: Block> <tileData: int> replace [replaceTileName: Block] [replaceDataValue: int]
/fill ~~-65~ ~~-1~ barrier 0 replace air 0
調査範囲一番下が砂利と空気だった場合を想定し
範囲-1ブロック下までバリア保護を行っています
余談ですが
チャット画面に表示されるコマンドのヒントには
- tileData: int
- blockStates: block states
の2種類が表示されています
- ブロックの色の情報
コンクリートの色など - ブロックの方角
フェンスゲートの設置する向き
だと思われますが
どっちがどっちか分かりません
指定するときは0以上の整数値で
見た目に違いがありません
有識者の方いましたらコメントください
また数値で色や方角を指定するため
人類に対して非常に不親切です
一方のJava版マイクラは文字列で指定できるので親切です
本記事は統合版アドオンの紹介です
setblock
ボーリング調査範囲の一番下が砂利だった場合も考えられます
落下防止のため
ボーリング調査結果の1ブロック下にもバリアブロックを1つ設置します
/setblock <position: x y z> <tileName: Block>
/setblock ~~3~ barrier
boring.mcfunction
最終的にboring.mcfunction
の中身は以下のように記述します
上から順に実行されます
fill ~~-65~ ~~-1~ barrier 0 replace air 0
setblock ~~3~ barrier
fill ~1~4~ ~1~67~ barrier
fill ~-1~4~ ~-1~67~ barrier
fill ~~4~1 ~~67~1 barrier
fill ~~4~-1 ~~67~-1 barrier
clone ~~-64~ ~~-1~ ~~4~
パッケージ化
作成したファイルをzip化し拡張子を書き換えます
今一度ファイル構成を紹介します
/boring_survey ← 任意の名前
├ manifest.json
├ pack_icon.png
└ functions/
└ c0db8c ← 名前空間
└ boring.mcfunction
boring_surveyを選択してzipに圧縮し
拡張子を.mcpack
に書き換えます
警告が表示されますがそのままOKを押します
フォルダのアイコンがマイクラの土ブロックになるので
ダブルクリックでマイクラにインストールできます
使用方法
- ワールドの設定で本ビヘイビアーパックを有効化します
- ボーリング調査したい場所に立ちます
- チャット欄に
/function c0db8c/boring
と入力します
funぐらいまで入力すると予測が表示されますので
tabで入力できます - コマンドを実行します
- 頭上にボーリング調査結果ができます
まとめ
マイクラでボーリング調査を行いました
最後に本アドオンのクソポイントを紹介します
使いどころが分からない
地下を透視したいならスペクテイターモードがあります
しかし、スペクテイターモードでは地下のブロックが透明化するため
ブロックは何が存在するか
調べるには使えるかもしれません
最後までご視聴、ありがとうございました