ツクロウヤ

Unityによるゲーム開発記やUnity,3dsMaxのTipsなどを記載していきます。

【3dsmax】メッシュ&UVのAtlas化ツール

今回は前回に引き続きAtlas化ツールの紹介です。

今回のツールは「モデルなどを作成していて、負荷軽減のために複数のメッシュ、マテリアル、テクスチャを統合してDrawCall数を抑える」といった際に使用するツールです。

このツールは今回紹介する3dsmax側のツールとテクスチャをAtlas化するPhotoshopのツールで分かれています。

テクスチャをAtlas化する際は以下の記事のツールを使用してください。

スクリプト概要

f:id:ArtAwA:20170919224206j:plain

3dsmax側では「メッシュの統合」「UV座標の変更」「Atlas化したテクスチャの割当」を行います。
具体的には以下のような感じでメッシュが統合されてUV座標が変更されます。

f:id:ArtAwA:20170919224225p:plain

使い方

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

スクリプトの準備】

MeshBaker.zip - Google ドライブ

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

 格納場所例:
  「Win」:D:\Program Files\Autodesk\3ds Max 2017\scripts

スクリプトの実行】

  1. 上部タブのスクリプトより「スクリプトを起動」で「MeshBaker.ms」を選択
  2. 「PSD - FilePath」「CSV - FilePath」に「TextureAtlasmMaker(Photoshop)」で作成したファイルを設定
  3. Atlas化したいオブジェクトを選択してApply

※応答なしの表示が出るかもしれませんが、アタッチなどの重い処理があるため遅くなっているだけです。

今後の追加予定

・同一座標頂点の連結処理(有無は任意)

背景などをタイリングしている場合はよくありますが、隣接した頂点は連結してしまった方が負荷が下がるので、その処理を追加しようと思います。ただ、連結したくない場合もあるため、チェックボックスで有無を判定しようかと。

・テクスチャの処理もまとめて3dsmax側から呼び出せるように

テクスチャをAtlas化するツールは別の利用用途があるため分離しておいてもいいのですが、出来れば3dsmax側からで完結したいため、3dsmax側からPhotoshopのツールを呼び出す方法を検討中。DOS経由でPhotoshopの起動はいけるみたいですが、インストール場所が一定ではないですし、パラメータを渡してPhotoshopスクリプトを起動する方法が分からないため模索中です。

・処理の高速化

手作業でやるよりは圧倒的に早いですが、応答なしに見えたり、遅めなので調整。
現状100個くらいをまとめても動きが止まることはなさそうでした。

 

本当は今回GIFを取ろうと思いましたが、ScreenToGifやLICEcapなどで取ったら色がガビガビになっていたので、諦めました... お手軽に取れるなぁと一瞬思ったのに...

改修は一旦後回しで自主制作の開発に戻ろうかと思います。
それでは今回はこの辺で
(´・ω・`*)ノシ