オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

いまから始めるオンラインゲーム
モバイル版4Gamer(β)
※ドコモ旧機種には対応してません
特集記事一覧
注目のレビュー
注目のムービー
印刷2014/07/12 00:00

連載

試験に出るゲームグラフィックス(1)「GUILTY GEAR Xrd -SIGN-」で実現された「アニメにしか見えないリアルタイム3Dグラフィックス」の秘密,前編

GUILTY GEAR Xrd -SIGN-
 新連載「試験に出るゲームグラフィックス」は,特定タイトルのゲームグラフィックスにスポットを当て,その仕組みや,そこで用いられている技術の解説を行っていくという主旨のものだ。筆者の連載としてはこれまで「西川善司の3Dゲームエクスタシー」を展開してきたが,カバーする範囲が広くなりすぎたので,特定のゲームタイトルと強く紐付いた技術解説は,今後,こちらの新連載のほうで扱っていきたいと思う。
 記念すべき第1回で取り上げるのは,アークシステムワークスが開発し,2014年2月からアーケードで稼働中の格闘ゲーム「GUILTY GEAR Xrd -SIGN-」だ。


フル3Dグラフィックスになったギルティギア


「ストリートファイターII」
(C) CAPCOM U.S.A., INC. 2011 ALL RIGHTS RESERVED
GUILTY GEAR Xrd -SIGN-
 格闘ゲームの起源には諸説あるが,「レバーの方向入力とボタン押しの組み合わせによるコマンドシステムを採用し,サイドビューのビジュアルで対面するキャラクターが戦う」というリアルタイム格闘ゲームのスタイルは,カプコンのストリートファイターシリーズが事実上の元祖と述べていいだろう。
 やがて,このサイドビュービジュアル基軸の格闘ゲームは,1990年代初頭に3Dグラフィックス化され,「3D格闘ゲーム」と呼ばれるようになった。そして,3D格闘ゲームの元祖的な存在はといえば,セガの「バーチャファイター」ということになるわけだ。

 面白いのは,その後,すべての格闘ゲームが3Dグラフィックスへは移行しなかったことだろう。そのため,従来からあった「書き割り」「ドット画」ベースのものは,「2D格闘ゲーム」という新たな名称を与えられて,生き残ることとなった。

 3D格闘ゲームは,GPUの進化に合わせる形で,グラフィックスがよりリアルになったり,動きの説得力が増したり,あるいはエフェクトが派手になったりと,分かりやすい進化を遂げてきたわけだが,それと比べると,2D格闘ゲームの進化は全体的に地味だった。それもそのはず,2D格闘ゲームのグラフィックスは,結局のところ「キャラクターの動きパターンを1枚1枚手で描いていく」作業になるので,GPUが進化しても,得られる恩恵はあまり大きくないのだ。

 もっとも,2D格闘ゲームのグラフィックスを革新するための試みがなかったわけではない。CAPCOM VS. SNKシリーズのように,キャラクターを2Dグラフィックスで描きつつ,背景をダイナミックな3Dグラフィックスで表現するものはこれまでも数多く登場してきている。また,近年のザ・キング・オブ・ファイターズシリーズなどのように,3Dグラフィックスでキャラクターのポーズを生成し,それを作画スタッフがトレースする例もある。
 ちなみに,「3Dベースのラフな人体モデルをトレースして作画する」という手法は,近年のテレビアニメでもよく用いられている技術だ。

 また,近年ではカプコンが,「ストリートファイターIV」で,90年代初頭の大ヒット作「ストリートファイターII」のドット画テイストの雰囲気を壊さない3Dグラフィックスを作り上げた。「グラフィックスは3Dだがゲームシステムは2D」という,新しい表現も生まれてきているのである。

 以上,2D格闘ゲームでは,何らかの形で3Dグラフィックスの技術を取り入れる形で,いくつかの新しい表現技法が模索されてきたわけだが,今回取り上げるGUILTY GEAR Xrd -SIGN-はどうか。本作は2D格闘ゲームであるとお断りしたうえで,下に示したムービーを見てもらえればと思う。これは,アークシステムワークス編集による,ゲームプレイシーンのダイジェストだ。PS4版で実現される予定の解像度1920×1080版なので,ぜひチェックしてほしい。


 どう見ても「手描きグラフィックス」にしか見えないかもしれない。しかし結論からいうと,これは100%,3Dグラフィックスでできている
 超必殺技などのビジュアルで,通常バトル状態のサイドビューから大胆にカメラが動いて,キャラクターのアクションをダイナミックに見せてくれる表現は,まさに3Dグラフィックスの恩恵によるものだ。


