キャラクターにカプセル状の接触判定を付けたいのですが、そのまま使用すると物理アセットも影響を受けて揺れ物が暴発してしまいます。
しかし揺れ物を扱うためにキャラクターのコリジョンプリセットをCharacterMeshに設定すると接触判定がなくなってしまい、キャラクターが重なってしまいます。
どうにかカプセル状の接触判定と物理アセットを両立させたいです。どのように設定すればいいでしょうか。
使用しているのはCharacterベースのクラスでしょうか?それともPawnクラスでしょうか?あるいはActorベースでしょうか?
CharacterクラスであればデフォルトでCollisionPresetがPawn設定のCapsuleCollisionとCharacterMesh設定のMeshが設定されているため、よほど特殊な挙動を期待しているのでない限り特に何もせず両立できるはずです
PawnクラスベースまたはActorクラスベースで同様のことを行いたい場合は、CharacterクラスのComponent構造を参考に同様の設定にしてください
デフォルトのマネキンを自作キャラクターに置き換えただけの物なので恐らくCharacterベースだと思います。
物理アセットはあくまで髪などを揺らすだけの存在にして、キャラクターの当たり判定そのものはカプセルのみに設定したいんです。
大本のCapsureComponentのコリジョンプリセットはCharacterMeshで、これをPawnにすると物理アセットと競合して暴発します。CapsureComponentの子のキャラクターメッシュのコリジョンプリセットはPawnで、これをCharacterMeshにすると今度は物理アセットが使えなくなります。
初心者なのでコリジョンプリセットと物理の関連性がよく分からず苦労してます・・・
手元の環境では揺れものの物理アセットは動作しています。
ラグドールとして使うのであればMeshをCharacterMesh以外(CollisionEnabledなもの)に設定しますが、それ以外ではそちらの手元で起こっているように競合が発生する可能性があるため、Characterはデフォルトのままで良いでしょう。
なお揺れものの物理ブレンドはAnimBP側にあります。
もしかするとAnimBP側でRigidbodyノードがないのかもしれません。確認してください。
なるほど、コンポーネント側を弄るのではなくAnimBP側で物理設定を行えばいいんですね。参考になりました。
すいません。折角解決策を教えていただいたのですがこの方法だと物理アセットが予期しない挙動になり、物理シュミレーションにエラーが発生してしまいます。
エラー文を調べたところ違う解決策が見つかり、そちらのほうが理想に近い形になりました。
CapsureComponentのコリジョンプリセットはPawnにし、キャラクターメッシュをCustomに設定Customの設定をColisionEnabledをQuery and Physics、Object TypeをPhysicsBodyに設定したところ上手くいきました。
質問に答えていただきありがとうございました。お手数おかけしました。