Better Beds Mod:Minecraftにおけるレンダリングの最適化と3Dベッドモデルのサポート
FPSを向上させるMinecraft用クライアント最適化Mod「Better Beds」の詳細な技術的レビュー。
FPSを向上させるMinecraft用クライアント最適化Mod「Better Beds」の詳細な技術的レビュー。
前提条件:
ローダー:Fabric / NeoForge / Quilt
Minecraftバージョン:1.16 – 1.21.x
Better Beds Modは、Minecraftにおけるベッドの描画メカニズムを書き換え、重いバニラのブロックエンティティレンダラーを標準の静的モデルエンジンに置き換えます。バニラのゲームでは、ベッドはBlock Entity Renderer(BER)として処理されるため、プロセッサ(CPU)は毎フレームごとにそのジオメトリを再計算する必要があります。Better Bedsは、ベッドをJSONモデルの古典的なブロックに変換し、そのレンダリングを完全にグラフィックボード(GPU)に移行させます。これにより、村の近くやマルチプレイヤーゲームのロビーでのフレームレート(FPS)が大幅に向上し、標準のリソースパックを通じてベッドをカスタマイズできるようになります。
バニラのベッドレンダリングにおける技術的課題
バニラのMinecraftでは、ベッド、チェスト、看板、旗などは特別なオブジェクト、つまりブロックエンティティ(Block Entities)として扱われます。チャンクの読み込み時に静的なチャンクメッシュにベイクされる通常の石や木とは異なり、ブロックエンティティは個別のレンダラー(Block Entity Renderer)を必要とします。
このアプローチがバニラゲームで引き起こす問題:
CPUへの負荷。プロセッサは、ミリ秒ごとに近くにあるすべてのベッドの座標を照会し、個別の描画命令をグラフィックボードに送信することを余儀なくされます。
オクルージョンカリング最適化の欠如。バニラのエンティティレンダラーは、ベッドが壁の後ろや床下にある場合でも描画を行い、コンピュータの計算資源を無駄にします。
パフォーマンスの低下(FPSのラグ)。数十人の村人がいる大きな村に入ったり、基地に多数のベッドが設置されているBedWarsのようなモードでサーバーでプレイしたりすると、レンダリングスレッドによるCPUの過負荷が原因でフレームレートが突然大幅に低下することがあります。
Better Bedsの最適化とメカニズム
Better Beds Modは、ベッドのBlock Entity Rendererを完全に削除し、標準の3Dブロックに変換します。
最適化の仕組み:
チャンクの読み込み中、ゲームは階段やフェンスと同様に、ベッドモデルを静的オブジェクトとして読み取ります。
ベッドのジオメトリは、全体的な3Dチャンクメッシュ(Chunk Mesh)に結合(ベイク)されます。
グラフィックボードは、ベッドを含むチャンク全体を1回のパス(1回のDraw Call)で描画し、フレームごとの計算に中央プロセッサをまったく関与させません。
ベッドが他の不透明なブロックの後ろに隠れている場合、オクルージョンカリング(Occlusion Culling)アルゴリズムが自動的にそのレンダリングを停止し、GPUメモリを節約します。
このModはクライアント側でのみ動作するため、ゲームロジックは変更されません。ベッドはすべての機能を保持しています。ベッドで寝たり、リスポーンポイントを上書きしたりすることができ、村人はそれらを仕事場や睡眠場所として問題なく認識します。このModはサーバーにインストールする必要がないため、マルチプレイヤーでプレイする際にも自由に使用できます。

