やっと手に入れましたよォ。なにをって?グランツーリスモっスよ。
環境マッピング、やっぱり読み通りでしたな。それ以外の方法で出せてるとしたらPSのハード自体をなんとかしないといけないので読みが外れるわけはないと思っていましたが、なかなかどうして、うまく誤魔化せてるもんです。
そのうえ、画面の描画の仕方として、かなりニヤリとする場所が随所に見られますね。
もはや画質だのどうのというのを捨て去ったのでしょう。バックミラーにはボコボコになった景色が!とくにバックストレートの付近だとボコボコ度が目立ちますし、路肩には明らかにおかしな動きをする紅白模様のアレ(なんつーんだっけ?レースとか詳しくないのでわからん。シケイン?)。しかし、ゲーム中にはそんなことは殆ど気にならないので、正しい妥協と言えるでしょう。そのぶんを本来必要な道路自身の描画や車体の挙動計算にまわしていると考えれば、立派なものです。
テクスチャとかは相変わらず悪い意味での和製ゲームですが、環境マッピングのおかげで、従来のゲームにはないほど金属感が伝わってきます。ひとことで言えば素敵!
そしてたぶんこの道路も、真ん中の白線(なんつーんだっけ?中央分離体?いや違うな)と道路自身を別個に描画しているのか、ときおりへんなチラツキはありますが、スピード感はバツグンっす。
しかしそれよりもなによりも、単純にゲームとして死ぬほど面白い!久しぶりに買ってよかったと思えるゲームに出会えて感動もしきりです。
まぁレーシングゲームとしてみると、リッヂレーサーなどにそのお手軽感や爽快感では負けてしまうかもしれないけど、自ら名乗る通りカーライフ・シミュレーションとして見ればかなり面白い。B級ライセンスを取得して、レースで賞金を稼ぎ、新しい車を購入してチューンナップしていく・・・。僕は車には全く明るくないので、このゲームではじめて車のパワーの違いというのを実感(!?)することができました。そんでもってもうNSXが欲しくて欲しくて(笑)。スポーツカーへの憧れ(?)みたいなものをほとんどもってない僕ですら夢中になってしまうのですから、クルマニアのKei.Turnerあたりにはマジでお勧め(と伝えておいて>MEGちゃん)。 そうそう。Keiの愛車、レガシーにも乗れるよ☆
|
|
多少なりとも勝手知ったる我が古巣、プレステで、そこまでやられてしまったんじゃあ、より性能の高いDirect3Dでいつまでもあぐらをかいているわけにもいかないっスねー(なんかライト感覚)。
しかし、環境マッピングを真似して取り入れるのは簡単だし、簡単ゆえにここで再現してみようかとも思ったのですが、それはいつでもできることなので後回しにしましょう。
いまさら他人が既にやっていることを真似することに、それほどの深い意味はない。アキレスと亀のように、永久に亀には追いつけなくなってしまう。
さて、では亀となるためにはどうするか。方針としてはいくつか考えられる。
[1] キャラクタの表現をよりリアリスティックにする
[2] エフェクトを凝る
[3] 動きに凝る
[4] 気にしない
たとえば、前回言った「モーションブラー」を導入したりするのは[1]に属する考え方だと思うが、モーションブラーを導入すると、少なくとも現在の4倍程度のポリゴン数を捌けなければどうしようもないので、今回は見合わせることにした。まぁ原理はそれほど難しくなくて、基本的には画面をオニオンスライスするだけである。バックバッファの内容をブラーバッファ(?)に毎回とっておき、たとえば毎回50%の半透明度でバックバッファにブラーバッファをα合成すれば完成だ。しかし、この処理自体に時間がかかってしまっては意味がない。モーションブラーとは、もともと1/60よりも細かい経過時間の動きを補完するために行うものだからである。
妥協案として、複数のオブジェクトを使った擬似的なモーションブラーを実装するという手段もあるが、この場合は厳密には1/60間に4回の描画を行ってバケツリレー的にモーションブラーをかけるよりは圧倒的に効率が悪い。バケツリレー的にやる場合は前回の描画結果をそのまま使うから4回の計算・描画で良いが、複数のオブジェクトを使う場合は4x4=16回の計算と描画が必要になる。もしくは描画のための計算結果をとっておき、二次元的に合成するのならば可能かもしれない(元来、モーションブラーとはそういうものである)。しかし、画面内の全ての物体に対してその処理を適用するのは現実的ではない。
ということで、モーションブラーを導入するにしても、高速で移動する物体・・・たとえば弾丸やミサイル、飛行機など・・・に限って限定的に適用するのが良さそうである。近接戦闘時の敵ロボットにモーションブラーがかかったら、それはかっこいいと思われるが、ポリゴン数もウナギ上りである。しかし逆に近接時の敵ロボットにのみモーションブラーがかかることにすれば、大丈夫かもしれないがそうでないかもしれない(なんなんだ)。あと、モーションブラーしなくてはならないポリゴン数が増えれば増えるほどメモリを大量に消費することを忘れてはならない。
というわけで、ひとまずモーションブラーはおいておこう。だいたい、このゲームの場合はキャラクターと接近して闘うことは殆ど無い。クルマのゲームと違い、ゲーム中に敵キャラクターをじっくり見ている暇はないだろう。
むしろ凝るならば、この手のゲームに不可欠なかっこいい武器のエフェクトや、爆発のエフェクトにするべきだろう。
というわけで、今日は[2]の話。
プログレッシブ・ランドスケープとともに、このゲームのために暖めていたアイディアとして、倒壊するビルというものがある。
従来のゲームでは、たとえ重装甲の戦艦や戦車を一撃で破壊するほどの強力な火器をもってしても、絶対に背景物たるビル構造物を破壊することはできなかった。
それはなぜか?プログラマなら誰でも解ることだが、それは難しいからだ。
弾はいつどこに当たるかわからない。そのたびにポリゴンをなんとかしなくてはならない。壊れれば壊れるほど、ポリゴンは増えるのである。
しかし、破壊を楽しむタイプのアクションゲームで、このようなジレンマはいかんともし難い。いや、むしろ許せないのである。
そこで出てくるのが「ブーリアン演算」だ。
3Dにおけるブーリアン演算というのは、物体同志を掛け合わせたり足したり積を取ったりという役割を持っている。
これは、モデリング用ソフトには広く用いられている一般的な方法だが、ゲームでブーリアン演算を行うものというのはおれの知る限り例がない。
処理はかなり複雑だが、しかし考えて見て欲しい。爆発というのはそう滅多におこるものではないのだ。とくにゲームにおいて、1/60秒に一回新しい爆発が連続して起り続けるゲームはゲームにならない。
つまりブーリアン演算は爆発したその瞬間だけやればいいのである。また、この手の巨大物体の爆発時は少しくらい処理が重いほうが重厚感が出るのである。
以上のような前提で、試験的にブーリアン演算を用いた爆発表現を、TruespaceとPhotoshopで作成してみた。
中央のビルの下部が球形に切り取られるのがブーリアン演算である。
ビルの爆破には以下のようなプロセスを経る。[1]爆風の範囲をブーリアン演算で切り取る。[2]ビルの下部面積が50%を下回ったら倒壊する。[3]倒壊は少し倒れつつ垂直に地面に沈む。
しかし、単純にブーリアン演算を行うのは問題もある。
最大の問題は、ブーリアン演算を行った場合、ビルがあまりにも奇麗に切り取られてしまうことである。
どんな壮絶な爆発も、あまりにも切り口が奇麗だとリアリティに乏しく、せっかくのアイディアが台無しである。
また、5枚程度のポリゴンで構成された建造物の中身はカラッポなので、それが見えてしまうのも具合が悪い。
そこで、壊れたときにはビルの断面図をテクスチャで用意しておき、適当なポリゴンを内部に配置して中身が見えているように誤魔化すことにする。
また、切り口が奇麗なのをなんとかする方法として、まず考えられるのは切り口をランダム・フラクタル化することだ。こうすることでリアリティのある切り口になるかもしれないが、いささか凝りすぎである。
そこで、別の方法を考えてみた。
なんだか汚い絵で恐縮だが、左図のような手法である。
これはこのたびITLが開発した(笑)透過マッピングと呼んでいる手法だ。
透明色付きテクスチャとは少々趣がことなっている。
図は透過マッピングポリゴンの実験で作成したものだが、この輪郭のみ「ITL」とよめる部分が透過マッブである。
茶色と水色のグラデーション矩形は本来Z値がランドスケープよりも大きいので、ランドスケープの後ろ側に描画されなくてはいけないのだが、透過マッピングポリゴンによってランドスケープの一部をくり抜き、背景の矩形が見えるようになっている。
透過マッピングポリゴンは特殊なテクスチャマップを行う。
基本的には、既に描画されたポリゴンの一部を、透過マップの白い部分をくり抜き、黒い部分をそのままにする。上図は白地に黒いITLの文字が描かれている透過マップを使ったわけだ。
これを使って建築物の破壊の様子を表現するには、普通に建物を描いたあとで壊れた部分に透過マッピングポリゴンを適用する。
こうすると、ポリゴンの一部が透過するので、それから内部の構造を描けばあたかも建物が破壊され、内部構造が見えているような錯覚を与えるのである。タブン。
これはポリゴンをブーリアン演算で分割するよりはお手ごろなので、爆破箇所がそれほど多くならなければ有効だろう。計算回数も少ないのでCPUにかかる負担は小さい。ただし、分割して描画するよりは余分にポリゴンを描画するので、3Dボードがヘボいと速度は遅い場合もある。
なんにせよ、あんまりビルを壊し続けるのというのも問題なので、ビルがブッ壊れるような兵器は厳重な使用制限をしたほうがいいだろう。
というわけでまた次回。
|
|
|