【Unreal Engine】Nanite入門:岩の細かさを自動で調整し、見た目と負荷を確かめる

作成: 2026-02-07最終更新: 2026-09-06

Naniteで高精細なStatic Meshを扱う入門です。メッシュ・LOD・クラスタの意味から、有効化と可視化、同じ岩場での負荷比較まで解説。半透明や当たり判定との違いも図で整理します。

岩場を作っていると、近くで見た岩の割れ目まで残したくなります。一方で、同じ岩を遠くへ置けば、その割れ目はほとんど見えません。どの距離でも同じ細かさで描くのは、もったいない使い方です。

Nanite(ナナイト) は、画面で必要になる細かさに合わせて、モデルの形状を自動で調整する仕組みです。高精細な岩や建物を使いやすくし、遠く用の簡略モデルを用意する手間も減らせます。

この記事では、岩を1つ有効化して仕組みを観察し、それから小さな岩場で見た目と負荷を比較します。「Naniteで描けているか」と「ゲームが軽くなったか」 を、順に確かめていきましょう。

近くと遠くの岩で、描く形の細かさを選ぶNaniteのイメージ

この記事でわかること

  • メッシュ・LOD・クラスタの意味と、Naniteの役割
  • 1つのアセットでNaniteを有効にする手順
  • 可視化モードで、描かれる形の細かさを観察する方法
  • 同じ岩場で負荷を比べ、使いどころを判断する実践

Sponsored

Naniteは、描く形の細かさを選ぶ

メッシュ は、モデルの形を表す面の集まりです。UEでは基本的に三角形として描画されます。三角形が多く、細かな形を表せるモデルを ハイポリ(高ポリゴン) と呼びます。

例えば岩なら、大まかな丸い形だけのものより、割れ目や欠けまで形で作ったもののほうが、多くの三角形を使います。ただし、遠くから見れば、その違いは分からなくなります。

この見え方に合わせて細かさを変える考え方が LOD(Level of Detail) です。従来の方法では、高精細・中精細・低精細といった段階のメッシュを用意し、画面に映る大きさなどに応じて切り替えます。段階の作成には自動生成を使うこともあります。

モデル全体を切り替える従来LODと、クラスタごとに細かさを選ぶNaniteの比較

Naniteでは、メッシュを クラスタ(三角形の小さなまとまり) に分け、まとまりごとに使う細かさを選びます。岩が画面を大きく占めるなら細かく、遠くで小さく見えるなら粗くする。モデル全体を数段階のLODへ丸ごと差し替える方法とは、調整する単位が違います。

基準になるのは、画面を構成する小さな点、ピクセル でどこまで形の違いを表せるかです。通常の表示では変化が目立ちにくいように調整されますが、「どんなモデルでも形の変化が絶対に見えない」という保証ではありません。

覚えておきたいのは、元のメッシュが持つ三角形の数と、その場面で描く三角形の数は同じではない ことです。Naniteは細部のデータを必要に応じて読み込むため、保存先にはSSDが推奨されます。

Naniteは、簡単なモデルへ細部を自動で彫り込む機能ではありません。元の岩が滑らかなら、有効化するだけで割れ目が増えるわけではありません。

まず1つの岩で有効にする

今回は Static Mesh を使います。岩や建物のように、骨のアニメーションを使わない形状のアセットです。「Static」という名前でも、配置した物体を移動・回転させることはできます。

まず、表面に凹凸のある岩を1つ用意しましょう。手持ちのモデルで構いません。素材を取り込むところから始める場合は、Fabの記事を参照してください。ここでは、Opaque(不透明)のマテリアルを使う岩 を選びます。

Windowsで試す場合は、Nanite対応のGPU(描画用の処理装置)とドライバー、DirectX 12・Shader Model 6を使う設定が前提です。古いプロジェクトでは設定が違う場合があるため、「Project Settings」のWindows・Rendering項目を確認します。Shader Modelは、GPUで使える描画機能の世代を表す設定です。

