猫とゲームエンジン

今日も猫に面倒みられながら生きてる

HoudiniEngineを使ってスタティックメッシュのコリジョンを更新する①

シーン内のLandscapeをhda の Houdini Inputs/ World Inputに設定するとfolliageを生やしたりエディットレイヤー、ペイントレイヤーを調整したりすることができた。 この Houdini Inputs を Geometry Input にするとコンテンツブラウザからスタティックメッシュなどをアサイン可能で、情報更新やコリジョンの設定に利用できる

HoudiniInputs/ GeometryInupt

HDAの設定

コリジョン生成、データの保存先などを行うためにいくつか設定が必要になった
加えて今回はテスト用にコリジョンが更新できたことをわかるようにmountでぐちゃぐちゃにしている

①.出力メッシュをコリジョンとして設定する
コリジョンの更新を行うためにするのは collision_geo_○○ という名称のグループを割り当てたメッシュを出力すると、それはコリジョンとして判断されるので元メッシュからコリジョン用の形状を生成したメッシュに対してgroup名をつけ、同じoutputに出力する
○○にはいるのは元メッシュとの関連付けなどは必要ないようでコリジョンにだけつければ紐づけできた。○○を明示する必要のあるシーンは今のところ不明

②. 出力先と出力名を設定する
unreal_output_name に出力するスタティックメッシュ名、unreal_bake_folderに出力先を設定(相対パス

③. コリジョンにノイズをいれてぐちゃぐちゃにする
更新したことがわかるテスト用で、コリジョン更新をしたいだけなら不要

HDAの設定

UE上での操作

上記のノードをhda化し、UE上でGeometryInputを設定するとシーン上では利用できるがまだこの段階ではコンテンツブラウザ上に存在していない
RefineProxyというボタンが表示されるのでクリック

refine proxy ボタン

refine proxy というボタンを押すと仮メッシュがHoudiniEngine/ Tempいかに生成され、新たにBake Outputボタンが表示されるので再度クリック
コリジョンメッシュもStaticMesh(InvisibleComplexCollider)という名称で表示されるがそちらではなく通常のStaticMeshの方を押す

Bake Outputボタン

BakeOutputを押すと出力先に指定した名称でStaticMeshが生成され、確認するとコリジョンがテスト用のコリジョンになっていることが確認できる

出力されたStaticmesh

出力名称を既存のメッシュ、つまるところ入力と同名のスタティックメッシュと同名にすると既存のスタティックメッシュのコリジョンを更新することができる

次回目標

タイトルを①した理由は不明点があったので。
複雑なコリジョンは更新できたが単純なコリジョンの設定がうまくいかなかった点
それと合わせて②以降の取り組みとして、入力ジオメトリの名称から上書をする機能と一括処理について考えてみたい