Unity 2018を利用していた頃の情報です。各種情報が古くなっている他、今後の記事更新予定はありませんので予めご了承ください。
Avatars 3.0対応編です。AV2版は前回を参照のこと。

細かいところは端折りつつ、VRoidStudioで作ってBlenderで弄ってUnityで突っ込むところまでやります。
一気に書いたので、どっか間違ってるかもしれません。見つけ次第追記や修正をします。
必要なアプリケーションなど
- VRoid Studio
- Blender 2.83 LTS
- Cats Blender plugin 0.17.0
- material-combiner-addon
- VRM Importer 0.78
- PolyQuilt(任意)
- VRCAvatarEditor_beta_v0.5.1 Avatars3.0暫定対応版
- Unity 2018.4.20f1
- VRCSDK3-AVATAR-2020.08.13.17.48_Public
基本的に新しいバージョンのものを使用しますが、BlenderはLTSの2.83、UnityはVRC側から指定されている2018.4.20f1を使用します。
VRCSDK3はAVATARと表記のある方をダウンロードします。
Tips:プラグインがインストール出来ないときは
Releaseからダウンロードしたバージョンではインストールに失敗してしまう事があるかもしれません。例えば、material-combiner-addonはGitHubのReleaseに置いてある最新バージョン(2.1.1.7)を使おうとすると、インストール時にエラーが出ました。古いバージョンも上手く行かなかったのですが、masterブランチのソースコードをそのままダウンロードした場合は問題なくインストール出来ました。
commit追っかけてもソース読めなくて分からないので調査はしてませんが、微修正した後リリースしてないってこともありますしね。Release版でダメならバージョンをひとつ落としてみるか、masterを試してみましょう。
ついでなので解説しておきますが、material-combiner-addonはPython用の画像ライブラリであるPillowが必要になりますので、Main Menuにある「Install Pillow」をクリックしてインストールしてください。
環境によってはすぐに応答がなかったり、時間がかかったりするかもしれません。落ち着いてインストールすること。
VRoidStudioでモデリング
VRoidStudioを使ってモデルを作ります。
髪の色分けはマテリアルを分けておくことで行なえます。
「髪型編集>揺れもの」で髪にボーンを入れることができますので、それも行っておきましょう。前髪と後ろ髪、左右のサイドヘアで分けておくとDynamicBone入れるときに苦労しないかなとは思います。
VRoidStudio側の設定はSpringBoneの設定なので、ボーン数と固定点以外は無視して大丈夫です。
簡易出力してVRCで確認
VRoidStudioやBlender、そしてUnity上では問題なく見えたのにVRChat上だとなんか見え方が違う……そういうことありますよね。なんか頭でっかちかなぁとか、後ろ髪変だなぁとか、顎が~とか……ないですか?
恐らく視野角(FoV)の違いでそうなってしまうのだと思います。BlenderやUnity上でVRChatに合わせた見え方に調整する手もありますが、手っ取り早いのはいきなり本番環境に持ち込むことです。VRoidStudio側は弄れないしね。
現在のVRChatはアバターをアップロードせずにローカルテストが行えるようになっているので、気兼ねなくバンバンテストしましょう。
- VRoidStudioでマテリアルを2つまで減らす設定でVRMファイルをエクスポート
- BlenderでVRMファイルを読み込み
- CATSプラグインでFix Modelをクリック
- そのままFBXファイルをエクスポート
- UnityにFBXファイルとテクスチャ2枚を読み込み
- VRC Avater Descriptorを入れてビューポジションだけ設定
- Unlitシェーダーあたりで適当にマテリアル設定
- VRCSDK側から提示されるエラーはAutoFixで済ませる
- Build & Testをクリックして出力
- VRC上で確認
- 微妙な部分はVRoidStudioに戻って修正
三面図ワールドで身長とか見に行くのもいいですね。
こんなもんかなという感じになったら、マテリアルの削減も何もせずにVRMファイルを出力し、Blenderで作り込んでいきましょう。
Blenderと和解する
そこそこ対話することになりますので、覚悟しておいてください。
Nキーを押してCATSプラグインを表示し、「Import Model」からVRMファイルを読み込みます。
その下の「Fix Model」ボタンの右にあるスパナマークからオプションを呼び出し、「Join Meshes」のチェックを外しておきます。
チェックを外したら「Fix Model」を押してCATSプラグインにお任せします。
メッシュの結合をせずにFixした結果が上の図です。最終的にはBodyのみにしますが、加工はこのままの状態で行う方が楽なので分離した状態で進めます。
(あってもエラーは出ないようになったはずですが、Upper Chestはキープしない方が後々楽かも。)
Fixしたら壊れる場合
「Fix Model」したあとにポーズモードで動作確認をした際にモデルが壊れていた場合、もう一度「Fix Model」を実行すると直る……ようです。(直ってるんだろうか?)
アイトラッキングの作成
CATSのEye Trackingタブで作成します。
Mesh欄にFaceを割り当てて、Blink LeftにEYE Close Lを、Blink RightにEYE Close Rを割り当ててあることを確認して、Create Eye Trackingを押して作成します。VRoidStudioのバージョンによって表記が違ったり、自動割当されない事がありますので気をつけてください。Lowerlidは下まぶたの事ですが、VRoidモデルには存在しないのでBasisでいいです。
これで、左右の目それぞれの瞬きシェイプキーが生成されます。
これまではこれでOKだったのですが、AV3では瞬きのシェイプキーは片目ずつではなく両目同時のものが必要になるので、もうひと手間必要になります。
Faceのメッシュを選択して、Dataプロパティを開きます。
編集モードになっていることを確認してから、Shape Keys欄で「vrc.blink_left」を選択して、マウスカーソルをモデルの上に移動してからAキーで全選択。
「Vertex>Blend From Shape」を選択。
左下に出てくるメニューで、「EYE Close」を選び、Addのチェックを外します。
「vrc.blink_left」を選んだ状態で両目が閉じていればOKです。オブジェクトモードに切り替え、「vrc.blink_left」をダブルクリックして「vrc.blink」にリネームします。(名前はなんでもいい)
「vrc.blink_right」は不要になったので、-ボタンで消しておきます。
リップシンクの作成
CATSのVisemesタブで作成します。
Mesh欄にFaceを割り当てて、「MTH A」「MTH U」「MTH I」になっていることを確認してから「Create Visemes」を押してリップシンク用のシェイプキーを生成します。
但し、VRoidStudioで口のサイズを変更しているなどで、「MTH U」が破綻している場合は、「MTH O」で代用したほうが良さそうです。
vrc.v_から始まる名前のリップシンク用シェイプキーが複数生成されます。
目の調整
Faceメッシュを選択し、DataプロパティのShape Keys欄で一番下の「EyeExtra 01.M~」をクリックします。
顔の前に「><」が飛び出てくるので、「><」のメッシュをすべて選択して、ちょっとだけ前に移動させておきます。
また、Shape Keys欄で「Basis」をクリックし、Vertex GroupsのLeftEyeとRightEyeをそれぞれSelectしておき、瞳をほんの少しだけ後ろに移動しておきます。これに関しては保険のようなものなので、やらなくてもいいかもしれません。
白目や頬染めを増やす(任意)
面倒くさいのでやらなくてもいいですが一応。ないよりはあったほうが嬉しいやつですね。
今回は白目を増やします。適当に作ったので、これをこのまま使うとダサいです。
作業しやすくするため、BodyとHairのオブジェクトは非表示にしておきます。右端の目玉アイコンで非表示にできます。
先程と同様にFaceメッシュを選択し、DataプロパティのShape Keys欄で一番下の「EyeExtra 01.M~EyeExtra_On」をクリックします。
「><」のメッシュをすべて選択した状態にして、「Basis」を選びます。
「Shift + D(複製)」を押して、そのままEnterで確定をします。
オブジェクトモードに切り替え、+ボタンを押してシェイプキーを新規作成して、ダブルクリックで名前を変更します。「EyeExtra_02」としておきます。
1,シェイプキーEyeExtra_02にEyeExtra_01の情報を持ってくる
編集モードに切り替え、「EyeExtra_02」が選択されている状態で、「Vertex>Blend From Shape」を選択。左下に出てくるメニューで、「EyeExtra_01.M~EyeExtra_On」を選び、Addのチェックを外します。「><」が手前に出てきます。
2,シェイプキーEyeExtra_01からEyeExtra_02の部分を取り除く
次に「EyeExtra 01.M~EyeExtra_On」をクリックし、「Vertex>Blend From Shape」を選択。左下に出てくるメニューで、「Basis」を選び、Addのチェックを外します。すると、複製した方の「><」が引っ込むはずです。
3,新規マテリアルを設定してEyeExtra_02のメッシュに割り当てる
次に、オブジェクトモードでマテリアルを作成します。「F00_000_00_EyeExtra_01_EYE」を選んで、∨ボタンから「Copy Material」を選択します。
次に、+ボタンを押してからNewボタンを押して、新規マテリアルを作成します。
作成したら、∨ボタンからPaste Materialを押してマテリアル設定を上書きします。
上の「F00_000_00_EyeExtra_01_EYE」と同じマテリアル設定になったら、名前を変えておきましょう。今回は「EyeExtra_02」としておきます。
MainTextureの欄を開き、フォルダアイコンから予め用意しておいたEyeExtra_02用のテクスチャを読み込みます。
マテリアル設定を終えたらそのまま編集モードに切り替えます。
まだ複製した方の「><」が選択されたままのはずなので、「EyeExtra_02」が選ばれている状態で「Assign」を押します。
「EyeExtra_02」シェイプキーを選んだときに、「><」から白目に見た目が変わっていたらOKです。位置やサイズを微調整しておきましょう。
同じ要領で涙や頬染めも作ることができますが、位置の調整や変形が伴う場合もあります。また、瞳の中に星やハートを表示するものは、瞳が移動する関係上EyeExtra(><)の複製では行えないので気をつけてください。
素体部分の頂点結合(任意)
継ぎ目部分で変な影が落ちないようにする処理です。やらなくてもいいですが、お好みで実行します。
Bodyメッシュの腕と足だけ選択してからAlt + Mを押し、「By Distance(距離で)」を選んで頂点結合をします。
全部選ぶと爪がくっついたり、うっかり顔で実行するとシェイプキーがぶっ壊れますので余計なものをくっつけないようにしましょう。
フルトラ対策のボーン修正
このままだと、6点でのフルトラッキング時に腰がひん曲がるはずなので、ボーンの位置を修正します。
Armatureを選択し、編集モードになっているのを確認してから、移動ツールで良い感じに移動します。
Hipsは元からLeft / Right legよりも上にありますが、近いと腰がひん曲がるみたいなので、HipsとSpineを上にずらしてます。Left / Right legもちょっとだけ下げてます。
HaritoraXでのフルトラで簡易チェックした際は、これで大丈夫そうに見えました。保証はしません、Unity 2019対応時にもう一度見ておきますが……。
メッシュの結合
全てのメッシュのUVマップ名が「UVMap」になっていることを確認します。「UVMap」ではなく「TEXCOORD_0」となってる場合がありますが、メッシュの全てが「TEXCOORD_0」という名称なのであればそれでも構いません。
他所から持ち込んだ別のモデルデータや、新規に作ったオブジェクトなどは「UVMap」や「UVマップ」という名称になっていると思いますので、そういったものを組み込んだ場合はどちらかに合わせてください。
UVマップ名の確認を終えたら、BodyをクリックしてShiftを押しながらその他のメッシュをすべて選択します。
選択を終えたら、オブジェクトモードでCtrl + Jを押してメッシュを結合します。Bodyメッシュだけになったはずです。「Body.baked」のままだと問題が生じるので、ダブルクリックして「Body」に名前を変えておいてください。
もし、テクスチャがおかしくなったのなら、UVマップ名が違う可能性があるので、確認してからやり直しましょう。
テクスチャの入れ替え・修正
「ベースヘア」と「><」の修正です。
VRMファイルのあるフォルダ内に、tex_から始まるフォルダがあると思いますので、その中にあるベースヘアを任意の画像編集ソフトで開きます。
クリッピングマスクと乗算レイヤーを使ってベースヘアに当たる部分を白から変更しておきます。
同じく「><」もサイズや形状の変更をしておくと良いかもしれませんね。
マテリアル結合・テクスチャのアトラス化
「MatCombiner」を使って、マテリアルとテクスチャをひとまとめにします。
CATSのすぐ下にMatCombinerがあると思います。PropertiesでArtas sizeを「Quadratic」にしておくと正方形で出力されるのでそうしておきます。
「Size of gaps between images」の部分は2から0にしておくと隙間なくくっつくので良さげ。
「Update Material List」を押してまとめたいマテリアルを選び、「Save Atlas to..」を押して保存しましょう。
髪や肌、服、そして顔のパーツなど、種類別にまとめて出力すると融通が利きます。特に半透明表現がされているパーツは半透明パーツ同士でまとめておき、迂闊に他所へ混ぜないようにしましょう。
できたら、「Export Model」を押してモデルをFBX形式で書き出します。マテリアルの結合具合によってはマテリアルを4個に減らせと言われますが、Continue to Exportで続行できます。
Unityと和解する
和解する相手が多すぎる定期。和解するのはネコだけにしたい。でもBlenderでの作業をしっかり行えていれば、Unity上の作業は程々で済むはずです。
まず、新規プロジェクトを作り、VRCSDK3やVRCAvatarEditor、DynamicBone、そして使いたいシェーダーなどをインポートしておきます。
その後、FBXファイルとテクスチャをインポートしましょう。
インポートしたテクスチャは、右側のInspectorで「Streaming Mip Maps」にチェックを入れておきます。後回しにしてアバターアップロード時にAutoFixしちゃってもいいです。
Tips:昔作った(若しくは買った)AV2アバターを使いまわしたい
VRCSDK2以外をUnitypackage化することで、ある程度設定を保持したままアバターを持ち込むことができます。VRCSDKは含めるとトラブルの原因になるので含めないようにしましょう。
FBXの設定やDynamicBoneの調整、マテリアル設定などはそのまま持ち込めるはずです。特殊なギミックは無理です。AV3からはVRCSDK3となり別物となりますので、VRCSDK関連だけは新規に設定する必要があります。ビューポジションの位置だけメモしておけば良いでしょう。
VRCSDK3をインポートした新規プロジェクトに、AV2アバターのUnitypackageをインポートし、Sceneに設置済みのアバターからSDK2の「VRC_Avatar Descriptor」を取り除いてSDK3の「VRC Avatar Descriptor」を入れ直して再設定しましょう。
ジオメトリ設定
AssetsでFBXファイルを選択し、画面右上のInspectorタブに切り替え、Modelタブを選びます。
「Blend Shape Normals」を「Import」に切り替えておきます。これをやっておかないと、表情を変えるたびに髪の影とかがチラチラとして変な感じになります。
マテリアル設定
一番右のMaterialタブを選びます。
「Use External Materials (Legacy)」を選んでApplyを押します。
Materialsフォルダが生成され、その中にマテリアルが出力されているはずです。
Rig設定
Rigタブに移動し、Animation Typeを「Humanoid」に変更します。
次に「Configre…」を押して設定していきます。
Head内のJawに何かしらが割り当てられているので、Noneにします。LeftEyeだとかHairJointになっている場合がありますが、何が割り当てられていようとJawをNoneにすればOKです。
Tips:なで肩の修正
そのままだとなで肩になってしまう(らしい)ので、Shoulderを少し上げたあとUpper Armを同じぐらい下げます。左右対象になるよう、同じ数値分動かしてください。
シーンに投げ込む
下準備の終わったFBXファイルをHierarchyに投げ込みます。
Bodyを選択すると、Inspector欄の下の方でシェーダーが選べるようになっているので、お好みのシェーダーを選択します。
Tips:白飛びを避けるための設定例
色々なシェーダーがありますが、VRCに持ち込んだときに明るすぎたり暗すぎたりして上手く行かないことがあると思います。
SunaoShaderが比較的扱いやすかったのでご紹介します。あくまでも設定例ですので、好みに合わせて調整してみてください。
どの種類のシェーダーを選ぶかについては、
- 透過や切り抜きのない素体や髪など→「Opaque」
- VRoidの服などテクスチャ形状での切り抜きがあるもの→「Cutout」
- 瞳ハイライトや頬染めなど半透明表現があるもの(主に顔パーツ)→「Transparent」
という感じでざっくり覚えておくと良いかと思います。全部Transparentは重なったときに事故るのでやめましょう。
影の具合などはお好みにしてもらうとして、Unlightingを軽く設定しておきます。
また、Output Limitterも設定しておきます。
VRoidの服は裏側にポリゴンを貼っていないので、スカートの裏側が透けないようにCulling ModeはOffに設定します。
暗すぎる問題については、Sunao Shader 1.4.0でライトの最低値が設定できるようになるとのことなので、そちらを試してみましょう。
VRC用設定をする
Hierarchyでモデル名を選択します。
右側のInspectorで「Add Component」を選び、VRCと入力すると「VRC Avatar Descriptor」が見つかると思うので選択します。
ビューポジションやリップシンクの割当、アイトラッキングの設定などを行います。
目と目の間に灰色の球体がめり込むように位置を調整します。Editボタンを押すとScene上でハンドルをドラッグして調整ができます。
「LipSync」の欄ではリップシンクの設定を行います。Modeで「Viseme Blend Shape」を選び、「Face Mesh」にBodyを割り当てたら自動で割当されます。
「Eye Look」ではアイトラッキングの設定を行います。Enableを押して、Eyelid TypeをBlendshapesに。Eyelids MeshにBodyを割り当て、Blinkにvrc.blink(両目同時の瞬き)を割り当てます。
他2つはnoneのままでも大丈夫です。両目が閉じる瞬きシェイプキーを作り忘れた方は片目しか瞬きできませんので、Blenderに戻って作り直してきてください。
ちなみに、このままでは目が動きませんので、「Looking Up」「Looking Down」「Looking Left」「Looking Right」を設定します。
Previewボタンを押して調整してもいいですし、数値を直接入力してもOKです。
DynamicBoneを設定する(任意)
前回を参照ください。しかし未だによくわからん……。
表情を作成する
一番めんどくさいかもしれない部分です。全部「VRCAvatarEditor beta(Avatars3.0暫定対応版)」で作ります。
表情作成は、「VRCAvatarEditor beta」がないとやっていけないレベルで面倒な作業です。暫定対応版とありますが大丈夫です、バッチリ使えます。いまのところベータ版ということで、表示がおかしかったり思うように動かない場面に遭遇する可能性があります。表示の問題はUnityを立ち上げ直すと問題なかったりするので、トラブルが起きても慌てないようにしましょう。
Gesture LayerとFX Layerについて
Gesture Layer
表情変更においては、ハンドサイン部分を制御します。尻尾のアニメーションとかもここですが、今回は説明しません。
FX Layer
Blendshapeを使った表情のアニメーションはここが担当します。拡張カメラなど、その他諸々もここで制御するので、一番ごっちゃになりやすいところだと思います。
その他のLayer
歩きモーションとか座りモーションとか色々制御するやつがありますが、解説してたらキリがないよ!今回は説明しません。
パターン1:ジェスチャーでの表情切り替え
ハンドジェスチャーに合わせて表情が変更される従来の方式です。Gesture LayerとFX Layerに設定します。自力でなんとかせず、VRCAvatarEditorに全部丸投げします。詳細は面倒すぎて説明したくない。
「Create Fx Layer Controller」を押してFXレイヤーを新規作成します。
すると、Gesture Layerに「Gesture_HansLayer_アバター名」が、FX Layerに「Fx_HandsLayer_アバター名」が自動的に割り当てられます。
ひとまず、デフォルトの表情を作っておきましょう。
VRoidのモデルは口が半開きなので、「MTH_Neutral」を100にして「Set to Default」しておくと見栄えが良くなるかと思います……が、リップシンク時にMTH_Neutral分ブレンドされてしまうようなので、喋ってるときは口が尖るかも。まぁ、デフォルトの表情はこれでOKです。(考えるのをやめた)
では、VRCAvatarEditorのFaceEmotionタブで個別の表情を作っていきましょう。
Fist~Thumbs upまでデフォルトのものが用意されますので、順番に上書きしていきます。
並んでいるシェイプキーを操作して、目的の表情を作ったらAnimationファイルの名前と保存先を設定して、どの手の形状に割り当てるかを選び、Create AnimFileを押して作成します。
今回は、怒った表情を作ったので、ファイル名を「faceAnim_怒る」とし、保存先を「Assets/Animatios」に、そして割当をFistのハンドジェスチャーに設定して作成しました。
Animatorで「Fx_HandsLayer_アバター名.controller」を確認してみると、Fistの部分に「faceAnim_怒る」のAnimationファイルが設定されていることが分かります。
「Set to Left Hand & Right Hand Layer」にチェックを入れたままなので、両手に同じ表情が設定されています。右手と左手で別の表情を割り当てたい場合は、チェックを外して個別に設定します。
そうそう、「Write Defaults」のチェックはすべて外しておきましょう。
パターン2:Expressionsメニューでの表情切り替え
Expressionメニューから表情を呼び出す方式です。FX Layerに設定します。別途Expressionsメニューも作成します。
表情を変えたいときはその都度呼び出す必要がありますが、ジェスチャー方式のように不意に表情が変更されることはありません。表情固定機能が無いOculus Touchコントローラーの場合はこちらのがオススメかなと思います。(※個人的に)
また、デスクトップモードでもRキーを押すとExpressionsメニューが利用できるので、Shift + ファンクションキーの組み合わせが押しにくい場合など、こちらのが扱いやすいかもしれません。
FX Layerを新規作成する
VRCAvatarEditor上でFX Layerを作成すると、ジェスチャー絡みのものも付いてきて都合が悪いので、Assets欄で右クリックをして、「Create>Animator Controller」と選んでまっさらな物を新規作成します。分かりやすいように名前は「FX Animator Controller」としました。
前準備として、「FX Animator Controller」に表情を入れるための枠を用意しておきます。
何もないところを右クリックをして、「Create State>Empty」を選び、「New State」を作成します。これがデフォルトのステートとなるのでオレンジ色になっているかと思います。
同じ要領で、作りたい表情の数だけステートを作っておきます。
次に、「Any State」を右クリックして「Make Transition」を選びます。
細かい設定は後にしますので、ここで一旦VRCAvatarEditorに戻ります。
表情のAnimationファイルを作る
デフォルトの表情として、VRCAvatarEditorのFaceEmotionタブで「MTH_Neutral」を100にして「Set to Default」しておいたら、個別の表情を作っていきましょう。
とりあえず、驚く表情でAnimationファイルを作ってみます。
1つ目を作ると、どのステートに割り当てるのかを選ぶ項目が出てくるようになりますので、順番に設定していきます。
全て設定を終えたら、Animatorで確認をします。
それぞれのステートに、VRCAvatarEditorで作った表情アニメーションが割り当てられていることが分かると思います。
Animatorで制御する
表情を制御する部分を作ります。
Parametersタブの+ボタンを押してInt型でパラメーターを作成します。名前は「FaceIndex」としました。
まずは、Any Stateからデフォルトに伸びている矢印をクリックします。
Inspector欄のConditionsで+ボタンを押します。
左から順番に「FaceIndex」「Equals」「0」と設定します。
同じく、驚くに伸びる矢印では「FaceIndex」「Equals」「1」、怒るでは「FaceIndex」「Equals」「2」と連番で設定してください。
パラメーターを作る
大体終わりましたが、まだやることがあります。
Assets欄で右クリックから、「Create>VRChat>Avatars>Expression Parameter」を作成します。
先程FX Layerに作ったFaceIndexパラメーターはそのままでは使えませんので、この「Expression Parameter」に登録する必要があります。Inspector欄を開き、Int型で「FaceIndex」を追加します。
このパラメーターファイルを組み込む必要があるので、Hierarchy欄でアバター名をクリックしてVRC Avater Descriptorの設定を開き、一番下のCustomizeをクリックします。
Parametersのところに先程作ったParameterファイルを入れます。
よーしこれで完了だと言いたいですが、まだ肝心のメニューを作ってません。そうです、すぐ上のNoneとなっているところに入れるためのメニューが必要なのです。
メニューを作る
これを作ります。
Assets欄で右クリックから、「Create>VRChat>Avatars>Expression Menu」を作成します。2つ作ってください。
片方を「メインメニュー」、もう片方を「表情メニュー」と名付けました。(なまえかんがえるのつかれた)
メインメニューには表情メニューやEmoteメニュー、拡張カメラなどを入れる場所になります。
今回は表情メニューひとつだけを登録します。
「メインメニュー」の方を開き、Inspector欄で「Add Control」を押して項目を作ります。名前を「表情」、Typeを「Sub Menu」、Sub Menuの先は「表情メニュー」を割り当てます。
表情メニューでは、それぞれの表情を選ぶボタンを作っていきます。具体的にはこんな感じのものが出来上がります。
では、表情メニューを作っていきます。作っておいた表情の数だけ「Add Control」を押してControlsを作成します。
Nameに「表情名」、Typeは「Toggle」、Parameterは「FaceIndex, Int」です。Valueには先程設定した値を入れます。例えば「驚く」のときは「1」に設定しましたよね。
画像には写ってませんが、表情「デフォルト」でValue「0」を設定するものもお忘れなく。
Iconの欄が空欄のままですが、ここには好きな画像ファイルを割り当てておくことができます。例えば、VRCAvatarEditorの左上の枠をスクリーンショットして切り抜き、アイコンを作っておくと分かりやすくなりますね。
瞬き干渉対策は……めっちゃ長くなってきたので、こっち見てください。
動作テストとアップロード
VRChatにアップロードする前に、ローカルでテストが行なえます。
「Build & Test」を選ぶとテスト用のデータが作成されます。
Other欄に「SDK: アバター名」という名前でテスト用のデータが選べるようになっています。
あくまでもデータは手元だけなので、他人からは直前まで使っていたアバターが表示されます。
アップロードをする
ローカルテストでバッチリだと思ったら、本番環境にアップロードします。
うっかりしがちですが、「Furure Proof Publish」はチェックを外しておきましょう。
「Build & Publish for Windows」を押して、アバター名などを設定して、エラーなくアップロードができれば完了です。このとき、うっかりPublicでアップロードしないように注意しましょう。
各種エラーについては前回を参照のこと。
お疲れさまでした。
2021-08-03:フルトラ対策を追記