Tips: パーフェクトシンク
パーフェクトシンクはVMagicMirror v1.3.0で追加された機能です。
目次
パーフェクトシンクとは
パーフェクトシンクは外部トラッキング機能の発展的な機能で、高度に表情を操作できます。利用にはFace ID対応のiPhoneまたはiPadが必要であり、またVRMモデルにもパーフェクトシンク用のセットアップが必要です。
あらかじめ外部トラッキング機能の基本機能を試したのち、本ページを読むことを推奨しています。
パーフェクトシンクでは、iOSのARKitで取得できるユーザーの様々な表情を、アバターの個別のブレンドシェイプに反映する仕組みを提供します。これによって、VRMの規格で最低限サポートされるものより多様な表現が可能になります。
パーフェクトシンクをサポートする他のVRMツール
パーフェクトシンクはVMagicMirrorに固有の機能ではありません。
例えばVearやLuppetもパーフェクトシンクに対応しています。
どれか一つのツールでパーフェクトシンクが動くようセットアップされたモデルは、基本的に他のツールでも利用できます。
パーフェクトシンクをすぐ試すには
※すぐモデルのセットアップに進みたい場合、このセクションをスキップして構いません。
パーフェクトシンクを簡単に試す方法を2つ紹介します。
1つ目の方法は、セットアップ済みのモデルを使うことです。
千駄ヶ谷 渋(iPhone用BlendShapeあり)をダウンロードしたのち、VMagicMirrorでロードします。その後、外部トラッキング(Ex.Tracker)
タブで外部トラッキングを有効にしてiOSアプリと接続します。さらに、パーフェクトシンク
チェックをオンにします。
これで完了です!眉や口を好きに動かしたり、舌を出したりしてみて下さい。
あるいは、上記のモデル以外でVearのパーフェクトシンクに対応したモデルをロードしても構いません。このページの下部で触れますが、Vearのパーフェクトシンクに対応したモデルは基本的にVMagicMirrorのパーフェクトシンクでも動作します。
2つ目の方法はVRoidモデルをHANA_Toolと組み合わせることです。もしお使いのVRMがVRoid Studioモデルであり、かつブレンドシェイプのカスタマイズを特に行っていない状態であれば、モデリング作業を行わずにパーフェクトシンクに対応できます。
HANA_Tool
の使用方法は下記ページや、その他のウェブページでご確認下さい。
参考: クリックで実装!パーフェクトシンク BY HANA Tool
NOTE
VMagicMirror v1.6.2およびそれ以前のバージョンではVRoid用のデフォルト設定を使う
という機能を提供していました。
しかし、この機能はVRoid Studioのバージョンによっては表情が大きく崩れてしまう問題があったため、v1.7.0で廃止しています。
v1.6.2以下のバージョンについても、VRoid用のデフォルト設定を使う
は現時点で非推奨の機能です。
セットアップStep1. モデルのブレンドシェイプ整備
ここから下では、VRMをパーフェクトシンクに対応させる手順を示します。
お使いのVRMをパーフェクトシンクに対応させるには、iOS ARKitの仕様にあわせた最大52個のブレンドシェイプを用意します。このステップではBlender等でのモデル編集が必要です。
ブレンドシェイプの種類や、各ブレンドシェイプが取るべき形状は、こちらの記事で確認できます。
実際の作例を見たい場合、前の章でも触れた触れた千駄ヶ谷 渋(iPhone用BlendShapeあり)などをご覧ください。
また、「こんなに細かいものは必要ない」と感じるブレンドシェイプについては作成をスキップしても構いません。ただし、まばたきを自然にするために、EyeSquintRight
, EyeSquintLeft
,EyeBlinkLeft
, EyeBlinkRight
の4つは必ず用意して下さい。
セットアップStep2. Unity上でのBlendShapeClip作成
前の章で準備したモデルをUnityで一度インポートします。そして、作成したブレンドシェイプに対応する52個のBlendShapeClip
を作成します。クリップ名は、iOSの顔トラッキング仕様に沿って、以下の名前にして下さい。
BrowInnerUp
BrowDownLeft
BrowDownRight
BrowOuterUpLeft
BrowOuterUpRight
EyeLookUpLeft
EyeLookUpRight
EyeLookDownLeft
EyeLookDownRight
EyeLookInLeft
EyeLookInRight
EyeLookOutLeft
EyeLookOutRight
EyeBlinkLeft
EyeBlinkRight
EyeSquintRight
EyeSquintLeft
EyeWideLeft
EyeWideRight
CheekPuff
CheekSquintLeft
CheekSquintRight
NoseSneerLeft
NoseSneerRight
JawOpen
JawForward
JawLeft
JawRight
MouthFunnel
MouthPucker
MouthLeft
MouthRight
MouthRollUpper
MouthRollLower
MouthShrugUpper
MouthShrugLower
MouthClose
MouthSmileLeft
MouthSmileRight
MouthFrownLeft
MouthFrownRight
MouthDimpleLeft
MouthDimpleRight
MouthUpperUpLeft
MouthUpperUpRight
MouthLowerDownLeft
MouthLowerDownRight
MouthPressLeft
MouthPressRight
MouthStretchLeft
MouthStretchRight
TongueOut
それぞれのBlendShapeClip
では原則として、Step 1で用意したモデル側のブレンドシェイプ1つを、weight
が100
になるようセットアップします。
Step 1でブレンドシェイプを作成しなかったものについては、BlendShapeClipを空の状態にします。つまり、何の表情も動かさないクリップにします。
以上ののちVRMを再度エクスポートすることで、パーフェクトシンクに対応したVRMモデルが得られます。
リファレンス
その他、パーフェクトシンク用モデルのセットアップ方法をより詳しく知るには以下の記事などを参照ください。
VRoidでかんたん!パーフェクトシンク(1/3)VRoidモデルのFBXエクスポート
補足. Vearとの互換性が高い背景について
VMagicMirrorでパーフェクトシンクを使うためのVRMのセットアップ条件は、Vearのパーフェクトシンクの要件とほぼ共通です。これは2つの背景に基づきます。
第一の背景として、パーフェクトシンクの仕様ベースとなる各リソースを公開しているHinzkaさんのモデルやブログ記事のリファレンスに沿った結果、要件が共通しています。
第二の背景として、Vearの現行要件に沿ったモデルを再利用できるようにし、VRMのセットアップ作業をなるべく減らせるようにするため、モデルの要件を共通させています。
ただし、あくまで指針として要件を近づけているだけであり、完全な互換性を保証するものではないことにご注意下さい。