ゲームエンジンとしてUnreal Engine 3を採用


UE3は,日本国内の大手ゲームスタジオでも採用が進んできている。最近の例だと,家庭用ゲーム機専用タイトルではサイバーコネクトツー制作の「ASURA'S WRATH」(PlayStation 3Xbox 360,上),アーケード作品ではスクウェア・エニックス制作の「超速変形ジャイロゼッター」(下)などが挙げられよう
ASURA'S WRATH
(C)CAPCOM CO., LTD. 2012 ALL RIGHTS RESERVED.
超速変形ジャイロゼッター
(C)2012 SQUARE ENIX CO., LTD. All Rights Reserved.
GUILTY GEAR Xrd -SIGN-
GUILTY GEAR Xrd -SIGN-
 「作画ベースの映像かと思いきや,リアルタイム3DCGベース」という事実に衝撃を受けた人も少なくないと思うが,もう1つ驚かせそうな話題を提供しておくと,GUILTY GEAR Xrd -SIGN-は,Epic Games製ゲームエンジン「Unreal Engine 3」(以下UE3)ベースで制作されている。

 UE3は,Gears of WarシリーズやMass Effectシリーズなど,リアル系3Dゲームグラフィックスを得意とするエンジンとしてよく知られている。もちろんゲームエンジンというものは基本的に,さまざまなゲームの制作に対応できるよう設計されているので,技術的な観点から冷静に述べるなら,「そりゃあ,UE3でもアニメスタイルのビジュアルも実現できなくはないだろう」といったところだ。ただ,格闘ゲーマーからすると,「アニメ表現的な手描きテイストを得意とするアークシステムワークスが,いわゆる“洋ゲー”表現の得意なUE3を使ってギルティギアの新作を作った」というのは,やはりインパクトが大きい。

石渡太輔氏(ゼネラルディレクター)。初代PlayStation用となるシリーズ第1作「ギルティギア」から制作に携わり,シリーズ総監督的なポジションを務める。プロジェクト全体のディレクションだけでなく,ビジュアル制作,楽曲の作曲までをも担当するという,ミスターギルティギア的な人物である
 なぜUE3なのか。まずはその点を,開発スタッフに聞いてみると,ゼネラルディレクターである石渡太輔氏,そしてディレクターの山中丈嗣氏から,次のような回答が得られた。


石渡太輔氏(以下,石渡氏):
 明解な理由を1つ挙げるとすれば「時間的な余裕があまりなかった」ということですね(笑)。
 3Dグラフィックス表現を採用するという方針に至る経緯については後ほどお話ししますが,定められた制作期間のなかで,3Dグラフィックスを用いて完成させるには,既存のゲームエンジンで制作することが必要だったんです。
 我々は以前,「ギルティギア2 オーヴァチュア」で,リアルタイムストラテジ風の3Dグラフィックス採用作品を,フルスクラッチの自社製ゲームエンジンで開発したことがあります。ただ,このエンジンを改良して制作に臨むという時間的余裕はありませんでした。

山中丈嗣氏(ディレクター)。本作では,ストーリー監修やシナリオの脚本執筆,効果音制作に従事。ギルティギアシリーズでは,石渡氏とともに世界観創作に携わってもいる。過去にはブレイブルーシリーズにおいてもディレクションを担当した実績あり
山中丈嗣氏(以下,山中氏):
 Epic Gamesさんは,次世代ゲームエンジンとして新たに「Unreal Engine 4」(以下,UE4)を発表しましたよね。我々がエンジン選定を開始したときはちょうどそのタイミングでして,UE4の登場によってUE3のディスカウントが進み,我々のような中小のスタジオでも手を出しやすい価格になってきたんです。この点は,採用に至った大きな要因の1つと言えますね。
 それと,GUILTY GEAR Xrd -SIGN-のプロトタイプ版をご覧になったEpic Gamesさんが「UE3の新しい潜在能力を引き出してくれた」と,高く評価してくださいまして,その後,多角的な支援をいただけることになったことも決め手になりました。


 GUILTY GEAR Xrd -SIGN-はアーケード向けタイトルである。その後発表された家庭用ゲーム機用移植も,PS4を前提とするなら,UE3ではなくUE4を採用してもよかった気はする。UE4は検討しなかったのか。あるいは,国内外,そのほかのエンジンはどうだったのだろう。この点についてはリードプログラマーの家弓拓郎氏が下記のとおり回答してくれている。


