【Unreal Engine】UE5の当たり判定を整える:Simple CollisionとComplex Collision

作成: 2025-12-12最終更新: 2026-09-08

見た目では通れそうなのに、見えない壁に止められる。Static Meshの当たり判定を表示し、SimpleとComplexの違い、Collision Complexityの選び方、岩の判定をAuto Convexで整える手順を解説します。

岩のくぼみへ降りたつもりなのに、足が少し浮いている。通れそうな隙間で、見えない壁に止められる。そんなときは、岩の見た目に重ねて「当たる形」を表示してみましょう。

UEでは、画面へ描く形と、衝突を調べる形を分けて扱えます。 岩の細かな凹凸をすべて判定に使う場合もあれば、箱などの形で大まかに包む場合もあります。この違いが分かると、見えない壁を直す場所も見つけやすくなります。

今回の題材は、岩や小物によく使う Static Mesh(形を変形させずに扱うモデル)です。SimpleとComplexの形を見比べ、複製した岩の当たり判定を整えましょう。設定の名前を覚えるだけでなく、自分のゲームでどの形が必要かを判断できるようにしていきます。

くぼみのある岩を箱1個で包むと、見えない箱の上に立って足元が浮くことがある

この記事でわかること

  • 見た目と当たり判定のずれを調べる方法
  • Simple、Complex、凸包の違い
  • Collision ComplexityとTrace Complexの役割
  • Auto Convexで形を作り、触れる場所を調整する手順

Sponsored

見た目の形と、当たる形を見比べる

Collision(コリジョン)は、物がぶつかるか、重なっているかを調べるための当たり判定です。たとえば岩に近づいたキャラクターがどこで止まるかは、画面の色や模様ではなく、判定に使う形で決まります。

箱1個で岩を包むと、その箱がくぼみの上まで覆ってしまうことがあります。キャラクターは箱の上で止まるため、見た目では宙に立っているように見えます。反対に、当たる形が表面より内側にあると、体の一部が岩へ埋まって見えます。

同じ岩を見た目、箱1個のSimple、三角形のComplexで見比べる

まずは形を表示します。

  1. コンテンツブラウザでStatic Meshアセットをダブルクリックする
  2. 開いたStatic Meshエディタのビューポートで「Show」を開く
  3. 「Simple Collision」をオンにする
  4. 次にSimpleの表示をオフにし、「Complex Collision」をオンにして比べる

版によってはツールバーのCollisionボタンからも表示を切り替えられます。表示色ではなく、SimpleかComplexかの項目名で見分けます。形を追加・削除する「Collision」メニューと、表示のオン・オフは別の操作です。

Simpleをオンにしても輪郭が出ない場合は、Simpleの形がまだ用意されていない可能性があります。「見えないので問題なし」とせず、次の節で形の違いを確認しましょう。

Simple Collision:単純な形を組み合わせる

Simple Collisionは、箱(Box)、球(Sphere)、カプセル(Capsule)、凸包(Convex Hull)などで作る判定です。木箱なら箱、ボールなら球というように、少ない形で必要な部分を表せます。

Simple Collisionに使う箱・球・カプセル・凸包。凸包1個ではへこみを作れない

凸包は、へこみのない形です。上から見た輪郭に輪ゴムをかけると、外側の出っ張りを結ぶ線になり、くぼみの中までは入りません。その包み方を立体にしたもの、と考えると分かりやすくなります。

ただし、Simpleではくぼみを一切作れない、という意味ではありません。左右の出っ張りと底を別の形に分ければ、その間に空間を残せます。入口のある建物なら、壁を左右と上に分けることで、入口を箱で塞がずに済みます。

門全体を包む箱1個は入口を塞ぐが、左右と上の3個に分けると通れる

大切なのは、見た目の細かさより、プレイヤーが触れる場所に形を合わせることです。細かな傷まで判定へ写す必要はなくても、通ってほしい入口を塞いでしまってはいけません。

Complex Collision:三角形で表面を調べる

Complex Collisionは、メッシュの三角形を使う判定です。メッシュは小さな三角形をつなげて立体の表面を表しているので、その表面に沿って接触位置を調べられます。

たとえば岩へ照準を向け、当たった場所に印を置くなら、大きな箱の表面より岩の表面に置きたいはずです。このような、表面の形が結果に関わる判定で候補になります。

ここでいうトレースは、線や決まった形を伸ばし、「途中に何があるか」を調べる処理です。Line Traceの記事で、照準から線を飛ばす例を作れます。

Line Traceの「Trace Complex」をオンにするとComplexを使うよう要求し、オフならSimpleを要求します。ただし、最終的に使われる形は、次のメッシュ側の設定にも左右されます。トレースだから自動でComplexになるわけではありません。

Simple And Complexの場合、Trace Complexの指定によって箱と岩のどちらの表面を調べるかが変わる

三角形を使う判定は、少数の単純形状と比べてメモリや計算が増えることがあります。とはいえ、Simpleにも形の数があり、判定を行う回数や範囲も違います。「Complexという名前だから必ず重い」と決めつけず、必要な精度から選びます。

Sponsored

