Help us understand the problem. What is going on with this article?

CV VTuber Exampleセッティング~VRMをwebカメラで動かせるまで~

CV VTuber Exampleとは

2018年5月ごろにアセットストアで無料リリースされた、簡単にVtuberになれるアセットです。
ただし、無料といっても本体のみでOpenCV for Unity(\$95)とDlib FaceLandmark Detector(\$40)が動作に必要なため、動かすためにはそれなりの費用がかかります。
キャリブレーションに必要な機材はWebカメラのみで、Webカメラから取得した映像をDlibにかけて特徴点を割り出し、位置推定と表情への反映を行ってくれます。
また、様々なモデルにも対応しており、ユニティちゃんのような汎用モデルからVRMモデル、Live2Dモデルにまで対応しています。

動作環境

利用アセット

CV VTuber Exampleセッティング

1.OpenCV for Unityの導入

OpenCV for Unityをアセットストアからインポートしてきます。
OpenCVForUnity/Examples/Advanced/AlphaBlendingExampleのサンプルシーンを開き、以下のようになっていたら成功です。
image.png

2.Dlib FaceLandmark Detectorの導入

Dlib FaceLandmark Detectorをインポートしてきます。

インポートができたら、DlibFaceLandmarkDetector/StreamingAssets/ディレクトリ以下のhaarcascade_frontalface_altファイル以外のファイルを全てOpenCVForUnity/StreamingAssets/ディレクトリに移動させましょう。

移動させたDlibFaceLandmarkDetector/StreamingAssets/の状態
image.png
移動させたOpenCVForUnity/StreamingAssets/の状態
image.png

ファイルの移動ができたら、OpenCVForUnity/StreamingAssets/ディレクトリをDlibFaceLandmarkDetector/OpenCVForUnity/があるディレクトリの場所に移動させましょう。
image.png

DlibFaceLandmarkDetector/Examples/Texture2DExampleのサンプルシーンを実行し、以下の図のようになっていたら成功です。ちゃんと赤の枠線と緑の顔枠ができているか確認しておきましょう。
image.png

3.CV VTuber Exampleの導入

CV VTuber Exampleをインポートします。

CVVTuber/Examples/VideoCaptureCVVTuberExampleのサンプルシーンが以下のように動いたら成功です。
ezgif-3-c318ec513d6e.gif

4.VRMモデルを使う

Assets/CVVTuberExample直下にReadMeが添付されており、そこに導入手順が全文英語で書かれています。そちらも参考にしつつセットアップしてください。ただし、2019/5/18現在の最新バージョンであるCV VTuber Example ver.1.0.4でのReadMeは古いバージョンから文章のみ更新されており、説明画像が更新されておらず、説明と説明画像が合っていないので注意してください。基本的に文章の方を信用すれば大丈夫です。

4-1.UniVRMの導入

UniVRMをリリースノートから入手し、Unityにインポートします。(ReadMeでの文章はver0.49を入れろと書いているが、説明画像はver0.38となっている。画像が更新されていない。私はver0.49で動いた。)

4-2.VRMCVVtuberの導入

Assets/CVVTuberExample/CVVTuber/Addons/VRMCVVTuber.unitypackageを開き、VRMCVVtuberをインポートします。
VVTuberExample\CVVTuber\Addons\VRMCVVTuber\Examplesのサンプルシーンを開いておきましょう。
image.png

4-3.vrmモデル用意

Vtuberとして自分の器となるVRMのモデルデータをインポートします。
例として、アリシア・ソリッドちゃんを使うとします。

配布ページからAlicia.zipをダウンロードし、解凍します。

Alicia.zipを解凍して出てきたAlicia\VRM\AliciaSolid.vrmをUnityにドラッグ&ドロップします。
図3.png

vrmが展開され、AliciaSolid.prefabが生成されれば成功です。
image.png

AliciaSolid.prefabをシーン上に配置しましょう。
図5.png

4.VRMLoaderにMetaデータ登録

VRMControllManagerVRMLoaderのMetaにAliciaSolidをドラッグ&ドロップします。
図6.png

5.確認

以上でセッティング完了です。再生ボタンを押して正常に動くか確かめましょう。
image.png

Q&A

Q. GitHubで管理しようとしたらエラーが出る...
A. 以下の非常に大きなファイル(100MBを超える)が、OpenCV for Unityに含まれています。大容量ファイルとして怒られてしまうので気を付けましょう。
- Assets/Externals/OpenCVForUnity/Plugins/iOS/opencv2.framework/opencv2
- Assets/Externals/OpenCVForUnity/Extra/exclude_contrib/iOS/opencv2.framework/opencv2
解決策は【Git LFS】OpenCV for Unityをpushしようとして怒られた人が見るページが参考になります。

Q.目とか口の動きを取ってくれない・・・
A.Dlib FaceLandmark Detectorが正常動作しているか怪しい..2.Dlib FaceLandmark Detectorの導入でやったファイルの移動とディレクトのパスを確認しよう。

Q.カメラが写らない・・・
A.
・consoleに"Cannot find camera device "とか出てない?
→カメラがそもそも認識されていない。Unity以前の問題なので、windowsの設定など見直そう。

・カメラは見つかってるっぽいけど画面が真っ暗
→consoleにWebCamTextureToMatHelper:: devicename:[カメラ名]: width:640 height:360 fps:15 videoRotationAngle:0 videoVerticallyMirrored:False isFrongFacing:Trueという使われているカメラの詳細が出ているはず。そのカメラ名は自分の想定していたカメラだろうか?違った場合は、WebcamtexturematSourcegetterプレファブのWebCamTextureToMatHelperコンポーネントのRequestedDeviceNameのデバイス名にカメラの名前を入力しましょう。(FaceRig使ったことある人はFaceRig Virtual Cameraっていうのが大体邪魔してる。)
image.png

Q.あんまり可愛くないし、精度も・・・
A.頑張る
[CV VTuber Exampleで遊ぶ&プレゼンスを高める]

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away