LAB
研究室
製品事例
大神 絶景版(HDリマスター)-絶景の舞台裏- Behind the Okami HD
SD作品のHDリマスターにおける制作秘話・技術的なお話です。
『大神 -絶景版- はどのようにして “絶景” になっていったのか 』
ヘキサドライブ独自実装の「超解像技術 (Super Resolution)」適用実例を
作品を通じて紹介します。
2012年11月1日に発売された『大神 絶景版 (Okami HD)』にまつわる内容で
SD作品のHD化移植に関する技術的な話題をお話してみようと思います。
「大神」はPlayStation2で2006年4月20日に発売された作品ということで、
その6年後の今、絶景版として再び蘇ったことになります。
PS2版当時はSD解像度でしたので480iの表示でのレンダリング解像度でした。
今回ヘキサドライブでHD化移植担当させていただく際に、
”PS2版のビジュアルの表現そのものを移植する”という大きな目標の他に、ヘキサドライブ社内では”HD解像度の魅力と恩恵を最大限に引き出す”という目標を持って取り組んできました。
当初720p(1280×720)での移植の想定でプロジェクトがスタートしました。
実際開発途中の段階では720pでレンダリングを行なっていました。
大神のアートデザインはその独特な世界観を表現しているだけでなく、高解像度にも堪えうる高い3Dモデルのクオリティがありました。
「PS3の最大限の性能でこの大神の美しい世界を描きたい」
そんな野心とともにフルHD化(1920×1080レンダリング)の試みが動き出しました。
■ 大神のHD移植にあたってのビジュアル向上に関しての大命題 ■
- アスペクト比をワイド16:9に対応すること。
- テクスチャの解像度をHD解像度に相応しい品質に高めること。
- テクスチャを書き換えてもPS2オリジナルの作風・風合いを損なってはならない。
- エッジのエイリアシング(ジャギー)やテクスチャのモアレを一切起こさないこと。
レンダリング解像度はネイティブの1920×1080かつアンチエイリアシング有効、16x異方性サンプリングなど念入りに調整しています。
高精細になるぶん、エッジがギザギザしてピクセルがチラつくだけでも和紙の風合いの中で動く繊細な世界の没入感を削いでしまうと考えました。
大神絶景版では内部解像度3840×2160でレンダリングし、そこから1920×1080の画像を生成しています。
(もう少しで次世代の4K解像度に手が届く、という情報量を描画しています。)
ちなみにSD解像度480pではPS3ハードウェア4xMSAAを超える高品位な32xアンチエイリアシング、720p表示では8xアンチエイリアシングをヘキサドライブ独自で実装したため、フルHDテレビを持っていない方にも高画質化の恩恵があります。
テクスチャに関してはメニュー画面やキャラクターを中心にスタッフの手によって高解像度にリメイクされています。
今回ご協力いただいた株式会社イマジカデジタルスケープ・BAUHAUS ENTERTAINMENTグループ様 (以下IDS様)による高品位なリファインによって非常に美しくなっています。
大神が扱うテクスチャ画像の枚数はなんと大小含めて延べ1万3千枚に及び、全ての画像を人の手で更新するには膨大な時間を要するという問題点がありました。
それでも膨大な数のテクスチャを高精細化したい、という思いから今回はプログラム的なアプローチを採用しています。
キーワードは『超解像技術(Super Resolution)』です。
「超解像技術」とは元の画像に無い部分を予測復元して画像を再構成する画像処理技術です。
最近では身近になってきており、テレビでは東芝さんのREGZAに搭載されていることが有名ですが、各社デジタルカメラにも搭載されてきており、高解像化に寄与しています。
超解像技術 (Wikipedia)
http://ja.wikipedia.org/wiki/%E8%B6%85%E8%A7%A3%E5%83%8F%E6%8A%80%E8%A1%93
この思想をゲームCGに取り入れてみようと考えました。
もしも元の画像の印象を損なうこと無く自動で高解像度化できれば理想的です。
解像度を上げようと、ただ単に普通に拡大してしまっては画像がボケるだけで元からの情報量は増えません。
”情報量を増やす”必要がありますので、既存のものに”付け足す”必要があるわけです。
しかし、ゲーム機である以上、PS3のCellの性能が高性能だからとはいえどもフルに駆使して
リアルタイム超解像処理を行なってしまうとSPUの性能を他に活かす余裕が無くなってしまいます。
そこで映像そのものに超解像処理を掛けるのではなく、テクスチャに超解像処理を施すという方法をとりました。
この超解像処理にはヘキサドライブオリジナルのアルゴリズムで画像処理を行なっています。
今回の移植にあたって、これを大神のビジュアルテイストに合わせたチューニングを行なったバージョンで適用しています。
拡大縮小アルゴリズムには様々なアルゴリズムがあります。
ニアレストネイバー法・バイリニア法・バイキュービック法・Lanczos法 etc…
その中でも最も理想的な拡縮法とされるのはLanczos法と言われています。
この図のように、高品位な拡大を行えば輪郭は滑らかになるということが分かると思いますが、その反面、画像がだんだん暈けていってしまいます。
方法が異なれば、拡大縮小の結果も異なります。ここに注目して、ヘキサドライブの超解像処理は拡大縮小にいくつもの異なるアルゴリズムを試行して差異の「傾向」を検出して統計的に付加するべきピクセルを予測決定するようにしています。
空間解析を行なうため、曲線や斜めの線に絶大な威力を発揮します。
超解像技術の特徴は「画像が暈けることを抑えて解像感を保ったまま画像の拡大を行なう」ことにあります。
他社さんが特許を取得されているような高速な超解像アルゴリズムではなく各種拡縮アルゴリズムの統計解析処理のため計算量がかなり膨大なためリアルタイム性に欠けるという欠点がありますが、独自で作成することによって自由度が出て透明度アルファ値やテクスチャのリピートを考慮したテクスチャに特化した超解像技術を適用できるメリットがありました。
今回はオフラインで夜間にPC上でじっくりと時間をかけて自動変換するようにしました。
さて、それでは超解像技術の効果の具体例を大神の例で紹介してみようと思います。
大神絶景版ではほぼ全てのテクスチャの解像度と品質を向上させています。
※ ここに掲載しているスクリーンショットは株式会社カプコン様より特別に許可を頂いて掲載しています。 ※
HDバージョンでのテクスチャ高解像度化の効果が良くわかります。
かなり鮮明になっていることがわかります。
この木のテクスチャは超解像の効果が一番解りやすいスクリーンショットです。
これは超解像の効果が最大限に活かされた結果になっています。オリジナル画像にあるアーティストの風合いを残したまま自動高解像度化に成功しています。斜めの線や曲線が得意なアルゴリズムの長所が全面に出ています。
全体の色味がBEFORE/AFTERで若干異なるのは、AFTERのほうにはPS2のグラフィックプロセッサ「Graphics Synthesizer」の完全再現エミュレーションを入れたため、PS2版の色味と合致するようになっているためです。
超解像の効果によってバイリニアフィルタの四角いピクセルの粗がなくなっていて自然な見え方になっています。
DS様の高画質化リファインと超解像技術の合わせ技です。
障子に描かれた笹の解像度が丁寧な描き込みによって美しくなり、周囲の梁などは超解像で高解像度化されています。
これもBEFORE/AFTERで差異がありますが、後者のAFTERのほうがPS2版と同じ発色再現となっています。
テクスチャ解像度が向上したことで、笹部郷の美しさと温かみが際立って描写されています。
超解像のピクセル情報付加の効果がよく分かる例です。
手前の花火玉のテクスチャの解像度がオリジナルの印象のまま自然な状態で高くなっています。
上記のように当初想像していた以上の結果が出て著しい効果がありました。
この手法の良かった所は、テクスチャ解像度が上がるだけでなく、適用後のテクスチャをバイリニア拡大した時にでる四角い独特の粗さが出にくくなり拡大耐性がつくという嬉しい副作用がありました。
アップで引き伸ばされても結構持ち堪えてくれます。斜めの線や曲線が綺麗という特性がよく表れていました。
随所でその効果を体感できます。
大神絶景版ではフルHD対応と謳っています。解像度は一般的なスケーリングではなく1920×1080ネイティブ解像度です。
1枚のHD解像度のスクリーンショットの一部を切り取って等倍で見たのが下の2つの画像です。
遠くに見えるオブジェクトもディテールが失われることなく細かいシルエットも描写しています。柵の木の一本一本や灯篭も目視できます。
HDMIケーブルとFullHD対応テレビがあればこの精細さをみなさんの手元で見ることができると思います。
大神絶景版の風景は文字通り「絶景」です。
PS2オリジナル版が元々持っていた「表現力」をスタッフ一同でフルHD画質にまで磨き上げました。
ぜひ手にとって体験して頂けたら幸いです。
CATEGORY
- 製品事例 (7)
- デモプログラム (18)
- プログラムTIPS (41)
- C言語 (5)
- C++ (6)
- C++cording (4)
- Ruby (8)
- VisualStudioの使い方 (3)
- 最適化Tips (5)
- ゲーム開発テクニック (2)
- その他 (7)