NARE FACIAL TRACKER(ナレトラ)を気軽に利用できるようにするVRCFTモジュールを作ってみた

2026/08/25:Modified.8

  • 【新機能】視線のリミッターを追加
  • 【新機能】視線の左右同期補正を追加(UseCrossEyeSync)(※寄り目補正/PreventCrossEye使用時のみ機能)
  • 【新機能】実験的に視線の左右同期補正時のスケール倍率を追加(EyeLeftScale / EyeRightScale)
  • 【新機能】目を細めたときに視線が壊れるのを防止する機能を追加(UseLidEyeCenter)
  • 【修正・変更】口をすぼめるときのJawOpen抑制が急激なのをゆるやかになるよう修正
  • 【修正・変更】v1.1.1.0使用時にウィンクがやれなくなっていたのを修正(したつもり)
  • 【修正・変更】設定ファイルの誤字修正
  • 【修正・変更】設定ファイル初期値の変更(寄り目補正を緩めるなど)

「NARE FACIAL TRACKERを買ってみたけど、思った通りに動かせない」「装着位置がズレるとすぐ口が歪んでしまう」「常に変な顔になる」「細かい事を気にせずもっと気軽に使いたい」……そう思いませんか?自分はそう思いました。ある程度セットアップを終えたら、次回からは細かいことは気にせず電源を入れてすぐ使いたいですよね。そんな方向けの「改変版VRCFTモジュール」の紹介と解説です。

まずは調整無しでナレトラを動かしてみましたが、Baballoniaのパラメーター調整だけではかなり無理があると感じたので公式のモジュールをフォークして弄り始めたものです。手元にある「フェイストラッキング内蔵のPICO 4 Proぐらい気楽に使えるレベルまで持っていきたい」という気持ちで調整してあります。

細かな経緯については別記事で触れました。

NARE FACIAL TRACKER(ナレトラ)レビューとBaballoniaのVRCFTモジュールを弄ることにした経緯
2026年8月2日にNARE FACIAL TRACKER(ナレトラ)が届きました。第2回目の予約販売のうちの初回発送分です。本当は届いてからすぐレビューしようかと思っていましたが、いざ使い始めたらそれどころではないと思ったのでVRCFTモ…

これは非公式なモジュールです。8月中にひと段落つけましたが、今後のBaballoniaアップデート次第では破壊的変更が入る可能性があります。アップデートの際は設定ファイルの内容を書き留めておくことをおすすめします。
また、Project Babble公式に本モジュールの使い方やバグ報告などで問い合わせをしないようお願いします。

ダウンロードとインストール

GitHubのReleaseページにZIPファイルがあるので、ダウンロードしてください。

現時点での最新版は「Modified.8」です。

Releaseページは以下から開けます。

Releases · pikepikeid/Baballonia
Cross-platform, hardware-agnostic XR eye and face tracking – pikepikeid/Baballonia

ダウンロードが終わったら、VRCFTを起動して「モジュール管理」タブに移動します。

「+」ボタンからZIPファイルを選択してインストールしましょう。(ZIPは展開しないこと)

公式のモジュールとは別にインストールされるので、競合しないように公式モジュールの「VRCFT-Babble」はアンインストールしておいてください。Virtual DesktopやSteam Linkなどのモジュールもアンインストールしておきましょう。

アップデート時は最新のZIPファイルの中身で直接上書きするか、一度アンインストールしてからインストールし直してください。モジュールのインストール先は以下の場所になります。
「%AppData%\VRCFaceTracking\CustomLibs\cbb751d2-da77-4763-b631-0e8ab03a5773」

どういった補正をしている?

適切かと言われると微妙なところですが、かなり割り切って補正を掛けてあります。

口元の左右対称化

ヘッドセットが少しズレるだけで口が偏ったり歪んだりしやすいため、思い切って左右対称化しました。

口を左右に移動させる「MouthLeft」と「MouthRight」だけを残してほぼ全て補正をしてあります。そのため、口を片側だけ動かすような細かな表現は一切できません。

