世界が動き出す。スコアが刻まれる。
宝箱が軋みながら開き、スコアボードに英雄の名が刻まれる——
本ビルドは中規模拡張であり、スコアボードシステム・チェスト開閉アニメーション・リッチテキスト・BBModelブロック描画を一挙に実装します。
数値で世界を管理する
Minecraft互換のスコアボードを新規実装しました。目標の作成・削除・一覧表示に加え、プレイヤースコアのset/add/remove/reset操作が可能です。
operationコマンドでは代入・加減乗除・剰余・比較・スワップの8種の演算子を使い、スコア間の算術演算ができます。ワールドメタデータと統合され、自動保存・復元されます。スコア変更コマンドはホストのみ実行可能です。
宝箱が息をする
右クリックでチェスト等のブロックの開閉を切り替えられるようになりました。閉じた状態は静的にチャンクへ焼き込まれ追加の描画コストはゼロで、開閉中のみ動的描画に切り替わります。マルチプレイでは開閉状態がホストとクライアント間でリアルタイムに同期されます。
あわせて、特定のブロックをBlockbench形式の3Dモデルとして描画する仕組みも導入。デフォルトはアンビルで、チャンク構築時に各面がオパークメッシュへ焼き込まれるため、1チャンク1ドローコールの原則は保たれています。
動的な文字表現
| コンポーネント | 説明 |
|---|---|
| selector | @a @s @p をプレイヤー名に展開 |
| score | スコアボードの値をリアルタイム表示 |
| nbt | エンティティのフィールド値を取得 |
| keybind | プレイヤーのキー設定に合わせた操作名を表示 |
/tellrawや/titleで使うJSONテキストに、これらの動的コンポーネントを組み込めるようになりました。チャット表示にも統合済みです。
| 症状 | 修正内容 |
|---|---|
| 水棲モブが水中で不自然に沈む/浮く | 垂直方向の抵抗計算が二重適用されていたのを修正 |
| ボマーの自爆判定が不自然(上下をすり抜ける) | 起爆判定をY軸も含めた3D距離に修正 |
| エモート再生が稀に競合する | 状態管理を原子的に切り替わる方式へ変更 |
| まれにブロック情報のキャッシュが競合する | キャッシュ更新の排他制御を見直し |