2024年10月6日日曜日

マイクラ装置勢向けの簡易情報表示アドオン

Minecraft統合版を遊んでいて不自由な思いをすることはよくあると思います。 そんな中でアドオンで簡単に改善できそうな項目について自作アドオンでなんとかしてみました。 このアドオンを有効化するとバニラの『座標を表示』機能を拡張して次の情報が表示されるようになります。

  • Tm : 時刻(TiMe)
  • Fcg : 操作キャラクターの向き(FaCinG)
  • Pos : 操作キャラクターがいる座標(POSition)
  • TB : Targeted Blockの座標

150行程度のスクリプトで実装した簡単なものですが、誰かの好みに合うかもしれないので公開しておきます。

注意

このアドオンを使うに当たって次の4つを注意してください。 あくまでも自己責任で使用してください。 受け入れられない方は使用しないでください。

  • 雑な動作チェック
  • ソロ用
  • ビヘイビアパックで実績解除不可に
  • スコアボード機能使用不可

雑な動作チェック ...... このアドオンは自分で使うための雑な作りのものです。 テストもろくにしていません。 一応、持ち物や地形を変化させる要素は無いハズですが、不具合はあるものとしてお使いください。 (2024/10/09 バグが1つ見つかりました。後述の『既知のバグ』を確認してください)

ソロ用 ...... Java版のマイクラでは「ローカルからサーバーにアクセスしているプレイヤー」と「別のマシンからサーバーにアクセスしているプレイヤー」を区別できるらしい?のですが、統合版だと全プレイヤーが区別できません。 つまりオンラインでマルチプレイしている場合、座標を表示しようとすると「誰の座標が表示されるか分からない」ということです。 工夫すればなんとかなるかもしれませんが、私はソロプレイしかしていないのでテストのしようがありません。 面倒なのでマルチプレイは未対応にしています。

ビヘイビアパックで実績解除不可に ...... 私が適当に調べた範囲では、Targeted Blockの情報はスクリプトでしか得られないようです。 スクリプトはビヘイビアパックでしか使用できません。 ビヘイビアパックを有効にすると実績の解除ができなくなります。 もちろんこのアドオンもスクリプトで調べているので実績解除不可です。

スコアボード機能使用不可 ...... 私の調べた範囲では、統合版のアドオンではスクリプトで調べた情報をUIに反映させる手段は限られています。 このアドオンでは内部でスコアボードの機能を流用して情報の受け渡しをしています。 本来のスコアボードの用途と競合しているので、別のスコアボードを使うアドオンと併用するとどちらかが不具合を起こします。 別のアドオンを使いたい場合はそちらを優先してください。

ダウンロードとインストール

リンク先Webページ右上の『ログイン』ボタンの2つ左にダウンロードアイコンがあります。 そこから適当なフォルダにダウンロードしてください。 zipファイルを解凍すると2つのmcpackファイル(ビヘイビアパックとリソースパック)が出てくるので両方Minecraftにインストールして有効化してください。 バニラの『座標を表示』機能が有効になっていると、その表示内容が変化します。

表示内容の補足

表示内容について、独自仕様なので簡単に補足しておきます。

時刻 ...... 24時間表示です。ベッドに入って朝まで寝ると6:00に起床します。 12:00に太陽がプレイヤーキャラクターの真上に来ます。 18:32過ぎにベッドで就寝できるようになります。 24:00に月がプレイヤーキャラクターの真上に来ます。 昼夜で行動が変化するNPCになにかするとき、待ち時間を有効利用できるようになります。 寝られる時間が分かりやすくなるのでベッドシバキの頻度も減るでしょう。

操作キャラクターの向き ...... 東西南北を表示します。 これで石レンガブロックやひまわりを常備する必要はなくなります。

操作キャラクターがいる座標 ...... (x, z)[y]の形式で表示します。 xとzは8の倍数で数値が太文字になり、16の倍数でシングルクォート「'」が付いて強調表示されます。 フォントの関係で冒頭のキャプチャ画像ではダブルクォートに見えますが、シングルクォートで間違いありません。 本当はシングルクォートではなく下線などで文字修飾したかったのですが、統合版では下線が実装されていないのでこんな形になりました。

Targeted Blockの座標 ...... 的ブロック(Target Block)ではなく、クロスヘアで指しているブロックの座標です。 表示形式や文字修飾はキャラクターの座標と同じになります。 シミュレーション距離4でしか試してませんが、東西南北の有効範囲は100ブロックくらいのようです。 これは設定によって変化するかもしれませんが、スクリプト上では255ブロックまでに制限しています。 有効範囲内にブロックがない場合は目立たない灰色の文字で(--, --)[--]が表示されます。

キャラクターの座標とTargeted Blockの座標が同じチャンクにある場合、Targeted Blockの座標のあとに「@」が付きます。 複数のチャンクをまたいで作ってはいけない装置はけっこう多いので、チェックに使ってください。 チャンクの境界を調べるのにも使えます。 これは簡易的なものなので、本格的に調べたい場合は別のリソースパックを使ってください。

既知のバグ

2024/10/09確認) 完全に水没した状況で、クロスヘアが何を指していても『Targeted Blockの座標』が『操作キャラクターの頭部の座標』になってしまいます。 つまり、操作キャラクターとxz座標が同じでy座標が+1の場所です。 Player.getBlockFromViewDirectionメソッドあたりがおかしいのかな? 現状なんともならないので『Targeted Blockの座標』が必要な場合は空気がある場所で使ってください。



アドオンについてはこんな感じです。 最初は普段のプレイで実績を全く気にしていないのに、実績が解除できなくなるのを気にして作るかどうか迷ってました。 実績の一覧を見たらやる気が無くなったので、今では作ってよかったと思っています。 穴の深さが分かるとか就寝できる時間が分かるとか、装置を作るとき以外でも地味に役に立ってますね。


......どうでもいい話ですが、現実の地球では北半球だと太陽は東から日の出して南を通って西で日没しますよね。 マイクラ世界では太陽は南北を通らずに真上を通っています。 地軸、傾いていません。 アドオン作っていて初めて気づきました。

地軸の傾きが無いって事は四季も無いという事です。 桜バイオームとは?