【表情改変対応!】フェイストラッキング目つぶれ防止ツール【アバター汎用】
- Digital500 JPY

フェイストラッキング(FT)アバターで、ハンドジェスチャーの表情とフェイストラッキングが重なって目がつぶれる…を解決するエディタ拡張です。 ハンドジェスチャー表情の目閉じに、フェイストラッキングの目閉じ(EyeClosed系)がさらに加算されて「目が潰れる」現象。本ツールは、FTの目閉じに表情ごとの上限を設定し、閉じきるまではFTを活かしつつ、潰れる分だけをカットします。
◆ こんな人におすすめ
・フェイストラッキングでもお姉さん顔みたいな細目をデフォルト表情で使いたい! ・表現の幅を広げるために、一時的に表情を出したままフェイストラッキングを使いたい!(より高度なメスガキ顔での煽り等) ・だけど目つぶれはしたくない!
◆ このツールが生まれた背景
これまで目つぶれへの対応は、FTアドオン販売側が用意した構成やデフォルト表情の範囲での対応がほとんどでした。 ユーザー側でできることといえば、「目つぶれを許容する」か「トグルでフェイストラッキングとジェスチャー表情を切り替えて共存を諦める」かが主で、一般向けの表情ごとに細かく調整する手段の記事そのものがほぼありませんでした。 本ツールは、表情ごとにFTの目閉じ上限をプレビューを見ながら設定することで、「どんな表情でもFTも活かしつつ潰れない」を自分のアバターで実現します。
◆ 特徴
・プレビューを見ながらスライダーで直感調整 潰れない位置までスライダーを動かせば設定完了 ・表情ごとに個別設定(左右ジェスチャー7種+デフォルト表情) ・デフォルト表情を改変したアバターにも対応(アイドル時専用の抑制) ・左右の手で表情が違うアバターは自動で別枠表示、個別に調整可能 ・両手同時ジェスチャーでも過剰抑制にならない「優先手方式」採用(優先手は自動判定/手動指定可) ・FTの目閉じシェイプは自動検出。特殊な命名のパラメータで検出できない場合は手動で目閉じシェイプ追加で対応可能 ・「複製に適用」オプションで元のFXコントローラを一切変更しない運用も可能 ・「除去」ボタンでワンクリック完全アンインストール(非破壊) ・表情機能を使わないFTオンリー運用向けに、デフォルト表情の抑制を常時適用するオプションあり ・Expression Parameters消費 【【0bit!!!!】】
◆ 動作要件
・Unity 2022.3 / VRCSDK3 (Avatars) ・FT(フェイストラッキング)導入済みアバター - FTの目閉じがブレンドシェイプで表現されていること(UnifiedExpressions系ならOK) - ハンドジェスチャー表情が、GestureLeft/Rightパラメーター(値0~7)による左右各7種・計14表情の一般的なシンプルな構成であること ・ハンドジェスチャーの表情との併用のパラメーターが主流のFacialExpressionsDisabledであること (アップデートで、上記パラメーターじゃなかった場合、FXの構造から推測された候補リストをだし手動選択する機能を追加しました) ・アバターのFXに直接フェイトラのFXが設置されていること (私が観測したかぎり、BOOTHのフェイトラはパッチを当ててフェイトラ用プレハブを作るタイプが多いというかほとんど→フェイトラfxも一緒に割り当ててる可能性が高いので、ma等でフェイトラfxをマージするものの対応は報告があってからとします) 上記構成なら他アバター/他アドオンでも動作する設計です ・Selestia + 下記FTアドオン環境で動作確認済み。 https://hashedits.booth.pm/items/7756974
◆ 注意事項
・FTアドオン側が 「ハンドジェスチャー表情を完全に無効化していて表情を再生できない」 「表情の再生中はフェイストラッキングが動かない」 といった仕様の 場合、表情とFTを同時再生させる機能は本ツールにはありません (本ツールは"元々同時再生される構成"で起きる目つぶれを防ぐものです)。 なお、そのようなアバターでもデフォルト表情(表情改変)とFTの目閉じによる潰れには「デフォルト表情の抑制を常時適用」オプションで対応できます。 ・VRCFury / Modular Avatar等によって、ビルド時にGesture表情のAnimator Layerが生成・移動される構成には対応していません。 しかし、通常のFX AnimatorにGesture表情レイヤーが存在している構成であれば、VRCFuryやModular Avatarを併用していても、それ自体が問題になるわけではありません。 ・Expressionメニューからハンドジェスチャーセットや表情セットを切り替える構成や、FaceEmo等の表情変化ツールとの併用は想定して制作していないため、動作するかは不明です ・FXにレイヤーを挿入する他ツール(MAマージアニメーターではなく、ツールで直接FXに追記等をするタイプです)を使用した後は、本ツールを「適用」し直してください ・VRChatの仕様上、標準まばたき(FT非使用時のBlink)は本ツールの対象外です ・導入前にプロジェクトのバックアップを推奨します
■追記
このツールそのものの権利は主張しますが、このツールを使って出来たアニメーションコントローラーの販売には特に私からは制限をかけません また、自力でやると非常に手間なだけの知識があればできる類の眼つぶれ対策なので、アニメーションコントローラーの可動制限の作りをそのまんまマルパクリしてもらっても構いませんが、 アバターやフェイトラアドオンの規約を守ってください ですので、フェイストラッキングアドオンを作っている方は、眼つぶれ対応にこのツールを利用したアニメーションコントローラーをそのまま販売してもらって構いません 利用して販売する場合、ツールのリンクか私の名前を商品ページに書いてくれたらうれしいなぐらいなので、なくてもOKです ※基本的に本ツールのスクリプト/エディタ拡張自体の再配布・再包装は禁止ですが 例外的に、ツールで特定の1体のアバターのみにアニメーションコントローラーを生成するタイプのフェイストラッキングアドオンにつきましては、 そのアバターにしか作用しないように制限を加えてもらえれば、ツールUIに調整用プレビュー等も含め、アニメーション生成機能をコードごと流用してもらっても構いません。 しかし、この場合はブース販売ページにこのツールの商品リンクを必須とします。 組み込むのであれば売名はさせてください。 1ツールで複数アバターに対応するような場合は、要相談です
■ 追記2 どこまで使えるの?(仕組みの解説)
このツールがやることは非常に単純です。 「FXアニメーターが動かす"目を閉じるシェイプキー"に、状況に応じた上限をかける」 これだけです。 VRChatの仕様上、フェイストラッキングの目の開閉もFX経由でシェイプキー(EyeClosed等)を動かす作りがほとんどです。そのため、お使いのアバターの目閉じが「特定のシェイプキーで制御されている」なら、アドオンの種類を問わず本ツールは機能します。(だいたいのアバターはこの方式でやっているはずです) 上限のかけ方は状況で切り替わります。 ・ハンドジェスチャー入力がない時(アイドル状態) → デフォルト表情用に設定した上限 ・ハンドジェスチャー入力がある時 → そのジェスチャーの表情用にプレビューで調整した上限 そのため、 ・表情とフェイストラッキングを併用できるアドオン → 通常モード(ジェスチャーごとに上限を設定) ・併用機能がないアドオン → 常時適用モード(アイドル状態の上限が常に効く) と、アドオンの作りに合わせて2つのモードを使い分けられます。 逆に、目閉じがシェイプキー以外(ボーン制御など)のアバターや、ハンドジェスチャーが標準の仕組み(GestureLeft/Right)以外で制御されている構成では動作しません。

