はじめに
※今回は有料のアセットを用いております。
※Webカメラが必要です。
VTuberさんが人気ですが、キャラクターのアバターを自由に動かせると楽しいですよね!
今回はWebカメラでキャラクターを動かせるCVVTuberExampleを試しました。
Dlibで機械学習のアプローチで画像内の顔のパーツを認識し、モデルを動かす仕組みのようです。
参考
こちらの記事を参考にさせて頂きました。ありがとうございます。
UnityでDlibFaceLandmarkDetectorを利用した顔器官検出アプリ事始め
キャラクターの作成
VRoid Studioを使ってキャラクターを作りました。
※今回はテストなので、VRoidサンプルデータからあまり変更していません。
作成したキャラクターをvrmファイルにエクスポートします。
Unityプロジェクトの作成
まず新規の3Dプロジェクトを作成します。
以下のアセットをインストールします。※価格は2020年6月時点での税別価格です。
UniVRM
OpenCV for Unity ($95)
Dlib FaceLandmark Detector ($40)
CV VTuber Example (FREE)
※Unity 2019.1環境下ではCV VTuber Exampleをインストールした後にTextMesh Pro関連のエラーが大量に出ましたが、
プロジェクト設定のScripting Runtime Versionが書き換えられるためで、
Scripting Runtime Versionを.NET 4.5互換に戻してやると正しく動作するようです。
WebCamのサンプル
-
Assets/CVVTuberExample/CVVTuber/Examples/WebCamTextureCVVTuberExample
にあるWebCamTextureCVVTuberExample.unity
シーンを開きます。
Assets/DlibFaceLandmarkDetector/StreamingAssets
フォルダの中身を
Assets/StreamingAssets
フォルダに移動します。
- メニュー内の、
Tools > OpenCV for Unity > Set Plugin Import Settings
Tools > Dlib FaceLandmark Detector > Set Plugin Import Settings
-
Tools > CVVTuberExample > Set Plugin Import Settings
をそれぞれ実行します。
これを実行すると、カメラの映像に合わせてサンプルキャラクターの顔を動かすことが出来ます。
VRMのサンプル
-
Assets/CVVTuberExample/CVVTuber/Addons
にあるVRMCVVTuber.unitypackage
パッケージをインポートします。 -
Assets/CVVTuberExample/CVVTuber/Addons/VRMCVVTuber/Examples
フォルダに追加されたVRMCVVTuberExample.unity
シーンを開きます。 -
シーン中にあるMissing Prefab となっているオブジェクトを削除します。
4.プロジェクトに適当なフォルダを作り、先ほど作成したvrmファイルをインポートします。
5.インポートしたvrmファイルからプレハブが作られるので、シーン内に追加します。
6.VRMControllManagerオブジェクト中のVRMLoaderコンポーネントの値を設定します。
Vrm File Name : VRMファイルのパスを指定します。なぜか最初の"Assets/"は不要です。
Meta : VRMファイルをインポートしたときに作成されたメタファイルを指定します。