Text & Photo by トライゼット西川善司

ページ 1/2

 Half-Life2(以下,HL2)の開発元Valve Software社(以下,Valve)は2003年7月27日,米国カリフォルニア州サンディエゴ市にて開催された「SIGGRAPH2003」のSoftimageブースにて「Making of Half-Life2」というプレゼンテーションを行った。
 今回,そのプレゼンテーターを務めたValveのデザイナーBill Van Buren氏へインタビューを行う機会に恵まれたので,プレゼンテーションの内容と併せてお届けする。

■"顔"はHalf-Life2の"顔"


西川善司(以下,善):
 早速質問ですが,Half-Life2のどんな工程を担当されたのですか?

Bill Van Buren(以下,BVB):
 主に顔のモデリングやそのほかのテクノロジー関連を統括しており,またゲーム内容そのもののプロデュースやサウンド関連のディレクションにも関与しています。

善:  では,Half-Life2の顔(フェイシャル)表現周りについてお聞かせください。
 今日のプレゼンでは"眼球シェーダ"の話がありましたね? あれは眼球へのシーンの映り込みを再現している――と説明されていましたが,具体的にはどのように処理しているんでしょうか。環境マップを用意しているのか,それともマルチパスレンダリング系のテクニックなのかなぁと推測しているのですが……。

BVB:
 実をいうとあれは一種の"フェイク"なんです。シーン内に設置された光源を"眼球から見た場合"として光沢を描いているんです。
 環境マップ的なことはやっていませんが,一見するとそう見えるほど効果的です。

善:  なるほど。これはコストが安い割には効果的なテクニックといえるかもしれませんね。決めうちの光沢と違って,キャラクターや光源が動けば眼球の中の光沢も移動するから,本当に"生きた目"のように見えました。まぶたについてはどうですか?

BVB:
 これは上下のまぶたの表皮を変形させることで実現しています。

善:  HalfL-ife2におけるキャラクターの顔表現には40個の制御点があって,これを変位させていると聞きましたが,これについて教えてください。

BVB:
 まずキャラクターの顔には34個の表情制御用の頂点があって,これらの変位によって表情を作り出しています。ボーンを中に仕込むのはパフォーマンスに大きく影響するので断念しています。

善:  では表情のアニメーションはどのように行っているのですか?

BVB:
 これはいわゆるキーフレーム・アニメです。表情の始まりと終わりの頂点変位の情報を与えればその中間の表情変化は算術的な頂点座標変移によって再現されます。

善:  顔モデルの肌がやけにリアルに見えましたが,あれは特別なシェーダを使っているのですか? ATIやNVIDIAのGPUデモでは「スキンシェーダ」(*)なるものが出てきているようですが。

BVB:
 肌の質感を出すためのいわゆるスキンシェーダというのは利用していません。ただ,これまでのゲームのようにプラスチックみたいな質感の肌にはならないようにしています。
 また頬や鼻といった部位に対しては,スペキュラマスクを適用していて,これは肌上の脂とか汗の感じを出すのに貢献しています。

善:  鼻や耳の穴,目の窪みなどは自己遮蔽度のようなパラメータをもたせて陰影処理をしていると聞きましたが?

BVB:
 この点については我々も注意深く作業していて,現在はテクスチャベースの表現になっています。

善:  つまり,顔上の暗くなる部分については"テクスチャで暗くしている"ということですね。

BVB:
 そうなりますね。
 顔には相当力を入れてデザインしたので,よく見て頂きたいと思います。大体一つのキャラクターにつき,顔だけで2500ポリゴンを割いているほどですよ。

善:  髪の毛はどうなっていますか? 異方性ライティングを使った"毛ヒレ"のようなものでしょうか。

BVB:
 そうです。髪の毛の表現が必要なときはそのタイプの手法でやっています。

(*)スキンシェーダ……人間の肌は中に血や肉があり,それを覆う半透明の皮膚が光を複雑に反射する。この人間の肌の質感を再現するシェーダのことを,とくにスキンシェーダと呼ぶ


眼球の中の"きらめき"はシーン内の光源位置を反映したもの。生きた目の秘密はここにある 表情の制御エンジンは,カリフォルニア医大の精神医学教授であり,心理学の分野でも著名なPaul Ekman博士の協力のもとに作り込まれた


■Half-Life2の影生成は投射テクスチャマッピングにより実現

善:  Half-Life2の影表現について教えてください。影の生成に関してはステンシルシャドウボリューム,シャドウマッピング(シャドウバッファ)のような手法がありますよね。Half-Life2ではどのような技術が使われているんでしょうか。

BVB:
 我々が用いたのはいわゆる投射テクスチャ・シャドウです。光源を視点としてローディテールモデルの形状をテクスチャにレンダリングして,これを投射テクスチャマッピングで貼り付ける方法です。

善:  なるほど,これは互換性の高い技法ですね。GeForce,RADEONの区別なく使えるようですし,家庭用ゲーム機への展開にも有利ですね。ただこの方式では自身の影が自身に投射されるセルフシャドウの表現は難しくないですか? また背景のオブジェクトの影はどうしていますか?

BVB:
 セルフシャドウには対応していません。
 Half-Life2で影のソースとなる光源は,1エリアにつき1個に限定しています。シーンに投射する影はそこを基準としたものになります。そして動かない背景物影には,一般的なライトマップを使っています。

動かないオブジェクトの影は伝統的なライトマップ,動くキャラクターには投射テクスチャで影生成を行っている。こちらも最近ではよく見かける手法だ 最近PCゲームグラフィックスの影表現のチェックポイントとしてセルフシャドウへ対応の有無がよく取り沙汰されるが,意外にもHalf-Life2はこれに対応していない


■ハイダイナミックレンジ(HDR)レンダリング技法を採用

善:  Half-Life2のグラフィックスを見ていると,ところどころにハイダイナミックレンジ(HDR)レンダリング(*1)のような表現が見られます。Half-Life2エンジンはHDRレンダリング技法を採用しているとみていいんでしょうか?

BVB:
 はい。HDRレンダリングについては,名前は申し上げられませんが,あるGPUベンダの協力を得て実装しました。ですから,Half-Life2のゲーム中,HDRレンダリング的な表現は随所で見られます。

善:  具体的にはどのような手法で行っているんでしょうか? ATIのRADEON 9500以上ならば,浮動小数点実数バッファを使ったHDRレンダリングもできますが。

BVB:
 Half-Life2のHDRレンダリング表現は,αチャンネルに光の輝度強度をもたせて,これを最終的にプログラマブルピクセルシェーダでグレア効果を出す方式です。

善:  「Splinter Cell」を始め,最近やっと登場し始めたDirectX 8ベースの3Dゲームで多く使われている手法ですね。あと,Half-Life2を見ているとボリュームレンダリングのように見える箇所がありますが,あれはどういったテクニックによるものですか?

BVB:
 ボリューム表現の多くはパーティクルシステムを使っています。水中などのシーンでは,いわゆる通常のフォグ(霧)機能と併用している感じです。

天窓のようにとても明るいところには,最近流行のHDR表現であるグレア効果が使われている 電球の光が柱を押しのけるように輝いているのが,グレア効果やライトブリーディング効果と呼ばれる表現だ 遠くの景色がぼやけて見える空気遠近表現は,伝統的なnear,farパラメータを用いたフォグ機能によるもの


ページ 1/2