アセット制作の注意点:Textureやmeshの設定は何が最適?

Unity(デザイナー向け)

パーティクルやシェーダーの技術と同じくらい重要なのが、その「材料」となるアセット(素材)の作り方です。

素材の設定が適切でないと、どれだけ演出を作り込んでも「描画がジャリジャリする」「無駄にメモリを食う」「配置した時にサイズが合わない」といったトラブルに見舞われます。

エフェクト制作者が守るべき 【素材制作の黄金律】 を、テクスチャとメッシュに分けてシンプルに整理しました。


スポンサーリンク

テクスチャ制作の基本:GPUに優しく、美しく

テクスチャはエフェクトの「見た目」を決めます。設定次第で、描画品質とメモリ負荷が劇的に変わります。

① 「2のべき乗(Power of Two)」で作成する

  • 基本: 解像度は必ず 128, 256, 512, 1024, 2048 ピクセルのいずれかで作成します(縦横は違ってもOK。例:256×1024)。

  • 理由: GPUがメモリを効率的に管理できるだけでなく、**テクスチャ圧縮(ASTCやBC7など)**をかけるために必須の条件だからです。サイズがバラバラだと、非圧縮のままメモリを大量消費することになります。

② ミップマップ(Mipmaps)の使い分け

  • ミップマップとは: 遠くにある時に自動でボケた画像に差し替える機能です。

  • メリット: 遠景での「ジャリジャリしたノイズ(エイリアシング)」を防ぎ、周囲の背景と自然に馴染みます。

  • デメリット: データ量が約33%増加します。

  • 使い分け:

    • オン: 3D空間に配置し、カメラが近づいたり遠ざかったりする火花や煙。

    • オフ: UI用エフェクト、常に画面の最前面に出る全画面エフェクトなど。

③ インポート設定のポイント

  • Alpha Source: アルファチャンネルがある場合は Input Texture Alpha

  • Wrap Mode:

    • Repeat: テクスチャを並べてリピートさせる(スクロールさせるシェーダー用)。

    • Clamp: 端で止める。テクスチャの境界線を出したくない場合。


スポンサーリンク

メッシュ制作の基本:Unityとの親和性を高める

メッシュはエフェクトの「形」を決めます。DCCツール(BlenderやMaya)から書き出す際の設定が重要です。

① 書き出しの基本ルール

  • 座標系: Y-Up(Unityの標準)で書き出します。

  • 単位: **メートル(Scale 1.0)**で書き出します。

  • : エフェクトの進行方向を Z軸(奥) に向けておくと、Unityのパーティクルシステムに乗せた際に制御しやすくなります。

② インポート設定の「引き算」

エフェクト用のスタティックメッシュ(静止メッシュ)は、余計なデータを読み込まないのが鉄則です。

  • Animation: Import ConstraintsImport AnimationOFF(None)

  • Materials: Import MaterialsOFF

    • 理由: エフェクトでは専用のシェーダーを適用するため、DCCツール側のマテリアル情報は不要なオーバーヘッドになるからです。

③ 頂点カラーとUVの活用

  • 頂点カラー(Vertex Color): メッシュの頂点ごとに色や透明度を仕込みます。シェーダーで「先端だけ消す」「根元だけ光らせる」といった制御が可能になります。

  • UV展開: 0〜1の範囲に綺麗に収めるのが基本ですが、スクロールさせる場合は、テクスチャが歪まないようにまっすぐ展開(Rectangular UV)するのがコツです。


スポンサーリンク

用途別・アセットの最適化ガイド

項目 3D空間のパーティクル UI・HUD用エフェクト
テクスチャサイズ 256〜512(数が多いなら小さく) 512〜1024(クオリティ優先)
Mipmaps ON(ノイズ防止) OFF(くっきり見せる)
Mesh頂点数 少なめ(100〜500ポリゴン) 多めでも可(画面を占有するため)
透明部分 メッシュで削る(Mesh Trimming) 板ポリゴンでも可

スポンサーリンク

まとめ:素材作りは「後の工程」を楽にする

  • テクスチャ: 2のべき乗で作り、ミップマップで馴染ませ、圧縮で軽くする。

  • メッシュ: 余計なマテリアル・アニメ情報を捨て、Y-up・メートルで整合性を取る。

これらを守るだけで、Unity上での「なんか変だぞ?」という手戻りが激減します。
次は、このサイズの求め出し方についてまとめます。

タイトルとURLをコピーしました