ゲームエフェクトデザイナーのブログ (新)

レポート記事とかUE4のマテリアルとか。C#とかも触ったり。

UE4でのエフェクトのワークフロー

UE4でのエフェクト作成のワークフローについて解説します。

大まかに下記のような流れになります。

① DCCツールで制作したテクスチャ3Dモデルのインポート
② テクスチャを使ってマテリアルを作成
③ マテリアルやモデルを使ってエフェクト作成
④ エフェクトをゲームに実装

それから ④ の「ゲームへの実装」については、主に3通りに分かれます。

・キャラクターのアニメーションにエフェクトを設定
・レベルにエフェクトを配置
・Blueprintで直接エフェクトを指定

それでは順に説明します。

テクスチャのインポート


コンテンツブラウザにテクスチャファイルをドラッグ&ドロップで放り込むのでOKです。
複数ファイル一気に放り込むこともできます。
f:id:moko_03_25:20141008000141j:plain

放り込んだテクスチャをダブルクリックするとテクスチャエディタが開くので、必要な設定を行います。
f:id:moko_03_25:20141008000142j:plain

詳しくは下記の記事をお読みください。

 関連記事:
 ・テクスチャのインポートについて
 ・テクスチャのプロパティについて
 ・テクスチャのフォーマットについて

モデルのインポート


MayaやHoudiniで作成したモデルをFBX形式でエクスポートして、テクスチャ同様コンテンツブラウザにドラッグ&ドロップすればOKです。
エフェクトツールでは骨入りモデル(skeletal mesh)は利用できないのでご注意。
f:id:moko_03_25:20141008002251j:plain

放り込んだモデルデータをダブルクリックするとメッシュエディタが開くので、必要な設定を行います。
マテリアルはエフェクトツール上で自由に差し替えが可能なのでここで設定しなくてもOKです。
f:id:moko_03_25:20141008002210j:plain

Mayaの場合、X軸の+方向を正面としてモデルを作成すると良いです。
UVもMaya上でしっかりと設定しておきましょう。
必要であれば頂点カラー・アルファも設定しておくと良いです。

 公式マニュアル:FBX コンテンツ パイプライン

 

マテリアルの作成


コンテンツブラウザ上で新規にマテリアルデータを作成します。
f:id:moko_03_25:20141008000139j:plain

f:id:moko_03_25:20141008000143j:plain

そしてコンテンツブラウザ内のマテリアルをダブルクリックするとマテリアルエディタが開くので、様々なノードを構築していきつつマテリアルを編集します。
f:id:moko_03_25:20141008000144j:plain

 関連記事:
 ・マテリアル作成の基本的な知識
 ・最終マテリアル入力の各ポートについて
 ・パーティクル向けのマテリアルの設定について

 公式マニュアル:マテリアル

エフェクトの作成


コンテンツブラウザ上で新規にパーティクルシステムデータを作成します。
f:id:moko_03_25:20141008000140j:plain

f:id:moko_03_25:20141008000145j:plain

パーティクルシステムデータをダブルクリックすると開くエフェクトツール「cascade(カスケード)」で編集します。
エミッターを追加 → マテリアルを指定 → エミッターやパーティクルの設定を行う‥という流れを繰り返して複数のエミッターで1つのエフェクトを構成していきます。
f:id:moko_03_25:20141008000146j:plain

エフェクトデータをレベルに配置しておくと、cascadeでの編集がリアルタイムで反映されるので、使用場面に近い状況で見栄えをチェックしながら作業することができます。
こういうところがゲームエンジンならではな感じですね!
f:id:moko_03_25:20141008000147j:plain

 公式マニュアル:パーティクルシステム

キャラクターにアタッチ


キャラクターが走っている時に足元に土煙を表示したい場合などキャラクターにエフェクトを表示したい時は、コンテンツブラウザから該当するキャラクターのアニメーションデータの編集画面を開いて、アニメーションの任意のタイミングに「ここだよ!」というタイミングを指定する情報「Notify(ノーティファイ)」を設定して、そのNotifyに対して表示するエフェクトと表示したい骨(またはソケット)を設定します。
丁度良い場所に骨が無い場合などに、「Socket(ソケット)」というヌルのようなものを追加して利用します。

 公式マニュアル:アニメーションシーケンスの編集 , アニメーション通知 , ソケット