パシフィコ横浜で、2018年8月22日から3日間開催された“CEDEC 2018”。2日目の23日に行われたセッション“「モンスターハンター:ワールド」のエフェクトエディタについて”をリポートする。

10種のエフェクトから見る『モンスターハンター:ワールド』の世界

 国内最大のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC 2018”では、ゲーム開発に関わるさまざまな技術やノウハウ、経験をクリエイターなどが語る多数の講演が実施された。ここでは、2018年8月23日に行われたセッション“「モンスターハンター:ワールド」のエフェクトエディタについて”の模様をお届けする。

 2018年1月に発売され、シリーズ最大にしてカプコン史上初となる世界累計出荷本数1000万突破を果たした『モンスターハンター:ワールド』。本作のプレイを盛り上げるのに欠かせない、臨場感に溢れ、迫力満点なエフェクトの数々がどのように作られたのか? テクニカルアーティストとして本作のエフェクト開発に携わった、カプコンVFX室に所属する竹井翔氏が登壇して、本作用に開発されたエフェクトエディタについて“とくに有用だった10種類の要素”を話してくれた。

カプコン VFXプロダクション室テクニカルVFXアーティスト
竹井翔氏

 竹井氏のセッションは、まずは『モンスターハンター:ワールド』で使われたエフェクトエディタ(以下“EFX”)について、その概要と画面構成、操作手順など基礎的な知識を紹介。その後、本エディタの大きな特徴である“パーティクルソート”と“パーティクルライティング” を解説した。

データ構造がツリー構造で閲覧できる仕組みになっている。ちなみに、引用されている画像データはモンスター汎用の着地効果とのこと。
エディタ画面左にある“アイテムリスト”をドラッグして、画面左上にあるエミッターに持っていき、設定を行うシンプルな操作方法。

 パーティクルソートとは、画面で表示されるエフェクトやパーティクルの表示順を、フォトショップのレイヤーを扱うように、クリエイターが指定できる機能。ソートは“エミッター”と“プライオリティ”のふたつの情報から行われ、“エミッター”はリストの下にあるモノが 、“プライオリティ”は数字の低いモノほど、手前に描かれる仕組みになっている。竹井氏は、ここで火花と炎、そして煙を例に挙げ、パーティクルソートを分かりやすく紹介した。

 パーティクルライティングとは、「文字通りパーティクルをライトで照らす技術」と竹井氏。直接光、関節光、光で発生する影の影響度など5つのパラメータで光の表現を管理し、事前に設定しておいたプリセットから、クリエイターに選んでもらう形にした、とのこと。クリエイターがそこからライティングを選択することで、ゲーム内の場所や時間、そして制作者の感覚の違いによるライティングのブレをなくすことに成功したと言う。もちろん、本エディタでも、個別にライティング設定はできるが、調整や修正が必要になったときにエミッターをひとつずつ触ることになるため、「それは地獄です」と、プリセットを採用するメリットを力説。ただ、タル爆発時の炎など、必要に応じて個別指定したエフェクトもゲーム中に多数存在するという。

『モンスターハンター:ワールド』では、“テンポラルシャドウ”という独自技術で、影の処理にとくに力を入れたとのこと。「ライティングを毎フレーム更新ではなく、2秒かけて緩やかに更新するため、木漏れ日によって画面がチラつくなどの現象が回避できた」と竹井氏。

とくに有用だった10種類のエフェクトアイテムとは?

 EFXの概要説明が終わると、竹井氏はEFXでとくに優秀だった10種類のエフェクトアイテムをピックアップ。ゲーム中の具体例やイメージ図などをときに交えながら、その機能を解説してくれた。

RGBcommon/RGBwater
 パーティクル専用のシェーダアイテムで、竹井氏が、「『モンスターハンター: ワールド』のエフェクトはRGBテクスチャーで構成されていると言っても過言ではありません」と言うほど、ほぼすべてのエフェクト、エミッターで使われている。R(赤)G(緑)B(青)+αの4つのチャンネルに分けられたテクスチャに、個別に情報を入れ、EFX上で合成していく。ここでは、爆炎を例に挙げて紹介。赤チャンネルにライティングされた煙の成分、緑チャンネルに炎の成分、青チャンネルに薄い煙の成分を描き、チャンネル別に
