手動Bakeと復元
このページは手動Bakeを初めて使う方のためのものです。 ほとんどの方は読まなくても構いません。5分ほどかかります。
まず: ほとんどの配布では必要ありません
| 状況 | 使うもの |
|---|---|
| VRChatへのアップロード | 自動最適化。何もしなくて構いません |
| WARUDOモッドのビルド | 自動最適化。何もしなくて構いません |
| 一般のPlayerビルド | 自動最適化。何もしなくて構いません |
| baked シェーダー・マテリアルアセットをファイルで渡す | 手動Bake |
| 最適化の結果をシーンで比較しながら承認する | 手動Bake |
| 自動フックを使えない外部パイプライン | 手動Bake |
自動最適化はビルドの間だけ変更して元に戻します。手動Bakeは新しいアセットを作り、Rendererのスロットを実際に変更します。
顔ノーマルのUV7、アウトラインのUV8、キャラクター高さのUV4はメッシュチャンネルのBakeです。このページのシェーダーBakeとは別物です。 → メッシュUVベイク
実行前の確認
- 元の
.mat、Animator Controller、AnimationClipをバージョン管理に記録します。 はじめにタブの1. 顔・スキンの対象指定と2. ルック選択 → 変換が終わっているか見ます。ルック・ベイクタブでプリセットとメッシュチャンネルベイクの結果を確認します。- ランタイムスクリプトが変更する値は、その行の ベイク除外(実行時変更) で印を付けます。
AnimationClipは自動的に分析します。別途印を付ける必要はありません。
ベイク時点でオフになっている機能はコードから取り除かれます。 レイヤー数、Alpha Mask、Emission、Occlusionがこれに該当します。 保存対象として検出されないと、あとでオンにしても動作しません。
Bakeの実行
ルック・ベイク タブの一番下の 軽量シェーダーベイク(エディター専用) を展開します。その中の 子MingToonを軽量シェーダーへベイク を押します。
Assets/StudioRaming/MingToonGeneratedの下にシェーダー・マテリアル・テクスチャ・Manifestが作られます。- Rendererの現在のスロットがbaked マテリアルに置き換わります。
- キャンセルしたり途中で失敗したりした場合は、その実行で作られたアセットとスロットの変更を元に戻します。
- Consoleの
MingToon bake:の要約で、処理したマテリアル数を確認します。
Prefabインスタンスで実行すると、変更はインスタンスのoverrideとして残ります。Prefabアセットに反映するには、Unityの Overrides > Apply All を別途使ってください。
復元
baked マテリアルを1つだけ戻す
baked マテリアルを選択し、インスペクター上部の 編集用マテリアルへ復元 を押します。
Manifestに記録された元のGUIDとRendererのスロットを使います。
プロジェクトの手動Bakeをすべて整理する
StudioRaming > MingToon > Advanced > Restore And Clean Bake Output を実行します。
このコマンドは順序を保証します。
- Manifestに従ってRendererのスロットを元の編集用マテリアルに戻します。
- 復元されたシーン・Prefabの参照を保存します。
- すべての記録済みスロットが実際の元を指しているか再確認します。
- 復元を確認できたあとにだけ、生成アセットを削除します。
復元や保存に失敗した場合、生成フォルダーは削除しません。失敗した項目をConsoleに残し、確認を求めます。
変換を元に戻す(MingToon以前のマテリアルへ) は変換前のシェーダーに戻します。
Restore And Clean Bake Output はbaked マテリアルから編集用のMingToonマテリアルに戻します。
復元ボタンが無効なとき
- ベイクのManifestが残っているか確認します。
- 元の編集用マテリアルのGUIDが生きているか確認します。
- Bake以降にRendererの階層やマテリアルスロットが変わっていないか確認します。
- Consoleの古い手動ベイクの警告を確認します。
テクスチャ処理のポリシー
手動Bakeはアップロードのプレビューです。そのためテクスチャのポリシーもアップロードと同じ値を使います。
基準はMingToonマネージャー 最適化 タブの アップロード時もテクスチャ再書き込み(オプトイン) 1つだけです。
損失なし(LosslessOnly) — 既定値
オプトインがオフのときの動作です。元のテクスチャのピクセルを書き直しません。
数学的に恒等なマスクの除去と、同じテクスチャ・同じUV式の共有だけを許可します。
レビュー済み高品質(ReviewedHighQuality)
オプトインをオンにしたときの動作です。サーフェス・ノーマルの平坦化とマスクの再パッキングを許可します。
読み取り、色空間、mipの再生成、プラットフォーム圧縮によってピクセルが変わることがあります。 baked 前後の結果を、目標のプラットフォームで直接比較してください。
マスクの再パッキングは複数のマスクを1つのテクスチャにまとめます。シェーダーのテクスチャサンプル数が必ず減るわけではありません。
ベイク除外(Keep Editable)
ベイク除外(実行時変更) はマテリアル単位の記録です。
AnimationClipは自動的に分析するため、印を付ける必要はありません。
ランタイムスクリプトが変更する値や、外部システムが名前でアクセスする値に使ってください。
グループ全体をまとめて外すには このグループ全体をベイク除外 を使います。
次へ
ビルド時の自動最適化 · VRChat · Warudo · トラブルシューティング