見出し画像

慌ててメモリを増設してしまった件

こんにちは! P&M Entertainmentです!

今回は慌ててメモリを増設してしまい、ちょっと損したような気持ちになったお話です。

最近3Dを取り入れたゲーム開発に挑戦している我々ですが、3Dゲームにはライトという重要な要素があります。つまり、光と影の表現ですね。

Unityのライトには『ベイク』という機能があります。おそらく「焼く」「焼き付ける」という意味だと思われます(パンやステーキを焼くのも英語でベイクですね)。これは、動かないオブジェクト、例えば建物などの影をあらかじめ決めておき、ゲーム中では大きく変更させないというものです。おそらくですが、リアルタイムな陰影の表現が必要ない場合や、モバイルなど負荷の高い処理に耐えられないゲームのための機能だと思われます。

このベイク、結構重たいのです。

最新のUnity(2018.3系以降)では、だいぶ早くなるらしいです。

実は、開発当初『よちよちインコ』を作った頃とあまり変わらないUnityを使っていて、重さに耐えかねて上記の記事を拝見し、急いでバージョンアップして確かに早くなって感激したものです。

しかし、PCの処理速度には人間慣れてしまうもので。しかも、徐々にベイクする対象も複雑になるし、プロジェクトのアセットも増えるしで、最初の頃の体感速度は得られなくなってきました。

ベイクの方法にはいくつか方法があります。GPUを使う方法と、CPUを使う方法です。

GPUを使ったほうが早いと聞いていたのですが、どうも上手くいきませんでした。タスクマネージャーを見てみると……ん? メモリの負荷がMAX!? 16GBのメモリが使用率100%になっていて、一方GPUはほとんど使われていない……。コンソールには「メモリが足りません」的な警告が出て、やがてUnityは落ちてしまいました……。

ここで、愚かにも「やばい、メモリが足りない!」と慌てて、8 * 2 = 16GBだったメモリの片方をAmazonで購入した16GBのものに増設しました。これで8+ 16 = 24GB。

もう一度試してみるも……やはりメモリが100%になって落ちる!

ここでようやく、「じゃあCPUモードで試してみよう」とやってみると……メモリの消費はまあまあ、GPUにやや負荷が。しかしやがて無事完了。

とりあえず得た知見としては、「両方のモードを試してみること」「基本的にCPUモードを使うこと」です。

ちなみに、ほぼ同スペックのMac Book Proでやってみたところ、同じくメモリが悲鳴を上げていましたが、しばらく時間をかけて完遂してくれました。

この記事が気に入ったらサポートをしてみませんか?