Blenderでクロスシミュレーションを使用していると、布がオブジェクトを貫通したり、見当違いの場所で当たり判定が発生したりすることがあります。特に平面にクロスを設定し、箱型オブジェクトへ落下させた際の貫通現象は多くのユーザーが経験するトラブルです。本記事では、クロスシミュレーションとコリジョン設定で発生しやすい問題の原因と改善方法を解説します。
クロスシミュレーションが貫通する主な原因
クロスシミュレーションでは計算精度が不足すると、フレーム間で布がオブジェクト内部へ入り込んでしまうことがあります。
特に以下の条件では貫通が発生しやすくなります。
- クロスメッシュの分割数が少ない
- Collision Qualityが低い
- オブジェクトのスケールが未適用
- 高速で落下している
- コリジョン距離が小さすぎる
クロスの品質設定不足が原因であるケースが非常に多いため、まず品質設定を確認することが重要です。
最初に確認したいスケール適用
Blenderではオブジェクトを拡大縮小しただけでは物理演算が正しく計算されない場合があります。
クロスオブジェクトと衝突対象の両方を選択し、「Ctrl+A」から「スケール」を適用してください。
例えば箱を10倍に拡大している場合、見た目は正常でも物理計算上は元サイズとして扱われることがあり、当たり判定のズレや貫通の原因になります。
クロス品質設定を上げる
クロス設定の「Quality Steps」は衝突精度に大きく影響します。
| 設定項目 | 推奨値の目安 |
|---|---|
| Quality Steps | 8〜15以上 |
| Collision Quality | 4〜10以上 |
| Distance | 0.005〜0.02程度 |
| Self Collision | 必要に応じて有効 |
標準設定のままでは複雑な衝突に対応できない場合があります。貫通が発生する場合は段階的に数値を上げて確認しましょう。
コリジョン設定で見落としやすいポイント
衝突対象には「Collision」モディファイアが必要ですが、それだけでは十分でないことがあります。
特に薄い板状オブジェクトでは当たり判定が不安定になりやすく、布がすり抜ける原因になります。
実例として厚みのない平面へクロスを落とした場合、見た目上は床でも物理計算では非常に薄い当たり判定となるため、わずかな計算誤差で貫通します。
そのためSolidifyモディファイアで厚みを付けたり、CollisionのThickness Outerを少し増やすと改善することがあります。
リジッドボディとクロスを併用する際の注意点
クロスシミュレーションとリジッドボディは別の物理システムで動作しています。
そのためリジッドボディを設定しただけではクロスとの衝突精度が向上するわけではありません。
箱を動かさない場合はリジッドボディのPassive設定だけでなく、Collisionモディファイアが有効か確認しましょう。
またキャッシュを削除せず設定変更を繰り返すと、古いシミュレーション結果が残って誤動作する場合があります。
キャッシュを削除して再計算する
設定変更後に問題が解消しない場合はキャッシュの影響を疑いましょう。
- Cloth Cacheを削除する
- Bake済みデータを削除する
- タイムラインを先頭へ戻す
- 再度シミュレーションを実行する
古いキャッシュが残っていると正しい設定が反映されないことがあります。
まとめ
Blenderのクロスシミュレーションが貫通する場合は、スケール未適用、品質設定不足、コリジョン厚み不足、キャッシュ残存などが主な原因です。特に「Ctrl+Aによるスケール適用」「Quality Stepsの増加」「Collision Thicknessの調整」は効果が高い対策です。薄い平面を使用している場合は厚みを持たせることで大幅に安定することもあります。設定を一つずつ確認しながら再計算すると原因を特定しやすくなります。


コメント