アセットを開いて、有効化する

  1. コンテンツブラウザで岩のStatic Meshを複製し、練習用に SM_Rock_NaniteTest と名付ける。
  2. そのアセットをダブルクリックしてStatic Mesh Editorを開く。
  3. 詳細パネルの「Nanite Settings」で「Enable Nanite Support」をオンにする。
  4. 「Apply Changes」で適用し、処理が終わったら保存する。
  5. 練習用のレベルへ、そのアセットをドラッグして1つ置く。

まず、岩が元の色と形で表示されることを確かめます。後半では可視化モードへ切り替え、Naniteが使われているかも確認します。

変更するのは、レベルへ置いた岩のActorではなく、元になるメッシュのアセットです。 同じアセットを参照する岩は、すべてその設定を使います。複製した練習用アセットなら、もとの岩を使っている別のレベルへ変更を広げずに試せます。

SM_Rock_NaniteTestのNanite設定を、同じアセットを参照する3つの岩が使う

ほかの有効化方法もある

1つで確認できたら、取り込み時や一括操作も使えます。

インポート時、コンテンツブラウザの一括選択、アセット単体の編集という3つの有効化方法
タイミング操作
新しくインポートするときインポート設定の「Build Nanite」をオン
すでにある複数のアセットをまとめて変えるときコンテンツブラウザで選択し、右クリック →「Nanite」→「Enable」
1つの設定を見ながら変えるときStatic Mesh Editorの「Enable Nanite Support」→適用・保存

有効化にはデータを準備する時間がかかります。大量のアセットへ広げる前に、まずこの1種類が正しく表示されることを確かめましょう。

どんなメッシュから試すとよいか

最初の候補は、細かい形を持つ岩・石像・建物の装飾 です。近くでは細部を見せ、遠くでは簡略化できるので、Naniteの役割を観察しやすくなります。同じ岩を何個も置く場面も候補です。

細かい形の岩や装飾を先に試し、単純な箱などは効果を比べて判断する

一方、もともと三角形が少ない箱や、単純な形で空を覆うスカイスフィアでは、削減できる仕事が少ないことがあります。画面に大きく映る物体だから不向き、1つしかないから無意味、とは限りません。 大きく映る精巧な石像と、数枚の面でできた壁では、元の仕事量が違います。

また、岩や壁が奥の物体を隠すことを 遮蔽(しゃへい) といいます。Naniteは隠れた形状を描画から外す処理も行います。ただし、細かな葉が何層も重なるような場面は、隠れている部分を省きにくくなります。

「有効化できるか」を確認し、候補を1種類選んで比較する。この順で進めると、最初から全部のアセットを変更する必要はありません。

半透明や、揺れる葉は分けて考える

形状が対応していても、表面の描き方で条件が変わります。マテリアルの Blend Mode は、表面を不透明にするか、切り抜くか、透けさせるかを決める設定です。

Opaqueは不透明、Maskedは形で切り抜き、Translucentは透ける描き方
描き方Naniteで扱うとき
Opaque(不透明)岩・石像・壁今回の練習向き
Masked(切り抜き)葉の形だけを残した板対応。ただし、隙間のある面を大量に重ねる場面は負荷も確認する
Translucent(半透明)透けるガラスこのBlend Modeは非対応。半透明部分はNaniteを使わない構成にする

Maskedは「半分透ける」のではなく、描く部分と、切り抜いて描かない部分を分ける 方法です。葉を使ったモデルでも、Maskedの板なのか、葉の輪郭まで形で作っているのかで、必要な処理が変わります。

非対応のマテリアルでは、標準のマテリアルへ置き換わり、Output Logへ警告が出る場合があります。「消えたら必ず半透明」と決めつけず、警告と設定を確かめてください。窓を含む建物なら、壁はNanite、ガラスは別の非Naniteメッシュに分けられます。

風で葉を揺らす World Position Offset は、面の角にある点(頂点)を動かして、形を変える処理です。これにも対応範囲や負荷の注意点があります。初回は揺れない岩で確認し、草木やキャラクターへ広げるときに、それぞれの機能を確認すると学びやすくなります。

Sponsored

実践:岩場で見た目と負荷を比べる

