タイトル: ジオメトリ
SEOタイトル: UE5のジオメトリとは|頂点・辺・面の基礎とNanite・モデリング
Unreal Engine 5(UE5)におけるジオメトリ(Geometry)とは、3Dモデルの形状を構成する頂点・辺・面などの幾何情報のことです。3D空間上の点(頂点)とそれらを結ぶ線(辺)、囲まれた領域(面)の集まりによって、キャラクター・建物・地形といったあらゆる立体の「かたち」が定義されます。色や質感を担うマテリアル/テクスチャとは区別され、ジオメトリはあくまで形状そのものを表すデータを指す点が出発点になります。
| この記事の要点 |
|---|
|
ジオメトリとは何か(メッシュの形状データ)
ジオメトリは、3Dオブジェクトの「形」を数値として表したデータの総称です。最小単位は3D空間内の座標を持つ頂点で、頂点どうしを結んだ辺、辺で囲まれた面が積み重なることで立体の表面が形作られます。こうした面が多数集まって一つの表面を構成したものがメッシュと呼ばれ、ゲーム内で目にするモデルの多くはメッシュとして表現されています。
ここで重要なのは、ジオメトリが扱うのは原則として「形状」であり、表面の色・反射・質感といった見た目はマテリアルやテクスチャが担う、という役割分担です。同じ形状のメッシュに異なるマテリアルを割り当てれば見た目が変わりますが、形状そのものはジオメトリ側のデータに依存します。形状と見た目を切り分けて考えると、最適化やトラブル解決の見通しが立てやすくなります。
ジオメトリの構成要素
ジオメトリを理解するうえで押さえておきたい基本要素を整理します。これらはUE5に限らず多くの3Dツールで共通する概念であり、UE5のメッシュもこの考え方の上に成り立っています。
| 要素 | 英語表記 | 役割の概要 |
|---|---|---|
| 頂点 | Vertex(複数形 Vertices) | 3D空間内の座標を持つ点。形状を定義する最小単位で、位置のほか法線やUVなどの属性を併せ持つことが多い。 |
| 辺 | Edge | 2つの頂点を結ぶ線分。面の境界を形成し、形状の稜線(エッジ)を決める。 |
| 面 | Face | 3つ以上の頂点(辺)で囲まれた平面領域。表面を構成する単位で、向き(表裏)を持つ。 |
| ポリゴン | Polygon | 面のうち多角形のもの。レンダリングでは三角形(トライアングル)に分割されて処理されるのが一般的。 |
| 法線 | Normal | 面や頂点が向いている方向を示すベクトル。ライティングや陰影の計算に用いられ、向きが乱れると表示が破綻しやすい。 |
| UV | UV Coordinate | テクスチャを表面のどこに貼るかを決める2D座標。UVの配置がテクスチャの見え方を左右する。 |
ポリゴンは三角形か四角形(クアッド)で構成されることが多く、最終的なリアルタイム描画では三角形に分割(トライアンギュレーション)して処理されるのが一般的です。1つのモデルが持つポリゴン数(多くは三角形数で表現)は、形状の細かさとレンダリング負荷の両方に直結するため、後述するパフォーマンスの観点で重要な指標になります。
法線とUVは、形状そのものではないものの頂点に紐づくジオメトリ関連のデータであり、見た目の品質を大きく左右します。法線は陰影の計算に、UVはテクスチャやライトマップの貼り付けに使われるため、形状が正しくてもこれらが不適切だと意図した見た目になりません。
UE5でのジオメトリの扱い(Static Mesh / Skeletal Mesh / Nanite)
UE5では、ジオメトリは主に2種類のメッシュアセットとして扱われます。用途に応じて使い分けるのが基本です。
- Static Mesh(静的メッシュ):形状が変形しないメッシュ。建物・小物・地形パーツなど、骨格による変形を必要としないオブジェクトに広く使われます。インスタンシングやLODと組み合わせて効率的に大量配置できます。
- Skeletal Mesh(スケルタルメッシュ):内部に骨格(スケルトン/ボーン)を持ち、各頂点が骨に重み付け(スキニング)されることでアニメーションに合わせて変形するメッシュ。キャラクターやクリーチャーなど、動きのあるオブジェクトに用いられます。
さらにUE5を特徴づける技術がNanite(ナナイト)です。Naniteは「仮想化ジオメトリ(Virtualized Geometry)」と呼ばれる仕組みで、非常に高密度なメッシュであっても、画面に映る解像度に応じて描画するポリゴン数を動的に調整します。公式ドキュメントによれば、Naniteは主にStatic Meshで用いられ、この場合は従来のような手動LODを用意せず、画面解像度に応じてポリゴン数を自動でスケールさせる点が特徴です。Geometry Collection(破壊表現で使われる形状の集合)にも対応します。
Skeletal Meshへの対応はバージョンを追って拡張が進められている領域です。Nanite対応の前提条件や、対応できないケースはバージョンによって変化するため、利用にあたっては使用中のエンジンバージョンの公式ドキュメントを確認することをおすすめします。Naniteは動作にDirectX 12(Shader Model 6)など一定のハードウェア/API要件を伴う点にも留意してください。
Geometry Scripting / Modeling Mode(エディタ内モデリング)
UE5には、外部の3Dモデリングソフトに頼らずエディタ内でジオメトリを作成・編集できる機能が備わっています。代表的なのがModeling Mode(モデリングモード)とGeometry Scriptingです。
- Modeling Mode:エディタのモード切り替えから利用できる、アーティスト向けのモデリングツール群です。公式ドキュメントによれば、トポロジー編集(押し出しや結合などの形状操作)、UVの作成、複数マテリアルの割り当て、コリジョン(当たり判定)の編集、テクスチャベイクといったワークフローを提供します。簡単な形状の作成や、取り込んだメッシュの微調整をエンジン内で完結させたい場合に役立ちます。
- Geometry Scripting:Blueprint(ブループリント)やPythonからメッシュ形状を生成・編集できる関数ライブラリ群を提供するプラグインです。エディタ用ユーティリティとしてメッシュの解析・加工ツールを自作したり、アクターのBlueprint内でプロシージャル(手続き的)にオブジェクトを生成したりといった、自動化・高度なワークフローに向いています。
両者は共通のメッシュデータ構造を基盤にしており、手作業によるエディタ内モデリングと、スクリプトによるプログラム的なメッシュ操作を組み合わせて運用できる設計になっています。これにより、形状の試作から自動生成までをUE5内で柔軟に扱えます。
BSPブラシ(旧来のジオメトリ)との関係
「ジオメトリ」という語は、UE5ではもう一つの意味でも使われます。それがBSPブラシ(Geometry Brush、ジオメトリブラシ)です。BSP(Binary Space Partitioning)ブラシは、エディタ内で立方体や球などの基本形状を直接置いて空間を区切る、古くからの簡易的なジオメトリ作成手段です。
かつてはレベル制作の主要な構成要素でしたが、現在その役割はより効率的なStatic Meshへと移っています。とはいえBSPブラシは、レベルの大まかなスケールやレイアウト、動線を素早く検証するプロトタイピング(ブロックアウト)の用途では今も有用です。固まった形状は「Convert To Static Mesh」によってStatic Meshへ変換でき、ブロックアウトから本制作へ移行する流れがとられます。前述のメッシュ系ジオメトリと、このBSPブラシは別物である点を区別しておくと混乱を避けられます。
ジオメトリの主な用途
ジオメトリは3D制作のあらゆる場面で土台となります。代表的な用途は次のとおりです。
- キャラクター・クリーチャー:Skeletal Meshとして骨格と組み合わせ、アニメーションで動かす対象の形状を定義します。
- 環境・背景:建物、地形パーツ、小物などをStatic Meshとして配置し、シーンの世界観を構築します。
- レベルのブロックアウト:BSPブラシやModeling Modeの簡易形状で、本制作前にスケールや動線を検証します。
- コリジョン(当たり判定):表示用ジオメトリとは別に、物理・衝突判定用の簡略化した形状を設定する場面でも形状データが関わります。
- プロシージャル生成:Geometry Scriptingにより、地形や構造物などをルールに基づいて自動生成します。
ジオメトリ運用の落とし穴
ジオメトリは品質とパフォーマンスの両面に直結するため、扱い方を誤ると表示の破綻や処理負荷の増大を招きます。とくに注意したい点を整理します。
| 注意点 | 起こりやすい問題と考え方 |
|---|---|
| ポリゴン数とパフォーマンス | ポリゴン(三角形)数が多いほど形状は精密になる一方、描画負荷が増します。必要な精度と負荷のバランスをとり、LODやインスタンシングなどの最適化を併用することが基本です。Naniteを使う場合でも、対応条件や向き不向きを理解したうえで適用範囲を判断します。 |
| Naniteの対応条件 | Naniteには対応するメッシュ種別・マテリアルやハードウェア要件があり、すべてのジオメトリで使えるわけではありません。対応状況はバージョンによって変わるため、過信せず使用バージョンの公式ドキュメントで前提条件を確認することが望まれます。 |
| 法線の乱れ | 法線の向きが不正だと、陰影が反転して見えたり面が黒く/透けて見えたりするなど、形状が正しくても表示が破綻します。インポート時の法線設定や面の表裏には注意が必要です。 |
| UVの不備 | UVが重なったり歪んだりしていると、テクスチャが意図せず引き伸ばされたり、ライトマップを使う場合にライティングのアーティファクト(不具合)が生じたりします。テクスチャ用とライトマップ用でUVを分けて整える運用が一般的です。 |
| スケール・単位の不一致 | 外部ソフトから取り込む際、スケールや単位、座標軸の向きが合っていないと、サイズや向きがずれて取り込まれます。インポート設定を確認し、必要に応じて統一することが重要です。 |
よくある質問(FAQ)
Q. ジオメトリとメッシュは同じものですか?
A. 厳密には別の概念です。ジオメトリは頂点・辺・面といった形状を構成する幾何情報の総称で、メッシュはそれらの面が集まって一つの表面を成したデータ(オブジェクト)を指します。日常的にはほぼ同義で使われる場面もありますが、ジオメトリのほうがより広い「形状データ」を表す語だと捉えると整理しやすくなります。
Q. ポリゴン数は多ければ多いほど良いのでしょうか?
A. 一概にそうとは言えません。ポリゴン数が多いほど形状は滑らかで精密になりますが、その分レンダリング負荷が増えます。求める品質と動作環境のバランスを見ながら、LODやインスタンシング、必要に応じてNaniteといった最適化手法を組み合わせて判断するのが現実的です。
Q. 外部ソフトで作ったモデルを使うべきか、UE5内で作るべきか迷っています。
A. 用途次第です。本格的なキャラクターや複雑なアセットはBlenderやMaya、3ds Maxなどの専用ソフトで作り込んでインポートするのが一般的です。一方、簡単な形状の作成や取り込んだメッシュの微調整、レベルのブロックアウトであれば、Modeling ModeなどUE5のエディタ内ツールで完結させると効率的です。両者を併用する運用も広く行われています。