物理アセットでカスタムシェイプを使うと他のボディのコリジョンが消える

物理アセットで車両を作る際にボディが基本形状の場合は正常だったタイヤのコリジョンが、StaticMeshからコピーしたボディを使用すると消失します。加えて「完全にシミュレートされたスケルタルメッシュ」エラーが大量発生します。
ビークルゲームで設定されているスポーツカーもカスタムシェイプを使用していましたが、タイヤの当たり判定に問題はありませんしエラーも出ていませんでした。BPもWheeledVehiclePawnではなくPawnから独自にクラスを作っている点を除いてほぼスポーツカー準拠です。
コリジョンの消失とエラーの改善に何か解決策はあるでしょうか?




できれば、使用しているコンポーネントのコリジョン設定も教えてください
Unreal Engine のバグと思われる場合は、こちらのフォームからバグ報告をお願いいたします
Unreal Engine バグ提出フォーム

ボーン構造

物理アセットのボディは
・本体、ホイールとサスペンションが各4つ計9つ
・PhysicsTypeは全てDefault
・ボディ同士の当たり判定は無し
・総重量は約1100kgで、そのうち約90%が本体

物理アセットのコンストレイントは
・本体>サスペンションとサスペンション>ホイールが各4つ
・Linear Limits は本体>サスペンションのみX軸にLimit 5.0
・Angular Limits はサスペンション>ホイールのみY軸にFree

コンポーネントは
・ルートがスケルタルメッシュで、カメラブームとカメラが子
・スケルタルメッシュのシミュレーションは有効、コリジョン応答は追加チャンネル以外ブロック
・Collision Enabledはクエリ・物理両方で有効
・物理マテリアルは無し

他に必要な情報があれば追記します。

分かりました
ところで、今遭遇している警告はもしかしてこれなのではないでしょうか?

//If the root body is simulating and we're told to move without teleportation we warn. This is hard to support because of bodies chained together which creates some ambiguity

Attempting to move a fully simulated skeletal mesh {0}. Please use the Teleport flag

自動翻訳

//ルートボディーがシミュレートされていて、テレポーテーションなしで移動するように指示された場合、警告します。これは、ボディーが連結されているためサポートが困難であり、あいまいさが生じます。

完全にシミュレートされたスケルトンメッシュ{0}を移動しようとしています。テレポートフラグを使用してください。

この場合、警告で言われている通りTeleportをONにするか、bSimulatePhysicsをオフにする必要があります

この種のサポートが難しいといわれていますが、ビークルのサンプルでは既にできていることですので、何らかの設定の違いを追いかけていく必要がありそうですね

※ エラーメッセージは頭だけ読まず、一行全部張ったほうが良いです


Pawnから独自にクラスを作っている点を除いてほぼスポーツカー準拠です。

残念ながら準拠できていません
まず、このSkeleton構造だと走行用のBoneが必要です
SportsCarにある Phys_Wheel_** がそれに当たります
まずは、表示用とは別に、Vehicleとしての最低限の構造(root+rootから伸びる車輪Bone4本)を成立させてみてください

また、車両そのもののBodyはRootに付けたほうが良いでしょう
エラーの原因もおそらくそれかと思います
Componentを物理レイヤーで動かす際は基本的にそのrootから動かしますが、この構造だとrootにBodyがないため、物理シミュレーション上で正しく動かない可能性があります
Vehicleはフォーマットが決まっているため、それを外すべきではありません

その他の設定に関しては、情報が古いですが下記のドキュメントを参考にしてください
基本的なところは変わっていません

追記ですが、ChaosVehicleは車輪のBodyを参照していません
なので、地面と車輪の当たり判定がないこと(車両が沈むこと)自体は正常な反応です

車輪の動作はレイキャスト(計算)によって実現しており、地面との当たり方をコントロールしているのは ChaosVehicleWheelです
試しにVehicleTemplateのSportsCar_WheelsFrontのWheelRadiusを変更してみてください

皆様回答ありがとうございます。タイヤのめり込みについては何とか改善できました。

カスタムシェイプだけでなく大型の基本コリジョンでもめり込みが発生したので、どうも重量の問題だったらしく1000kg近くあるボディを100kgに減らしたところ正常なシミュレーションが行えるようになりました。車重としては軽すぎますが、コンポーネントのMassScaleで対応することにします。

一方エラーについてはまだ改善できていません。指摘されたルートボーンへのボディの設定や、フォーラムに上がっていたルートボディをKinematicにし、それ以下の階層でシミュレーションを行う方法やBeginPlayからシミュレーションを有効にする方法なども試しましたがエラーは止まりませんでした。
ただWheeledVehiclePawnで作ったところエラーは出なかったので、何かしら専用の調整がされているのかもしれません。

お力添えありがとうございました。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.