00 / OVERVIEW
この作品について
VRChatアバターの衣装・アクセサリー・マテリアル・体形の切り替えを、一つの画面で設定できるUnity Editorツールです。僕が制作し、BOOTH「おにぎり商店」で販売しています。設定した内容から、階層メニュー、アニメーション、FXレイヤー、パラメータを生成します。
ここでは有料版1.0.2の機能を紹介します。lilToonのディゾルブ演出、衣装とBlendShapeの連動、複数の設定をまとめるプリセットに対応しています。切り替えを設定する作業と、切り替わるときの見せ方を一緒に扱えるようにしました。
処理の流れをまとめた図です。ボタンで順番に確認できます。
01 / DESIGN NOTES
画面で組んだ設定から、必要なアセットを生成する
アイテム、マテリアル、BlendShapeをそれぞれツリーで整理します。左側で項目を選び、右側で対象、初期値、連動の設定を編集します。名前とは別に識別用のGUIDを持たせ、プリセットの参照が項目名だけに依存しないようにしています。
適用時にはExpressions Menu、同期パラメータ、FX Animator、AnimationClipを生成します。Modular Avatarでメニュー・パラメータ・Animatorをアバターへ組み込み、生成した設定を一つのオブジェクトへ集約します。個別にFXやメニューを編集する手順をまとめました。
02 / DESIGN NOTES
切り替える対象に合わせて、操作を変える
通常のアイテム表示にはBoolとToggleを使い、交換先がある場合は表示用Boolと選択用Intを使います。マテリアルの候補も一つのIntで選びます。フォルダの階層は操作メニューへ反映し、項目が増えたらページを分けます。
単体のBlendShapeはRadialPuppetで調整します。時刻0〜1に重み0〜100を割り当てたアニメーションを作り、Floatパラメータで参照する位置を変えます。一つの項目に複数のShapeを登録すると、同じ操作で重みを変えられます。マテリアル変更の対象は、登録したRendererの先頭スロットです。
03 / DESIGN NOTES
切り替えの演出と、待機状態を分ける
表示・非表示の待機状態と、出現・消失の演出状態を分けています。起動時は選択中の待機状態へ入り、操作すると演出を再生して次の待機状態へ戻ります。状態を維持する短いクリップと、時間をかけて変化するクリップを使い分けています。
lilToonのディゾルブには専用のマテリアルを複製し、方向、発光色、ぼかし、時間を設定します。出現の最後には元のマテリアルへ戻し、消失の最後にはオブジェクトを非表示にします。上下左右の方向や、出現・消失のどちらで演出を使うかを選べます。Editor内でプレビューする機能も用意しました。
04 / DESIGN NOTES
衣装の見た目と、体形も一緒に切り替える
対応するマテリアル項目があれば、元のマテリアルと各交換候補について演出用クリップを生成します。選択中の見た目に合わせて待機状態を変え、演出が終わったらそのマテリアルへ戻します。素材を変えた衣装でも、選んだ見た目を保って出し入れできるようにしています。
アイテムのON・OFFに対応するBlendShape値も設定できます。衣装に合わせて素体の形を変えるなど、表示の切り替えだけでは済まない設定を扱うためです。演出を使う場合は同じ長さの曲線を作り、使わない場合は一定値へ切り替えます。
05 / DESIGN NOTES
プリセットで、複数の設定をまとめて呼び出す
プリセットには、表示する衣装、マテリアル、Shapeの重みをまとめます。Parameter Driverで各項目の値を更新するため、すでに作ったアイテムの演出も使えます。指定していない項目を初期状態へ戻すか、今の状態を保つかはカテゴリごとに選べます。全身を変えるプリセットと、一部だけを変えるプリセットを作り分けられます。
設定はアバターごとに保存します。シーン内の対象はアバターからの相対位置、マテリアルはアセットGUIDで参照し直します。主要UIは日本語・英語・韓国語・中国語に対応し、不足した設定にはエラーを表示します。利用にはUnity、VRCSDK3 Avatars、Modular Avatarが必要で、ディゾルブにはlilToonを使います。
REFERENCE
