『NieR Replicant ver.1.22474487139…』のゲームエフェクト制作におけるHoudiniの応用
こんにちは、トイロジックでエフェクトとTAなどを担当しているオウと申します。
近年、ゲーム業界では、高品質と高効率を追求するために、多くのゲーム開発プロジェクトでHoudiniが広く活用されています。プロシージャルモデリングや炎・煙・爆発などの流体シミュレーションなど、エフェクト制作においてHoudiniも欠かせない存在となってきました。
今回は、『NieR Replicant ver.1.22474487139…』にて作成しました【シャハリヤールの箱エフェクト】における制作プロセスのご紹介をしたいと思います。
シャハリヤールの箱エフェクト
動画を見る限り、特殊なシェーダーやフリップブックテクスチャを使用しているように見えるかもしれませんが、実はこのエフェクトはデフォルトの半透明シェーダーにUVスクロールを適用するだけで実現されています。
基礎形状の作成
最初に、tube
で基礎の形状を作ります。両端の蓋なしに、縦方向の分割線の数を4にして、上部の半径を小さい数値にすれば、四角錐のような四角錐台が出来上がりです。
なぜtubeで作るでしょうか?確かに、box
やplatonic
などからでも作れますが、この形状を1つのノードだけで簡単に作れるのは、tube
しかないからです(コードモデリング以外)。
このようにプロシージャルモデリングの際に、より洗練且つ変更しやすくパフォーマンスの良いネットワークを組むことを常に意識することが大事です。ただ、何でもかんでもノード数が少ない方が良いとは限りませんので、状況に応じて臨機応変に対応するのが重要です。
UVの作成
次に、UVを作ります。均等にするのではなく、上に行くほどUVの間隔を狭め、テクスチャが伸びるようにします。これにより、UVスクロールする時に緩急が作れます。
余談ですが、UVが歪んでいることに気付く方がいらっしゃると思いますが、実はこの現象はUVとポリゴンの形状が異なる場合に必ず発生します。ポリゴンのUVは三角形頂点のUVを線形補間して計算するためです。ローポリのエフェクトモデルを作成する場合にはよく遭遇する現象です。
ポリゴンを細分化するなどで改善できますが、今回はシンプルなテクスチャだけを使うため、ローポリのままにしました。エフェクトモデルを作成する場合、必要に応じて対応しましょう。”
頂点アルファとねじれ
VOP
やwrangle
などを使用して、高度に応じて頂点アルファを作成します。これにより、上から下にUVスクロールする時に、テクスチャのフェードインができるようなります。その後、bendノード
を使用してモデルをねじります。
箱の片面の作成
それから、transformノード
を使用してモデルのYスケールを縮小します。0にするのではなく0.05くらいの数値にし、立体感を作ります。
そして、この形状をコピペし、2回イテレートします。毎回イテレートする時、回転しながら少しずつ上に移動し、スケールとアルファも減少させます。
仕上げ
最後に、platonic
で正八面体を作り、上記に作った箱の片面を正八面体のポイントにコピーすれば、完成です。
※下図のCopyノードは、Copy with Stampという古いノードで、Houdini19.5以後にはすでに破棄されました。上位交換のCopy to Pointsを使ってください。
こちらはステップバイステップ動画になります。
最後に
このように、エフェクト制作にHoudiniを使うと複雑な形状でも簡単に作る事ができます。
そして、UVスクロールだけでアニメーションを実現しているため、エンジンに依存しないエフェクトの作成ができます。
弊社の開発ではこれ以外でも様々なところでHoudini
を活用しています。
文章の長さの都合上、全てをご紹介することはできませんが、『NieR Replicant ver.1.22474487139…』と『Warlander』でのHoudiniの一部運用実績を動画にまとめました。
最後にこちらの動画をご覧ください。
トイロジックでは、エフェクトに興味がある、得意なテクニカルアーティストを募集中です。 この記事を読んで興味を持たれた方はぜひ採用ページを見てください。