3dsMax × UE4~映像制作におけるリアルタイムエンジンの活用~
株式会社ジェットスタジオ
チーフディレクター 赤崎弘幸
© 2017 Jet Studio Inc. All Rights Reserved.
自己紹介
赤崎弘幸 (29) Twitter : @akasaki1211
ジェットスタジオ入社(2010~) ディレクター(2013~)チーフディレクター(最近~)
ディレクション業務、社内ワークフロー管理、R&D、とかいろいろ。
AREA JAPANコラム執筆、CEDEC2017登壇、CGWORLD特集記事、書籍監修とかいろいろ。
© 2017 Jet Studio Inc. All Rights Reserved.
自己紹介
株式会社ジェットスタジオ
2001年設立のCGプロダクション
ゲーム、パチンコ、映画、PVなど様々な3DCG映像を制作
本社とベトナム支社合わせて80~90名ほど
© 2017 Jet Studio Inc. All Rights Reserved.
このセッションから何がわかるの?
© 2017 Jet Studio Inc. All Rights Reserved.
まずは作成した動画をご覧ください。
このセッションから何がわかるの?
© 2017 Jet Studio Inc. All Rights Reserved.
映像制作を目的とした…
UE4移行のための3dsMaxデータ作成方法
シーケンサーの簡単な使用方法(3dsMaxカメラのインポート)
アジェンダ
3dsMax編
本日のキャラクターについて
モデルの最適化
テクスチャの再構築
UE4のためキャラクター構成
プロップなどのデータ構成
カメラのアニメーション
各種データの出力
© 2017 Jet Studio Inc. All Rights Reserved.
UE4編
UE4へのインポート
キャラ、プロップ(スケルタルメッシュ)
アニメーション
動かないもの(スタティックメッシュ)
サンプルコンテンツの活用
シーケンサー
各種トラック作成(カメラのインポート)
クロスフェード
ライティング
ポストプロセス
動画の出力
まとめ
3dsMax編
© 2017 Jet Studio Inc. All Rights Reserved.
本日使用するキャラクターについて
© 2017 Jet Studio Inc. All Rights Reserved.
AREA JAPANコラム
『CharacterArpeggio~3ds Max 2017 キャラクター作成術~』
にて作成したキャラクター
連載時はV-Rayでのプリレンダー仕様で制作していた。
UE4出力用に一部最適化する必要があった。
モデルの最適化
© 2017 Jet Studio Inc. All Rights Reserved.
プリレンダー仕様では全てターボスムーズ入れてたけど、さすがに重そうなので外す。
適宜ポリゴン、ノーマルマップ調整。(映像出力目的なら軽量化よりクオリティ優先でも良い。)
DCCツール依存のプラグイン部分を最適化。(HAIRFARM ⇒板ポリ化とか)
モデルの最適化
© 2017 Jet Studio Inc. All Rights Reserved.
モデルの最適化
© 2017 Jet Studio Inc. All Rights Reserved.
テクスチャの再構築
© 2017 Jet Studio Inc. All Rights Reserved.
V-Ray仕様で作成していたテクスチャをUE4のマテリアル仕様に合わせて再構築
例)V-Ray ⇒ UE4
Diffuse ⇒ そのままBaseColorに
Reflection ⇒ Specular ※無くてもいいかも
金属/非金属マスク ⇒ Metalic
rGlossiness ⇒ 反転してRoughnessに
ノーマルマップ ⇒ そのままNormalに
※特殊なマテリアル(髪や眼球)は必要に応じて追加のマップを作成。
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
Bipedベースのリグからスケルタルメッシュに変換する。
スケルタルメッシュ:ボーンでスキニングされたメッシュ+モーファー
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
スケルタルメッシュ移行時(FBX出力)の仕様まとめ
Boneはもちろん使用可能。
Point HelperなんかもDummyに変換されるのでボーン代わりに使用可能。
Bipedも使用可能。FBX出力時にDummyに変換される。親子階層にBiped独特の癖がある。
Bipedの Scale SubAnimは Dummyのスケールアニメーションとして出力可能だが、出力後の子階層にシアーが入るのでやめておいた方がいい。
3dsMaxボーン特有のスケールっぽい動きするやつはニセモノ。
リンク(親子付け)されたメッシュは自動的にスケルタルメッシュに変換されるが、勝手にJointが増えて扱いにくいので非推奨。
『選択を書き出し』では選択したものに加え、上位階層も全て出力される。(子階層以下は無視)
『選択を書き出し』で選択したメッシュのスキンモディファイヤに関連付けられたボーンは、選択していなくても強制的に出力される。
ひとつのスキンに対して関連付けされているジョイント群(スケルトン)は同一階層内にいなければならない。(※MultipleRootエラー)
モディファイヤは編集可能オブジェクト(Modified_Object)が入れ子になっていると下の階層が無視される。
モーファーのターゲット側を変形させるやつ禁止。
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
①ゴリ押し型
とりあえずバラけているジョイント階層を全て同一階層に納める。親子付けメッシュもそのまま。
データはゴミだらけになる。
②リグ分離型
Biped+追加ボーン+リグ含め同一階層内で整理。
スケルタルメッシュに不要なリグ部分がスキン用ボーンの中間階層に位置しないように注意。
親子付け系はスキン100%に置き換え。
パッと見複雑。
③完全分離型
スキニング用ボーンとリグ階層を完全に分離して構築。Bipedはコントロールリグとみなす。
後付けでは手間がはんぱない。
見た目はわかりやすい。
④リグとかもうやめる型
全てジオメトリキャッシュにしてしまう。
フレーム補完注意
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
①ゴリ押し型
とりあえずバラけているジョイント階層を全て同一階層に納める。親子付けメッシュもそのまま。
データはゴミだらけになる。
②リグ分離型
Biped+追加ボーン+リグ含め同一階層内で整理。
スケルタルメッシュに不要なリグ部分がスキン用ボーンの中間階層に位置しないように注意。
親子付け系はスキン100%に置き換え。
パッと見複雑。
③完全分離型
スキニング用ボーンとリグ階層を完全に分離して構築。Bipedはコントロールリグとみなす。
後付けでは手間がはんぱない。
見た目はわかりやすい。
④リグとかもうやめる型
全てジオメトリキャッシュ(Alembic)にしてしまう。
フレーム補完注意
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
階層構造
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
階層構造
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
こういうのはダメ
UE4のためのキャラクター構成
© 2017 Jet Studio Inc. All Rights Reserved.
こういうのはダメ
プロップなどのデータ構成
© 2017 Jet Studio Inc. All Rights Reserved.
モデルに直接アニメーションしてしまっても同一階層内に収めれば強引にスケルタルメッシュ化可能。
モデルに直接アニメーションしてしまっても同一階層内に収めれば強引にスケルタルメッシュ化可能。
プロップなどのデータ構成
© 2017 Jet Studio Inc. All Rights Reserved.
カメラのアニメーション
© 2017 Jet Studio Inc. All Rights Reserved.
カメラを親子階層下に置いてしまうとFBX出力時に階層ごと出力されてしまうため、カメラはワールドに配置。
⇒カメラに直接アニメーションをつける orコンストレイント制御
各種データの出力
キャラ/プロップ(スケルタルメッシュ)
1. 必要なボーン全てとメッシュを選択
2. 『選択を書き出し』でFBXエクスポート
© 2017 Jet Studio Inc. All Rights Reserved.
各種データの出力
キャラ/プロップ(アニメーション)
1. 必要なボーン全てとメッシュを選択
2. 『選択を書き出し』でFBXエクスポート
© 2017 Jet Studio Inc. All Rights Reserved.
各種データの出力
カメラ
1. カメラだけを選択
2. 『選択を書き出し』でFBXエクスポート
© 2017 Jet Studio Inc. All Rights Reserved.
各種データの出力
動かないもの(スタティックメッシュ)
1. メッシュを選択
2. 『選択を書き出し』でFBXエクスポート
© 2017 Jet Studio Inc. All Rights Reserved.
UE4編
© 2017 Jet Studio Inc. All Rights Reserved.
UE4へのインポート
© 2017 Jet Studio Inc. All Rights Reserved.
キャラ/プロップ(スケルタルメッシュ)
UE4へのインポート
© 2017 Jet Studio Inc. All Rights Reserved.
キャラ/プロップ(スケルタルメッシュ)
キャラ/プロップ(アニメーション)
UE4へのインポート
© 2017 Jet Studio Inc. All Rights Reserved.
UE4へのインポート
© 2017 Jet Studio Inc. All Rights Reserved.
動かないもの(スタティックメッシュ)
サンプルコンテンツの活用
© 2017 Jet Studio Inc. All Rights Reserved.
サンプルコンテンツの活用
© 2017 Jet Studio Inc. All Rights Reserved.
Case1.髪のマテリアル
サンプルのマテリアルから必要な部分だけ頂いてくる。
サンプルコンテンツの活用
© 2017 Jet Studio Inc. All Rights Reserved.
Case1.髪のマテリアル
サンプルのマテリアルから必要な部分だけ頂いてくる。
サンプルコンテンツの活用
© 2017 Jet Studio Inc. All Rights Reserved.
Case2.眼球のマテリアル
サンプルのマテリアルインスタンスをそのまま使ってしまう
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
キャラクターのトラック作成
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
カメラのインポート
1. CameraCutsトラックを作成
2. CineCameraActor作成
3. 右クリックからImport
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
カメラのインポート
1. CameraCutsトラックを作成
2. CineCameraActor作成
3. 右クリックからImport
と言いたいところですが・・・
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
カメラのインポート
1. CameraCutsトラックを作成
2. CineCameraActor作成
3. 右クリックからImport
と言いたいところですが・・・
3dsMaxから出力されたFBXはFocalLengthが取得できない!?
(FOVで記録されているためか)
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
画角のアニメーションがある場合の解決策①~Mayaを経由する~
1. MayaにFBXインポート&エクスポート。
2. CineCameraActorにFBXインポート(TransformとFocalLengthのキーどちらも来る)
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
画角のアニメーションがある場合の解決策②~Matineeを変換する~
1. 通常のCameraActor(青いカメラ)を作成
2. シーケンサーのCamera Cuts Trackに追加
3. カメラトラックにFBXインポート(Transformのキーだけ来る)
4. MatineeActor作成
5. 同じカメラFBXをMatineeにインポート
6. MatineeActorをConvert to Level Sequence
7. 6.のLevelSequenceのFOVトラックをコピー
8. 2.のカメラトラックにCameraCompornentを追加しペースト
参考:Importing FBX camera in Sequencer - UE4 AnswerHub
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
クロスフェードのやり方
SceneCapture2Dでキャプチャした画面をポストプロセスマテリアルで上乗せすることで可能。
参考:[Mini Tutorial] Camera Crossfade - Unreal Engine Forums
上記のMatineeでのチュートリアルを参考に作成し、シーケンサーにCameraActor, SceneCapture2D, Material Parameter Collection Trackを追加すればOK。
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
シーケンサー
© 2017 Jet Studio Inc. All Rights Reserved.
画像のオーバーライドくらいならもっとシンプル
ポストプロセスマテリアルに画像をはめるだけ。
エフェクト
© 2017 Jet Studio Inc. All Rights Reserved.
Cascadeで作成
ライティング
© 2017 Jet Studio Inc. All Rights Reserved.
動くものに対するライティングはStationary又はMovableで。※数に制限があるので注意
背景用のライトであればStatic可。※スケルタルメッシュに影が落ちない。ビルド必須。
サイズや減衰、影の設定。
最後にProductionでライトビルド。
ライティング
© 2017 Jet Studio Inc. All Rights Reserved.
ポストプロセス
© 2017 Jet Studio Inc. All Rights Reserved.
カメラ単体又は空間に対して適用可能。
DOF、モーションブラー、カラーグレーディングなど様々なエフェクトをリアルタイムに調整可能。
ポストプロセス
© 2017 Jet Studio Inc. All Rights Reserved.
Color Grading LUTを使ったカラーグレーディングが便利。
参考:色対応表 (LUT) によるカラーグレーディング
ポストプロセス
© 2017 Jet Studio Inc. All Rights Reserved.
動画の出力
© 2017 Jet Studio Inc. All Rights Reserved.
シーケンサーから出力可能。
レンダーパス出力も出来るが、UE4で完結させていいと思う。
まとめ
© 2017 Jet Studio Inc. All Rights Reserved.
まとめ
© 2017 Jet Studio Inc. All Rights Reserved.
まとめ
© 2017 Jet Studio Inc. All Rights Reserved.
レンダリング待ちが無いのでライティングや絵作りが楽。
レンダリング時間を気にして尺をケチるという妥協が無い幸せ。
3dsMaxとAEで実質2回レンダリングしていたのが1回に。
仕様・制約の把握が大変。
仕込みが大変。
プラグインなどでゴリ押しがしにくい。
ご清聴ありがとうございました(質疑応答)
© 2017 Jet Studio Inc. All Rights Reserved.
Recommended