115.2K Views
November 20, 22
スライド概要
講演アーカイブ:
https://youtu.be/vvmuD3HVeW8
講演内容:
Unreal Engine5を使った建物の破砕について解説します。本講演で紹介する破砕は全てリアルタイム(Chaos Destruction)で行われ、煙も一部流体でシミュレーション(Niagara Fluid)されています。さらに、ゲームに実装するにあたって必要な処理負荷の削減についてもお話します。
講演者:
谷口 尚之(株式会社スクウェア・エニックス)
斎藤 修(エピック ゲームズ ジャパン)
株式会社スクエア・エニックス様についてはこちら:
https://www.jp.square-enix.com/
UNREAL FEST WEST ’22 公式サイト:
https://unrealengine.jp/unrealfest/west2022/
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
Chaos & Niagaraによる リアルタイム破砕・VFX 株式会社スクウェア・エニックス 谷口 尚之 Epic Games Japan 斎藤 修
自己紹介 谷口 尚之 株式会社スクウェア・エニックス VFX Artist ●Houdiniを勉強中です 斎藤 修 Epic Games Japan Technical Artist Developer Relations https://twitter.com/shiba_zushi ●Unreal Engineのサポートをしています © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
事前説明 略称 『 Unreal Engine 』 ⇒ 『 UE 』 『 Blueprint』 ⇒ 『 BP 』 『 Geometry Collection 』 ⇒ 『 GC 』 『 Editor Utility Widget 』 ⇒ 『 EUW 』 『 Pivot Painter 2.0 』 ⇒ 『 PP2 』 『 Render Target 』 ⇒ 『 RT 』 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
© 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
© 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
© 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
© 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
© 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
© 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
Chaos Destruction © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
Chaos Destruction © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. Naiagara Fluid (&etc)
Chaos Destruction Naiagara Fluid (&etc) https://twitter.com/shiba_zushi 斎藤 修 谷口 尚之 Epic Games Japan Technical Artist Developer Relations 株式会社スクウェア・エニックス VFX Artist ●Unreal Engineのサポートをしています ●Houdiniを勉強中です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://docs.unrealengine.com/5.0/ja/destruction-overview-in-unreal-engine/ UEの新しい破壊システムです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://youtu.be/alQEf454PjU?t=1603 The Matrix Awakensにて使用されており © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://youtu.be/alQEf454PjU?t=1603 https://youtu.be/fnuWG2I2QCY GDC2019ではリアルタイムデモも発表されていました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://qiita.com/EGJ-Osamu_Saito/items/9119a343dde9c61e2ce0 UEでは物理シミュレーションはチェック一つで行えますが © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? 落としてさらに壊したい ダメージによって破壊形状を変えたい →破壊専用の複雑なシステムが必要! © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://docs.unrealengine.com/5.0/ja/destruction-overview-in-unreal-engine/ ChaosDestructionはその為の機能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://www.unrealengine.com/marketplace/ja/product/city-sample 今回はそのChaosDestructionを使用して City Sampleのビルを良い感じに壊す というところを目指しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ChaosDestructionとは? https://www.unrealengine.com/marketplace/ja/product/city-sample 今回はそのChaosDestructionを使用して City Sampleのビルを良い感じに壊す というところを目指しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 まずCity Sampleのビルは そのままではChaos Destructionでは壊せません © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 ChaosDestructionではメッシュをジオメトリコレクションという 専用のアセットに変換する必要があります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 ジオメトリコレクションへの変換は専用のFracture Modeで行います 変換方法は簡単です メッシュを選択してNewを選ぶだけ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 複数のアクターから一塊のジオメトリコレクションも作成可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 しかしいくつか注意点 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 https://www.docswell.com/s/EpicGamesJapan/ZRQ8R5-UE4_VFXAD20_PigAndKyoto 以前 豚×京都の講演でもお話しさせていただいた形で 破壊モデルはキチンと閉じたモデル 破壊レディである必要があります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 幸運なことに City Sampleのビルは パーツ単位でモジュール化されている為ほとんどが破壊レディ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 ですので ある程度はモデル編集せずともGCに変換可能ですが もしモデルが破壊レディでない場合はモデリングモードなどでご対応ください © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction この辺りの詳細を知りたい方は 今年のCEDECの弊社鈴木の講演をぜひご確認ください © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 さて とはいえビルをそのままGCに変換すると様々な問題が出ます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 一つ目 インスタンスはGCに変換されない © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 一つ目 インスタンスはGCに変換されない © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 GCは複数のスタティックメッシュから作成することが可能ですが 現在インスタンスは対応していません © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 GCは複数のスタティックメッシュから作成することが可能ですが 現在インスタンスは対応していません © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 CitySampleのビルはインスタンス化されている為 今回はEUWで インスタンスをスタティックメッシュアクターに変換しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 CitySampleのビルはインスタンス化されている為 今回はEUWで インスタンスをスタティックメッシュアクターに変換しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 CitySampleのビルはインスタンス化されている為 今回はEUWで インスタンスをスタティックメッシュアクターに変換しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 あとはこれらをまとめてジオメトリコレクション化すればOKです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 しかし二つ目の問題 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. GC変換で落ちる メモリエラー
破壊モデルの作成 City SampleのビルはNaniteを使用している為 1パーツが数万ポリ ビル全体でパーツ数は800を超え ビル一棟で数千万ポリあります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 ジオメトリコレクション変換の際 これら全てを一度に扱うと メモリ限界を超えクラッシュしてしまいます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 対応策一つ目 小分けにしてGC変換する © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 GCを小分けに作って 小分けにしたGCからさらに大きいGCに統合 という形でメモリエラーを回避することが可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 しかし面倒くさい… © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 FractureエディターからGC化する処理は UFractureToolGenerateAsset::Convert ActorsToGeometryCollection() が呼ばれています PythonやEUWでGC変換を自動化できないか模索しましたが 関数が外に露出していません © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 City Sampleではこのコードをコピーしてラップした関数がBPに出ていますが こちらも試した限りでは動かない…… 現時点では手作業での変換が必要 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 https://docs.unrealengine.com/5.0/ja/destruction-overview-in-unreal-engine/ そもそもChaos Destructionではメモリやパッケージサイズなどの観点から 複雑で巨大なGCより モジュール化 & クラスタグループ化する方が望ましいです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 つまりあまりに複雑なビル一つ丸ごとGC化するのは想定外 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 なので対応策二つ目 正攻法に戻ってモデルをリダクションします © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 モデリングツールで リダクションする メッシュをエクスポートして リダクション後戻す 選択肢はいくつかありますが © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 モデリングツールで リダクションする メッシュをエクスポートして リダクション後戻す 今回はビルを構成するパーツが多かったので エクスポートしてHoudiniで調整しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 注意点: Naniteメッシュは現在エクスポートすると フォールバックメッシュがエクスポートされます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 今回はフォールバックメッシュでさほど問題なかったので こちらを調整する方向で対応しました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 モデリングツールで リダクションする メッシュをエクスポートして リダクション後戻す モデリングツールを使う場合は弊社鈴木の講演を… © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 無事リダクションしたメッシュが出来たのでGC変換を行います © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 次の落とし穴 変換がめちゃくちゃ重い 小分けにした10万ポリほどのメッシュ群でも2時間以上かかる © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 UE5.0のバグでした © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. 5.1で修正済み 2時間→30秒に
破壊モデルの作成 Chaos Destructionはまだまだベータの状況です もし問題があればぜひバグ報告いただけましたら嬉しいです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 GCのピボット位置はFirstActorの位置なので空アクタで調整可能です (変なのを最初に掴むと困ります) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 ようやくジオメトリコレクション化完了です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 一安心かと思いきや…… シミュレーションする前からめちゃくちゃ重い © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 理由はレンダリングスレッド 大量のマテリアルがボトルネックに © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 このビル一つで約200マテリアル City SampleではインスタンスかつNaniteが有効だったので マテリアルの数があまり問題になりません © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction#p28 さらに5.0ではGCは断面のマテリアルを自動生成する為 マテリアル数が倍に © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 ※5.1ではAdd Internal Materialsの設定で 断面Material作成を任意に設定できるようになっています © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 実はGCもNanite化することが可能なのですが Nanite化しようとするとクラッシュ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 NaniteDefinitions.h NANITE_MAX_CLUSTER_MATERIALS 64 で定義されています Naniteは1クラスタあたり64マテリアルまでの制限があります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 断面マテリアルの都合上 マテリアル数を30以下まで削りました 同一マテリアルをアサインして再GC化するとマテリアルが減ります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 Nanite化しレンダリングスレッドの負荷を軽減完了 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 Nanite化しレンダリングスレッドの負荷を軽減完了 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破壊モデルの作成 メモリやパッケージサイズ削減が可能です Nanite化する際はぜひ合わせてご利用ください Nanite化したジオメトリコレクションは Strip on Cookの設定でパッケージ化の際に無駄なデータを省いてくれます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コネクションの調整 GCは破片同士を自動的にコネクションしてくれます これによってルートを壊すと全体が壊れるような自然な破壊が可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コネクションの調整 p.Chaos.DebugDraw.Enabled 1 p.Chaos.Solver.DebugDraw.Cluster.Constraints 1 コネクションはデバッグコマンドで表示可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コネクションの調整 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction Chaosのその他のコンソールコマンドに関しては こちらのURLをぜひご参考ください © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コネクションの調整 また コネクションの設定はGCのプロパティやプロジェクト設定にあります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コネクションの調整 デフォルトではMinimal Spanning Subset Delaunay Triangulationですが 実はそのままだとコネクションが強く浮いてしまうことがあります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コネクションの調整 接続距離をプロジェクト設定で調整可能 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. 0.1くらいが良い感じです
コネクションの調整 Minimal Spanning Bounds Overlap またUE5.1ではさらに賢いアルゴリズムが追加されているので こちらがおすすめです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 今回はコンベックスを使用しています (基本的にはコンベックスがおすすめです) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction#p43 詳細なコリジョンが必要な場合はレベルセットも利用できます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 メモリと処理負荷とトレードオフです https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction#p43 詳細なコリジョンが必要な場合はレベルセットも利用できます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 コンベックスは自動生成ですが重なり合わないように作成されるため 意図した形状と違う状況になることがあります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 コンベックスは自動生成ですが重なり合わないように作成されるため 意図した形状と違う状況になることがあります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 p.Chaos.DebugDraw.Enabled 1 p.Chaos.Solver.DebugDrawShapes 1 不自然な動きの場合はデバッグコマンドで表示したり © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 一つずつ表示して確認することをおすすめします © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 5.1からはカスタムコリジョンも設定可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction#p33 細かな破片などが不要な場合はGeoMergeツールや 組み込みメッシュ化を使って排除すると良いと思います © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 これで概ね破壊モデルの準備は出来ましたが そのままシミュレーションするとまだ少し重いです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 物理シミュレーションはFPSに依存してかなり見た目が変わります ですので安定したFPSが欲しい…… © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 非同期シミュレーションが有用です ゲームスレッドと同期されなくなりますが安定したシミュ結果が得られます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 非同期シミュレーションが有用です ゲームスレッドと同期されなくなりますが安定したシミュ結果が得られます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 非同期シミュレーションが有用です ゲームスレッドと同期されなくなりますが安定したシミュ結果が得られます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 非同期シミュレーションが有用です ゲームスレッドと同期されなくなりますが安定したシミュ結果が得られます © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
コリジョンの調整 プロジェクト設定のイテレーションやサブステップを上げることで より高い精度を得られますが 処理負荷とのトレードオフになります © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● ChaosDestructionとは? ● 破壊モデルの作成 ● コネクションの調整 ● コリジョンの調整 ● フィールドによる挙動調整 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction#p65 挙動も安定してきたので破壊挙動を調整します ChaosDには便利なフィールドと呼ばれる機能が用意されています © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction#p65 マスターとアンカーを使用しています © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 動いてほしくない地面の部分にアンカーを設定し © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 マスターで壊しました strainでダメージを与えています © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 Force Dynamic Switchにはお気をつけください これが入っているとAnchorを貫通します © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 逆にこれを使用することで 動きを与えずに Sleepから起こすことも可能です Force Dynamic Switchにはお気をつけください これが入っているとAnchorを貫通します © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 フィールドは手で動かす事も可能です テイクレコーダーでレコーディングすると自然な破壊を演出しやすいです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 ある程度破壊挙動の方向性が決まったらカメラを確認し よく壊れて欲しい部分を追加で壊します © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 選択した破片をボロノイなどで簡単に壊せます 任意のメッシュで切り刻むことも可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 内部構造を入れることも検討しましたが 破片数の割にあまり見た目に影響がなかった為オミットしました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールドによる挙動調整 もし追加する場合はクラスターIDを設定することで 別のGCとひとまとめにしてシミュレーションすることが可能です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
最終結果です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
最後に © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
最後に ● 元々破壊することを想定していないモデルを 壊そうとするとやはり色々落とし穴がありました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
最後に ● 元々破壊することを想定していないモデルを 壊そうとするとやはり色々落とし穴がありました ● とはいえUEのみで破壊をオーサリングできるのは 非常に便利です © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
最後に ● 元々破壊することを想定していないモデルを 壊そうとするとやはり色々落とし穴がありました ● とはいえUEのみで破壊をオーサリングできるのは 非常に便利です ● 処理負荷はアンリアルインサイトでお手軽に 確認できますのでこまめにご確認ください © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
VFX編 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
目次 ● 事前説明 ● 煙 / Niagara Fluid 編 ● 破片 / Mesh Renderer 編 ● ガラス / Pivot Painter2 編 ● まとめ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
事前説明 UE5について ue5-main(20871953)を使用しています ⇒ 最新の環境との違いにご注意ください © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
事前説明 Niagara UE4から搭載されているVFXを作成するためのツールの一つ モジュールを自分で作成可能 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 事前説明 煙 / Niagara Fluid 編 破片 / Mesh Renderer 編 ガラス / Pivot Painter2 編 まとめ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Niagara Fluid Niagaraで流体シミュレーションを 扱いやすくする為のツールセット Gas Smoke Fire (3D) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. FLIP Hose (3D) Gas Smoke Fire(2D)
煙 / Niagara Fluid 編 Niagara Fluidを使うには? NiagaraFluidsプラグインをONにする ⇒ モジュールやマテリアルが増える © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Niagara Fluidを使うには? Niagara System の作成時に『テンプレート に基づく新しいシステム』を選ぶ ※ ソースフィルタリングでNiagaraが アクティブになっていることを確認 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 システムの構成(一例) ソースエミッター シミュレーションエミッター ソース © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. シミュレーション
煙 / Niagara Fluid 編 Emitter Summary シミュレーションエミッターで 流体をコントロールできる ガスシミュレーションエミッターのモジュール群(横向き) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Simulation Stage UE4.26 から追加された機能 毎Tick、指定した回数だけ任意の処理を実行出来る © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Grid Collection データインタフェース Grid 2D Collection, Grid 3D Collection Grid 2D Collection イメージ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. Grid 3D Collection イメージ
煙 / Niagara Fluid 編 Material Parameter Bindings Niagara から Materialパラメータに値を渡す仕組み Dynamic Parameterに似ている Niagara Emitter ➡ レンダーモジュール ➡ バインディング ➡ Material Parameter Bindings © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Chaosとの連携 パーツの分離や衝突タイミングに合わせて 流体シミュレーションができる Breakイベント © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. Break+Collisionイベント
煙 / Niagara Fluid 編 Chaosとの連携(GC側の設定) 必要に応じて下記にチェックを入れる ● Notify Breaks ● Notify Collisions ● Notify Trailing ※詳細メニュー ⇒ 全て ⇒ カオス物理 ⇒ General © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Chaosとの連携(Niagara側の設定) 下記モジュールをソースエミッターに追加 ● Spawn from Chaos(エミッターの更新) ● Apply Chaos Data(パーティクルのスポーン) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Chaosとの連携(Niagara側の設定) ユーザーパラメータにChaos Destruction Dataを作り 各モジュールのパラメータに割り当てる © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 Chaos Destruction Data パーティクルの発生に関することをコントロール出来る Data Sourceで受け取るイベントを指定する必要がある © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 コリジョン 流体とオブジェクトが衝突するようになる コリジョン有り © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. コリジョン無し
煙 / Niagara Fluid 編 コリジョンの追加(基本) Tagsに『collider』を追記 ※ Collide Meshes Actor Tagに定義されている Static Mesh Niagara 詳細 → Actor → Advanced → Tags 詳細 → Effects → パラメータをオーバーライド → Actor Tags © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 コリジョンの追加(GC) ● Emitter SummaryのGCにチェックを入れる ● Geometry Collection Actorに対象のGCを登録する Niagara(シミュレーションエミッター) Geometry Collection Emitter Summary → Collide Against → Geometry Collection 詳細 → Effects → パラメータをオーバーライド → Collide_GeometryCollection → Geometry Collection Actor © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 Niagara Fluid は重たい © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 Niagara Fluid は重たい でも魅力的だし、使いたい... © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 ● 配置する数を減らす ● Fixed Tick Delta TimeをONにする ● シミュレーションの解像度を下げる ● モジュールの処理回数・負荷を減らす ● シャ-プな形状を保つ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 配置する数を減らす ⇒ 本当にその Niagara Fluid は必要ですか? ⇒ スプライトの方がコストは圧倒的に低い © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 Fixed Tick Delta TimeをONにする ⇒ 決められた時間の間隔でシミュレーションする ⇒ シミュレーション結果が安定する © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 シミュレーションの解像度を下げる ● ResolutionMaxAxisの値を下げる ⇒ 全体の解像度が下がる ● GridのVelocity Res Mult, Lightning Res Multの値を下げる ⇒ 各要素の解像度が下がる © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 モジュールの処理回数・負荷を減らす ● ライトの数を減らす(各Default ActiveをOFF) ⇒ 流体を照らすライトの数が減る ● Scatter TemperatureをOFF(煙のみの場合) ⇒ 炎が出なくなる ● Pressure Solve Iterationsの値を下げる © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 モジュールの処理回数・負荷を減らす ● Pressure Relaxation(PR)を0.93 ~ 0.99で設定する ⇒シミューレションのアルゴリズムが変わる PR < 1e-8 jacobi法 PR >= 1e-8 red-black SOR法 ※ 1e-8 以上 0.93 以下の値は全て0.93 になる © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化 シャープな形状を保つ ● InterpolationTypeをCubicにする (Simulation Stageの Advect Scalars, Advect Velocity) ⇒ MacCormack法のテンプレートでも同様の結果が得られる ※ 処理負荷が増すので注意 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化に便利な機能・パラメータ ● Grid Bounds Overlay & Cell Size Guides(パラメータ) ● Local Pivot(パラメータ) ● Performance(機能) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化に便利な機能・パラメータ ● Grid Bounds Overlay & Cell Size Guides ⇒ Grid Bounds Overlay:Bounding Box を表示する ⇒ Cell Size Guides:解像度を表示する セルの大きさ(解像度) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化に便利な機能・パラメータ ● Local Pivot ⇒ Bounding Boxだけ移動出来る(流体の位置はそのまま) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 最適化に便利な機能・パラメータ ● Performance ⇒ プロファイリング出来るようになる © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
煙 / Niagara Fluid 編 所感 ● 大量に配置すると厳しいが、一点モノとしてなら... カットシーンやプリレンダリングでも使えそう (シミュレーションを途中から行う仕組みもあれば嬉しい) ● 触っているだけでも楽しい(大事) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 事前説明 煙 / Niagara Fluid 編 破片 / Mesh Renderer 編 ガラス / Pivot Painter2 編 まとめ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 Mesh Renderer スタティックメッシュを発生させる 複数のメッシュを登録してランダムに発生させることも可能 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 弱点 メッシュの登録は手動で行う必要がある ⇒ Unreal Pythonでは設定出来ない ⇒ 大量のメッシュだと大変 580個(ガラス) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 対策 Pythonを使って登録出来るようにプラグインを用意 ⇒ 鈴木孝司(Epic Games Japan)さんに依頼 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 プラグインの実装 UBlueprintFunctionLibraryを継承 SetMeshesInEmitterLibraryBPLibrary.h © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 プラグインの実装 SetStaticMeshArrayを定義 SetMeshesInEmitterLibraryBPLibrary.cpp © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
破片 / Mesh Renderer 編 プラグインの利用 set_static_mesh_arrayを利用 (SetStaticMeshArrayじゃないので注意) 50個のスタティックメッシュを登録するサンプルコード © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter 2 編 事前説明 煙 / Niagara Fluid 編 破片 / Mesh Renderer 編 ガラス / Pivot Painter2 編 まとめ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 Pivot Painter 2 回転軸と座標、スケールをテクスチャに格納する仕組み Vertex Animation Textureに近い ガラス(オリジナル) © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. FBX テクスチャ(3つ)
ガラス / Pivot Painter2 編 Pivot Painter 2を選んだ理由 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 Pivot Painter 2を選んだ理由 Mesh RendererだとCPU処理負荷が高いから ⇒ガラスのパーツを小分けにして別々のNSとして配置すると 多少軽くなったが焼け石に水 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 制作の流れ 1. モデルを破砕(Houdini) 2. データを出力(Houdini) 3. 形状の復元(Niagara) 4. 完成 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 1.モデルを破壊(Houdini) ● ガラスっぽく割る(破片数に注意) ● @name, @uv, @N を用意する Point Attributes @P Prim Attributes @name Vertex Attributes @uv, @N © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 1.モデルを破壊(Houdini) ● データをGeometryとPivotの二つに分ける ● @hierarchy を作る(@nameを変換する) Attribute Promote Primitive → Point Extract Centroid Transfer Attributes:N Attribute Create Name:up, Type:vector, Value: 0,1,0 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. Geo Point Attributes @P, @hierarchy Vertex Attributes @uv, @N Pivot Point Attributes @P, @hierarchy, @N, @up
ガラス / Pivot Painter2 編 2.データを出力(Houdini) Labs Unreal PivotPainterを使って出力 RGB:Pivot Position(16-bit) A:Object Z Height RGB:X Vector(8-bit) A:X Extent Divided by Range - 2048 Max RGB:YVector(8-bit) A:YExtent Divided by Range - 2048 Max © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 2.データを出力(Houdini) 出力されたファイル モデル ポジション+Zスケール © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. X軸の傾き+Xスケール Y軸の傾き+Yスケール
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) City SampleのBrokenGlassからモジュールを抽出する Blueprint'/Game/Developers/taninaoy/GlassTest/BP_VehicleBase_Destr uction.BP_VehicleBase_Destruction' © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. NiagaraSystem'/Game/Effect/Vehicle/Niagara/BrokenGlass.BrokenGlass'
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) エミッターのスポーン パーティクルのスポーン Niagara_PositionAndQuatFloat_Texture Calculate Per Particle Render Target UVLocation Niagara_RenderScale_Texture Initialize Component Variables(変更有り) Niagara_PositionAndQuatFloat_Texture2 Niagara_RenderScale_Texture2 Resize Render Target Resize Render Target001 エミッターの更新 Spawn Burst Instantaneous Activate PP2Render Targets © 2022 SQUARE ENIX CO., LTD. All Rights Reserved. パーティクルの更新 Control PP2 Mesh Elements Via Niagara FracturedMesh
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) ※イメージです © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) 2Dレンダーターゲットを4枚セットして、 PP2テクスチャのサイズに合わせる RTの内訳 ポジション+回転情報 x 2枚 スケール情報 x 2枚 ※各RTの2枚目はモーションブラー用 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) PP2テクスチャのピクセル数(パーツの数) だけパーティクルを発生させる ※ActivatePP2RenderTargetsはモーションブラー用 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) PP2テクスチャからパーツごとの 座標 回転軸の傾き スケール を読み込み、パーティクルに流し込む © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 3.形状の復元(Niagara) パーティクルに格納された各要素をRT に書き込む RTをマテリアルに渡して、頂点移動させる ※Material Parameter Bindingsを使って値の受け渡しをする ※マテリアルは下記(MI_Veh_GlassThin)を使用 MaterialInstanceConstant'/Game/Vehicle/Material/MI/MI_Veh_GlassThin.MI_Veh_GlassThin' © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 4.完成 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 余談 ガラスの位置がズレる場合は、テクスチャの設定を見直す レベルオブディテール ⇒ ミップ全般設定 ⇒ ミップマップなし © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 余談 ガラスの位置がズレる場合は、テクスチャの設定を見直す テクスチャ ⇒ Filter ⇒ Nearest © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 余談 Houdini 19.5.395 からスムージング グループの出力が可能に ※ Compute Smoothing Groupにチェックを入れる(@N が必要) ※ Convert Unitsにチェックを入れると、センチメートル単位に変換される ROP FBX OUTPUT © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 おまけ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 おまけ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 おまけ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 おまけ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
ガラス / Pivot Painter2 編 おまけ Initialize Component Variables © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
まとめ © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
まとめ ● 煙 / Niagara Fluid 編 処理負荷は大きいが、カットシーンなら使えるかも © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
まとめ ● 煙 / Niagara Fluid 編 処理負荷は大きいが、カットシーンなら使えるかも ● 破片 / Mesh Renderer 編 関数がなければプラグインで用意すればいいじゃない © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
まとめ ● 煙 / Niagara Fluid 編 処理負荷は大きいが、カットシーンなら使えるかも ● 破片 / Mesh Renderer 編 関数がなければプラグインで用意すればいいじゃない ● ガラス / Pivot Painter 2 編 Mesh Rendererに大量のメッシュを登録してはいけない Pivot Painter 2 は便利 © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.
UNREAL ENGINEはエピック・ゲームズ・インコーポレーテッド商標または登録商標です。 Houdini は SideFX 社の商標または登録商標です。 その他掲載されている会社名、商品名は、各社の商標または登録商標です。 ご清聴ありがとうございました © 2022 SQUARE ENIX CO., LTD. All Rights Reserved.