> For the complete documentation index, see [llms.txt](https://manual.karamba3d.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual.karamba3d.com/jp/3-konpnentorifarensu/3.8-utilities/3.8.5-detect-collisions.md).

# 3.9.5: 衝突検出

![図3.9.5.1: Karamba3Dモデルがメッシュと衝突する](https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-61d6a0b4f4913f85c9676871f41fb53d3f89966a%2Fdetectcollision.png?alt=media)

構造の最適化に関連して、構造が存在すべきでない体積（例: 窓、部屋）を定義する必要がしばしばあります。1つのアプローチは、自由のままになるべき体積を構造が横切ることができないようにパラメータ化を選択することです。これは多くの場合、達成が困難です。別の方法は、ペナルティ関数を使用することから成ります: パラメータ化は「間違った」解を排除しませんが、「正しい」解よりも悪いパフォーマンスを示します。これが「**Detect Collision**」コンポーネントの出番です。モデルとメッシュを入力として受け取り、モデルとメッシュ間の衝突数を決定します。結果は「**nColl**」で返されます（図3.9.5.1参照）。入力プラグ「**StartInd**」は、衝突検出が開始する要素のインデックスを受け入れます。デフォルトでは、モデルのすべての要素が含まれます。

{% file src="/files/iWqnLZ0eci5NJ6PhUgyz" %}

{% file src="/files/TxE9fBwU4UsVZHL4e9wW" %}