家弓拓郎氏(リードプログラマー)。GUILTY GEAR Xrd -SIGN-ではプログラム開発全般を担当。過去参加作品としては「BattleFantasia」などがある
家弓拓郎氏(以下,家弓氏):
 もちろん検討しました。ただ,GUILTY GEAR Xrd -SIGN-の開発にあたっては,既存のゲームエンジンに対して機能追加や機能改変を行っていくことになるであろうと考えていたので,「ソースリストが開示してもらえる」ということと,「機能的に枯れている」ことが要件になっていました。
 そして,この要件を満たしてくれるのがUE3だったと。自分のようなエンジニアからすると,UE3には大きな魅力があったのです。


 氏の言う「機能的に枯れている」という表現は,「成熟している」と言い換えたほうが分かりやすいかもしれない。UE3は2005年頃から採用タイトルがリリースされているエンジンであり,先行して取り組んできた開発者達からのフィードバックによって,機能的に,とても安定したものになっているのだ。
 アークシステムワークス側で独自に機能追加を行ったときに,全体が不安定になっては困る。また,万が一そういった事態が生じた場合に原因の特定を行うときも,エンジン側が安定しているほうがやりやすい。そういうところも重要だったというわけである。

 アーティスト側から見たUE3については,アートディレクター兼チーフアニメーターの坂村英彦氏とリードモデラー兼テクニカルアーティストの本村・C・純也氏が次のように評価している。


坂村英彦氏(アートディレクター兼チーフアニメーター)。GUILTY GEAR Xrd -SIGN-のキャラクターモーション設計に携わり,メインの格闘ゲーム部分だけでなく,ドラマパートの動きも担当した。過去には「ギルティギア2 オーヴァチュア」においてもアニメーションを担当
坂村英彦氏(以下,坂村氏):
 アーティストの立場から使いやすいというのも,UE3を採用する決め手になりました。UE3では“フリー版”ともいえるUDK(※開発キット)が公開されていますが,これを使うと,私のようなアーティスト側だけで,弊社の3Dモデルを使ったサンプルゲーム的なFPSが作れてしまったんですよ。統合ツールとしての使い勝手はかなりよかったです。

本村・C・純也氏(以下,本村氏):
 プログラマーの手を煩わせることなく,どんどん開発を進めていけるUE3は,プログラマーの数がそれほどが多くないGUILTY GEAR Xrd -SIGN-開発チームにおいてはありがたいと思いました。アーティスト側でどんどん作り込んでいけますからね。
 格闘ゲームは開発中にさまざまな調整が発生するんですが,その都度,アーティストとプログラマーの間でデータをやりとりしていたら開発効率が悪くなります。その点UE3では,アーティスト側が各自でセットアップできて,作り込んだものを反映していけたので,そうした問題は起こりにくかったです。


 GUILTY GEAR Xrd -SIGN-開発プロジェクトでは,基本的なコンテンツ制作には,UE3で提供されるツール群を活用しつつ,それ以外の,とくに「2D格闘ゲームとしての中核部分の作り込み」は,アークシステムワークスが過去のプロジェクトで利用し続けてきた内製のツール群を利用したという。具体的にいうと,内製ツールとは,2D格闘ゲームとしての衝突判定設定ツールや,キャラクタアクションを制御するスクリプトツールなどだ。

UE3のツール画面
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

コリジョン設定ツール。これまでの2D格闘ゲームと同じように,コリジョンは矩形でとる格好となっている
GUILTY GEAR Xrd -SIGN-
 2D格闘ゲームとしてのゲームロジック部分,「2D格闘ゲームエンジン」というべき部分も,新規に起こしたりはせず,自社で熟成させてきた,実績あるものをUE3向けに移植する方策を取ったとのこと。
 使い慣れた社内ツール群は,安定した動作実績があるだけでなく,社内でそれらを使える者も多い。新しい技術を採用しつつ,開発効率も維持することを考えると,アークシステムワークスがGUILTY GEAR Xrd -SIGN-の開発で選択した方針は,確かに現実的だったとまとめることができそうである。

