KYUSYU CEDEC 2015でスクウェア・エニックスが行った「FINAL FANTASY XV -EPISODE DUSCAE-のエフェクトはこうして作られた~Luminous VFX Editorの紹介~」でも、こうした思想をもとに、世界で(おそらく)初となるノードベースのエフェクトツール開発が語られました。もっとも、そこにはエフェクトならではの課題もありました。
講師はスクエニ第2ビジネス・ディビジョン、シニアプログラマーの長谷川勇氏、同VFXアーティストの野副竜太氏、同プログラマーの小野哲平氏です。
次世代機でのエフェクトデザインの一例
見た目の派手さに加えて、「攻撃がヒットしたか」「爽快感の演出」など、さまざまな意味をもつゲームエフェクト。そのため野副氏はゲームエフェクトにおいても、FF15のフォトリアルな世界観をベースとしつつ、適度なフェイクをおりまぜたといいます。好例がヒットエフェクトや召喚獣のエフェクトで、フォトリアルな映像の中にも火花のパーティクルを散らしたり、雷を落とすなど、記号的で過剰ともいえる演出がおりまぜられています。

また限定的ながら環境の変化に応じたエフェクトの変化も導入。昼と夜ではスマホ画面の見え方が異なったり、夜になると街灯の明かりで虫が集まったり、コーヒーカップから立ち上る湯気が風にたなびいたりといった細かい描写です。これらをすべてエフェクトで再現している点が本作の特徴。現在は本バージョンにむけて、より多くの演出を盛り込んでいる最中だと言います。
ノードベースエフェクトツールのメリット・効果的運用
こうしたエフェクトを効果的に作成するために、今回改めて開発されたのがLuminous VFX Editorです。ノードをつないでエフェクトの原形を作り、画面右側のメニューでパラメータを入力して仕上げるというもの。ビジュアルプログラミング向けのエディタにも似た外観です。もっともトーンカーブによる調整や、プレビュー用のビュワーなどが装備され、タイムラインによるアニメーション調整も行えるようになっています。


ツール開発を担当した小野氏は、ノードベースのメリットとして「ノードの組み合わせで様々なバリエーションを作成できるので柔軟性・自由度が高い」「外部(エフェクト呼び出し)とのやり取りが簡単」「プログラマとアーティストの作業分担がしやすい」という3点を挙げました。実際に蝶が空中を舞うという演出も本作ではエフェクトで表現されており、ノードの親子階層でランダムに飛ぶさままで制御されています。
また自動車の砂煙のエフェクトでは、ゲームプログラム側から車の速度、タイヤの回転、スリップといったパラメータを受け取り、それをもとに砂煙の量、大きさ、濃さをリアルタイムに算出して表現しているとのこと。こうした複雑な制御もノードベースであれば、簡単に制御できます。しかもこれらをエフェクトアーティストがプログラマーの手をわずらわせることなく、本エディター上だけで完結できるのです。
このように汎用性が高いツールとするため、ツールの設計時には「できるだけノードを小さく設計する」「大きな機能はノードを組み合わせて作る」ことが念頭におかれました。「巨大なノードを設計すると他で使えなかったり、接続自由度が薄れたりと、大抵失敗してしまいます」(小野氏)

一例を挙げると、ゲームエフェクトで多用されるビルボードによる演出(板ポリゴンにアニメーション素材を張り付けてエフェクトを表現する)においても、ビルボードとパーティクルを個別のノードで構成し、両者の組み合わせで表現されています。これにより差し替えや使い回しなどが簡単になるのです。また複数のノードを1つのノードにまとめる「Reference Control」という機能も導入されています。

実装時の課題とその解決方法
もっとも実装時にはエフェクトならではの課題点もありました。「重い(メモリコスト)」「遅い(処理コスト)」「寿命」という三重苦です。
ノードベースでは1つのエフェクトを表示するだけで、複数のノードを書いてつなぎ合わせなければならず、必要なメモリ量がバカになりません。常に同じエフェクトが同じ場面で同じように表示されるだけでは興ざめなので、適度にランダムなエフェクトを織り交ぜる必用があり、処理負荷もかさみます。タイムラインベースのツールと異なり、ノードベースではエフェクトの生成と破棄のタイミングがわかりにくい点も難点です。
実装にたずさわった長谷川氏はこれらの問題を、ノードのグループ化・データ構造の階層化・ノード群の式化で解決したと説明しました。寿命が同じノードをグループ化して生成・削除を行うことで、メモリ確保と解放をまとめて行い、処理コストが下げるというものです。もっともグループ化によってエフェクト表現の柔軟性が低下する問題もありましたが、処理コストとのトレードオフとして割り切られました。


またデータ構造の階層化を進め、汎用性の高いデータを親階層にまとめることで、メモリコストの削減を行っています。重い処理はロード時に読み込み、あとは必要に応じて差分を構築するのです。計算処理を行っている部分だけを仮想的な計算ノードとして式化することで、メモリコストと処理時間も短縮。前述の通りタイムラインビューを儲けることで、エフェクトの発生・消去タイミングがわかりやすいように工夫もされています。
このように、本講演の内容をまとめると「ゲームデザイナーやアーティストがフォトリアルなエフェクトを直感的に作れるように、ノードベースのエディタを作った。それだけでは処理が重いので、いろいろ工夫した」ということになります。もっとも、言うは易く行うは難しで、さまざまな苦労が忍ばれるのは明らか。まさに同社だからできる、インハウスのツール開発事例だと言えるでしょう。

同社はノードベースによるツール開発について、CEDEC 2015でLuminous AIの事例も紹介しており、一貫したツール開発思想が感じられます。AAAゲームの開発を支える舞台裏がわかりやすく解説された、非常に興味深い内容だったと言えるでしょう。