Utility

UnityでVRChatアバターを改変していると、複雑な繰り返し作業を減らして本来のアバター制作やカスタマイズに集中したい場面が多くあります。 さまざまなアドオンを通して、より素早く思い通りのスタイルに仕上げられるようなツールを制作しています。
ColorGenerator

ColorGeneratorは、ベースカラーに微妙な変化が生じたことで、影のカラーなどさまざまな色を再計算する必要がある場合に役立つツールです。
ベースカラーを基準として、それぞれの色がどの程度異なるのかを記録し、基準となる色が変わった場合でも再計算することで、元の色に近いカラーを算出します。
起動方法
- Unityエディター上部のメニューから Tools → Macchiato → Utility → ColorGenerator を実行します。
使用方法
ソースマテリアルからカラーを抽出するか、6種類のベースおよびシェーディングカラーを設定します。- プロファイルで
新規ボタンを押して、プロファイルを生成します。 - プロファイルにベースカラーを基準とした各カラーの差分が記録されます。
- ベースカラー(または影のカラー)を変更した後、下にある
再計算ボタンを押すと、そのカラーを基準として残りのカラーが計算されます。 アバターから適用するマテリアルのリストを取得するか、マテリアル欄に適用するマテリアルを設定します。適用ボタンを押してカラーを適用します。- 結果が気に入らない場合は
元に戻すを押して復元します。
TIP
必要に応じてOklabグラデーション計算ボタンを押すことで、ベースカラーと3段階の影の間の色を知覚的に計算できます。
GUIDUtility

Unityでは多くのアセットがGUIDによって管理されているため、そのGUIDがどのアセットを指しているのか確認する必要がある場面が多くあります。
また、GUIDを利用することで、テキストエディターからアセットを素早く一括置換・編集することもできます。
アセットのGUIDをクリップボードにコピー
- UnityエディターのProjectタブでアセットを選択し、右クリックメニューから Macchiato → Asset → Get GUID を実行します。
(複数のアセットのGUIDをコピーした場合は、複数行でコピーされます。)
起動方法
- Unityエディター上部のメニューから Tools → Macchiato → Utility → GUIDUtility を実行します。
アセットのパスを検索
- 空欄にGUIDを入力して
参照ボタンを押します。
MeshRendererUtility
Modular Avatarなどのアドオンによって、レンダラーの設定を直接操作する必要は少なくなりましたが、制作者にとっては、意図したレンダラー設定で配布することがとても重要です。このツールでは、そうした設定をワンクリックで行えるようにサポートします。
起動方法
- Unityエディター上部のメニューから Tools → Macchiato → Utility → MeshRenderer のサブメニューから機能を選択します。
WARNING
以下のすべての機能は、Unityシーン内にあるすべてのアバターに対して実行されます。
Update Renderer Setting
以下の5つの機能を一度に実行します。
Adjust Bound Box
SkinnedMeshRenderのBounds設定を、Center [0, 0, 0]、Extent [1, 1, 1]に統一します。
Assign AnchorOverride
アバターの基本AnchorOverrideまたはHeadにAnchorOverrideGameObjectを作成し、すべてのSkinnedMeshRenderおよびMeshRendererに割り当てます。
Change Probes Settings
すべてのSkinnedMeshRenderおよびMeshRendererのProbes設定を、Light ProbesはBlend Probes、Reflection ProbesはOffに設定します。
Change to Two-Sided Shadow
テニススカートのような片面でモデリングされたモデルでは、裏面に影が描画されないビジュアル上の問題が発生する場合があります。
この設定によって、このような問題を解決できます。すべてのSkinnedMeshRenderおよびMeshRendererのCast ShadowsをTwo Sidedに設定します。
Update MA Mesh Settings
アバター内のすべてのMA Mesh Settingsを変更し、設定モードを親で指定されている時は継承、それ以外では設定に切り替えます。また、対象アバターのAnchorOverrideとBoundsの設定に変更します。
PhysBoneController
アバターや衣装など、さまざまなアセットを制作していると、多数のPhysBoneコンポーネントを扱うことになります。このツールでは、さまざまなプロパティを一括で変更できるようにサポートします。
起動方法
- Unityエディター上部のメニューから Tools → Macchiato → Utility → PhysBone のサブメニューから機能を選択します。
WARNING
以下のすべての機能は、Unityシーン内にあるすべてのPhysBoneコンポーネントに対して実行されます。
Animated, FoldOut, Gizmo, Immobile, Reset, Version
- PhysBoneコンポーネントの該当するプロパティを一括で適用します。
- Debugでは、各コンポーネントがどのような値を持っているかをConsoleにレポートします。
Collider
Adjust Humanoid Collider
Hips、Spine、Chest、Head、UpperArm、LowerArm、Hand、IndexDistal、UpperLegにPhysBone Colliderコンポーネントを作成し、各ボーンの長さに合わせて調整します。
INFO
PhysBone ColliderコンポーネントのRadiusは、作成後に手動で調整する必要があります。
Assign Humanoid Collider
PhysBoneの名前に合わせてPhysBone Colliderを割り当てます。
| PhysBone名 | 割り当てられるCollider |
|---|---|
| Hair | Hips, Spine, Chest, Head, UpperArm, LowerArm, Floor |
| FrontHair | Head, UpperArm, LowerArm |
| BackHair | Hips, Spine, Chest, Head, UpperArm, LowerArm, Floor |
| Breast | {RootTransformName}L または {RootTransformName}R |
| Skirt | Hips, UpperLeg |
| Tail | UpperLeg |
Remove Hand Collider
PhysBone Colliderに手のひらや指のColliderが含まれている場合、それらをリストから削除します。
以前のDynamic BoneをPhysBoneへ変換した際に、手に関連するColliderが割り当てられてCollider数が増えてしまう問題を解決します。
Quest
Remove Colliders
すべてのPhysBoneのColliderを初期化します。
Remove Parameter
すべてのPhysBoneのParameterを初期化します。