GUILTY GEAR Xrd -SIGN-
「Softimage」上のシェーダ調整画面。Softimage上ではcgfxによるプレビューを行いながら,実機と同等のビジュアルをリアルタイムで確認しながら作業できるようになっている
GUILTY GEAR Xrd -SIGN-
こちらはUE3のシェーダ調整画面だ。Softimage上で作成されたcgfxシェーダと同じ計算結果となるよう,マテリアルツリーが作成されているのが分かる

 なお,GUILTY GEAR Xrd -SIGN-の開発チームは,取材時点で,アークシステムワークス社内の専任メンバーだけで25名になるという。マネジメント担当を除く“実働部隊”の内訳は,プログラマーが4名,ゲームデザインなどを担当するプランナーが3名,デザイナーが12名とのこと。そのほかに国内外の外注スタッフがいるため,総勢では100名前後が関わっているとのことだった。

GUILTY GEAR Xrd -SIGN-開発チームの代表的なメンバー
GUILTY GEAR Xrd -SIGN-

 ゲームの構想自体は2008年頃に立ち上がり,具体的な開発プロジェクトとして発足したのは2011年春頃。このときに「3Dグラフィックスを採用すること」がほぼ決定し,社内向けプレゼンテーションのためのパイロットムービーが制作されている。
 プロトタイプ版の開発が始まったのは2011年後半で,暮れ頃にUE3の採用が決定。本格的な開発作業に着手したのは2012年後半で,実制作期間は1年半ほどになるそうだ。

社内プレゼンテーションのためのパイロットムービーをキャプチャしたもの
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-


「2D格闘ゲームを3Dグラフィックスで表現する」ということ


 アークシステムワークスには,多数の2D格闘ゲームを世に送り出してきた実績がある。2D格闘ゲーム開発の職人集団と言ってもいいだろう。
 そして,前出のギルティギア2 オーヴァチュアという例外を別にして,ギルティギアシリーズはこれまで,ドット画の2D格闘ゲームとして多くのゲーマーから認知されてきた。それだけに,今回の3Dグラフィックス移行は,アークシステムワークスにとっても大きな決断となったはずだが,その点について石渡氏は次のように振り返っている。


BLAZBLUE
(C)ARC SYSTEM WORKS
GUILTY GEAR Xrd -SIGN-
石渡氏:
 2011年の春頃,「ギルティギアの格闘ゲーム」としての新作プロジェクトが立ち上がりました。その前に我々は2008年に「BLAZBLUE」をリリースしていますが,これが自分達にとっての「ドット画ベースとなる2D格闘ゲームの頂点」という位置づけの作品となったんですね。
 では,それに続く新作のギルティギアで何をしたらファンにインパクトを与えられるのか。そう考えたときの結論が,「ドット画かセルアニメにしか見えないリアルタイム3Dグラフィックス」だったんです。


 石渡氏は,最初から3Dという方針を決めていたわけではなく,自身は「ベクトルグラフィックスを2D格闘ゲームに応用できないか」と独自に研究を進めたこともあるという。
 続けて氏は2007年頃から,ギルティギアシリーズのキャラクターを3Dモデリングして,試験的に動かしてみる実験も行っていたが,いわゆるフォトリアル系のビジュアルでの作り込んでいくことに限界も感じていた。

BattleFantasia
(C)ARC SYSTEM WORKS
GUILTY GEAR Xrd -SIGN-
 同じ頃本村氏は,セルアニメ的な表現をリアルタイムで行う「トゥーンシェーダ」(Toon Shader。Cel-Shaderとも言われる)の研究をするようになっていたのだが,その研究成果が石渡氏の目に留まり,最終的に,トゥーンシェーダを使う方向へ舵を切ることになったのだそうだ。
 プログラム面はどうかというと,家弓氏いわく,3D格闘ゲーム「BattleFantasia」の開発を経験していたため,この方針採択にそれほど大きな不安はなかったとのことだった。

 カメラのアングルを変えることで,ダイナミックなビジュアル表現を行える。ここが3Dグラフィックスにおける一番の魅力になることは素人でも容易に想像できるわけだが,総監督の立場である石渡氏自身は,そのこと以外にもう1つ,この手法に秘められた大きな可能性を見出していたようだ。