意図的に口を動かしたときだけ動作すれば十分なので、「MouthLeft」と「MouthRight」は反応しにくいように設定しておくことをおすすめします。恐らく「0.05 – 1.00」程度でも大丈夫なはずです。

口をすぼめるときの補正

実はこれがメインの補正内容です。口をすぼめても「JawOpen」が動作してしまうせいで、「う」や「お」といった口の形がうまくできない問題に対処しています。

アバターやアドオンによっては適切な補正とならない場合があります。

補正の判定条件に「MouthFunnel」と「MouthPucker」を使用しています。

まず、「MouthFunnel」は口を開いたときにある程度反応するように調整してください。口を閉じた状態では誤作動しないよう僅かに制限をすることも重要です。

次に、意図的に口をすぼめるときだけ「MouthPucker」がしっかりと反応するように調節しましょう。

具体的には「Funnelが0.25以下かつPuckerが0.6以上」という条件の時に「JawOpen」を抑制して口が開きすぎないようにする補正を行っています。(※初期設定の場合)この抑制具合は「PuckerJawOpenSuppression」という設定値で調節できます。

笑顔の補正

口を開けているとき(JawOpen)や口を開けて笑っているとき(MouthSmile)は、口角下げ(MouthFrown)を抑制したり無効にする補正をしています。

また、笑顔の時に悲しい表情が紛れ込まないように「MouthShrugLower」を無効にする補正も入れてあります。

悲しい表情の補正

逆に口をへの字にしたり悲しい表情をしているときは、笑顔にならないよう補正しています。

寄り目・反り目の補正

寄り目や反り目を防止する補正をしています。設定ファイルで補正しないようにしたり完全に正面を向くように強く補正を掛けることもできますが、上下の補正は入れていません。(PreventCrossEyeとCrossEyeStrength)

ウィンク・瞬きの補正

EyeSquintを判定条件として、ウィンクや瞬きの判定を行っています。ウィンク・瞬きしていると判定されたときに閉じている側の目をしっかり閉じるように補正を掛けてあります。この辺りが少々ぎこちないです。

ウィンクが誤作動する場合は、設定ファイルでウィンク判定までのしきい値を上げることができます。(WinkSquintClosed)

目をより細める補正

EyeSquintの値に応じて、EyeLidの補正を入れてあります。EyeSquintの値を使ってEyeLidも動かすので、しっかりと目を細められるようになっています。EyeSquint中にEyeLidが上手く動いてくれない事への対策です。(設定ファイルのSquintStrengthで調整可能)

目の左右同期補正

目を見開いたり、瞬きではない目の僅かな開閉をするときに左右のブレを軽減しています。今のところ、瞬きは若干左右のズレが出やすいので軽減する補正を入れてあります。(UseEyeWideCorrectionとUseLidSync)

パラメーター調整の目安

頬の表現

CheekPuffLeft/Right

頬を膨らませるときのパラメーターです。

頬を膨らませたときだけ反応するようにしてみてください。

CheekSuckLeft/Right

頬をへこませるときのパラメーターです。

あまり誤作動することはないと思いますが、意図的に頬をへこませたときにだけ反応するように調整しておきましょう。

顎の表現

JawOpen

あごを開くパラメーターですが、もれなく口が開きます。

後述するMouthCloseと組み合わせることで、鼻の下を伸ばした感じの表情が可能です。しかし、誤作動が激しいので本モジュールではJawOpenはかなり鈍くする設定を推奨しています。

口を閉じた状態で、上を向いたりしても反応しないように調節してください。意図的に口を開けた時だけ反応するぐらいまで鈍く設定しても大丈夫です。

JawForward

あごを前方に動かすものですが、多分使用できなくても問題ないはずです。

JawLeft/Right

あごの位置を左右に動かします。こちらも気になる方は調整しておきましょう。

鼻の表現

NoseSneerLeft/Right

鼻をすくめることで、あざ笑うような表情をするときに使用します。

この表現が上手くやれるアバター(アドオン)であれば調整する価値はありますが、口を閉じていてもほんの僅かに半開きになる場合があるため無効化してしまう方が楽です。

