VRChat　VRoidでパーフェクトシンク顔トラしよう！

** フェイストラッキング **
　
友人からVRoidでARKitのパーフェクトシンクという要望がありました。
これまでフルスクラッチでフェイストラッキングを行っていましたが、VRoidを扱うのは初めてだったのでその手順を記載します。
ツールが整っているので、アイトラッキングやフェイストラッキングに対応しているVR機器があれば容易に行うことができます。SRanipal（HTC VIVE）、FACS Reduced（Quest Pro）、ARKit（iPhone）の記事がいろいろと混じりあっていてスクラッチで作っていても暫くハテナな状態でしたのでここにまとめます。
　


　
** VCCでのツールの導入 **
　
VRCFuryとVRCFT-Jerry's TemplatesとVRM Converter for VRChatをVCCから導入します。
VRCFuryとは日本でよく使われているModular Avatorのようなものです。海外ではよく使われています。
VRCFT-Jerry's Templatesとはフェイストラッキングのアニメーションやアニメータのひな型の集合体です。
　
VRCFury
https://vrcfury.com/
上記URLよりインストールを行います。
　
![VrcFury1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/c6eb7297-0200-5d0b-1523-28e901774ef6.png)
　
赤枠をクリックし
　
![VrcFury2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/89e90f04-ecc1-c476-f113-45ad9fd69596.png)
　
How to install VRCFury の下の赤枠をクリックするとVCCを開いてインストールするか聞いてくるので指示に従います。
　
VRCFT-Jerry's Templates
https://adjerry91.github.io/VRCFaceTracking-Templates/
上記URLよりインストールを行います。
　
![JerrysFaceTracking.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/332de43b-5c93-b778-6094-a7466b31089b.png)
　
赤枠のAdd to VCCをクリックするとVCCを開いてインストールするか聞いてくるので指示に従います。
　
VRM Converter for VRChat
https://booth.pm/ja/items/1025226
BOOTHにありますが旧バージョンですので、BOOTHの説明にあるようにVCCから追加してください。

![VRM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/3cc33f72-8de1-155a-5ff9-a8fc9b3fcb62.png)

 

　
　
VCCを開きます。
作業を行うAvator Projectで、

![MargeProject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/ee7e39f4-f534-7f74-e18f-3761a18d922d.png)
　
Marge Projectをクリックします。
　
![VCC1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/52794479-bf6e-78ba-a2e9-417dc4eb9834.png)
　
　
先ほどインストールしたVRCFuryとVRCFT-Jerry's TemplatesとVRM Converter for VRChatを⊕を押してプロジェクトに追加します。
　



 ** Unityでのソフト導入 **
　
Projectを開きます。
【HANA_Tool_v4】BlendShapeをコントロールするツール [Japanese ver]（有料）を購入してインストールします。
https://booth.pm/ja/items/2437978

![HANAV4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/fbb347f3-7e1c-8a0d-c161-8c0662ce670f.png)
　
以上でUnityのProjectの準備は完了です。

　


** VRoid Studio からモデルのエクスポート **
 
VRoid Studio
VRM形式でVRoidをエクスポートします。
　
![VroidHubExport.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/f5fd9059-8ac8-ff3e-0e44-6d9cc1d534d2.png)
　
赤枠のようにVRMエクスポートを選びます。
　
![Vroid透過メッシュ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/e235f4c5-ad13-a8ab-6289-4b44dfa047a4.png)

 透過メッシュを削除するをOFFにします。エクスポートを押すと、フォーマットの設定があるのでVRM0.0を選択します。
  
 ![VRM0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/772c989a-dcf4-ed4a-30c6-db647be1001e.png)


下にスクロールして、
　
  ![VroidExportModel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/bd8cceeb-50fa-9493-31b1-2d43cf9d2a27.png)

エクスポートを押します。保存先を聞いてきますのでお好みの場所へ保存します。

以上でVRoid Studioの作業は終了です。
　
　
　

 ** Unityでの作業 **
  
UnityのProjectを開きます。
先ほど保存したVRMファイルをAssetsの下へドラッグ＆ドロップします。
　
![VroidModelDrag_Drop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/38e7f4cb-a2dd-f8e2-7b19-3c4e85c84d90.png)

