<設定解説>
ここではDoom 3のグラフィックス設定について解説する。D3ではユーザーがOptionから設定可能な項目が非常に少なくなっており、多くの設定が自動的に行われる仕様になっている。例えば5種類存在するレンダリング方式やTextureのFiltering方式の様な基本的な物から、ダメージ時のエフェクトのON/OFFやdecalの量等の細かい設定まで、画面上では設定が出来ない項目が多い。これはそれぞれのパラメータの相関関係が複雑になっている為に、個別に設定を変更されるとグラフィックスにゴミが発生したりといった不具合が出る可能性があるからという理由のようだ(或る項目を変えたら他も変えないとならなくなるといった意味)。基本的には最初の起動時、その後はScan
Hardwareを選んで再検査をする事によって設定が行われる。
普通にOptionから設定可能な項目は大きく分けて2種類、一つはTextureの質を決定するQualityで(サウンドのクオリティもこれに左右される)、もう一つはAdvanced
Optionにて設定出来るエフェクト系の項目である。
まずQuality設定に関しては、以下の様な4段階の設定が用意されている。これ等は一度設定してApplyした後に、ゲームを再起動するまでは有効にならないので注意(或いはコンソールからvid_restart)。
種 類 | 想定ビデオカード | TEXTURE(通常) | NORMAL(BumpMap) | SPECULAR(反射) | DIFFUSE(拡散) |
ULTRA | VRAM 512MB | 標 準 | 標 準 | 標 準 | 標 準 |
HIGH | VRAM 256MB | 標 準 | 標 準 | 圧 縮 | 圧 縮 |
MEDIUM | VRAM 128MB | 標 準 | 圧 縮 | 圧 縮 | 圧 縮 |
LOW | VRAM 64MB | 低 | 圧 縮 | 低 | 圧 縮 |
D3では平均して1つのマップ当たり約500MBのTextureが使用されており、これには理想としてVRAM 512MB以上の容量を持ったビデオカードが要求される。よって発売時点ではこういったビデオカードが出回っていない為、この時点のハイエンドPCでも自動設定ではUltraのクオリティには設定されないようになっている。何故そんなにTextureの容量が多いのかを疑問に思う人もいると思うので、詳しくない方向けに簡単に説明しよう。
最新のPixel Shader機能を使用していない過去のゲームにおいては、Textureの質が大きく見栄えを決定していた。Optionでキャラクタや世界のTextureにてHighの設定を選ぶと高解像度のTextureが使用されて、設定をMedium,Lowと下げるごとにそれが低い物へと変わっていくという風になっていたのである。よってこのTextureに高解像度で美しい物を使用するほど、データ量は大きくなるが綺麗に見えるというのが普通だった。
しかし最新のゲームではこのTextureを単一に使用するのではなく、イメージとしてはポリゴン上に何層にもコーティングされた異なるTextureが貼り付けられており、それを合算した物が最終的に描画されるというようになっている。D3では少なくとも上記4つのTextureの層が貼り付けられている事になる。その為に非常に全体のTexture容量は大きくなってしまう事になるのだ。
id側の話ではUltraとHighの違いはほとんど無く、相当細かく見ないと分からないレベル。MediumではBumpmapが圧縮されるのでクオリティは落ちるが、これもまた一目で明確に分かるといったレベルではない。後は比較表を見て気が付くのは、従来の意味でのTextureはMediumから上では変化が無い点。よってゲーム中にぼやけて見える部分が設定を上げたからといってシャープになる訳ではない。(厳密には内部設定でTextureの扱いに若干の変化は有るようだが)。
パフォーマンスに与える影響としては、メモリの転送能力が大きく関わってくる。まずはビデオカード上のVRAM用メモリの転送速度がどの程度速いかが重要となる。そして自分のビデオカードの容量以上の設定を選んだ場合、溢れたデータはAGPバスを通してメインメモリとやり取りされ、更にはHDへとスワップされる事になる。そうなるとVRAM転送より遅い部分でのデータ転送が多くなる為に、プレイ中にカクカクとなってしまう可能性が高くなってしまう。特にこれは新しいエリアへ入るのにドアが開いた時等に顕著に発生する。別に何も起きていない箇所で突然止まったようになる等の”描画能力が原因”で遅くなっているのではないと思われる場合には、このTexture設定を落とすというのを考えないとならないだろう。
更に言うと設定的には問題なくても、D3では常にバックグランドでHDからのデータ転送を行っている為に、プレイ中に一瞬止まったようになる可能性もある。これは内部設定を変更する事で改善が可能。baseフォルダ内のDoomconfig.cfgを開いてやり、以下の項目を変更する。
seta image_useCache
seta image_cacheMegs
seta image_cacheMinK
まずimage_useCacheはCacheの設定変更を有効にするかどうか。1で有効なので1に書き換える。次にimage_cacheMegsは圧縮Textureの領域をメインメモリに確保するコマンドとなり、この値の分までバックグラウンドにてデータを先読みしてくれるようになる(よってUltraの場合には意味無し)。当然純粋な描画能力に関しては影響が無いので、VGAの処理の遅さによるfpsの低下に関しては効果が無い。値に関しては最大でもシステムメモリの1/4までというのが定説。1GBならば192-256MB、512MBならば96-128MB等。多過ぎるとゲームが使用するメモリが少なくなるので逆効果となる可能性もある。
問題はimage_cacheMinKで、もしimage_useCacheを1に設定した場合、この値をDefault(20等)から変更しないとゲームが確実にクラッシュする(最低でも2048)。値はKB単位となり2進数で指定するのが基本。2048とか10240とか。この最適値については諸説有って、またマシン環境による差が大きく、65536位が良いという人もいれば、4096程度がベストという説もある。
次にAdvanced Optionについて。実はビジュアル的なインパクト(変化)に関して言えば、Qualityの設定よりも遥かにこちらの方が影響が大きい。そしてまたビデオカードの処理能力に大きく関わる部分なので、プレイ中のパフォーマンスにも影響を与える箇所となる。グラフィックスの何が気になるのかは個人差があると思うが、私自身の考えではQuality設定を落としてでもこちらの各設定をONにした方が良いと考える。ゲームが遅い場合に、1024*768のHighにしてこれらの項目をOFFにするよりも、これ等は全てONにして800*600のMediumとかにした方が良いだろう。つまりこれら項目の設定は全てONにするのを前提として、そこからQualityの設定と解像度をどうするかを考えるという絞込み方をお勧めする。
以下主要な項目を解説。
◎Shadows
D3での主要な機能であり、グラフィックスに与える変化も大きい。ただしONかOFFかの2択しかなく、影の対象物やクオリティは選択出来ない(内部設定には多くの項目が存在するが、Quality設定によって自動的に変化するのかどうか詳しくは分からない)。OFFにしても影が全て消える訳ではなく、固定されて変化しない部分については固定されている様である。以前にはレンダリング過程の半分程度は影の描画計算に費やされるといったコメントも出ており、ONにした場合のパフォーマンスへの影響は相当に大きい。軽くしたいならばOFFにすべき項目ではある。
実際の見た目に与えるインパクトについては、正直な所想っていたほどではないという印象である。というのは、とにかくそこら中が暗いので、あまり影が与えるインパクトが大きくないというのがその理由。つまり影を効果的に見せるには逆に明るい場所或いは光源が必要となるのだが、D3にはそれがあまり存在していない。例として掲載した(上左SS)の様に或る程度明るい場所であればその変化は大きく見えるが、この様にハッキリとして見える場所はゲーム全体を通してもあまりなく、それ故にインパクト不足という感はあった。
例えばDeus Ex: Invisible War, Thief: Deadly Shadowsでは完全なダイナミック・ライティングの実現を謳い文句にして、ゲーム全体は暗いのだが「影生成の凄さを見せ付ける」為のデモ的な箇所もゲーム内には多く存在していた。しかしD3ではこういった凄さを見せ付ける様な箇所は大してなく、ファンの回転や蛍光灯の揺れが影の変化をもたらす箇所が目立つ程度。マルチプレイと異なり、光源を破壊して変化を引き起こすという要素も導入されていない。良い捉え方をするならば自然な描画、或いは敢えて凄さを見せ付けようとはしない潔さとも取れるが、もうちょっとインパクトを与えるようなシチュエーションを導入すべきではなかったかと感じる。
一方で効果的に見えるのは敵との対決シーンである。火の玉を投げるImpの動作に応じてリアルタイムに影が生じたりとか、この場合にはビジュアル的なインパクトは大きい。さすがにこういった場面では影無しでは面白さが半減という印象である。
視界が確保出来る範囲での暗さならば影が出来たりするのは効果的だが、このD3位暗くなってしまうと、その効果を味わうよりも暗過ぎてプレイしにくいという鬱陶しさが先立ってしまう。実際にあちらのForumでは暗過ぎるのでむしろ切ってしまった方がプレイし易いといった意見も有った。
もう一つ大きな問題点としては、手持ちのFlashlightが武器を持った時点で仕舞われてしまうという点がある。ただ効果を見る為だけでライトを持ったまま敵を見るとその効果が大きいのが分かるのだが、実際には敵を発見した時点で武器に持ち替えてしまうので(よっぽどスローなゾンビ等でも無い限り)、この場合には影の効果が見れなくなってしまう。確かに武器の発砲による明かりで変化は生じるが、実際の戦闘中にはそこへ注意が向く事はあまりない。
◎Bump Mapping (Normal Mapping)
正確にはNormal (法線)Mappingと呼ばれるが、取り合えずここではBump Mappingで通す事にする。これはBump
Mapping用のTextureのデータとして各点の傾きをデータとして持った物(言わばどんな風に表面がデコボコしているのかを持ったデータ)を用意し、これにある方向から光が当たった時にはその値に応じて光と影がどういった状態で表現されるかという計算を行い、それを通常のTextureに重ねて描画する事で表面が光源に応じて変化して均一にはならない効果が生まれるという機能。或る意味では影生成に関わる項目とも考えられる。
これはビジュアル的なインパクトとしては最も変化が大きく、これだけはONにしてプレイすべきと考える。ただし当然重く、またビデオカードのFillrateの能力にも関わってくるので、解像度を上げると大きくパフォーマンスに響いてくる。見た目の変化が大きくなる理由はゲームのデザイン仕様にあり、基本的にD3はBump
MappingをONにしてプレイする物として作成されている。その為に通常のTextureにはそれ程凝った物が用意されていないケースが多い。
Bump Mappingを使用していないゲームにおいては、通常の(今までの意味での)Textureを作成する時点で、3D形状に見えるような立体感を持った2Dの物を予め作成して貼り付けていた。しかしD3ではそういった立体感の表現はBump
Mapping用のTextureが行ってくれるので、わざわざその様に3Dに見えるように作り込んだ物を用意する必要が無い。よってOFFにしてしまうと平たい下地のTextureが剥き出しになってしまい、ビジュアル的には相当なグレードダウンとなってしまう。勿論OFFにして動かす時用の物を別に用意しておくのが最善策だが、そこまではコスト及び時間的にやってられないという事だろう。
◎Specular Lighting
反射効果を表す物であり前2項目に比較すると影響は低くなるが、これもまた切りたくない機能である。視覚的には武器の光沢や壁の反射がOFFにすると寂しくなる。しかし切りたくない最大の理由はビジュアル的な効果以前に、この機能がONである事が前提としてゲーム内の明るさが調整されている点にある。つまりこの機能がOFFの(或いはビデオカードの問題で正常に働いていない)場合、製作側の意図しているよりも更に暗い描画となってしまう。実際にこの反射機能によって微妙な明るさが表現されており、反射光のみで明るく見える箇所も少なくない。それが全部黒くなってしまうとなると、よりプレイがしにくくなる事は間違いないからだ。そもそもこの機能はテクニカル・サポートにて暗過ぎるという問題に対する解決策として掲示されており、つまりは切る事を考えてゲーム自体が作られていないと考えた方が良い。
◎High Quality Special Effects
具体的にどんな効果を指すのか詳しくは分からないが、これもまたShaderの高度な機能を使用して描画する機能となっている。掲示した4項目の中では一番影響は少ない項目だが、数世代前のビデオカードだとONにしておいても効果が現れるかどうかは分からない(或いは簡易化された表現になってしまう)という面も持っている。
取り合えず分かっているのはHeat Hazeなどと呼ばれる空気の動きを描画する機能はこれをONにしないとならない。例えばだが熱風が吹き出ている箇所の先を見ると、熱さで揺れ動く空気の影響で光景が曲がって見えたりするといった効果。敵の放つ攻撃によってもこの光景が歪むという効果は発現するし、ロケットや手りゅう弾の爆破による空気の振動でも見る事が出来る。
左からAdvanced効果の比較画像
1.戦闘中の影の有無の変化。かなり迫力が違ってくる
2.影を無くした場合の視界の変化。シンプルになる代わりに相当見易くなる / Specular
Lighting機能による変化
3.Bump Mapping&SpecularLightingの変化。High Qualityにしても機能をOFFにすると相当なグレードダウンになるのが分かる
4.モンスターとBump Mapping。切ってしまうと迫力が大幅減になるのが分かるだろう
内部パラメータの設定は相当に多いが、ここでは主要な物だけを挙げておく。全てbaseフォルダ内のDoomconfig.cfg内に存在する。
◎r_renderer
通常はbest、つまり自動的に選択されるのだが、このレンダリングのパスを強制的に変更する物。ARB,
NV10 (original GeForce), NV20 (GeForce3), R200 (Radeon 8500), ARB2の5種が選択出来る。ARBはOpenGL標準と考えていい。r_renderer
nv10の様に指定してやる(プレイ中ならばvid_restart要)。
◎r_usedepthboundstest
Nvidiaの用意するUltra shadowを使用するかどうか。ただし製品版ではNvidiaの対応カードを使用していても自動的にONにはならない。これは発売の段階ではベータのドライバしか対応していなかった為だそうで、将来的には自動的にONにされるようだ。
◎r_mode
解像度設定。D3では自動的に解像度を決定する為に、もしもモニタが対応していない物が選ばれてしまった場合に表示がされなかったり、分割されたようになってしまうという現象が起きる。基本的には液晶タイプのモニタにて発生。これを強制的に変更するコマンド。以下の数値を適した値にセットする。
3 : 640x480
4 : 800x600
5 : 1024x768
6 : 1152x864
7 : 1280x1024
8 : 1600x1200
◎r_gamma
明るさを変更するコマンド。基本的にOptionの範囲内で”製作側の意図したレベル”の明るさにする事は可能なはずだが、好みでとにかく明るくしたいという場合に使用する。標準値は1.0で、2.0程度まで上げる。メニューからの変更で変わるのはr_brightnessの方。
◎g_showPlayerShadow
シングルプレイではOFFにされているプレイヤー自身の影をONにするコマンド。
次のページ