KantanBay BVE Memo

かんたんのゆめのBVE関係の更新情報・製作メモ

シナリオの「重さ」のはなし①(BVEのメモリの仕組みと制限)

 シナリオの軽量化の話はちょっと前にここでも書いたのですが、見返してみるともはや8年前の記事となっており、そんなに経ったんだ…と打ちひしがれています。そんなわけで、最近の関心の高まりもあって、再度令和最新版として取り扱ってみたいと思います。

他のリッチな3Dゲームに比べてBVEって重くない?

 時は2024年。世の中のゲームはすっかり3Dゲームが標準となってきました。広大な3Dの大地を縦横無尽に駆け巡るオープンワールド的なゲームもご家庭のPCどころかお手持ちのスマホで気軽にできる時代となっております。良い時代ですね。

 そんな中、BVEは現在の3Dクオリティに合わせてゴリゴリに作りこむとやたらと重くなっていきます。なんでか? それはBVEの根本的な設計が、2000年頃のBVE1リリース時から変わっていないという事情があります。

 BVEでシナリオの重さを語る際、現在はフレームレート(FPS)の数値よりメモリ消費を重視する傾向にあります。実際PCの性能がどんどん進化したため、フレームレートの低下で困るという場面は昔に比べてかなり解消したようには思います。どうしてBVEではメモリ消費の問題が解消されないかというと、読み込めるデータ量に制限があるからです。
 一般的にデータというものはHDDから読み込むよりよりメモリから読み込んだ方が圧倒的に早いです。そんなわけでBVEは、シナリオ読み込み時にすべてのデータを(BVEの)メモリ上に読み込みます」
 これはシナリオデータ総量のたかが知れていたBVE1/2時代※1 なら何も問題なかったのですが、時代はBVE5となりフル画面化され、それに合わせてテクスチャが高画質化の傾向に。さらにプラグインの充実などの高機能化が進む中で、シナリオの総データ容量が加速度的に増加していき、やがて「すべてのデータを読み込むとシステムの限界が来てBVEがパンクする」※2※3 状況が出てきました。
 BVE5.8(LargeAddressAware/所謂4GBパッチの適用)およびBVE6(64bit化)のリリースでだいぶ余裕は出来たものの、いずれにしてもBVE5.8は3GB程度が読み込み限界ですし、BVE6では理論上は無限になったとはいえ、最終的にPC性能という限界があります。
 とりあえずこのあたりは現行のBVEの仕様となっており我々にはどうしようもない部分なので、あまり使用メモリを食いすぎているようであればなんらかの削減、もしくは公開時に注意喚起の必要があります。

※1 そもそもこの時代はPC搭載メモリが64~512MB程度とかの時代で、車両と路線合わせて30MBもあれば超重量級のシナリオでした。
※2 32bitアプリケーションの制限でアプリケーションに2GB(実質1.5GB程度)以上のデータを読み込めない。
※3 公式サイト見直してたらBVE1-4の時点ではAnnounce音声はメモリ上ではなかったような様子

 

自分のデータがどのくらいメモリを消費しているか知る

 BVEのメモリ使用量は、Windowsの標準機能であるタスクマネージャーで確認できます。もしくは拙作のBVEMemoryMonitorでも確認できます。

 BVE5.8で動かす場合、消費メモリは3.4GB程度が限界とみてください。またBVE6で動かす場合も無限に消費できるわけではなく、最終的にはPC搭載のメモリに依存することも注意しておきましょう。
 シナリオ製作者自身が8GBや16GB搭載のリッチなPCで動かしていても、プレイする側は搭載メモリ4GBや2GBのPCだったりする例は珍しくはありません。データの読み込み量がPC搭載のメモリ量を超えるとBVEがバグったり、最悪落ちることがあります。事前に消費メモリを調査しておいて、ダウンロード前に注意喚起しておくことが望ましいでしょう。

PC搭載メモリとシナリオ消費メモリとBVEバージョンの関係

 BVE5/6のシステム要件(推奨環境)は搭載メモリ4GBですが、それに準ずる場合シナリオ使用メモリの限界は3.4GB程度となります。しかし、3GB使用するシナリオは当然ながら搭載メモリ2GBのPCではまともにプレイできないことになります※3。もし搭載メモリ2GBのPCに対応したいのであれば、使用メモリを1.5GB以下に抑える必要があります。そもそも4GBのPCでも消費3.4GBはカツカツであり、減らせるようならもっと減らす方が望ましいことになります。
 正直2024年になった現在、搭載メモリ2GBのPCはそろそろ捨t…買い替えてくれよ…」と思っていますし、BVE自体のシステム要件にも満たないこともあり「非対応」としても良いかと思います。ただ、搭載メモリ4GBのPCについては世の中に普通にはびこっているので、基本的に対応できるものなら対応した方が良いでしょう。もちろん非対応として切り捨てるのもまた選択ではあるので、削るのが嫌だ/面倒、という場合は対応しないのもアリでしょう。それは作者側の自由です。

※3 できても読み込みにめちゃくちゃかかったうえFPSが最低程度まで低くなる。

 

(次回:具体的にどうすれば軽くなるのか(仮題))