歴史的背景:なぜベッドはエンティティになったのか
ベッドをブロックエンティティにするというMojangの決定は、過去には必要なステップでした。バージョン1.12までは、Minecraftは古いブロックIDシステムを使用しており、各ブロックのメタデータにはわずか4ビット(最大16種類の状態)しか割り当てられていませんでした。
ベッドの場合、以下をエンコードする必要がありました。
16種類の羊毛の色。
ベッドの2つの部分(頭と足)。
4つの配置方向(北、南、東、西)。
これにより128の状態の組み合わせが生じ、古いシステムの制限内には物理的に収まりきりませんでした。貴重な空きブロックIDを何十個も無駄にしないため、開発者はベッドをTile Entity(Block Entityの前身)に変換し、色と方向の保存を別のメタデータに移動し、描画をCPUベースのレンダラーに移行しました。
バージョン1.13("The Flattening")で、開発者はIDシステムを完全に書き換え、無制限の数の状態を持つブロックを作成できるようになりました。しかし、ベッドのコードは変更されませんでした。Better Bedsは事実上、この時代遅れの技術的負債を解決し、ベッドを標準のブロック形式に戻します。
カスタマイズとリソースパックのサポート
バニラのベッドは、平らなエンティティモデルに引き伸ばされた1つの大きなテクスチャを使用します。通常のバニラゲームでリソースパックを使用してベッドのジオメトリを変更する(例えば、脚を丸くしたり、ボリュームのある毛布を追加したりする)ことは、Custom Entity Models(CEM)機能を持つOptiFineのような重い最適化Modをインストールしない限り不可能です。
Better Bedsにより、ベッドのグラフィックスのカスタマイズが自由になります。ベッドは通常のブロックになったため、models/block/フォルダにbed.jsonファイルを含むリソースパックを作成またはダウンロードできます。
これにより、以下のことが可能になります。
詳細な枕、毛布、脚を備えた完全な3Dベッドモデルを作成する。
アニメーションテクスチャを使用したり、(PBRシェーダーを介して)暗闇で光る要素を追加したりする。
標準の長方形のフレームを超える立体的なディテールを追加する。
デフォルトでは、このModにはバニラのベッドの外観を正確にコピーする組み込みのJSONモデルが含まれているため、サードパーティのリソースパックをインストールしなくても視覚的な違いには気付きませんが、パフォーマンスの向上は得られます。
互換性と制限事項
このModは、チャンクレンダリングの最適化に同じフックを使用しているため、他のグラフィック最適化Mod(Sodium、Embeddium、Iris、Lithium)との高い互換性を持っています。
制限と競合:
Bedspreads。ベッドに旗の模様を適用できるこの人気Modは、Better Bedsと互換性がありません。理由は、BedspreadsがバニラのBlock Entity Rendererに固く結びついており、ベッドの上に旗を描画しているためです。
カスタムベッドを追加するMod。他のModが新しいタイプのベッドを追加し、そのために標準のモデルレンダラーを使用している場合、それらの新しいベッド用のJSONモデルを含む別個のリソースパックが必要になります。独自のカスタムBERレンダラーを通じてベッドを登録するModは安定して動作しますが、Better BedsによるFPS向上は得られません。
著者の意見
Better Bedsは、Minecraftのクライアント側を最適化するための効果的な技術的ソリューションです。時代遅れのベッドレンダリング方法を静的なJSONモデルに置き換えることで、フレームごとのCPU負荷が完全に排除され、グラフィックボードがベッドを風景の一部として描画できるようになります。
エンティティモデルを変更する重いModと比較して、Better Bedsはベッドの最適化とリソースパック作成者の可能性を広げることのみに焦点を当てた軽量な代替手段を提供します。主な欠点は、バニラのエンティティレンダラーを変更するMod(Bedspreadsなど)との互換性がないこと、および一部のサードパーティModの家具モデルを手動で追加する必要があることです。このModは、スペックの低いコンピュータでプレイしている場合、多数のベッドがある大規模な基地や村を頻繁に訪れる場合、またはパフォーマンスを損なうことなく美しい3Dの家具テクスチャを導入したい場合に最適です。
インストール
通常のインストールは約 5 分で完了します。手順は同じで、ローダーと対応するビルドだけが異なります。
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











