補助ツール
このページのツールは、特定の互換性の問題や保守のための作業に使います。通常の Real Sweat System の導入では、どちらのツールも必要ありません。
どちらのメニューも Sweat Base Module を導入している場合に使用できます。
RealSweatSystem Clothing Fix
Clothing Fix は、Setup後にテッセレーションの水滴が不透明な衣装を突き抜けて見える場合だけ使用してください。水滴の立体感を使わない場合は、通常このツールは必要ありません。
Unity上部メニューの CookiTools → RealSweatSystem → Clothing Fix、または Setup ウィンドウの トラブルシューティング タブ(汗が服から透けて見える > 衣装遮蔽補正を開く)から開きます。
おすすめの手順
- 先に Real Sweat System の Setup を完了します。
- Clothing Fix で対象アバターを選択します。
- 対象の衣装オブジェクトをドロップ領域に入れます。複数をまとめて入れることができ、非アクティブを含む子階層の SkinnedMeshRenderer と MeshRenderer を自動収集し、重複対象は1回だけ処理します。
- 変更を適用する前に、Render Queue のプレビューを確認します。
- マテリアル複製で適用(推奨) を選びます。
- Play Mode と、使う予定のワールドやライティングでアバターを確認します。
- マテリアル複製で適用(推奨) は必要なマテリアルだけを生成フォルダーへ複製し、選択したRendererスロットだけを置き換えます。元アセットとそれを使う他の衣装は変更しません。
- 元マテリアルへ直接適用 は元の .mat のレンダーキューを変更します。同じマテリアルを使う衣装、アバター、Prefab、Sceneのすべてに反映されるため、確認ダイアログを表示します。
- どちらの方式も汗以下のレンダーキューだけを 汗 + 1 に変更します。すでに汗より高いマテリアルは複製も編集もしません。
- 元マテリアルへ直接適用 は、ボディも使うマテリアル(インストール時に2349に下げたものを含む)のレンダーキューを変更しません。変更すると汗がボディに隠れるためです。
- 対象にPoiyomi Lockマテリアルがある場合は先に確認します。承認後にLockを一時解除して処理し、元データと必要な複製を自動で再Lockします。
追跡中の衣装変更を復元 と RealSweatSystem の [削除] は、追跡中のスロットと元のレンダーキューを復元します。適用と復元は1つのUndoグループにまとめられ、Ctrl+Zで戻せます。未使用の生成コピーも、UndoとScene/Prefabの安全性を保つためキャッシュに保持されます。
描画順の変更により、透明、Cutout、デカール、アウトライン、重ねマテリアルの見え方やバッチングが変わる場合があります。プレビューを確認し、適用後にアバターを確認してください。
Rest Vertex Data Baker(上級)
Real Sweat System に必要な Rest Position、Rest Normal、Rest Tangent のデータは Setup が自動で作成します。通常の導入では Rest Vertex Data Baker を直接使いません。2.0.0 の見た目は Rest データが有効な場所にだけ汗を描き、ベイクの後にメッシュが変わった場合は、次のビルド(アップロード)時に最終メッシュから再ベイクします。
CookiTools → RealSweatSystem → Rest Vertex Data Baker (Advanced)、または汗マテリアルのインスペクターの 詳細設定 > Rest データ にある Rest Vertex Data Baker を開く から開きます。
この上級者向けツールは、次の場合だけ使用してください。
- Setup後に最終Body Meshを別のMeshへ置き換えた
- 対応するCustom MaterialへRest Dataを割り当てたい
- Rest Dataの復旧または診断が必要
基本手順
- 対象Rendererと互換性のあるMaterialを選択します。
- 1. メッシュを解析 を実行し、結果を確認します。
- 2. ベイクして割り当て を実行します。このPCに Base モジュールの購入認証が必要です。
- 3. 割り当てデータを検証 を実行し、割り当てたデータが対象と一致することを確認します。
- アップロード前に結果を確認します。
Meshを交換または更新した場合は、そのたびに再度Bakeしてください。
対象は有効なsharedMeshを持つSkinnedMeshRendererです。Meshを読み取れない場合はFBX Import Settingsの Read/Write Enabled を一時的に有効にし、Bake完了後に戻せます。
以前のベイクを上書き は同じ名前の生成済みRest Assetを置き換えます。以前のデータを残す必要がある場合は、先にBackupを作成してください。
Bakerは元のFBX、RendererのsharedMesh、UV、BlendShape、他のMaterialを変更しません。
互換性のないRendererやMaterialを選択したまま実行しないでください。通常のSetupで問題なく動作している場合は、Bakerを追加実行しないでください。
旧版 v1.0.x の参考手順 — 新しいFace対象には使用しない
v1.1 以降、この手動手順は Setup の実験的な追加 SkinnedMeshRenderer 対象に置き換わりました。新しくFaceを対象にする場合は、Setup ウィンドウの 詳細設定 でFaceのRenderer/Elementを追加してください。追跡されるマテリアル、Restデータ、マスク、アニメーション、修復・削除の支援を受けられます。新しい導入では以下の手動手順を使用しないでください。
以下の手順は、v1.0.x で手動追加したFaceのマテリアルを識別・ロールバックするためだけに残しています。[インストール / 更新] を押すと、生成Clipへの手動編集が上書きされる場合があります。
Faceへ汗Materialだけを追加すると、生成AnimationはBodyのHierarchy Pathだけを制御するため、Face側の汗が流れ続ける場合があります。また、FaceとBodyにはMeshごとに異なるRest Vertex Dataが必要なので、同じ汗Materialを共有できません。
この手順を使用できる条件
次の操作を自分で戻せる上級者だけを対象とします。
- UnityのRenderer
MaterialsArrayとSubMeshの対応を確認できる - Animation WindowでProperty、Binding Type、Hierarchy Pathを追加・削除できる
- Face専用MaterialとRest Assetの参照関係を管理できる
- SetupまたはOptimizer実行後に、手動変更が消えたか判定できる
手動手順
-
通常どおりBodyへReal Sweat SystemをSetupし、先にBody、Menu、自動モードが正常に動くことを確認します。
-
Bodyに生成されたNo Tessellation版の汗Materialを複製し、Face専用MaterialとしてReal Sweat Systemの生成Folder外へ保存します。BodyとFaceで同じ汗Materialを共有しないでください。
-
Face RendererのInspectorで
Materialsの元の Size を記録し、Sizeを1増やします。新しく作られた最後のElementにFace専用Materialを割り当てます。既存のFace Materialを置き換えないでください。 -
Rest Vertex Data Baker を開き、Target RendererにFace、Target MaterialにFace専用Materialを指定します。1. メッシュを解析、2. ベイクして割り当て、3. 割り当てデータを検証 の順に実行します。
-
Real Sweat Systemの生成Folderにある次のAnimation Clipを開きます。
RealSweat_Off.animRealSweat_LocalOnlyHidden.animRealSweat_Mid.animRealSweat_On.anim
-
各ClipにあるBody Renderer用の次のMaterial Curveを、値を変えずにFace Rendererへも追加します。
material._DropletAmountmaterial._SweatBuildUpmaterial._RuntimeWarmup
Animation Curve Bindingは次の条件にします。
- Type:
SkinnedMeshRenderer - Path: Avatar RootからFace Rendererまでの相対Hierarchy Path
- Property: 上記と同じ3つのMaterial Property
例としてHierarchyが
AvatarRoot/Armature/Body/Faceの場合、Binding PathはArmature/Body/Faceです。Avatar Root自身の名前は含めません。Body CurveのPathをそのまま複製せず、Face Rendererの実際の相対Pathへ変更してください。 -
手動モードと自動モードの両方で、Off、0%、50%、100%を確認します。
手動で元に戻す
- Play Modeを終了し、不確かな手順があればBackupへ戻します。
- [インストール / 更新] を押して、手動のFace Curveを含まない標準のClipを再作成します。
- Face Rendererの Materials > Size を1減らし、最後に追加したElementだけを外します。元のFace Materialは外さないでください。
- Face専用Materialと手動でベイクしたRest Assetは、どのRendererやMaterialからも参照されていないことを確認してから削除します。
- アップロード前に、対応するBodyだけの導入をもう一度確認します。
既知の制限
- この旧手動手順のFace側はNo Tessellation固定です。水滴の立体感 の切替と 相手側を低負荷 はFaceへ適用されません。実験的な追加対象として設定したFaceは、管理されたTess/No Tessと相手側を低負荷の経路に参加します。
- Faceが複数SubMeshの場合、追加した最後のMaterialが目的の肌SubMeshへ描画されない場合があります。
- [インストール / 更新] または FX に適用 を押すと生成Clipが再作成され、手動追加したFace Curveは削除されます。通常設定をすべて完了した最後の段階でFace Curveを追加し、どちらかを再実行した場合は同じ作業をやり直してください。
- Tuningが追跡するMaterialはBody側だけです。汗の品質、スタイル、水滴サイズなどを後から変更しても、Face専用Materialへ自動同期されない場合があります。
- Face RendererのHierarchy Path変更、Mesh交換、Mesh Optimizer、Mesh結合後はAnimation BindingまたはRest Dataが無効になる場合があります。
- Face Tracking、Animator、他の改変ツールとの全組み合わせは検証していません。