ドロップしたVRMファイルをHierarchyの中へドラッグ＆ドロップします。

![Unity2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/4372bc0a-c6ff-b710-e736-69d95c9aaa3c.png)

HANA_ToolのReaderを選びます。

 ![Unity3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/bd4d1acd-c686-5add-5fb1-3c8e1fccef73.png)

 Skinned Mesh RendererにVRMプレファブ内のFaceを指定します。
 女性アバタの場合は、PerfectSync_VRoid_V1_0_0_Female.txtを選びます。
 男性アバタの場合は、PerfectSync_VRoid_V1_0_0_Male.txtです。
 
 ![Unity4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/29c59099-4844-90c6-7269-4885b7927a7f.png)

 Addを押し、続いてRead Blend Shapesを押します。

 　
 次にVRMプレファブを選んだ状態で、VRM0からDuplicate and Convert for VRChatを選びます。
 　
![Unity5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/a0162313-e9a5-40af-8208-2abf55e21d9b.png)

 　
 メッシュの結合をOFFにして、複製して変換を押します。

 ![Unity6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/a58c96e0-de78-a24e-0191-f70514aa4ceb.png)

 　
ダイアログが出ますのでそのまま保存(S)を押します。
　
 ![Unity7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/bcfe4f63-86bb-e322-a4d5-c1fb80e59a5f.png)

 ![Unity8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/878848fa-d8ca-6f94-5590-b33a78efee4b.png)


 　
 これでVRChat用のアバタが生成されます。
　
![Unityアバター生成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/2e471939-a579-be1c-1e94-d834dfa1c304.png)
　

　
 フェイストラッキング用のテンプレート（AdditiveやFX、ExpressionParameter等）を加えます。
ディレクトリのPackage > VRCFT-Jerry's Template > Prefabs から ARKitのものをアバタの中へ配置します。
　
![Unity9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/3aa3bad7-d6fd-541b-e29a-d58b52db3440.png)

 ![UnityA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/6ddaa253-8175-c2ea-ef70-c9c801eadf57.png)

これでアバタは完成です。
VRChatへアップロードしてください。
　
　
　
　
** フェイストラッキングOSCソフト　VRCFaceTrackingのインストール **
フェイストラッキング機器とアバタ間の通信を行うソフトです。
以下URLよりダウンロードできます。
https://docs.vrcft.io/docs/intro/getting-started

![VRCFT0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/6f1b3f9f-6649-678e-36a6-5bb627a98bcb.png)

起動し必要なモジュールをダウンロードします。
例えばVIVE Pro EyeならSRanipal Tracking Moduleです。
　
![vrcft1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/12acd06a-650c-6a67-7266-4a03742bcc14.png)

 QuestProならQuestPro OpenXRです。
 　
 ![vrcft2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/94a3a194-3964-3042-4a85-919c5ce911ce.png)

Installボタンを押してインストールします。
インストールが終わったら一旦VRCFaceTrackingを閉じます。
　
　
　
　
** 起動 **
ヘッドセットがPCに認識されている状態にします。そのあとにVRCFaceTrackingを起動します。正常にセンサ類を認識すると以下のような画面になります（VIVE Pro Eye ＆ VIVEフェイシャルトラッカー時）
　
![OSCFT起動.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/82379231-38ad-64e1-7fd2-25716d2b879f.png)

 VRChatを起動しアバタがフェイシャルトラックの設定がされている場合、以下赤枠内に対応しているパラメータの数が表示されます。

![OSCFT_Parameter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/f38d79ec-2ae9-ac9d-112a-ede3f88bafc0.png)


VRChatでラジアルメニューを出しFace Tracking を選びます。

![vrchat1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/4932e1e5-dac6-00c3-66f9-a34dfd57befd.png)

Lip Tracking と Eye Tracking をオンにします。

![vrchat2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201026/037619e5-04ac-e79e-7ca9-b3b22fc4a20d.png)

これでフェイストラッキングができているはずです。

<iframe width="560" height="315" src="https://www.youtube.com/embed/0uxuwrnXGkU?si=4-5nFRmcy8bTSa5a" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>