石渡氏:
 3Dグラフィックスを採用すると,ドット画では実現の難しい,多彩な表情表現……いうなれば「顔芸」がやりやすくなるんですよ。体の動きとは別に顔を動かせますから,戦闘中,セリフなしでも多彩な感情表現ができるんです。


 画面解像度が低かった時代,ドット画で表現されるキャラクターの表情はそれほど精細に描かれていなかった。プレイヤー側も,そこにあまり関心を示さなかったり,想像で補っていたりしたと思うが,近年,ディスプレイが高解像度化を果たすと,そういったディテールの表現にごまかしがきかなくなってきた。ドット画を採用する場合は,ディスプレイ解像度に見合う形で作画解像度を上げる必要に迫られるようになったのだ。
 BLAZBLUEシリーズではそれを実現していたアークシステムワークスだが,GUILTY GEAR Xrd -SIGN-では“その先”を見据え,より自由度の高い顔面アニメーションが可能な3Dグラフィックスに注目していたというわけである。


GUILTY GEAR Xrd -SIGN-のグラフィックス仕様は?


 続いて,グラフィックス仕様をチェックしていこう。
 GUILTY GEAR Xrd -SIGN-はシステム基板として,セガの「RINGEDGE 2」(※スペック非公開)を採用している。OSは32bit版Windows XP Embeddedなので,実行バイナリも必然的に32bitだ。

 レンダリング解像度は(アーケード版だと)1280×720ドットの720pでフレームレートは60fps。アンチエイリアシング技法としては定番のMSAA(Multi-Sampled Anti-Aliasing)ではなく,ポストエフェクト的な手法であるFXAA(Fast Approximate Anti-Aliasing)を採用している。

GUILTY GEAR Xrd -SIGN-
 1シーンあたりの総ポリゴン数は約80万。内訳は,キャラクター2体で約25万,背景に約55万となるが,この値はあくまで参考値で,「1シーンのレンダリングにおける,可視および不可視ポリゴンを合わせた,GPUにかかる総ジオメトリ(頂点)負荷」というイメージだ。
 1キャラクターは約4万ポリゴンでモデリングされているという。

ワイヤーフレームとキャラクターの比較
GUILTY GEAR Xrd -SIGN-
ゲーム画面のワイヤーフレーム(左)とファイナルショット(右)
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

 GUILTY GEAR Xrd -SIGN-では,バトルシーンの3Dモデルとカットシーンでの3Dモデルで,頭部は別個にモデリングされている。ただ,いずれのシーンにおいてもポリゴン数に大きな変動はないという。
 「キャラクターごとにバトルシーン用とカットシーン用の頭部3Dモデルを用意している」と聞くと,3Dグラフィックスに詳しい人ほど,LoD(Level of Detail)的に多ポリゴンのモデルと少ポリゴンのモデルを用意していると想像してしまいがちだ。しかし実態はそうではなく,バトル中の局面ごとに見栄えのよいものを用意したかったためだと,石渡氏は述べている。


石渡氏:
 バトル中のキャラクターは顔面が小さく描かれます。衣装やアクセサリー類も同様です。ただ,その3Dモデルでは,アップになったときに,キャラクターに与えられたアイデンティティを表現し切れません。そのため,バトル中のための3Dモデルと,カメラが寄ったときに用いる3Dモデルを個別に制作することにしました。


 たとえば,ギルティギアシリーズに登場するミリアはクールビューティ的な女性キャラクターであり,切れ長の目を持つ,大人っぽい顔をしている。実際,カットシーンや,特定の必殺技を繰り出したときなど,カメラが寄る場面では,その「大人っぽい顔」を持つ近景用3Dモデルで描画される。
 しかし,この「大人っぽい顔」を持つ3Dモデルをそのままバトル中に用いてしまうと,目鼻立ちが細くなりすぎてしまい,キャラクターの個性や表情が今ひとつ表現しづらくなってしまうのだ。
 そこでアークシステムワークスは,キャラクターの表情や,キャラクターの衣装やアクセサリーにおける象徴的な部分のディテールを強調すべく,バトルシーン用3Dモデルでは近景用3Dモデルと造形を変えることにした。それこそミリアの場合,バトルシーン用の3Dモデルでは,意図的に目を大きくするなどの変更を行っている,といった具合だ。

ミリアのカットシーン用3Dモデル(上)とバトルシーン用3Dモデル(下)の違い。とくに目の大きさで違いが顕著だ
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

 ボーン数は,主人公キャラクターであるソルで約460本。一番多いキャラクターで約600本とのこと。ただし,手足を含む肢体に仕込まれるボーン構造は基本的に共通という。
 頭部内のボーンは約170本で,うち約70本が表情用に割り当てられている。この値は平均的なイマドキの3Dゲームキャラクターと比べてかなり多く,それだけ,表情にこだわりがあるというわけである。