無効化する場合

口の表現

MouthFunnel

唇を押し出して漏斗状の形になっている度合いです。口をすぼめるときや「う」や「お」といった口の形状をするときにも使用されます。

反応しにくいので、口を軽く開けた時に反応するよう調節しておいてください。特に本モジュールを使用する場合は補正判定用に使用しているので、強めに設定する必要があります。

MouthPucker

こちらは唇を合わせた状態で押し出したときの表情で、口を小さくすぼめるときに使用します。唇の表現がないアバターではFunnelとPuckerの違いが分からないかと思います。

大抵はPukkerの方が動作しているはずです。

こちらも本モジュールでは「MouthFunnel」と組み合わせて補正判定用に使用しています。「MouthFunnel」と違って「MouthPucker」は意図せず反応しないように調節してください。

MouthLeft/Right

口の位置を左右に動かします。

そのままだと多少誤作動するので、意図的に動かしたときだけ反応するように調節してください。

MouthRollUpper / MouthRollLower

上唇や下唇が口の中に引っ込む表情です。「MouthPress」と関連があります。

Unified Expressionsでは「LipSuckUpper」「LipSuckLower」と呼ばれます。

MouthShrugUpper

上顎を持ち上げて少し押し出します。

Unified Expressionsでは「MouthRaiserUpper」と呼ばれます。

MouthShrugLower

下唇を上方に押し上げて、口元が持ち上がる様子を表す表情です。部分的に悲しい表情グループに分類されます。後述するFrownとの組み合わせで使用することで、悲しい表情の強調ができます。口をへの字にするときにも使う場合があります。

Unified Expressionsでは「MouthRaiserLower」と呼ばれます。

悲しい表情が出にくい方は、反応しやすいようにしても良いでしょう。

MouthClose

口を閉じるというパラメーターですが、「JawOpen」と組み合わせて使用するものです。あごが開いている状態に対して、口がどれだけ閉じているかを表す表情です。

あごを大きく開けた状態で口だけを閉じてみてください。鼻の下を伸ばしたような表情になるはずです。口を閉じているときに誤作動すると口が埋もれる原因になります。

無効化する場合

かなり気難しいパラメーターなので、鼻の下が伸びてしまって困っている方や、鼻の下を伸ばす表情をするつもりのない方は思い切って無効化してしまうのもありです。
但し、使用しているアドオンによってはMouthCloseが重要な動きとなる場合もあるので、様子を見ながら調節することをおすすめします。

MouthSmileLeft/Right

笑顔を作るときに使用します。左右対称化してあります。

内部的には「MouthCornerPuller」と「MouthCornerSlant」の組み合わせで動作していると思われますが、Baballonia側では既に「MouthSmile」として分類されているので気にしなくてもよさそうです。

反応しやすいように調節しても構いませんが、使用するアバター(アドオン)によっては過剰になる場合があります。

MouthFrownLeft/Right(MouthSad)

口角を下げて悲しい表情を作るときに使用します。左右対称化してあります。

「MouthShrug」と組み合わせてより尖った形のへの字を作ることができます。また、「MouthStretch」と組み合わせて悲しい表情に変化を加えることもできます。

アバターに使われているパラメーターに「MouthSad」というものがあり、これは「MouthFrown」と「MouthStretch」の組み合わせで動作しています。おそらくFrown側が支配的なので、悲しい表情を出すときは「MouthFrown」を主体として調節すると上手く動かすことができるはずです。

誤作動しやすい方は下限の値を上げておき、意図的に出したときは反応しやすいように調節してもよいかと思います。

MouthDimpleLeft/Right

口角を口の奥に引っ込めてえくぼを作るものです。左右対称化してあります。

上手く表現されるかどうかはアバター(アドオン)次第なので、変化が見られない場合は無視して構いません。

MouthUpperUpLeft/Right

上唇を上げる表現で、上唇や口の上部を上に持ち上げる用途でのみ使用されます。左右対称化してあります。

関連するパラメーターとして、「NoseSneer」によって強調されます。

