【VRChat/Unity】アバターをベイクしてアトラス化する

・アバターワールドなどでアバターを最適化して展示したい
・イベントへの入稿でマテリアル数を減らさないといけない
・アバターペデスタル用にアバターを展示したい

そんな人向けの記事です。
ペデスタル設定などは含まれません。

注意
・透過テクスチャは非透過になります


事前準備


・Mesh Baker Free
https://assetstore.unity.com/packages/tools/modeling/mesh-baker-free-31895?aid=1011lGbg&utm_source=aff

以上のものをダウンロードしてインポートしてください。


メッシュをベイクする

アバターにポーズを付けてからメッシュをベイクすることでボーンを抜きます。
展示する際はアニメーションで動かしたりしないのであればこの作業を行うことを推奨します。

まずは、アバターをHierarchyに配置してポーズを取らせます。


アバター全体を選択してBake Meshesを実行

実行するとメッセージが3つ表示されます。


異なるマテリアルのオブジェクトを分離する?
リソースを削除する?
ベイク結果

Baked Meshがベイクされた物になります。


マテリアル統合 テクスチャのアトラス化

これを行うとポーズは初期ポーズになるので、ポーズを付けてマテリアル統合とアトラル化を行いたい場合は先にポーズを取ってからメッシュをベイクしてください。


GameObjectからCreate Other→Mesh Baker→TextureBaker and Mech BakerをクリックしてHierarchyにTextureBakerを配置します。


Hierarchy上で先程配置したTextureBakerを選択するとInspectorに設定が表示されるので、Open Tools For Adding Objectsをクリックします。


ここではマテリアルを自動割り当てする為にターゲットを指定します。

ターゲットを選択状態にしてから
Search For Meshes To AddタブからAdd Selected Meshes To Targetを実行します。


先程のTextureBakerのInspectorに指定したオブジェクトが割り当てられていればok

この指定が空欄だったり重複しているとエラーが出るのでベイク時にエラーが出るならSizeを0にしてからもう一度再指定してください。


Output設定は今回はAtlasです。

統合後のマテリアルを用意する必要があるのでCreate Empty Assets For Combined Materialをクリックして、マテリアルの保存先を指定して統合用マテリアルを生成します。

テクスチャも同じ場所に生成されるので、フォルダを作って指定することを推奨します。


下の方にテクスチャサイズを指定する項目などがあります。
最大4k指定なら4096です。

問題なければBake Materials into Combined Materialsを実行してベイクします。


問題なければ進行ステータスが表示されます。

作業が進行しない場合、エラーなどは警告音などもなくUnityのウィンドウの下の方に赤文字で表示されるのでクリックして確認してください。


Prefabへベイクした結果を出力する

ここでバラバラのメッシュを1つに統合し、Atlas化したテクスチャを1つのマテリアルに統合します。

MeshBakerを選択します。


InspectorからMB3の設定画面内のOutput設定を確認します。

今回はPrefabへ出力するのでOutput設定のドロップダウンメニューからBake Info Prefabを選択します。

続いて出力先として必要なプレハブを作るので、Create Empty Prefabをクリックして保存先を指定します。
先程作成したマテリアルと同じフォルダにまとめておくと楽です。


下の方にBakeボタンがあるのでベイクします。


エラーが出て何もアクションがない場合はこちらの項目にチェックが入っているか確認してください。


プレハブを配置してシーンで確認して問題なければ完成です。

この記事が気に入ったらサポートをしてみませんか?