ボーンを可視化したところ。頭部(左)と全身(右)
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

 レンダリング方式は一般的なForwardで,近年流行のDeferredは採用されていない。Deferredは多くの光源を扱うときに有効な手法だが,アニメ調の“2D風”では必要なかったのだろう。
 ただし,早期カリングのためのZバッファレンダリング(※Z-Prepass。深度値の先出し)は行っているそうだ。つまり,すべての3Dモデルに対してジオメトリレンダリングが最低2回は行われていることになる。さらに,キャラクターに対しては,アニメ調の輪郭線付加を行うため,追加でもう1回のジオメトリレンダリングが行われているという。このあたりは後述する。

 1シーンあたりの総テクスチャ容量は約160MB以下。1シーンあたりのシェーダプログラム総数は,頂点シェーダが60〜70個程度で,ピクセルシェーダが70〜80個程度となっている。
 すべてのシェーダはUE3のツールセット内で制作できたとのこと。キャラクターのシェーダは本村氏のチームが,背景やエフェクトのシェーダは各担当者がそれぞれ担当し,プログラムチームが個別にシェーダを開発する局面はほぼ生じなかったようだ。こうした部分にはUE3採用の効果が現れているといえるかもしれない。


ライティングとシェーディング(1)

〜オーソドックスなトゥーンシェーダにきめ細かなカスタム手法を組み合わせて

 というわけで,ここからはGUILTY GEAR Xrd -SIGN-で採用されているグラフィックス技術を1つ1つ見ていきたいと思うが,まずはライティングシステムからだ。ライティングシステムにおける見どころは,ズバリ,物理的な正確性がまったくないところである。

 頭の上に大きな疑問符が浮かんだ人も多いと思うが,これは,GUILTY GEAR Xrd -SIGN-で目指す「ビジュアルの最終ゴール」がセルアニメであることと関係している。開発チームは,「物理的に正しいというより,絵描き的に正しいものを目指した」そうで,そちらに向けてさまざまに凝らされた工夫の数々が,技術的観点からするとユニークで面白いのだ。

 というわけで細かく見ていくと,GUILTY GEAR Xrd -SIGN-のゲーム世界で設定されるグローバルな光源は,太陽光に相当する平行光源が1つだけ。この平行光源は,キャラクターが地面に落とす動的な影生成のために用いられている。
 逆にいうと,それ以外の影,たとえば静的な背景オブジェクトの影などは,頂点カラーやテクスチャによる焼き込みの影となっているわけである。

レンダリングの最終結果
GUILTY GEAR Xrd -SIGN-
GUILTY GEAR Xrd -SIGN-
タイリングテクスチャ
GUILTY GEAR Xrd -SIGN-
追加のディテール
GUILTY GEAR Xrd -SIGN-
影用テクスチャ
GUILTY GEAR Xrd -SIGN-
マンホールの素材
GUILTY GEAR Xrd -SIGN-
マンホールの影
シェーダ編集画面。レンダリング最終結果に向けて,上に示した5要素を組み合わせていく格好になる
GUILTY GEAR Xrd -SIGN-

 それでは,キャラクター自体の陰影はどのように付けられているのかというと,「キャラクター自体が連れて歩いている専用の光源」によるライティングの効果となる。「プレイヤーの目には見えない,各キャラクター専用の照明担当者」が,キャラクターにうろうろとついて回っているイメージだ。


石渡氏:
 セルアニメのビジュアルを目指したということはつまり,見栄え重視ということです。
 シーンに設定した光源でライティングすると,ある側面ではリアルに見えるかもしれません。でもたとえば,ある位置にキャラクターが来ると,顔に影が落ちて真っ暗になってしまったり,あるいは陰影が消失してのっぺりしてしまったりする状況が出てきてしまいます。
 見映えの違いが出てきてしまうことは,常に対等条件で闘い合う2D格闘ゲームでは避けるべきなんですよ。

本村氏:
 実装的には,キャラクターそれぞれのライティング用シェーダ内に光源を持たせているイメージです。「キャラクターごとに,個別のベクトルパラメータを光源として持たせている」と説明したほうが正確かもしれません。


 この「各キャラクター専用光源」は,モーションごとに位置や角度が調整されるとのこと。バトルシーンはともかく,カットシーンでは,見映えのため,光源の位置や向きを1コマ1コマ調整してあるという。

GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
テクスチャ+通常シェーディング(左)とセルシェーディング(右)
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
影調整前のカット(左)と影調整後のカット(右)

 ライティングの結果として陰影を与えるシェーディングには基本的に,ある閾値を超えれば「明」,下回れば「陰」とする(※),ごくごく一般的な二階調型のトゥーンシェーダメカニズムが採用されている。たとえば,ライティングの結果が0〜255の値を取りえるとき,128以上を「明」,127までを「陰」とするような処理系だ。

※「影」と「陰」。本稿では便宜上,他者に遮蔽されて生じる暗部を「影」,照明効果の結果として光が当たりにくく暗がりになる部分を「陰」と使い分けている。

 ただ,シェーディングの結果の値が,あらかじめ設定された閾値に近い領域だと,キャラクターやカメラのちょっとした移動で明陰が反転してしまいやすくなったり,明陰の領域が細かく分断されて斑(ぶち・まだら)状に出てしまい,見映えが悪くなったりすることもある。

明陰の領域が分断されてしまった例(左)。右は,放線編集を行って,見栄えの修正を行った後の例(=製品版の例)だ
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

陰となりやすい重みパラメータを表示させたところ
GUILTY GEAR Xrd -SIGN-
 そこでGUILTY GEAR Xrd -SIGN-では,セルアニメっぽい明陰の塗り分けになるよう,3Dモデル側にいくつかの工夫を盛り込むことによって,見映えの調整を図っている。
 1つは,3Dモデルを構成する各ポリゴンの頂点カラー,具体的には頂点カラーのRチャネルに,「陰となりやすい重みパラメータ」を仕込むというものだ。
 これは,窪んだところや,周囲から遮蔽されているようなところで,強めに設定されている。主人公のソルでいけば,アゴ下や首周りなどだ。アゴ下や首首周りには頭部のセルフシャドウ的な影が出るわけだが,ここはこの「陰となりやすい重みパラメータ」が大きく貢献しているのである。

陰設定なし(左)とあり(右)の違い
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-


本村氏:
 「陰となりやすい重みパラメータ」は結果的に,アンビエントオクルージョン(Ambient Occlusion,自己遮蔽率)的なパラメータになっていますが,アーティストのセンスに基づいて,手作業で設定しています。
 この「陰となりやすい重みパラメータ」は,照明制御用テクスチャ――開発チーム内では「ilmテクスチャ」と呼んでいますが――のG(=緑)チャネルにも設定してありまして,このパラメータが最大値だと,テクスチャ焼き込みの陰に相当します。たとえばアゴの裏側や,首とアゴの接合部周辺など,常に陰となる部分は,この方法で陰としていたりしますね。


カイのilmテクスチャ(左)とそのGチャネル(中央)。右はスカート付近のGチャネル
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
カイにおける陰。左が陰影編集前,右が編集後だ
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

 首元に出る,アゴの輪郭形状的な陰は,一見,セルフシャドウ表現のようにも見える。しかし実際には,「陰となりやすい重みパラメータ」によってできた陰なのだ。

「陰となりやすい重みパラメータ」の制御を行わず,ライトのみを適用した状態(左)と,陰影制御を行った状態(右)の比較
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-

 セルアニメっぽい明陰の塗り分けを実現するための工夫,もう1つは,頂点法線の調整である。

 頂点法線とは,分かりやすい言葉で言い換えると,「頂点の向き」のこと。
 3Dグラフィックスにおけるライティング計算には「光源の向き」(光源ベクトル)と「視線の向き」(視線ベクトル),「面の向き」(法線ベクトル)の3パラメータが必要になる。つまり,陰影の出方は,「面の向き」を変化させることでも調整できるということだ。