口を開けて笑うときに、より強く口角を上げる場合に使われるようです。こちらについてはお好みで。

MouthLowerDownLeft/Right

下唇を下げる表現で、左右対称化してあります。

「MouthUpperUp」と組み合わせることで、歯をしっかりと見せるような表現が行えます。

「い」の口をしたときに上手く歯を見せられない原因になるので、ちゃんと反応するよう調節してください。

MouthPressLeft/Right

上下の唇をどの程度合わせているかを表現するものです。左右対称化してあります。

強く口を閉じたときに反応します。「MouthRollUpper/Lower」と関連があり、唇を巻き込むような表情をした時にも反応します。

唇のないアバターでは「MouthPress」や「MouthRollUpper/Lower」が強く効いたときに口が消えて見えるかもしれません。

MouthStretchLeft/Right

口を外側に引っ張ってなおかつ下方向に下げるような表情で使用します。左右対称化してあります。

悲しい表情グループに属しており、疲れた表情や悲しい表情のときに使用されます。口角を下げ気味に左右に大きく広げると反応するパラメーターで、下の歯を見せるように口角を下げた時にも反応します。

口を開けながら悲しい表情をするときにも使用できます。

少々シビアな感じがあるので、意図せず動作しないように下限は上げておきます。但し反応しにくいので、上限は効きやすいように調節してもよいでしょう。

舌の表現

舌については、本モジュールでは一切触れていません。やたらと充実しているので自由度は高めです。

TongueOut

舌を出す表現です。

誤作動しやすいので、意図せず動作しないように気を付けてください。

TongueUp

舌を上げる表現です。口を開けたときに舌だけが上がるなどの誤作動をする場合は調節してください。

TongueDown

舌を下げる表現です。

TongueLeft/Right

舌を左右に動かす表現です。

動きが鈍い場合は大きく動くように調節してみましょう。

TongueRoll

舌の両側が上がって包み込むような形状です。

TongueBendDown

TongueCurlUp

TongueSquish

TongueFlat

TonueTwistLeft/Right

舌を巻くような形状だったり平らになっていたり……という感じですが、難しすぎてよく分かりません。

目の表現について

現行バージョン v1.1.1.0の場合

「LeftEyeLid」と「RightEyeLid」だけが動作します。他の項目はありません。

基本的にまばたきだけの動作となり、目を見開いたり細めたりするのには対応していません。その代わり、あまり細かく調整しなくてもそれなりに動いてくれるはずです。

本モジュールは現行バージョン(v1.1.1.0)向けの目の補正は殆ど行っていません。寄り目・反り目の補正だけ動作します。

キャリブレーション手順

コツは中央の白い点から目を離さないようにする事と、できるだけ瞬きしないように頑張ることです。頭の動かし方は無理のない範囲で行えば十分です。

アルファテスト版 v1.1.1.1の場合

アルファ版では「EyeWiden」と「EyeSquint」そして「EyeBrow」のパラメーターが増えています。

EyeWiden
EyeSquint

このテストバージョンはSteam版の方で試すことが可能です。まず、SteamライブラリでBaballoniaのプロパティを開きます。

次に、ゲームバージョンとベータから「expressions」を選択してください。これでバージョンが切り替わります。

設定などはそのまま引き継がれますが、誤ったキャリブレーションファイルを読み込む可能性がありますので一度アンインストールしてからアルファテスト版にすることをおすすめします。

安定版(v1.1.1.0)のキャリブレーションデータでは目を細めたり見開いたりするデータが含まれていないので、目のキャリブレーションを再度行う必要があります。現行バージョンよりもキャリブレーション手順が増えていて難易度が上がっています。

まだテスト版扱いですので、EyeLid周りが上手く動作しないようです。そのままでは自由に目を細めたりウィンクが上手く行えないはずです。

EyeLidの動作が壊れている状況に暫定対応するため、本モジュールではEyeSquintを基準としてウィンクをしやすくしたり、瞬きの補正を掛けたりしてあります。とはいえ、正式リリース時にはこれらの補正が壊れると思われますので、一時的な回避策としてお使いください。正式リリースされたらモジュールの方もなんとかします。

