2026年5月28日木曜日

Geometry Scriptで書き出したStaticMeshにコリジョン(当たり判定)を設定する方法

 [UnrealEngine5.7.4][Windows11]で確認 

書き出した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を書き出し終えている場合は、アセット自体の設定を変更するだけで直ります。

  1. コンテンツブラウザで、生成された StaticMeshアセットをダブルクリック してエディタを開きます。

  2. 画面上部のメニューにある 「Collision(コリジョン)」 をクリックします。

  3. 「Simple Collision(単純コリジョン)」 にチェックを入れて、現在当たり判定が本当にあるか確認します(何も緑色の線が表示されなければ、コリジョンが無い状態です)。

■ コリジョンを生成する設定

そのままStaticMeshエディタの右側にある Details(詳細)パネル をスクロールし、「Collision」 セクションを探します。

  • 簡単な形状(箱や球など)の場合: 上部メニューの CollisionAdd Box Simplified Collision などを選んで、簡易的な当たり判定をつけます。

  • 複雑な形状(凹凸のある地形やくり抜いた壁など)の場合: 詳細パネルにある Collision Complexity(コリジョンの複雑度) という設定項目を、Project Default から Use Complex Collision As Simple(単純コリジョンとして複雑なコリジョンを使用) に変更します。

これで、メッシュの見た目通りの正確な当たり判定が生成されます。