English

Tips: パーフェクトシンク

パーフェクトシンクはVMagicMirror v1.3.0で追加された機能です。

パーフェクトシンクとは

パーフェクトシンクは外部トラッキング機能の発展的な機能で、高度に表情を操作できます。利用にはFace ID対応のiPhoneまたはiPadが必要です。

あらかじめ外部トラッキング機能の基本機能を試したのち、本ページを読むことを推奨しています。

パーフェクトシンクでは、iOSのARKitで取得できるユーザーの様々な表情を、アバターの個別のブレンドシェイプに反映する仕組みを提供します。これによって、VRMの規格で最低限サポートされるものより多様な表現が可能になります。

パーフェクトシンクをすぐ試すには

※すぐモデルのセットアップに進みたい場合、このセクションをスキップして構いません。

パーフェクトシンクをすぐ試す方法を2つ紹介します。

1つ目の方法は、セットアップ済みのモデルを使うことです。

千駄ヶ谷 渋(iPhone用BlendShapeあり)をダウンロードしたのち、VMagicMirrorでロードします。その後、外部トラッキング(Ex.Tracker)タブで外部トラッキングを有効にしてiOSアプリと接続します。さらに、パーフェクトシンクチェックをオンにします。

これで完了です!眉や口を好きに動かしたり、舌を出したりしてみて下さい。

あるいは、上記のモデル以外でVearのパーフェクトシンクに対応したモデルをロードしても構いません。このページの下部で触れますが、Vearのパーフェクトシンクに対応したモデルは基本的にVMagicMirrorのパーフェクトシンクでも動作します。  

2つ目の方法はVRoidモデルを使用することです。もしお使いのVRMがVRoid Studioモデルであり、かつブレンドシェイプのカスタマイズを特に行っていない状態であれば利用できます。

お使いのVRMをロードしたのち、外部トラッキング(Ex.Tracker)タブで外部トラッキングを有効にしてiOSアプリと接続します。さらに、パーフェクトシンク、およびVRoid用のデフォルト設定を使うチェックをオンにします。これで完了です!

ただし、2つ目の方法はあくまで簡易的な手段であり、パーフェクトシンクの利用は限定的です。例えば、この方法では舌を出したり、眉を片方ずつ動かすことはできません。

セットアップStep1. モデルのブレンドシェイプ整備

ここから下では、VRMをパーフェクトシンクに対応させる手順を示します。

お使いのVRMをパーフェクトシンクに対応させるには、iOS ARKitの仕様にあわせた最大52個のブレンドシェイプを用意します。このステップではBlender等でのモデル編集が必要です。

ブレンドシェイプの種類や、各ブレンドシェイプが取るべき形状は、こちらの記事で確認できます。

iPhoneトラッキング向けBlendShapeリスト

実際の作例を見たい場合、前の章でも触れた触れた千駄ヶ谷 渋(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つを、weight100になるようセットアップします。

Step 1でブレンドシェイプを作成しなかったものについては、BlendShapeClipを空の状態にします。つまり、何の表情も動かさないクリップにします。

以上ののちVRMを再度エクスポートすることで、パーフェクトシンクに対応したVRMモデルが得られます。

 

リファレンス

パーフェクトシンク用モデルのセットアップ方法をより詳しく知るには、以下の記事などを参照ください。

iPhoneトラッキング向けBlendShapeリスト

VRoidでかんたん!パーフェクトシンク(1/3)VRoidモデルのFBXエクスポート

パーフェクトシンクであそぼう!

パーフェクトシンクの顔をお着換えモデルに移植しよう

補足. Vearとの互換性が高い背景について

VMagicMirrorでパーフェクトシンクを使うためのVRMのセットアップ条件は、Vearのパーフェクトシンクの要件とほぼ共通です。これは2つの背景に基づきます。

第一の背景として、パーフェクトシンクの仕様ベースとなる各リソースを公開しているHinzkaさんのモデルやブログ記事のリファレンスに沿った結果、要件が共通しています。

第二の背景として、Vearの現行要件に沿ったモデルを再利用できるようにし、VRMのセットアップ作業をなるべく減らせるようにするため、モデルの要件を共通させています。

ただし、あくまで指針として要件を近づけているだけであり、完全な互換性を保証するものではないことにご注意下さい。