EyeLidの範囲が「0.60 – 1.00」などでも上手く行く場合はありますし、EyeSquintを「0.00-0.90」ぐらいにする必要があるかもしれません。フェイスクッションを交換したりメガネスペーサーを挟んだりして距離が変わったときは、目のキャリブレーションをやり直してください。

左右のEyeLidを比較して最小値を採用してまばたきするように補正してあります。まばたきしやすい程度に調節してください。スライダーを右側に寄せすぎると、まばたきが二重に動作する場合があります。
また、EyeSquintの上限を少し下げるとウィンクしやすくなりますが、誤作動して両目が閉じやすくなるかもしれません。

EyeSquintを使用する関係上、EyeSquintが動作していないと補正が機能しません。テスト版でSquintが上手く動作していない場合は、キャリブレーション(目の補正)をやり直してください。
また、目の感じはキャリブレーション結果や個人差が大きいと思われるので、下のスクリーンショットは参考程度にしてください。奇妙な補正で補っているため、まばたきなどの動作にクセがあります。

最近直したつもりですが、まばたきが二重に動くのであれば、ほぼ初期設定の方が上手く動く場合もあります。ちょっとここについては調整を検討していますが、まだBaballonia側がアルファテスト版なので深入りは避けたいところです。

キャリブレーション手順

手順が増えますが、内容は大きく変わりません。キャリブレーション操作に5分程度要するのと、学習データのONNXファイルを生成するのに10分程度掛かるので、完了まで15~20分程度見ておくことをおすすめします。

  1. 通常のキャリブレーション(60秒)
  2. 目の表情を付けてキャリブレーション(60秒)
  3. 目を閉じてキャリブレーション(10秒)
  4. 目を見開いてキャリブレーション(20秒)
  5. 目を細めてキャリブレーション(20秒)
  6. 怒った表情で眉をキャリブレーション(20秒)

以上の順番でキャリブレーションを行います。

まだアルファテスト版なので、今後のアップデートで手順が追加・変更される可能性はあります。(例えばウィンクキャリブレーションとか?)

1と2は通常の視線学習とその補完が目的で、4~6はEyeWiden、EyeSquint、EyeBrow時の視線データの学習を行います。3の目を閉じている状態の学習以外は「全て目を開けている状態」という前提で学習するので、可能な限り目を閉じないよう気をつけながら行いましょう。

「Eye Calibration (No Tutorial)」を選ぶと、視線10秒 + 表情15秒 + 瞬き20秒 + 見開き20秒 + 半目20秒 + 眉20秒(合間の休憩4秒)というQuickバージョンが行えます。
目が乾いて最初のキャリブレーションを60秒もやってられない!って方は「Eye Calibration (No Tutorial)」に切り替えてお試しください。

その他の目の補正について

キャリブレーションが上手く行かず、目を細めたときに視線がおかしくなったり、常に寄り目・反り目になってしまうような状況を回避する補正が入っています。デフォルトで有効にしてあるので、補正が邪魔になる場合はオフ(false)にしてください。

  • PreventCrossEye(寄り目・反り目の補正)
  • UseCrossEyeSync(視線の左右を同期)
  • UseEyeLidCenter(まばたきや目を細めたときに視線を中央に戻す)
  • UseEyeWideCorrection(目を見開いたときの開き具合を左右同期する)
  • UseLidSync(通常の目の開き具合を左右同期)
  • UseWinkLock(EyeSquintを使用したウィンクとまばたきの各種補正)

設定ファイルについて

「config.ini」をメモ帳で開いて編集することで補正動作を変更することができます。

エクスプローラーで開いても良いですし、以下のアドレスを「ファイル名を指定して実行」に貼り付けて、直接開くことも可能です。

%AppData%\VRCFaceTracking\CustomLibs\cbb751d2-da77-4763-b631-0e8ab03a5773\config.ini

変更後はVRCFTを再起動する必要があります。変更されたかどうかは、VRCFTのデバッグログで確認できます。

