#CV VTuber Exampleとは
2018年5月ごろにアセットストアで無料リリースされた、簡単にVtuberになれるアセットです。
ただし、無料といっても本体のみでOpenCV for Unity($95)とDlib FaceLandmark Detector($40)が動作に必要なため、動かすためにはそれなりの費用がかかります。
キャリブレーションに必要な機材はWebカメラのみで、Webカメラから取得した映像をDlibにかけて特徴点を割り出し、位置推定と表情への反映を行ってくれます。
また、様々なモデルにも対応しており、ユニティちゃんのような汎用モデルからVRMモデル、Live2Dモデルにまで対応しています。
#動作環境
- Windows10
- Unity2017.4.12f1
- UniVR-0.49
#利用アセット
#CV VTuber Exampleセッティング
##1.OpenCV for Unityの導入
OpenCV for Unityをアセットストアからインポートしてきます。
OpenCVForUnity/Examples/Advanced/AlphaBlendingExample
のサンプルシーンを開き、以下のようになっていたら成功です。
##2.Dlib FaceLandmark Detectorの導入
Dlib FaceLandmark Detectorをインポートしてきます。
インポートができたら、DlibFaceLandmarkDetector/StreamingAssets/
ディレクトリ以下のhaarcascade_frontalface_alt
ファイル以外のファイルを全てOpenCVForUnity/StreamingAssets/
ディレクトリに移動させましょう。
移動させたDlibFaceLandmarkDetector/StreamingAssets/
の状態
移動させたOpenCVForUnity/StreamingAssets/
の状態
ファイルの移動ができたら、OpenCVForUnity/StreamingAssets/
ディレクトリをDlibFaceLandmarkDetector/
とOpenCVForUnity/
があるディレクトリの場所に移動させましょう。
DlibFaceLandmarkDetector/Examples/Texture2DExample
のサンプルシーンを実行し、以下の図のようになっていたら成功です。ちゃんと赤の枠線と緑の顔枠ができているか確認しておきましょう。
##3.CV VTuber Exampleの導入
CV VTuber Exampleをインポートします。
CVVTuber/Examples/VideoCaptureCVVTuberExample
のサンプルシーンが以下のように動いたら成功です。
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
のサンプルシーンを開いておきましょう。
#4-3.vrmモデル用意
Vtuberとして自分の器となるVRMのモデルデータをインポートします。
例として、アリシア・ソリッドちゃんを使うとします。
配布ページからAlicia.zipをダウンロードし、解凍します。
Alicia.zip
を解凍して出てきたAlicia\VRM\AliciaSolid.vrm
をUnityにドラッグ&ドロップします。
vrmが展開され、AliciaSolid.prefab
が生成されれば成功です。
AliciaSolid.prefabをシーン上に配置しましょう。
##4.VRMLoaderにMetaデータ登録
VRMControllManager
のVRMLoader
のMetaにAliciaSolidをドラッグ&ドロップします。
##5.確認
以上でセッティング完了です。再生ボタンを押して正常に動くか確かめましょう。
#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
っていうのが大体邪魔してる。)
Q.あんまり可愛くないし、精度も・・・
A.頑張る
[CV VTuber Exampleで遊ぶ&プレゼンスを高める]