岩の割れ目を残しながら、小さな岩場を作ります。先ほどの SM_Rock_NaniteTest を使い、1つで描画を確認 → 数を増やして負荷を比較 の順に進めましょう。

1. まず、Naniteで描かれているかを見る

レベルのビューポートで、通常「Lit」と表示されているビューモードのメニューを開きます。「Nanite Visualization」→「Mask」を選んでください。

緑の物体はNanite、赤の物体は非Nanite を表します。岩が緑になれば、有効化したアセットがNaniteで描かれています。床が赤いままでも構いません。床まで同時に変更する必要はありません。

次は「Triangles」に切り替え、カメラを岩へ近づけたり、離したりします。これは通常の色や質感の代わりに、描かれる三角形を観察する表示です。

MaskでNaniteの適用を、Trianglesで三角形を、Clustersで三角形のまとまりを観察する
表示何を見るか
Mask対象の岩がNaniteで描かれているか
Trianglesカメラを動かしたとき、岩の表面の分割がどう変わるか
Clusters三角形をまとめて扱う単位が、どう分かれているか

近くでは割れ目まで細かく分かれ、離れると、その場面には不要な細かさが省かれます。岩全体で使う三角形が減っても、画面上で三角形が大きくなるとは限りません。 岩自体も小さく映るため、単に「遠くほど網目が大きければ成功」とは判断しないでください。

最後に「Lit」へ戻し、同じようにカメラを動かします。可視化では変化していた分割が、普段の表示ではどれくらい気になるか。岩の輪郭や大きな割れ目を目印に比べてみましょう。

図は表示内容を説明するためのイメージです。実際の配色や細かな分割は、モデルとUEのバージョンによって変わります。

2. 同じ岩を少しずつ増やす

  1. 岩を選び、Ctrl + W で複製して移動する。
  2. 通路の両脇へ、まず合計10個ほど置く。
  3. 動作に余裕があれば20〜50個へ増やし、近くと遠くの岩が同時に見える場所を選ぶ。

増やすのはレベル上の配置で、アセットを毎回複製する必要はありません。同じ1つのメッシュを参照する岩場 にしておけば、有効化の切り替えを1か所で行えます。

3. 比較する条件をそろえる

見た目は「Lit」に戻し、可視化表示を終えてから測ります。カメラを動かさず、ビューポートの大きさ・解像度・品質設定・岩の数をそろえます。シェーダーのコンパイルや初回の読み込みが落ち着くまで待ってください。

エディタ下部のコンソール入力欄などから stat unit を実行すると、処理時間が表示されます。単位の ms(ミリ秒) は1秒の1000分の1です。

項目表す時間
Frameゲームの1フレームにかかった時間
GPUGPUが描画に使った時間
DrawCPU側で描画の処理を進めるスレッドの時間
Gameゲームの処理を進めるスレッドの時間

スレッドは、処理を進める担当の流れです。ここでは DrawもCPU側の値で、GPUの描画時間そのものではない と区別できれば十分です。これらの仕事は並行して進むため、値を全部足してFrameを求めるものでもありません。

同じカメラ位置、解像度、物体数でNaniteのオンとオフの処理時間と見た目を比較する

4. 同じアセットのオン・オフを比べる

次の表へ、自分の環境で出た値を記録します。数値は少し揺れるので、同じ位置で数秒観察し、おおよその範囲を残すと比較しやすくなります。

設定FrameGPUDrawGame岩の輪郭・割れ目
Naniteオン記録記録記録記録記録
Naniteオフ記録記録記録記録記録
  1. Naniteオンの状態を記録する。
  2. Static Mesh Editorで「Enable Nanite Support」をオフにし、適用・保存する。
  3. レベルへ戻り、同じ条件で記録する。
  4. もう一度オンへ戻して適用・保存し、同じ傾向になるか確かめる。

オフにしたときの動作が重すぎるなら、いったん岩の数を減らし、両方を同じ数で測り直します。最初から大量に置く必要はありません。

素材に通常描画用のLODが用意されていれば、オフではそれも使われます。設定によって描かれる形の精度も変わるので、速度だけでなく見た目も記録して判断します。

5. 数値と見た目を合わせて判断する