違法建築めいた事をした結果、まだ内容を整理できておらず、とっちらかってる状況です。ワケが分からないって?ごめん、自分もそう思います。

さて、ここまでの説明と重複しますが、以下に詳しい内容を記載してあります。設定ファイルの内容を変えて微調整したい方は参考にしてください。

口周りの補正

左右対称化モード SymmetricMode(0~2)

パラメーターを左右対称化するときの方法を選べます。(MouthCornerPull/MouthFrown/MouthDimple/MouthUpperUp/MouthLowerDown/MouthPress/MouthStretch)

0の「最大値」で対象化するのがデフォルト設定です。1は「平均値」2は「最小値」で対象化します。最大値以外での動作確認はしていません。とりあえず用意したおまけ機能です。

JawOpen抑制 PuckerJawOpenSuppression(0.0~1.0)

MouthPuckerが動作して口をすぼめるときに、JawOpenをどの程度抑制するかを設定できます。Puckerが強まるほどJawOpenが弱まるようになっており、Puckerが十分強いとき0.0でJawOpenをほぼ無効化、0.5にすれば半分程度残します。

デフォルトは0.3なので、JawOpenが30%ぐらい残るように抑制されています。「う」や「お」の口の形が思ったよりも大きく(または小さく)なってしまう場合に抑制の強さを調整してみてください。

判定条件を弄りたい場合は、JawOpenFunnelThresholdとJawOpenPuckerThresholdで調整可能です。また、MouthFunnelが閾値を超えると抑制が掛からなくなりますので、JawOpenそのものの最大値を弄りたい場合はJawOpenMaxで制限してください。

視線の補正

寄り目・反り目の補正 PreventCrossEye(true/false)

意図せず常に寄り目や反り目になってしまうのを抑制し、正面を向くように補正します。キャリブレーションしても直らない人向けの設定ですが、デフォルトで有効になっています。意図的に寄り目などをしたい方はfalseに切り替えてください。

寄り目・反り目の補正の強さ CrossEyeStrength(0.0~1.0)

寄り目や反り目と判定されたときの補正の強さを指定します。0.0で補正されなくなり、1.0で横方向を正面へ補正されます。こちらは上下方向の補正は行いません。

デフォルト値は0.8

瞬きや目を細めたときの補正 UseLidEyeCenter(true/false)

瞬きや細目のときに目が上下に動いてしまうのを防ぎます。こちらもキャリブレーションで直せない人向けの設定ですので、適切なキャリブレーションができて動作に問題がなければfalseにして無効化しても大丈夫です。

ウィンク・瞬きロック機構に含めてしまったため、「UseWinkLock = true」の場合に動作します。

目を開けているときの視線の左右同期 UseCrossEyeSync(true/false)

片目だけ視線が動いてしまうのを防いで、両目同時に動くようにします。左右差がCrossEyeSyncDiffThresholdを超えたときに平均値に補正するようになっています。

注意点として「PreventCrossEye = true」と設定されている必要があります。

視線のリミッター EyeInnerLimit/EyeOuterLimit/EyeUpLimit/EyeDownLimit

視線が動きすぎて、はみ出すような場合に使用してください。デフォルト値がリミッター無しに相当する1.0です。80%ぐらいに制限したい場合は0.8にします。

見開き・瞬き

目を見開く(EyeWide)を有効化するかどうか UseEyeWide(true/false)

Baballoniaアルファテスト版向けの設定です。目を見開くのはしたくないという理由で、あえてEyeWidenを無効化したいときはfalseに指定してください。

目を見開くときの左右対称化を有効化するかどうか UseEyeWideCorrection(true/false)

見開き具合が左右でばらつくのを防ぎます。左右を比較して最小値を採用するので、片目だけ意図せずEyeWideが動き回っていても対応できます。

目を見開くときの最大値 EyeWideLimit(0.0~1.0)

目を見開きすぎる場合に使用します。BaballoniaやVRCFTの調整機能では、パラメーターの増幅はできても最大値の抑制ができないようなので用意しておきました。

