SetCollisionEnabledで出てくる警告メッセージについて

ブループリントを使用し、アクタからGetComponentByClassでBoxComponent取得。それにSetCollisionEnabledを使用すると以下のエラーが発生します。
無効なシミュレートオプション:ボディ(コンポーネント名)は物理をシミュレートするように設定されていますが、有効なコリジョンとは互換性がありません

エディタの言語を英語に変えると以下のメッセージになります。
Invalid Simulate Options: Body (コンポーネント名) is set to simulate physics but Collision Enabled is incompatible

SetCollisionEnabledで指定している「New Type」は「NoCollision」です。
対象のアクタで、物理演算を使用し重力で落下する状態なので、NoCollisionにすることで、床をすり抜けて落下します。

ですので、「NoCollision」の変更は動作しているようなので、この警告の意味が分かりません。

調べると、以下のようなページなどが見つかりましたが、これらでも明確なと解決策が出たりしていないので、参考になりませんでした。
https://forums.unrealengine.com/t/invalid-simulate-options-body-player-bp-c-0-arrow-is-set-to-simulate-physics-but-collision-enabled-is-incompatible/544328
https://forums.unrealengine.com/t/invalid-simulate-options-body-matineecam-sm-is-set-to-simulate-physics-but-collision-enabled-is-incompatible/661773

この警告が出ないようにするにはどうすればよいでしょうか。
Unreal Engineのバージョンは5.0.3になります。

単純な話です
NoCollisionの場合、物理演算に入れても意味がないという警告です

物理演算というのは、 『重力だけではなく』 他のオブジェクトや地形との接触をシミュレートします
というより、本来はそちらの目的が主です
他と接触する可能性のないものを物理演算に含めても、接触することがないため意味がありません
計算するだけ無駄ですね?

なので、間違えて設定しているのではないか?と警告が出ているわけです

NoCollisionにするのであれば、SimulatePhysicsは切りましょう
他とぶつからないように物理演算を継続したいのであれば、そのようなObjectTypeを追加して、そちらに設定してください

1 Like

なるほど。そういう理由なら、そういうメッセージを出してくれればいいのにと思うのですが…
ともかく、解決しました。
ありがとうございます。

すみませんこの質問は解決したのですが、SOLUTIONボタンが表示されず、解決済みにできません。
解決済みにする方法が分かり次第対応させていただきます。