ツクロウヤ

Unityによるゲーム開発記

【Photoshop】2乗テクスチャのAtlas化ツール

モデルなどを作成していて、負荷軽減のために複数のメッシュ、マテリアル、テクスチャを統合してDrawCall数を抑えるといったことが多々ありますが、バージョンが遥か昔から開発中止されたものやMaya用のものしか見当たらなかったので、3dsMax用が欲しいなということで作成しました。
Unityでもそういったアセットがありますが、同一座標の頂点がマージされていなかったり、DCCツール側で出来ればエンジンに依存しないという点もあり作成しようかと。

今回の紹介するツールではテクスチャの統合だけを分離した機能です。
下の画像のようなことだけをやります。
f:id:ArtAwA:20170918200852p:plain
この機能はエフェクトの素材を個別に作成しておき、後で統合する際などにも使用できます。(もうちょっと改良した方がよいけど...)
この後記載する3dsmax側のツールと併用することでメッシュ、マテリアルも統合することが出来ます。

スクリプトの概要

f:id:ArtAwA:20170918194448j:plain

メインの機能としては「2の乗数テクスチャをAtlas化するツール」です。
「Atlasサイズを最適化」にチェックを入れるとTextureSizeは無視され、最適なサイズで出力されます。
「UV座標用ファイルを出力」にチェックを入れると3dsmax用のファイルが出力されます。
出力されるファイルはAtlas化する素材ファイルと同階層に「export」フォルダを作成し、その中に出力されます。

使い方

今までのスクリプトはGistなどに貼り付けていましたが、今回は汎用処理などを分け、複数のファイルがあるため、zipで落とす形にしました。

スクリプトの準備】

TextureAtlasMaker.zip - Google ドライブ

Common.zip - Google ドライブ

  1. 上記の右上にある「ダウンロード」ボタンからスクリプトをダウンロード
  2. zipファイルを解凍する
  3. スクリプト用のフォルダに「ArtAwA」のフォルダを格納
    ※フォルダの階層は変えない→念のため他のファイルと競合させないため

格納場所例:
 「Mac」/Application/PhotoshopCC2017/Presets/Scripts/
 「Win」C:¥Program Files¥Adobe¥Adobe PhotoshopCC2017¥Presets¥Scripts

スクリプトの実行】

  1. 全てのドキュメントを閉じた状態にする(しないと警告)
  2. 「ファイル」→「スクリプト」→「TextureAtlasMaker」
  3. FilePathの参照より「統合したいファイルのあるフォルダ」を選択
  4. 必要であれば他パラメータも設定し「実行」

今後の追加予定

・マージン機能
 マージンを入れないとUVが境界にピッタリくるもので横の色を拾う可能性があるが、入れてしまうと隙間が無駄に出来るため、どうするか検討中。
 UVが境界にピッタリくるもののみ3dsmax側のツールで見た目に影響が少ない範囲で微妙にスケールを掛けるのもありかも。

・追加配置機能
 現状だと統合した画像の並び順がサイズが大きい>名前順なので、素材を追加した際に配置が一定ではありません。モデルの方だけであれば特に要らないかなと思いましたが、エフェクト素材の統合ツールとしても使うため、位置が一定じゃないと何かと不便...(UnityのParticleでSlice指定で特定のエフェクトを選択している場合など)
 場合によっては冗長になるため、エフェクト用のAtlasツールとして別途作成するかも。

次回は3dsMax側のAtlasツールの紹介をしようと思います。

それでは今回はこの辺で
(´・ω・`*)ノシ