左右対称化にまとめてしまったため、「UseEyeWideCorrection = true」のときだけ動作します。

デフォルト値は1.0

目の開き具合の左右同期補正 EyeLidSync(true/false)

目の開き具合が左右でばらつくのを防ぎます。

これもウィンク・瞬きロック機構に含めてしまったため、「UseWinkLock = true」の場合に動作します。

Squint時のまぶたの閉じ具合 SquintStrength(0.0~1.0)

EyeSquintで目を細めたときに、EyeLidに対して補正を掛ける強さです。EyeSquintが強いほどEyeLidが小さくなります。EyeSquintの値を使ってEyeLidの閉じ具合を強くする(0.0に近づける)ようなイメージで補正しているので、閉じすぎる場合は値を弱めてみてください。

例えばSquintStrengthを1.0にした場合、EyeSquintが0.5だとEyeLidが半分になり、EyeSquintが0.8ならEyeLidが0.2倍されます。うん、なんか分かりにくいですね。

Baballoniaのアルファテスト版用に暫定対応した都合上、不適切な挙動となっている恐れがあります。そのため、今後のBaballoniaアップデート次第で機能の削除や変更される可能性があります。

デフォルト値は1.0で「UseWinkLock = true」の場合に動作します。

ウィンク・瞬きのロック

Squint中はLidが壊れている前提の設計なので、ウィンクロック中は反対側の瞬きをSquintを主体にEyeLidは補助として制御しています。今後のBaballoniaアップデートでEyeLidの動作が改善されたら不要となる予定の機能です。

EyeSquintがある程度動かないと適切に動作しませんので、上手くウィンクできないときはBaballonia側でパラメーター調整を行うか、キャリブレーションをやり直すことをおすすめします。

ウィンク・まばたきの検出とロック UseWinkLock(true/false)

EyeLidの動作が壊れているBaballoniaのアルファテスト版において、ウィンクができるようにします。暫定対応した機能ですので、意図せずウィンクになったりぎこちない動作になる場合があります。

この設定をfalseにすると、以下に記載したウィンク・まばたき系の補正の他にEyeLidSync/SquintStrength/UseLidEyeCenterによる補正は無効になります。(目の開き具合や細め具合が関わるやつは大体無効になります。)

まばたきの検出に必要なフレーム数 BlinkThresholdFrames(最小1)

左右のEyeSquintが共に弱く、左右いずれかのEyeLidが閾値(BothOpenOpenness + BlinkLidThresholdOffset)を下回る状態が指定したフレーム数続くと、瞬きとして扱って両目を同時に閉じます。

但し、安定版(v1.1.1.0)を使用している場合は、片目だけ閉じている状態を両目閉じと誤検出しないように例外動作をします。

ウィンクの検出に必要なフレーム数 WinkThresholdFrames(最小2)

EyeSquintが強い側をウィンク候補として、指定したフレーム数維持された場合にウィンク扱いしてロックします。ロック中はEyeLidを強制的に0にして閉じた状態を維持します。

ウィンクの解除に必要なフレーム数 WinkReleaseFrames(最小2)

両目を開いた状態(EyeLidやEyeSquintが閉じる方向に動いていない)が指定したフレーム数続いたら、ウィンクロックを解除します。開いている判定にBothOpenOpennessとBlinkSquintを使用しています。

BlinkThresholdFrames < WinkThresholdFrames ≦ WinkReleaseFramesとなるよう設定することを推奨します。それ以外の設定値にすると、意図したとおりに動かない可能性があります。

ウィンク判定のための閾値 WinkSquintClosed(0.0~1.0)

EyeSquintがこの値以上かつWinkSquintOpenの条件を満たしているとウィンク判定します。なので、ウィンクロック状態にならないよう目をギリギリまで細めたいときや、ウィンクが誤爆しやすい場合は値を上げてみてください。

デフォルト値は0.85

ウィンク解除判定のための閾値 WinkSquintOpen(0.0~1.0)