Collision Complexityの4設定

Static Meshエディタの詳細パネルで「Collision Complexity」を探します。これは、Simpleを使いたい要求と、Complexを使いたい要求に、どの形を渡すかを決める設定です。

設定Simpleを要求したときComplexを要求したとき
Project Defaultプロジェクト設定に従うプロジェクト設定に従う
Simple And ComplexSimpleComplex
Use Simple Collision As ComplexSimpleSimple
Use Complex Collision As SimpleComplexComplex

Simple And Complexなら、Line TraceのTrace Complexを切り替えて、箱などの形と三角形の形を使い分けられます。Use Simple Collision As Complexでは、オンにしてもSimpleが使われます。

Project Defaultは、プロジェクトの「Physics」設定にあるDefault Shape Complexityを引き継ぎます。プロジェクトによって変更されている場合があるため、既定の中身を確かめたいときは、そちらも確認します。

Collision Complexityの4設定が、SimpleとComplexそれぞれの要求にどの形を渡すか

Complexを使うかは、形と動かし方で選ぶ

動かさない複雑な足場などでは、Use Complex Collision As Simpleも選択肢です。表面に沿って立てることが大切で、単純な形では合わせにくい場合に検討できます。

ただし、そのメッシュ自身をSimulate Physicsで落としたり転がしたりする用途には使えません。 別のSimple Collisionを持つ物理オブジェクトが、その足場へぶつかることはできます。足場自身を動かす話と、足場に物が当たる話を分けて考えます。

次の実践では、まずSimpleの形を直す方法を試します。形を整えれば、Complexへ切り替えなくても、見えない壁や足元のずれを改善できるためです。

実践:岩の当たり判定を整える

歩けるキャラクターと床のある練習レベルを使います。Enhanced Inputの入門のBP_InputPracticeでも、Third Personテンプレートでも構いません。

題材は岩のStatic Meshです。Starter Contentがある場合は、コンテンツブラウザでSM_Rockを検索できます。ない場合は、すでに用意した凹凸のある岩で試せます。ここでは、元の当たり判定がどんな形でも比較を始められるよう、複製側へ箱を1個作ります。

1. 練習用にアセットを複製する

コンテンツブラウザで岩のStatic Meshを複製し、SM_RockCollisionPracticeと名付けます。レベルにはこの複製を置いてください。

レベル上の岩を複製するだけでは、同じStatic Meshアセットを使い続けます。 アセット側の判定を変えると、それを使うほかの岩にも反映されるので、今回はコンテンツブラウザ側で複製します。

コンテンツブラウザで練習用アセットを複製してから、レベルへ配置する

配置した岩はMobilityをStatic、Simulate Physicsをオフ、Collision PresetsをBlockAllにします。岩の下側を床に埋め、周囲から近づける位置へ置きます。ScaleはX・Y・Zを同じ値にし、キャラクターと比べながら大きさを揃えます。

2. 箱1個とのずれを観察する

SM_RockCollisionPracticeを開き、Collision ComplexityをSimple And Complexにします。今回はプロジェクトの既定値によらず、Simpleの形を使う条件を揃えるためです。

  1. 「Collision」→「Remove Collision」で既存のSimpleを取り除く
  2. 「Collision」→「Add Box Simplified Collision」で箱を1個加える
  3. 「Show」→「Simple Collision」で箱の輪郭を表示する
  4. アセットを保存する

Remove Collisionで消すのはSimpleの形です。画面へ描く岩そのものを消す操作ではありません。

表示された箱と岩を回して見比べ、箱のほうが外へ出ている場所を1か所探します。そこは、見た目の表面へ届く前にキャラクターが止まりやすい場所です。

Playで岩の側面へ近づき、どこで止まるか確かめます。上へ乗れる大きさなら、ジャンプして足元も見てください。箱の形とほぼ合う岩では、大きな違いが出ない場合もあります。浮く症状を無理に探すより、まず輪郭と接触位置を対応させます。

3. Auto Convexで岩をいくつかの形へ分ける

Playを止め、同じアセットへ戻ります。比較用の箱をRemove Collisionで取り除いてから、「Collision」→「Auto Convex Collision」を開きます。

Auto Convexは、メッシュをいくつかの凸形状に分けて、Simple Collisionを作るツールです。1つの包みでは塞いでいた空間も、分け方によって残せるようになります。

項目今回試す値何を調整するか
Hull Count8生成する凸包の数の上限
Max Hull Verts161つの凸包に使う頂点数の上限
Hull Precision50000元の形を調べる細かさ

頂点は、形の角になる点です。Max Hull Vertsを増やすと1つの形を細かく表せますが、まずは上の値で結果を見ます。これらは今回の出発点で、すべての岩に合う正解値ではありません。

「Apply」を押し、生成が終わるまで待ちます。Simple Collisionを表示し、さきほど箱がはみ出していた場所を同じ角度から見ます。Hull Countが8でも、必ず8個になるわけではありません。

ここで比べるのは、形の数より触れたい場所へ輪郭が近づいたかです。変化を確認してから保存し、もう一度Playで同じ側面や足場を試します。