Frameが短くなり、必要な形が保たれていれば、その岩場ではよい改善です。ただし、Drawだけが短くなっても、Gameなど別の処理が長ければ、ゲーム全体のFrameは変わらないことがあります。

このように、全体の速さを制限している部分を ボトルネック と呼びます。Naniteが有効になったかはMaskで、ゲームが軽くなったかはFrameを中心に判断します。緑になったこと自体が、速度向上の証明ではありません。

差が小さければ、「失敗」と決めずに記録を残します。元の形状が単純な場合や、マテリアル・光・ゲーム処理が主な負荷になっている場合もあります。詳しい切り分けはパフォーマンス計測の記事で扱います。最終的な採用判断は、遊んでもらう端末とゲームの実行状態でも確認しましょう。

うまくいかないとき

症状確認するところ
Naniteの設定が見つからないレベル上のActorではなく、Static Meshのアセットを開いているか
Maskで岩が緑にならない対象アセット、有効化後の適用・保存、Nanite対応の動作環境
色や質感がおかしくなったマテリアルのBlend Mode、Output Logの警告
三角形の変化が分かりにくい元のメッシュが十分に細かいか。Trianglesで近づき、離して比べているか
数値が大きく揺れるカメラや解像度が変わっていないか。コンパイルや読み込みが続いていないか
Drawが下がったのに滑らかさが変わらないFrame・GPU・Gameも比較する。FPSの上限設定などで差が見えない場合もある
Sponsored

おまけ:描画以外にも残る仕事

当たり判定には、別の形を使うことがある

Fallback Mesh(フォールバックメッシュ) は、Naniteの詳細な形をそのまま使わない処理のための、代わりのメッシュです。Nanite非対応の描画や、設定によっては、メッシュの面を使う当たり判定(Complex Collision)などで使われます。

Naniteの詳細な描画用形状と、別の処理で代わりに使うFallback Meshの概念図

そのため、見た目の細かな割れ目と、当たり判定の形は一致するとは限りません。キャラクターが乗る岩なら、歩いたときに浮いたり引っかかったりしないかも確認します。SimpleとComplexの使い分けも参考にしてください。

なお、コンソールの r.Nanite 0 は、通常はFallback Meshを描く状態へ切り替えます。元の高精細なメッシュをNaniteなしで描く比較と、同じ条件になるとは限りません。 今回、アセット側の有効化を切り替えたのは、この違いを避けるためです。

マテリアルや容量の確認も続ける

Naniteが主に工夫するのは、形状を描く処理です。重いマテリアル、複雑な光の計算、ゲームロジックまでまとめて軽くするわけではありません。表面の処理はマテリアル入門と分けて考えましょう。

データ容量も「有効にすると一律に何倍」とは決まりません。Naniteの圧縮、元の形状、Fallback Mesh、テクスチャを含め、プロジェクトで確認します。高精細なモデルを扱いやすくなっても、素材を無制限に増やせるわけではありません。

草木やキャラクターは、次の段階へ

骨のアニメーションでキャラクターを動かすSkeletal Meshや、草木向けの機能は、UEのバージョンによって対応範囲が変わります。岩でできたことを、そのまま髪・服・風で揺れる森へ当てはめず、対象機能の説明と計測を確認してから広げます。

慣れてきたら「Nanite Visualization」→「Overdraw」で、形状が重なって処理される部分を探す方法もあります。Overdraw(オーバードロー) は、画面の同じ場所で重複する描画の仕事です。密集した葉や、ほぼ同じ位置に重ねた面は、次に観察する題材になります。

まとめ

Naniteは、画面に必要な形の細かさを選び、高精細なメッシュを扱いやすくする仕組みです。元のモデルの三角形を、どの場面でも全部描くわけではありません。

まずは不透明な岩を1つ有効化し、Maskで適用、Trianglesで分割、Litで見た目を確かめます。それから同じ岩場のFrame・GPU・Draw・Gameを比べれば、仕組みの理解と、自分のゲームでの採用判断をつなげられます。

参考:Naniteの概要Naniteの可視化・Fallback MeshStat Commands

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