アニメーションさせることで、濃い爆炎の炎が減衰したあと、濃い煙から薄い煙になりつつフェイドアウトする表現を簡単に行える様子が確認できた。

Type Lightning
 雷形状のポリゴンを、伸びる方向、発光するタイミング、太さ、長さ、ノイズのかかり具合など、設定して生成できるアイテム。キリンの落雷や、シビレ罠のビリビリ表現で使用された。

PL Emissive
 プレイヤー用のマテリアルを制御するアイテム。回復や状態異常のときのエフェクト、各武器に存在する溜め行動の演出などに使われている。EFXの寿命アイテムと連動しており、複数の部位や装備パーツを制御することで、RGB系アイテムと同じようなアニメーションを簡単に作成できる。このアイテムを効果的に使うには、プライオリティの設定など、クリエイター同士の密な連携が必要で、「ゲームプレイ必要な優勢順位を元に、リソースを作成することが重要だ」と竹井氏は述べた。

Noise
 各パーティクルの座標に対して、sin計算で周期運動を与えて、揺らめきなどを表現する。爆発時に発生させる火の粉、導虫がフィールドに残す軌跡、ヴァルハザクの瘴気など、粒子系の表現でよく使用したアイテム。計算がシンプルなことから非常に軽く、なおかつ調整によってかなりの表現力を発揮したとのこと。

Blink
 英語で“明滅”や“まばたき”を意味する“Blink”。 Noiseと同じ粒子系の表現を対象にしたアイテムで、各パーティクルの透明度の周期アニメーションを管理する。雷など短期間で激しく明滅するライト表現をタイムラインやキーフレイムなどを指定せず行えるので、「非常に調整が楽だった」と竹井氏。

Ray Cast
 衝突判定を取得するアイテムのひとつで、衝突判定を取り続けることに特化している。判定時間、判定距離の指定が行え、エミッターと連動させることで範囲も変化させられる。また、衝突箇所も地面とオブジクトの2種類の読み分けが可能で、プレイヤーには衝突してほしくはないが地面に衝突してほしいときなど、 地面コリジョンのみを見るという調整もできる。“竜熱機関式【銀翼】改”のブーストによる地面の焦げ付き表現にも使用されている。

Action
 Actionは、イベントから別のイベントを生成してくれるアイテムで、「とにかく応用の幅が広くて、素晴らしいアイテムです」と竹井氏は言う。クシャルダオラが発生する竜巻のエフェクトでは、破片の細かなうねりと、竜巻の大きなうねりを、Actionを経由して構成することで、うねりのスケール感を出すのにも力を発揮したとのこと。また、RayCastと併用することで、 モンスターの炎のブレスが触れた場所が地面のときは燃え残りエフェクトを入れ、水のときは燃え残りエフェクトを入れないという、使い分けも簡単に行えた。

Extern
 無限発生するエフェクトを、特定の条件もしくは時間で、その表情を変化させるアイテム。遷移条件はプログラムと、時間の決め打ちのふた通りから指定できる。セッションでは実際にナナテスカトリの炎エフェクトを見せながら紹介。生成時は明るめの輝度で火の粉が出ている炎が、時間が経つに連れて輝度が抑えられ、火の粉の量も減って姿が確認できた。竹井氏によると「炎がずっと同じ見えかたというのが嫌という理由もあったが、少しでもパーティクル生成数を減らして、処理負荷を減らしたかった」と。じつはこの炎の変化にユーザーが気づくかは、竹井氏自身はあまり気にしておらず、少しでも快適に遊べるゲームになればという想いで導入したという。

TubeLight
 棒状の蛍光灯状のライトを生成するアイテムで、高輝度の発光体表現が主な使用用途。カメラの位置によって、中の“空洞”が露見することもあったいままでの光線表現を避けるため、棒状のレーザーの中には芯が存在しているとのこと。Ray Castと連動させることで、衝突判定の計算をしながら伸縮するアニメーションも作れる。

