アトラス化する奴の使い方
「Unityだけでテクスチャのアトラス化ができるすごい奴」は、三田村綯夜氏が Booth にて販売している、テクスチャアトラスを作成するツールです。
ここではテクスチャアトラスによるマテリアル結合方法を解説します。
以下は 2021/10/21 時点、 Unity 2019.4.31f1 での情報です。
URL
アトラス化を行うツールは『アトラス化する奴(ver.2.2.0)』です。以下、手順では ver.2.2.0 を元に使い方を説明します。
注意点
アトラス化する奴でできること
- A. 複数のテクスチャを1枚に結合し、変化したUVを元のメッシュに反映する
- 変更されるのはUV1の側で、UV2は変更されず元メッシュの値がコピーされます
- メッシュは変更せずテクスチャのみを1枚に結合する (メインのテクスチャとは別にマスクテクスチャなどを結合する際に便利です)
アトラス化する奴ではできないこと
- 複数のメッシュを1つに結合する (別売りの『メッシュを結合する奴』で結合できます)
- マテリアルを結合する (マテリアルはアトラス化後に設定する必要があります)
ツールは結合前オブジェクトを一部変更します
- MeshRenderer/SkinnedMeshRendererのMeshプロパティの値を変更するため、結合前に GameObject のバックアップを取ると良いでしょう。
- FBXなどMesh本体とTextureは結合前のものを変更せず、結合後のものを出力します。
手順
A. 複数のテクスチャを1枚に結合し、変化したUVを元のメッシュに反映する
A-1. 結合する Texture を含む MeshRenderer / SkinnedMeshRenderer を複製する
結合前の GameObject を複製します。ここでは複製前の GameObject に対してアトラス化を行ってみます。
複製前の GameObject をバックアップとして、複製後の GameObject を処理しても構いません。以下の手順は適宜読み替えてください。バックアップはいらないという方は、複製を行わなくても大丈夫です。
Hierarchy は以下のようになります。BoothWall
が元のオブジェクト、BoothWall (1)
が複製したオブジェクトです。
A-2. ツールwindowを開く
GameObject → Naya_Tools → Utility → atlas化するやつを選んでツールを開いてください。
下の画面が出てきます。
A-3. 処理するオブジェクトの基本設定
出力するテクスチャ名を適宜付けて、処理するオブジェクトに複製前のオブジェクトを指定します。ベーステクスチャは最初は未指定でも構いません。
また『アトラス化する奴(ver.2.1.0)』から出力テクスチャーサイズの変更ができるようになりました。8192(8K)、4096(4K)、2048(2K)、1024(1K)、512の5種類から選択できるので、画像データの容量削減等にご活用ください。
A-4. テクスチャの配置
分割数については 分割数
の値を調整してください。一枚ずつ大きさを選ぶ
も併用すると良いです。
並べ終わったものが下図になります。
A-5. サブメッシュ(≒マテリアルの種類)の設定
テクスチャの左側にあるプルダウンの数字が同じものどうしが同一サブメッシュとして出力されます。そのため同じマテリアルにする予定のテクスチャごとに、同じ番号を設定してください。
ここでは不透明Opaqueと半透明Fadeの2種類のマテリアルへと整理することを想定し、不透明に 0
、半透明に 1
を設定しました。
テクスチャが指定されていないマテリアルについて
またテクスチャが指定されていないマテリアル(マテリアルカラーだけを指定など)はマテリアルカラーの単色が配置されることがあります。
A-6. 処理する
『追加する』ボタンを押すと、設定した内容で処理が行われます。処理には十数秒ほど時間がかかります。
テクスチャは Assets/Naya_Tools/Utility/atlas
に出力されます。
メッシュファイルはアセット内の Assets/Naya_Tools/Utility/Meshs
に出力されます。
これらの生成されたファイルは入稿に必要のため、各自の入稿フォルダ内に移動してください。
処理した GameObject の Mesh プロパティが、生成されたメッシュファイルを指すように変更されます。
A-7. マテリアルの整理
Materials
の値はツールでは変更されません。メッシュファイルの側は手順A-5で指定したとおり整理されているため、処理直後はマテリアルとメッシュが不一致の状態になっています。
Size
を変更しマテリアルを再設定してください。元のマテリアルを複製してアトラス化後のマテリアルとして設定すると良いでしょう。
アトラス化後のマテリアルには、アトラス化したテクスチャを指定してください。メッシュ側のUVは既に変換済みのため、テクスチャを指定するとメッシュとテクスチャのUVが一致し、見た目が正しくなるはずです。
以上です!