EyeSquintがこの値を下回ればウィンクのロックを解除します……というと語弊があります。ウィンク判定時に反対側の目が閉じてないことを保証するための値です。

瞬きとウィンクの区別のために用意されている境界線のようなものです。値を上げるとウィンクが誤作動しやすくなり、値を下げるとウィンク時に片方の目をしっかり開く必要があるはずです。

デフォルト値は0.5

Squintで細める場合は瞬きとして判定しないようにする閾値 BlinkSquint(0.0~1.0)

これも設定ファイルの説明書きがちょっと不正確です。これは「この値をEyeSquintが下回っているときだけ瞬きを許可する閾値」です。

左右のEyeSquintがこの値を下回っていればEyeLidでの瞬きが可能になり、どちらか一方でもこの値以上になると細目扱いになってEyeLidを瞬き判定から除外します。つまり、この値を下げすぎるとまばたきが検出されにくくなりますし、上げるとEyeLidが動いたときにまばたき判定されやすくなります。

デフォルト値は0.2

テストに使用したアバターなど

VRChat – Home
Metaman from the face tracking demo https˸⁄⁄github․com⁄oculus-samples⁄Unity-Movement
VRChat – Home
Mayo_FT_Sample_Fermata
【オリジナル3Dモデル】 Mayo / まよ / ver.1.02 – Chocolate rice – BOOTH
━━━━━━━━━━━━━━━━━━━━━━━
FacialTracking for Mayo(まよ) – Fermata Shop – BOOTH
まよちゃんのFacial Tracking設定です。 VRCHATでの使用を想定して設定されています。 VRCFT v5.0 Unified Expressionsをサポートする機器で使用できます。 誇張せず自然で可愛らしい表現を追求して設…

よくある質問

Q
普段はどのアドオンを使ってますか?
A

Fermataさんのアドオンを使っています。

Q
Hashさんのアドオンを使っていますが、上手く動作しますか?
A

今のところはある程度動作するはずです。予想以上に動きすぎる場合はリミッターなどを活用し、寄り目・反り目の補正なども使用してみてください。
Hashさんのフェイストラッキングアドオンでも上手く動作するように補正内容を少し見直したので、口元の急な動きは軽減されていると思います。但し、柔軟な動きが魅力のHashさんのアドオンとは逆の考え方をする補正を掛けている都合上、100%のトラッキングは発揮できないことをご了承ください。

Q
口をすぼめるときに急に小さくなります
A

補正処理でJawOpenを抑制しすぎているようです。Modified.8で動作の見直しを行っていますが、気になる場合は調整をお願いします。
例えばMouthPuckerの上限を最大値に戻すか、PuckerJawOpenSuppressionを0.3よりも大きくしてみてください。0.0でJawOpenをほぼ無効化、0.5で半分抑制、1.0では抑制しないという処理になっています。

Q
目を閉じたり喋ったりすると、一部の表情が破綻します
A

改変したアバターのシェイプキーの動作が、フェイストラッキングの動きと上手く合っていないことが主な原因です。アニメーションを弄るか、フェイストラッキング用のシェイプキーに対して改変後の数値で打ち消すような変更を加える必要があります。例えば、ZatoolsのMix BlendShapes on Buildでシェイプキーの調整が行えます。
https://zatools.kb10uy.dev/ndmf-plugin/adhoc-blendshape-mix/

【VRChat】フェイストラッキング時の表情をいい感じに調整する – 一年中こたつ出てる
はじめに Quest Proなどを買って、ついにフェイストラッキングができるぞ!となって意気揚々とモジュールを買って入れてみたものの、「なんか違うな……」って思いながら使い続けている人がたくさんいると思ってます。 「なんか表情が大げさすぎて…
Q
ここに書いてあることは正しい?
A

詳細な公式ガイドが見当たらないのでソースコードを確認したり、実際に動作を検証して執筆していますが、書き間違えていることもあります。もちろん、間違いに気付いたときは都度修正をしています。内容の保証はできませんし、100%公式情報というわけでもありませんから、あくまでも参考程度に留めていただけると幸いです。

タイトルとURLをコピーしました