「同じようなテクスチャを1枚にまとめるべきか、用途ごとにサイズを分けて作るべきか」
これはVFX制作の現場で常に議論される、「ディスク容量」と「実行負荷(ランタイム性能)」のトレードオフそのものです。
このパズルを解く鍵は、「ミップマップ(Mipmaps)」という自動最適化の仕組みを正しく理解し、その上でプラットフォームごとの「攻め所」を見極めることにあります。
実務で迷わないための、テクスチャ・マテリアル設計の決定版ガイドをお届けします。
究極のジレンマ:1枚にまとめるか、サイズ違いを作るか?
データ総量を減らすなら「1枚を使い回す」のが正解に見えますが、実行時のメモリ帯域を考えると「小さいものは小さいテクスチャにする」のが定説……。
この矛盾を解消するのがミップマップです。
基本戦略:3D空間なら「大は小を兼ねる」
結論から言うと、3D空間に配置するエフェクトに関しては、「高品質な大きいテクスチャを1枚作り、小さなエフェクトにもそれを使い回す」 のが最も賢い選択です。
-
理由: ミップマップがあるからです。512pxのテクスチャ1枚を、巨大な爆発にも、足元の小さな砂埃にも共有してOKです。
-
メリット:
-
管理コストの低下: 素材管理がシンプルになる。
-
ドローコールのバッチング: 同じテクスチャ(マテリアル)を使っていれば、Unityが描画命令を一つにまとめてくれる可能性が高まります。
-
ミップマップの正体:なぜ「大は小を兼ねる」のか?
ミップマップは単なる「遠景用のボケ画像」ではありません。
内部的には、GPUが「テクセル密度」を監視し、最適な解像度を秒速で選び続ける守護神 です。
ミップマップは「距離」だけを見ていない
ミップマップが画像を切り替える基準は、距離ではなく 「画面上の1ピクセルに、テクスチャの何ピクセル(テクセル)を押し込もうとしているか?」 という勾配(Gradient)です。
勾配(Gradient)の計算式
GPUは、隣り合ったピクセルのテクスチャ座標(UV)がどれだけ変化したかを計算しています。

この値が大きければ大きいほど、GPUは「おっと、今の描画サイズに対してテクスチャが細かすぎる(縮小されている)」と判断し、自動的に1段低い(ボケた)ミップレベルに切り替えます。
ミップレベルの選択に影響する5つの要素
-
カメラとの距離: 遠いほど縮小される。
-
TransformのScale: 縮小設定ならミップマップが効く。
-
Particle SystemのStart Size / Size over Lifetime: 描画されるポリゴンが小さければ、自動的にボケた画像が選ばれる。
-
画面解像度: モニターの1ピクセルが小さいほど、より精細なレベルが選ばれる。
-
テクスチャのTiling: 1枚の板に10回タイルさせれば、1ピクセルあたりのUV変化が激しくなり、ミップマップが適用されます。
用途別・テクスチャサイズの設計図
ミップマップが「自動でサボってくれる」ことを踏まえつつ、それでも「別データ」として切り出すべき境界線を引いてみましょう。
| カテゴリ | 標準サイズ | Mipmaps | 戦略 |
| 目立つFX(必殺技) | 512px ~ 1024px | ON | 最高の品質を基準にする。 |
| 汎用・小FX(火花等) | 128px ~ 256px | ON | 基本は「目立つFX」の素材を使い回す。 |
| 画面全域(砂嵐・雨) | 512px ~ 1024px | ON | タイリングが目立たない中解像度。 |
| UI(アイコン・演出) | 256px ~ 512px | OFF | 絶対に共有不可。 くっきり見せる専用設計。 |
なぜUIは「独立」させるのか?
UIエフェクトは、常に1:1に近い解像度で表示されるため、Mipmapをオフにします。
3D用のMipmapオン設定のテクスチャをUIに流用すると、メモリ容量を33%無駄に消費した上に、エッジがボケて見えるという最悪の結果を招くからです。
モバイル vs コンシューマ:最適化の攻め所
モバイル(中〜高スペック)
-
課題: メモリ帯域(バス)が細いため、テクスチャの「枚数」に敏感。
-
解決策: “Channel Packing(チャンネルパッキング)” が必須です。
1枚のRGBAテクスチャの各チャンネルに、R=炎、G=煙、B=火花……と情報を詰め込みます。
マテリアルを共通化し、シェーダーで読み出すチャンネルを変えることで、メモリ帯域とドローコールの両方を節約します。
コンシューマ(PS5 / PC)
-
課題: 4K環境での「解像度不足(ボケ)」がプレイヤーの没入感を削ぐ。
-
解決策: 解像度のメリハリ。目立つキャラエフェクトには2048pxを奢る代わりに、背景環境用のエフェクトには徹底的にミップマップを効かせ、テクスチャのインポート設定で解像度を制限します。
マテリアルの「階級制度」
テクスチャを共通化しても、マテリアル(シェーダー)が重ければ意味がありません。
-
マスターシェーダー戦略: 1つの高機能シェーダーを使い回すのは開発効率が良いですが、計算が複雑になりがちです。
-
階級の切り分け:
-
Class A: 屈折、ディゾルブ、高度なライティング(ボス・自キャラ用)。
-
Class B: 汎用加算、アルファブレンド、簡単なノイズ(雑魚・環境用)。
-
Class C: 単色、頂点カラーのみ(大量のパーティクル用)。
-
結論:賢いエフェクト制作の3箇条
-
3D空間なら「大は小を兼ねる」: Mipmapの勾配計算を信じて、中〜大規模FX用の解像度に統一して共有。ディスク容量の増加よりも、描画バッチングの恩恵を取る。
-
UIは「聖域」: 3D用アセットとは設定もデータも完全に分ける。
-
計算の重心を意識する: モバイルならテクスチャのサンプリング回数を、コンシューマならピクセルの見た目の精細さを優先して設計する。

