オブジェクトの子オブジェクトを持つ機能を実装できます(子オブジェクトは、親の位置/回転の変更によって自動的に影響を受けます)。次に、それらが一緒にラッチする必要があるときに衝突すると、非表示のオブジェクトを作成し、アタッチされたオブジェクトの両方をその子にします。次に、個々のオブジェクトに変換(移動、回転)を適用する代わりに、大きなオブジェクトに適用します。または、個々の子オブジェクトに力を適用して、「親はいますか?」をチェックし、はい、力は親に送られます(すべての子オブジェクトからの力を、それ自体に適用される1つのベクトルにマージします)。
また、ラッチされたオブジェクトの重みに従って非表示の親の重心を計算した場合、Johnの方法では達成できないようです(結合されたオブジェクトは新しい共有の重心を中心に回転しますが、オブジェクトの1つの重心の周り)、追加のコードを必要とせずに、この種の動作を簡単にネストできます。より堅牢で柔軟なアプローチのようです。
+子に加えられた力が関節を破壊するのに十分強い場合、条件は、親と子の関係を削除するだけで、その「ラッチ解除」を処理できます。子が1つだけ残っている場合は、それも分離して、非表示の親も削除します。
興味があれば、詳細(写真と少なくとも疑似コードなど)を提供できます。