Unreal Engine Advent Calendar 2021 の18日目でこの記事を投稿させていただいています!
コリジョン自動生成について分かった事を書きます。
コリジョン自動生成 AutoConvexCollision とは
コリジョンの作成方法の1つです。
コリジョンの作成方法は、自動生成、BOX状のコリジョンを組み合わせる、外部から取り込む等があります。
自動生成は、3種の値を設定することで、それに沿って自動でシンプルコリジョンを生成してくれます。
自動生成時の設定
ハルカウント
コリジョンの分割数です。塊の数。(最大数)
2で設定し生成すると、2個の塊に分割されたコリジョンができます。
マックスハル(頂点)
1つの塊に含まれる頂点数です。(これも最大数です)
6に設定し生成すると、1つの塊の頂点が6個になっています。
ハル精度
コリジョン生成の精度です。数値を上げると、よりメッシュに沿ったコリジョンが生成されます。
↓ハル精度10,000だとこんな感じ
↓ハル精度1,000,000だとこうなります。座面や手すりのディティールが綺麗になった気がします。
↓ハル精度を上げすぎると生成にめっちゃ時間がかかります。いうても20秒くらいですが…
コンプレックスコリジョンについて
精度の高いコリジョンという意味ではコンプレックスコリジョンを使う手もありますが、
SimulatePhysicsが使えなくなります。
ハルとは HULL
調べると
“(穀粒・種などの)外皮、殻、果皮、(特に豆の)さや、(イチゴなどの)へた、おおい、船体、(飛行艇の)艇体、(飛行船の)船体”
と出るので、 ハルカウント のところで書いた塊のことだと思います。たぶん
BPについて
EditorScriptingUtilitesというプラグインを有効にすることで使える、
SetConvexDecompositionCollision というノードで、BluePrint側でもこの機能を使うことが出来ます。
下記は例として用意した、
【選択しているアクターに使われているスタティックメッシュのコリジョンを自動生成する】関数です。(Assetのファイルに変更が加わります)
↑WEB上でBPをさわれるみたいなので貼っておきます。
ちなみにこのノードをコピーしてUEのノードグラフ上に直接貼り付けられます。
余談
ハル精度のSpinBoxにマウスカーソルを合わせるとこの様な説明が…
ボクセルというとMinecraft等の箱が思い浮かびます。
で、そのボクセル数を上げると生成時の精度が上がるということは、メッシュの周りの空間をここで指定した個数のボクセルで分割して、その一個一個のボクセルにメッシュが有るか無いかでコリジョンを付ける判定をしているのかな?と予想しました。
あくまで予想です!
今回の記事はここまで!!!お疲れさまでしたっっっ!!!
コメント