書き出したStaticMeshにコリジョン(当たり判定)を設定する方法
Geometry Scriptの Create New Static Mesh Asset From Mesh ノードは、デフォルトのままだと「見た目のメッシュ(形状)」だけを書き出し、「コリジョン(当たり判定のデータ)」を自動生成してくれない仕様になっています。
そのため、そのままレベルに配置するとスタンドアローンゲーム等でプレイヤーがすり抜けてしまいます。この問題を解決する2つのアプローチ(自動化・手動設定)をまとめました。
🛠️ 解決法1:ブループリント(生成時)にコリジョン自動生成ノードを追加する
StaticMeshをアセットとして保存する直後、または直前に「コリジョンを計算してアセットに焼き付ける」ノードを挟むことで、自動的に当たり判定付きのStaticMeshを作ることができます。
■ 使用するノード
Set Static Mesh Collision From Component
■ ブループリントの組み方
アセットを生成するノードの後ろ(直後)に、以下のようにノードを繋ぎ足します。
[Create New Static Mesh Asset From Mesh]↓ (生成成功の実行ピンから) [Set Static Mesh Collision From Component] ├─ Static Mesh: (生成されたアセットのReturn Valueを繋ぐ) └─ Component: (元のDynamic Mesh Componentを繋ぐ)💡 解説: この
Set Static Mesh Collision From Componentノードを使うと、Dynamic Mesh Componentが持っていたコリジョンの設定や形状を、そのまま新しく作ったStaticMeshアセットにコピー・焼き付け(ベイク)してくれます。
📦 解決法2:生成されたアセットをエディタ上で手動設定する
すでにいくつかStaticMeshを書き出し終えている場合は、アセット自体の設定を変更するだけで直ります。
コンテンツブラウザで、生成された StaticMeshアセットをダブルクリック してエディタを開きます。
画面上部のメニューにある 「Collision(コリジョン)」 をクリックします。
「Simple Collision(単純コリジョン)」 にチェックを入れて、現在当たり判定が本当にあるか確認します(何も緑色の線が表示されなければ、コリジョンが無い状態です)。
■ コリジョンを生成する設定
そのままStaticMeshエディタの右側にある Details(詳細)パネル をスクロールし、「Collision」 セクションを探します。
簡単な形状(箱や球など)の場合: 上部メニューの
Collision>Add Box Simplified Collisionなどを選んで、簡易的な当たり判定をつけます。複雑な形状(凹凸のある地形やくり抜いた壁など)の場合: 詳細パネルにある
Collision Complexity(コリジョンの複雑度) という設定項目を、Project DefaultからUse Complex Collision As Simple(単純コリジョンとして複雑なコリジョンを使用) に変更します。
これで、メッシュの見た目通りの正確な当たり判定が生成されます。