岩の断面で見た分割の考え方。複数の凸形状へ分けると、中央のくぼみを残せる

4. はみ出す部分と、足りない部分を分けて直す

自動生成で十分に合ったなら、そこで調整を終えて構いません。まだ一部だけずれる場合は、その場所を直します。

Simple Collisionの輪郭をクリックすると、移動などの操作ハンドルが出ます。Wで移動、Eで回転、Rで拡縮へ切り替えられます。

はみ出している場合は、該当する凸包を選び、移動・拡縮するか、必要に応じてDelete Selected Collisionで取り除きます。大きすぎる形の上へ別の箱を足しても、はみ出しは消えません。

必要な場所に形が足りない場合は、Add Box Simplified Collisionなどで形を足します。追加直後は岩全体を包む形になるので、選択した形を縮め、移動・回転して必要な場所へ合わせます。

編集しているのが岩の見た目ではなく、判定用の輪郭であることを確認してください。入口やくぼみでは、左右や底を別々の形で支え、通す空間を塞がないようにします。

5. 同じ場所で、もう一度確かめる

アセットを保存し、最初と同じ方向から岩へ近づきます。

  • 側面に近づいたとき、不自然に手前で止まらない
  • 足場にしたい面へ乗ったとき、目立つ浮きや埋まりがない
  • 通す予定の隙間が、判定の形で塞がれていない
  • 足場や壁として必要な場所を、すり抜けない

見た目と完全に同じ形を目指す必要はありません。ゲーム中に触れる場所が、遊びに支障のない形になれば成功です。

うまく合わないときのチェック

症状次に見るところ
Simpleを表示しても何も出ない形を追加したか、別のStatic Meshを開いていないか
見えない壁が残る大きな箱や凸包が残っていないか。足すだけでなく、余分な形を小さくしたか
Auto Convex後もくぼみが塞がるHull Countを少し増やして比較するか、そこを手作業の形に分ける
岩を完全にすり抜ける配置した岩のCollision Presets、使っているアセット、Simpleの有無を確認する
岩側の形は合うのに狭い場所を通れないキャラクター側のCapsuleComponentの幅と高さを確認する
表面に届くが、急な斜面を登れない形のずれに加え、Character Movementの歩ける角度を確認する
Simpleを直しても接触位置が変わらないComplexityがUse Complex Collision As Simpleになっていないか
ほかの岩まで変わったレベル上の配置だけを複製し、同じStatic Meshを編集していないか

Characterの移動は、通常CapsuleComponentというカプセル形で判定します。岩側が正しくても、通路がそのカプセルより狭ければ通れません。Character Movementの記事では、速度・ジャンプ・斜面など、動く側の設定を扱います。

Sponsored

おまけ:精度と負荷を考えるときに

形の話と、当たる相手の話を分ける

この記事で整えたのは、判定に使う形です。「プレイヤーを止める」「弾は通す」といった相手ごとの反応は、Collision Presetやチャンネルで決めます。

形を直しても期待した相手へ反応しない場合は、コリジョンチャンネルとプロファイルへ進みます。形と反応を順に確認すると、むやみに精度を上げずに原因を探せます。

当たり判定のLODは、画面のLODと分けて考える

LODは、同じモデルを細かさの違う形で用意する仕組みです。Static MeshのComplex Collisionでは「LOD For Collision」で使うLODを指定できます。常にLOD 0だけ、というわけではありません。

ただし、描画が遠くで粗いLODへ切り替わっても、当たり判定が距離に応じて同じように切り替わるわけではありません。画面へ描く量と、当たり判定に使う形は別に確認します。

Naniteでは、Complex用にFallback Meshという別の簡略形状が使われます。見た目の細部と判定が合わないときは、Complexでも使われている形を確認します。

LandscapeはStatic Meshとは別の地形機能で、当たり判定にも専用の設定があります。地形の作り方は、Landscapeの記事で扱います。

軽くしたいときは、実際の場面で比べる

Simpleでも凸包を増やしすぎれば、判定する形が増えます。一方、Complexの負荷も、三角形の数だけでなく、何を何回調べるかで変わります。

負荷が気になる場合は、同じレベル、同じ移動経路、同じ判定回数で設定を変えて比べます。画面が重い原因を当たり判定と決めつけず、Unreal Insightsなどで処理時間を調べます。

遠くにあるだけで毎回すべての三角形を総当たりするわけでも、画面から隠れれば判定が消えるわけでもありません。必要な場所の形と、そもそも判定が必要な対象を整理することから始めます。

まとめ

当たり判定で迷ったら、最初に見た目へ輪郭を重ね、どこがずれているかを見ます。Simpleは単純な形の組み合わせ、Complexは三角形による判定です。どちらを使うかは、メッシュ側と判定する側の指定を合わせて考えます。

岩なら、箱1個の形を確認し、Auto Convexで分け、必要な場所だけ手で整えるところまで試してみてください。見えない壁の正体が分かれば、自分のゲームでどこを直せばよいかも判断しやすくなります。

参考:SimpleとComplexStatic MeshエディタAuto Convex CollisionNaniteの技術詳細

Unreal Engine このセクションのノート98