「アバキットマニュアル5」トラッキング設定
こんにちは、アバキットです。
今回はアバキットの「コア機能」の一つであるトラッキング設定について説明します!これらの機能と設定を扱うことができれば、アバキットを十分に楽しむことができます。
この記事で最も楽しいことの1つは、アバキットが1.0.6-alphaバージョン以降で「iFacialMocap」とモーキャップパイプラインを統合したことです!完璧な表情同期とハンドトラッキングを同時に実装できるようになりました。
Step 1
トラッキングメニュー
左のメニューバーの4番目のアイコン「トラッキング」をクリックしてください。トラッキンにはいくつ設定があります。以下のStepでトラッキングメニューの構成要素について説明しましょう!
Step 2
トラッキング
一番上の「トラッキング」を見てみましょう。基本的にこのオプションは有効になっています。このオプションをもう一度クリックして無効にすると、トラッキングは即座に停止します。トラッキングを開始/停止するホットキーもあります。 ('P' 一時停止/再生)
このオプションを有効にすると、「アバター固定」と「VMCプロトコル」という2つのサブオプションがあります。「アバター固定」オプションは以前記事で説明しましたので、ご参考ください。
「VMCプロトコル」機能については、もっと説明が必要ですから、次のStepでこのトピックを扱います。
Step 3
VMCプロトコル
VMCプロトコルは「Virtual Motion Capture Protocol」の略で、ウェブカメラをスマートフォンで代用する方法のひとつです。より厳密には、AvaKitのモーションキャプチャパイプラインの代わりに、他のモバイルアプリのモーションキャプチャパイプラインを使用することです。そのため、VMCプロトコルアプリのトラッキング性能はアバキットの性能より低い可能性があります。(したがって、AvaKitはVMCプロトコルを使用しないことを推奨します。)
方法の右のトグルをクリックしてVMCプロトコルを押してください。するとトラッキングが停止し、VRMはTポーズ(VRMの基本ポーズ)になります。
次に、Windowsの「設定」から「ネットワークとインターネット」をクリックします。
クリックすれば、PCが接続されているネットワークが表示されます。VMCプロトコルを使用するには、PCがスマートフォンと同じネットワークに接続されているのが必要です。「Wi-fi」をクリックしましょう。
すると、Wi-fiの簡単な情報と設定が表示されます。使用しているWi-fiのボックスをもう一度クリックすると、ネットワークのディテールが表示されます。ウィンドウを下にスクロールしてWi-fiの「IPv4アドレス」を確認してください。この番号をコピーします。
次に、VMCプロトコルをサポートするアプリをオンにします。この例では、「Waidayo」というアプリを使います。
「Waidayo」ダウンロードが終わると、アクセスお知らせがいくつか来ます。それらをすべて許可して、アプリを起動します。次に、メニューバーをクリックして、このアプリをAvaKitと連携させます。
すると、設定ウィンドウが表示されるので、「Motion IP Address」と「Motion Port」を調整します。
まず、「Motion IP Address」の横の数字をクリックし、コピーした「IPv4アドレス」を貼り付けます。次に、「Motion Port」の横の数字をクリックし、「39539」を挿入します。(39539はアバキットの固有モーションポート番号です。)VMCプロトコルを開始するには、PCとスマートフォンの無線LAN接続が同じでなければならないことに注意してください。
これで完了です!スマートフォンの前でまばたきをすると、アバキットのアバターもまばたきをします。
Step 4
iFacialMocap(パーフェクトシンク)
「パーフェクトシンク」は、iPhoneやiPadのFaceIDを使った顔トラッキングのソフトで、より豊かで高品質な表情を得ることができます。また、すべてのアバターがパーフェクトシンクに対応しているわけではありません。理論的には、パーフェクトシンクは、iPhoneやiPadのカメラで撮影された顔データと、iOSのARKit Face Trackingの52のブレンドシェイプパラメーターをマッチングし、VRMのBlend Shape Clips パラメーターを調整します。
まず方法の右のトグルをクリックして、iFacialMocapを押してください。
あと完璧な同期を開始するには、iPhoneに特定のモバイルアプリケーション(iFacialMocap)をインストールすることが必要です。(アバキットは'iFacialMocap'を正式にサポートしています。)
最初にダウンロードして実行すると、いくつかのアクセスお知らせが表示されます。すべて許可しておくと簡単に実行できます。画面でiPhoneが接続しているネットワークのIPアドレスが下のイメージのように表示されます。VMCプロトコルのImbed方法と同様に、iPhoneとPCが同じネットワークに接続されている必要があります。
アバキットの「iFacialMocap」オップションに、アプリに表示されているIPを挿入します。IPアドレスを正しく適用した後、'Body Movement'オプションを有効にすることで、アバキットのハンドトラッキングとボディトラッキングを完全同期と統合するかどうかを決定できます。
Step 5
アイトラッキング
次はアイトラッキングについてです。アイトラッキングを無効にすると、まばたきや目の開閉をしてもアバターはまばたきや目の開閉をしません。
「Gaze tracking(視線追跡)」は視線追跡のオプションで、これを有効にするとアバターに虹彩の動きが反映されます。Sensitivityは虹彩の動きをアバターに反映させる感度を決めます。
「Blink both eyes together(両目を同時に点滅させる)」オプションは、アバターの両目の開閉を同時に行います。つまり、このオプションは片目瞬きの動きを無効にします。ただし、このオプションを有効にすると、まばたきの安定性が増します。
Step 6
目のキャリブレーション
この機能は、ユーザーの目とVRMモデルの目を照合します。キャリブレーションを開始するには、まず「実行」ボタンをクリックします。すると、下のイメージのように、いくつかのオプションが付いたトラッキングウィンドウが表示されます。
キャリブレーションモードには、「平均値」によるキャリブレーションと「個別値」によるキャリブレー ションの2つのオプションがあります。「平均値」はキャリブレーション結果が両目のサイズの平均値として計算されることを意味し、「個別値」はキャリブレーションがそれぞれの目のサイズを個別に測定することを意味します。「個別値」オプションは、キャリブレーションがうまくされた場合により正確ですが、カメラの性能によって異なる場合があります。(「平均値」オプションはキャリブレーション結果がより安定します。)
まずは「平均値」モードでキャリブレーションしてみましょう。結果はスライダーで表示されます。
「平均値」でキャリブレーションを行ったので、両目のキャリブレーション結果は同じです。「個別値」モードでキャリブレーションを行った場合はどうでしょうか?この場合、「左」と「右」の値は異なります。
目のキャリブレーションの実装パイプラインを理解するには、アバキットの目のキャリブレーションで「左」と「右」の値がどのように定義されるかを理解する必要があります。アバキットでは、「0」はアバターが完全に目を閉じた状態を意味し、「100」はアバターが完全に目を開いた状態を意味します。しかし、実際人の目の大きさはアバキットとは異なります。それぞれの目の大きさが違ったり、実際の目の大きさがアバターより小さかったりすることがあります。
例えば、ユーザー様の目が小さくそのため上まぶたを少し下げたときに目が完全に閉じている場合、上まぶたの位置は「30」になるかもしれません。しかし、アバキットが送信する値は「0」ではなく「30」なので、アバターは目を完全に閉じません。つまり、目を完全に閉じても、アバターの目は少し開いていることになります。
この例は、目を開けたときにも同様に適用できます。目が小さく上まぶたを少し開けても目が完全に開いている場合、上まぶたの位置は「70」になるかもしれません。しかし、アバターは受信した値が「100」ではなく「70」なので、目を完全に開くことになりません。
したがって、アイキャリブレーションは上まぶたの位置の最小値と最大値をクランプして、まばたきを決めるようなものです。簡単に言えば、その値が「30」より小さいか同じなら目を閉じ、「70」より大きいか同じなら目を開けるよう、VRMに要求することになる。面白いですよねー
step 7
口のトラッキング
口のトラッキングを有効にすると、アバキットが口の動きをキャプチャすることができます。口のトラッキング機能を無効にすると、人の口を完全に開けても、アバターは全く口を開けなくなります。
では、「詳細トラッキング」オプションとは何でしょうか?
詳細トラッキングは、多くのアバターの口のトラッキングに対応するための機能です。アバキットはカメラで撮影したデータをもとに、アバターの口の動きをリアルタイムでレンダリングします。これらのモーションデータは、アバターの口の動きに関連するブレンドシェイプに変換されマッチングされるはずですが、同じブレンドシェイプの名前でも言語や表情の作り方などが異なるため、このマッチング作業は困難です。そのため、通常の口のトラッキングを実施してもアバターの口が動かない場合は詳細 トラッキングを試してみてください。
「トラッキングソース」は口元トラッキングの実装方法を決定します。「カメラ」オプションはカメラで撮影された人の口の動きでトラッキングを行い、「オーディオ」オプションは人の声を母音('a'、'e'、'i'、'o'、'u')に分析してリップシンク方式でトラッキングを行います。したがって、「オーディオ」オプションを選択すると、オーディオベースのトラッキングに使用するマイクデバイスを選択することができます。
Step 8
腕のトラッキング
これはとても簡単です。このオプションをオン/オフすることで、手と腕のトラッキングを有効/無効にすることができます。
Step 9
深さのキャリブレーション
深さのキャリブレーションは、最初のマニュアルで一度お話しました。マニュアル1をご参考お願いします。
step 10
モーション平滑化
この記事の最後は「モーション平滑化」についてです。これはアバターのモーション性能に直接影響する部分です。アバターの移動、回転、平行移動の感度は、平滑化パラメータで定義できます。
平滑化パラメータのオプションには、プリセット設定と詳細設定の2つのパートがあります。まず、プリセットには Fast、Normal、Smoothの3種類があります。プリセットオプションの基本設定は「Normal」です。「Fast」を選択すると、アバターに対してより高速なモーションを適用できますが、安定性は低下します。一方、「Smooth」を選択すると、アバターの動きはより緩慢に見えますが、トラッキング性能の安定性は向上します。下のビデオを参考にしてください。同じスピードで手を振っているのに、プリセットのオプションによって、アバターの手の動きはかなり違ってきます。
モーション平滑化のメカニズムに慣れている方は、詳細設定でパラメータを調整し、動きの滑らかさを精密に変更することもできます。高度な設定では、回転と移動の滑らかさ、そして移動範囲も定義することができます。高度な滑らかさの設定を完全に理解するには、アバキットで定義されている回転と移動の違いを理解する必要があります。
「回転」は文字通り関節の回転を意味します。例えば、手首や腰の回転、首の動きなどはアバキットでは回転に分類されます。回転平滑化がどのように実装されているかは、以下のビデオ認できます。回転の滑らかさが高いほど、手首の回転は滑らかに、そして緩やかになります。
「動き」とは、回転以外のすべての動きを意味します。腕を上げたり、指を曲げたり、まばたきをしたりする動作も、アバキットでは「動き」に含まれます。どのように平滑化が行われているかは、下のビデオで確認できます。動作の滑らかさが高いほど、腕を上げる動作が滑らかで緩慢になります。
「動きの範囲」では、人の動きをどれだけアバターで表現するかを決めることができます。値を大きくするとアバターの可動範囲が大きくなり、よりドラマチックな動きになりますが、トラッキング性能が不安定になる可能性があります。逆に値を小さくするとアバターの動きはより静的になりますが、トラッキング性能はより安定する可能性があります。以下のビデオで、移動範囲がどのように実装されているかを確認できます。
今回はトラッキング設定について扱いました!アバキット中で一番重要なパートだと思います。すべてのユーザーの皆様にご理解いただけたことを願っています。
何かご意見やご質問がございましたら、いつでもお答えいたします。お気軽にお問い合わせください!
0コメント