PhysicalMaterialのRestitutionを0にした場合の形状による衝突の違いについて

PhysicalMaterialのRestitutionを0にした場合の形状による衝突の違いについて2点質問させていただきます。

<br/>

①形状がSphereとBoxのオブジェクトを壁に衝突させた場合、Sphereは壁にピッタリ止まり、Boxは壁から跳ね返るような挙動になりました。

Restitutionを0にしているため、BoxもSphere同様に壁にピッタリ止まる想定だったのですが、どういった理由で跳ね返っているのでしょうか?

また、Boxを壁から跳ね返らないようにする方法はありますでしょうか?

<br/>

②形状がBoxのオブジェクトを壁に密着した状態で角速度を与えた場合、壁から跳ね返るような挙動となります。

こちらについても①同様、どういった理由で跳ね返っているのでしょうか?

また、Boxを壁から跳ね返らないようにする方法はありますでしょうか?

<br/>

再現手順
​【症状確認手順】

  1. 添付の「SampleProject」​を起動してください
  2. SampleMap.umapを開いて、PIEを起動してください
  3. アウトライナー上のBP_SphereとBP_Boxの詳細からAddImpulseをクリックしてください
  4. BP_Sphereは壁衝突後、壁に留まるのに対して、BP_Boxは跳ね返っていることを確認してください​・・・①
  5. アウトライナー上のBP_Box2の詳細からAddAngularImpulseをクリックしてください
  6. BP_Box2が跳ね返っていることを確認してください・・・②

お世話になっております。

①② 少なくとも部分的に同根の現象のように見受けられますが、容易に反発を無効化することはできないようです。

物理シミュレーションが Chaos に置き換わる前のことではありますが、同様の挙動について過去に By Design とされています。

https://issues.unrealengine.com/issue/UE-36975

この挙動に関して回転運動が重要な役割を果たしているようで、慣性テンソル(コンポーネントの InertiaTensorScale)を大きく取ることで ① における Box の反発を抑制することはできます(副作用が大きいので解決法としてはおそらく適しませんが)。

衝突が 面 vs 頂点 で生じる関係上 Sphere では重心を通る力がのみが発生するのに対し、Box では回転力が生じるという違いがあります。

Box を立方体にし、45度の Yaw 回転を設定、重力を無効にすることで反発がかなり小さくなるという現象も確認できます。

衝突による速度の変化については FPBDCollisionSolver.::SolveVelocity で計算されるようです。

変更についての具体的なご案内は致しかねますが、こちらを調べて頂くことで挙動を調整することは可能かもしれません。

よろしくお願いいたします。

ご確認ありがとうございます。

本件はクローズいたします。

また何かありましたらお問い合わせ下さい。

お世話になっております。

返信遅くなり申し訳ありません。

調査いただきありがとうございました。

容易に反発を無効化できないということで承知いたしました。

パラメータ及び処理については調査を行い、自身のプロジェクトに適用できるか調査しようかと思います。