FadeByEmitterAngle
 エミッターの座標から、一定角度のパーティクルのアルファをアレンジできるアイテム。 アルファが100パーセントで描画される“Cone”ゾーンと、100パーセントから0パーセントの間で描画される“spread”ゾーン、0表示にするゾーンを角度指定できる。カメラから見て、後ろの方にあるパーティクルを消す目的のもとに設計された。竹井氏によると、「元々はパーティクルソート用に作ったアイテムだが、処理不可軽減の方により貢献してくれた」と、本アイテムの効果を説明。

あの古龍種のアクションエフェクトはこう生まれた

 10種類のエフェクトアイテムの説明を終えると、竹井氏は“サンプルエフェクトの紹介とその構成について”と題して、“テオ・テスカトルの纏い”、“ゼノ・ジーヴァのブレス”、“ナナ・テスカトリのヘルフレア”と、世界中のハンターたちを恐れさせたであろう、古龍種たちの強力な攻撃のエフェクトが、どのようなアイテムを使って作られているのか解説してくれた。

テオ・テスカトルの纏い
 炎を纏う炎モード、黄色い粉を纏う粉塵モードの2種類の纏いがあるテオ・テスカトル。それぞれふたつの纏いエフェクトは、前述のAction機能を中心に構成された、大量のインスタンスで表現されているとのこと。インスタンスの発生座標とアニメーションをつかさどる“親エミッター”と、インスタンスのテクスチャやアニメーション、寿命の制御を行う“子エミッター”に切り分けて構成されており、親と子に分けることで炎モードと粉塵モードでリソース構成がほぼ同じで作れたと、竹井氏。インスタンスの調整だけで、全体の絵を大きく変更できるため、アートディレクターの要望にも柔軟に対応でき工数がかなり抑えることができたと言う。

ゼノ・ジーヴァのブレス
 大岩に隠れることで防ぐことができるゼノ・ジーヴァの強力無比なブレス。竹井氏によると、敵のブレスを“何かしらの壁”を使って防ぐ遊びが、開発初期段階から想定されており、TubeLightは、まさにこのゼノ・ジーヴァのブレスを表現するために作られたものと言う。ブレスの芯の部分はTubeLightで、炎や火の粉をパーティクルでまとめ、射程判定をRay Castで行っているとのこと。同時に地面コリジョンへの当たり判定も行っているので、地面にブレスが振れたときは、青い爆炎と焼け焦げた跡がコールされるようにもなっている。旧来の作り方だと、アーティストがモーションやらブレスの寿命をきっちり測って、終了するタイミングでエフェクトを出すという地獄の調整になっていたが、すべてEFX側で制御できるので、かなりアーティストのコントロールが効くリソース構成になったようだ。

ナナ・テスカトリのヘルフレア
 無料アップデートで追加されたモンスター、ナナ・テスカトリが出すヘルフレア。テオ・テスカトルがくり出すスーパーノヴァの4倍、約40メートルもの射程範囲を熱風と熱が襲う凶悪な技のため、そのエフェクトを作るのには、大変苦労したようだ。とにかく描画不可を最小限に抑えることに注力したと語る竹井氏は、FadeByEmitterAngleを多用し、表示範囲を絞るとともに角度もかなり狭めるなど、画面に映るパーティクルを最小限に留めたり、中心から30メートル以上離れているときは、中心に近い位置にあるパーティクル描画を消したり、全部で50発くらい放つ衝突判定を5発ずつ2フレーム置きに生成させたりと、塵も積もれば山となる方式で、少しずつ処理不可を軽減させていった。そんな苦労をして作成したヘルフレアだが、企画から「当たりのサイズをもう少し大きくしたい」と相談されたときは、膝から崩れ落ちそうになったとのこと。

 最終的にお互いに納得できる絵と遊びになったので、 本当によかった……と、竹井氏がヘルフレアの話を締めたところで、ちょうど終了時間に。“「モンスターハンター:ワールド」のエフェクトエディタについて”のセッションは幕を閉じた。