執筆バージョン: Unreal Engine 5.0(EarlyAccess)
|
みなさまごきげんよう。
今回はUE5のNaniteのアセットにUCXコリジョンを設定する際に便利な方法をご紹介します。
なぜこのような記事を書くかというと、Naniteで高解像度のポリゴンを扱う場合、ハイポリになればなるほどインポートに時間がかかります。
UCXコリジョンをメッシュと一緒にエクスポートすると、シビアな案件になるほどトライ&エラーを繰り返すのにすごく時間がかかることがあるからです。
ではどうやってUCXコリジョンを設定するか、結論から言うと、UE4でも存在していた機能ですが、
コリジョンをコピペする機能を使います。
UCXコリジョンの作り方ではないです。コピペの仕方になります。
——————————————————————————————————–
ちなみにUCXコリジョンとは何か
以下のリンクに書かれていますが、
簡単に言うと凸型の閉じたメッシュで構成したコリジョンのことです。
https://docs.unrealengine.com/4.27/ja/WorkingWithContent/Importing/FBX/StaticMeshes/
ゲーム案件などでは階段は斜めのコリジョンにしたり、プレイヤーと接触した際に引っかかったりしないように、
意図した正確な形状のコリジョンが必要になることがあります。
また、オートコンベックスコリジョンやUEで作成できるシンプルコリジョンでは作成が難しい(または非常に手間がかかる)場合も
DCCツールなどでUCXコリジョンを作成したりします。
通常のスタティックメッシュにコリジョンを設定する方法
以下の記事が参考になるかと思います。
https://historia.co.jp/archives/20498/
UCXコリジョンをDCCツールで作成する方法
以下の記事が参考になるかと思います。
[UE4]コリジョンの作成方法のまとめ
——————————————————————————————————–
それではやってみましょう。
アセットをインポート
まずはNanite化したいアセットをインポートします。
検証用にフォトグラで作成したブロッコリーをインポートしました。
ポリゴン数はもっと削減することも可能でしたが、
818万トライアングルあります。

インポート時にBuild Naniteにチェックを入れることで初めからNanite化することができます。
GenerateMissingCollisionにチェックが入っていますが、あとで削除するのと、カスタマイズされたコリジョンが設定されている場合はチェックは無視されるので問題ないです。

マテリアルやテクスチャのチェックはご自由に、すべてインポートもしくはインポート押下します。
約3分26秒かかりました。
不要なコリジョンは削除します。
(GenerateMissingCollisionのチェックを外して読み込んでもよいです。)

コリジョンをインポート
UCXコリジョンですが、名前の規則や閉じた凸形状にする必要があるため人為的なミスが起きて、
何度かインポートし直すことがあります。そのたびに長時間かかるのはストレスです。またコリジョンを微調整しなければいけない時も再インポートしますが、同じだけ時間がかかります。
ですのでコリジョンだけをDCCツールで作成してインポートします。
画像はダミーのBoxにUCXコリジョンを設定して読み込んだものです。

コリジョンを設定したいアセットをアセットビューアーで開く

インポートしたコリジョン(ダミーのBox)をコンテンツブラウザーで選択

アセットビューアーのコリジョンから、選択中のスタティックメッシュからコリジョンをコピーを押下

無事コピペできました。

コリジョンだけのアセットは保存しないで削除してもよいですし、残しておいてコリジョンを調整した際に再インポートしても時間がかかりません。
以上になります。
Megascansのアセットもコリジョンが存在しないので、何かしらの方法でコリジョンを設定する必要がある場合が多いかと思います。UCXコリジョンで作成しなければならないこともあるかと思いますが、その時にも使えるかと思います。
簡単な機能の紹介でしたが、何かのお役に立てれば幸いです。