はいぬっかメモ

キャラクターモデルをVR空間で眺めたい

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

f:id:hinzka:20200826210703p:plain

<概要>

iPhoneのデプスカメラを使ったフェイストラッキングで、モデルの顔がリアルタイムにいっぱい動く
このしくみに対応したアプリでVRMモデルを動かしてあそんでみよう
 

1.パーフェクトシンクとは

iOSのARKitで取得できるBlendShapeLocation全52点のパラメータに対して、VRMの同名BlendShapeClipを52個用意し、BlendShape単体ではなくClipを用いてVRMモデルの表情を制御する実装です。(noppeさん命名
 
ARKitのリサーチ中、VRMの仕様と相性がよいことに気づき、noppeさんのアプリ『vear』にBlendShapeClipを参照するモードを実装していただきました
これをきっかけに、現在では VMagicMirrorやLuppet、バーチャルモーションキャプチャーなど、さまざまな環境で利用できるようになっています。
 
BlendShapeやClipの数が激増してしまうデメリットもあり、本来のClipが意図した運用とは異なるのですが、今のところ許容していただけているようです。
 
ARKitとは、Appleによる開発キットの名称で、iOS向けのAR機能を提供するものです。
iPhoneiPadを使った高度な表情トラッキングで、アニ文字のように、豊かで自然な表情アニメーションを実現します。

f:id:hinzka:20200815094421g:plain

アニ文字(iPhoneアバター機能)

これをVRMモデルで手軽に使えるようにしたしくみが「パーフェクトシンク」です。

モデルのBlendShapeに手を加えることなく、パラメータ編集のみで表情を調整できるのが特徴です。

 

 

 

 

 

 

■対応機種リスト 2021年11月現在

 

FaceID対応端末で動作します。

また、iOS14以降で対応デバイスが追加されました(A12 Bionicチップ搭載機種)

 

 

2.パーフェクトシンク対応モデル

2-1.要件

1)ARKitで定義された52個のBlendShapeを全部または一部備えていること
 アプリはBlendShapeClipを参照して動作するため、BlendShape自体は52個全部そろっていなくてもOKです

f:id:hinzka:20200816105223p:plain

各シェイプキーはBlender等の3Dモデリングツールで作成する必要があります。

形状について別エントリにてまとめています。

hinzka.hatenablog.com


 
2)上記に対応するVRMBlendShapeClipを備えていること
 VRMのしくみで動作させるため、シェイプキーを同名のClipに登録します。
Clipの命名ルールはUnityのEnum ARKitBlendShapeLocationに準じています(Clip名が異なると動作しません)。
 
 Clip52個は、Unity用のツールでまとめて作成できます(HANA_ToolのClipBuilder)
コピーツールを利用してClipを既存のモデルからコピーすることもできます(UniVRMExtensionsのCopyVRMSettings)
 
 

2-2.サンプルモデル

VRoidのデフォルトキャラクターを改変し、パーフェクトシンクに対応させたVRMモデルです。自由に利用できるサンプルとしてGitHubにて配布しています。

github.com

 

VRoid Hubにもモデルを公開しています。ハート♡をつけておくと、VRoid Hub連携によりvear等ですぐに動かすことができます。 

2-3.雛形からのBlendShapeコピー 

モデルをパーフェクトシンクに対応させるためには、必要なBlendShapeを新たに作成しなければなりません。
 
同一のメッシュを持つモデルに対しては、一度BlendShapeデータを作成しておけばコピー流用が可能です。
 
通常「同一キャラクターのお着替えモデル」などがこれにあたります。
 
VRoidモデルは、BlendShapeを持つFaceオブジェクトのメッシュが共通です。
このため、VRoidStudioのバージョンが同一であれば、どのモデルに対しても表情のコピーができます。
2-2で示したサンプルモデルはコピー元として利用可能です。
 

f:id:hinzka:20200821070645p:plain

f:id:hinzka:20200815144711p:plain

 
BlendShapeコピーツール 
FaceForge

FaceForge について (3tene使い方サイト)

3tene PRO V2に同梱されているコピーツールです。
 (3tene PROと3tene PRO V2ではライセンスが異なるので注意)
BlendShapeとBlendShapeClipおよび設定値をまるごと移し替えます。
コピー元VRMモデルが必要です。コピー元とコピー先のVRMでメッシュが共通である必要があります。
コピー先VRMモデルに含まれていたBlendShapeとClip設定は上書きされます。
 
 
 
HANA_Tool
BlendShapeのデータを抽出・適用できるツールです。
おまけとして、VRoid用のパーフェクトシンク対応BlendShapeデータが同梱されています。
マウスドラッグとクリックぽちぽちで、必要なBlendShapeを追加し、お手持ちのモデルをパーフェクトシンク対応にできます。
コピー先VRMモデルの元の表情も保持されます。
 
BlenderとUnityで手動コピー 
以下はツールを使わずにUnityとBlenderでシェイプキー転送する手順です(現状おすすめではないですが、ログとして)

VRoidでかんたん!パーフェクトシンク(2/3) 

VRoidでかんたん!パーフェクトシンク(3/3)

 

 
Blenderで編集済のモデルへのBlendShapeコピーについて
お手元のモデルをパーフェクトシンクに対応させたあと、
VRoidStudioから同キャラクターのお着換えモデルを出力したときは、その都度ツールで顔をコピーすることになります。
 

しかし、「VRoid Studioから出力後、アクセサリー追加などBlender・Unityで編集済」という場合、メッシュの頂点オーダーが変わってしまうため、BlendShapeのコピーに失敗してしまいます(動かすと形状が崩れる)。

HANA_Toolに含まれるBuildCopy機能を使うと、メッシュの頂点オーダーがずれた場合でも力づく紐づけつつコピーすることができます。Blenderでの作業を経由する方には必須ともいえる強力なツールです。

 

 

 

3.パーフェクトシンク対応アプリ

VRMのしくみで動くアプリのリストです

対応アプリ増えてくれると嬉しいです どうぞよろしくよろしくおねがいします!

3-1.iOS単体アプリ

VRoid hubで配布中のサンプルモデル(前述)に♡をつけておくと、VRoid hub連携ですぐに利用できます。

 vear

vear - バーチャルライブ配信アプリ

vear - バーチャルライブ配信アプリ

  • Tomoya Hirano
  • ユーティリティ
  • 無料

apps.apple.com

 ※プレミアムモード機能

 

 Emosign

Emosign

Emosign

  • akihiro ueyama
  • エンターテインメント
  • 無料

apps.apple.com

 

 

 waidayo

github.com

 

3-2.PC併用アプリ

 VMagicMirror

malaybaku.github.io

iFacialMocapiOSアプリ)と連携した外部トラッキング機能(Ex.Tracker機能)

iFacialMocap on the App Store

 

 waidayo

github.com

 

 3tene PRO V2

3tene.com

 フェイストラッキング アプリ 3teneFTと連携した高精細フェーストラッキング

3teneFT on the App Store


 Luppetluppet.appspot.com

iFacialMocapiOSアプリ)と連携した外部トラッキング機能

iFacialMocap on the App Store

 

 VirtualMotionCapture

vmc.info

 全身モーションキャプチャーツール ※VMCプロトコルによるWaidayo連携機能

 

 Oredayo4V

github.com

 VMCプロトコルによるWaidayo連携アプリ Mac版あり

 

 VSeeFace

www.vseeface.icu

 ※VMCプロトコルによるWaidayo連携機能