GUILTY GEAR Xrd -SIGN-
 GUILTY GEAR Xrd -SIGN-の場合,キャラクターモデルは前述のとおり,約4万ポリゴンでモデリングされている。そのため,何もしないと,4万ポリゴンに見合った,複雑な陰影が出てしまうが,出したいのはセルアニメっぽい大ざっぱな陰影である。そこで,「4万ポリゴン分の3Dモデル形状(≒3Dモデル解像度)を維持したまま,各ポリゴンに持たされている『面の向き』情報だけを粗くすることで,ライティングした結果の陰影だけを大ざっぱにする」というアイデアが考案された。
 「面の向き」は,頂点単位に与えられた法線ベクトルで表される。そこでGUILTY GEAR Xrd -SIGN-において開発チームは,大ざっぱな陰影が出るよう,この頂点法線を調整したのである。

 UE3は標準状態だと,スケルタルメッシュ(Skeletal Meshes,キャラクター用のボーン変形に対応したメッシュ)のインポート時に,頂点法線を必ず再計算する仕様になっている。そのため,そのままでは3Dグラフィックス制作ツールである「Softimage」上で編集した法線をゲームに反映することができない。
 そこで,プログラマーの家弓氏が,エンジンのメッシュインポート回りをカスタマイズし,編集された法線をそのままゲームに使用できるように改造を行ったのだそうだ。「この改造なくして,法線編集による陰影の制御は不可能でした」と,本村氏は述懐している。

 さて,UE3の改造によって頂点法線の調整は可能になったが,その方法にはいくつか選択肢がある。かつてスタジオジブリが「ハウルの動く城」のCG部分で行っていたのは「隣接する法線ベクトル同士の平均値を反復的に求めて,法線ベクトルのばらつきを吸収し,平坦化する」というものだった。開発チームはどういう手法を選択したのか。


本村氏:
 GUILTY GEAR Xrd -SIGN-では,キャラクターの見映えが最重視されたので,顔面上の陰影の出方には最新の注意を払いました。顔面や頭部では,アーティストが手作業で法線の編集調整を行っています。


手動での法線編集作業を行っているところ
GUILTY GEAR Xrd -SIGN-
 たとえば,頬のあたりの法線を,こめかみあたりの法線に近づけるようにしてやれば,こめかみあたりが暗いときには頬あたりも同様に暗くなるような陰影にできる。本来,3Dモデルの形状としては曲面状にモデリングされているのだが,あえて法線を揃えてしまうことにより,低ポリゴンモデルのような大ざっぱな陰影を多ポリゴンモデルに与えるわけだ。

上段は法線編集前,下段は法線編集後。上下段とも左は法線を表示させたところとなる
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-


本村氏:
 一方,衣服や頭髪などではGatorを使って,よりシンプルな形状モデルの法線分布を転写することで,複雑な形状モデルに大ざっぱな陰影が出るようにしています。


 ソルのズボン(=脚部)は,凹凸の与えられた複雑な形状をしているが,陰影はやはり大ざっぱにしてある。ほぼ同サイズの円筒形(=円柱)モデルを用意し,その法線をあらかじめ,ズボンモデルに転写することで,法線の調整を行っているのだ。
 本村氏が述べているように,この部分は手作業ではなく,Gator(Generalized Attribute Transfer Operator)と呼ばれる3DCGソフト――開発チームは「Softimage 2013」を使っている――の3Dモデルの属性転送機能を使い,半自動的に生成していることになる。

GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
Gatorによるズボンの法線転写を行っていない例(左)と行った例(右)
GUILTY GEAR Xrd -SIGN- GUILTY GEAR Xrd -SIGN-
転写元となるGatorターゲット

 GUILTY GEAR Xrd -SIGN-におけるキャラクター達の頭髪は,相当複雑な形状をしているが,ここも,セルアニメ風観点から具合のいい陰影になっている。普通にシェーディングしたら,凹凸の固まりごとに陰影が分断されてしまうはずだが,法線編集とシンプル形状モデルの法線転写を組み合わせつつ,さらにモデリング段階での特殊な調整を入れることで,なんとか納得のいく状態にたどり着けたとのことだった。

GUILTY GEAR Xrd -SIGN-
髪の毛の陰影調整なし
GUILTY GEAR Xrd -SIGN-
髪の毛の陰影調整あり
GUILTY GEAR Xrd -SIGN-
髪の毛の法線調整なし
GUILTY GEAR Xrd -SIGN-
髪の毛の法線調整あり
GUILTY GEAR Xrd -SIGN-
髪の毛の法線調整ターゲット
 
  • 関連タイトル:

    GUILTY GEAR Xrd -SIGN-

  • 関連タイトル:

    GUILTY GEAR Xrd -SIGN-

  • 関連タイトル:

    GUILTY GEAR Xrd -SIGN-

  • この記事のURL:
line
4Gamer.net最新情報
最新記事一覧へ新着記事10件
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:07月10日〜07月11日
タイトル評価ランキング
95
92
Smite (PC)
83
82
81
Banished (PC)
2014年01月〜2014年07月