この記事は GRIPHONE Advent Calendar 2021 19日目の記事です。
こんにちは、Unityエンジニアの萩原です。最近推しがVTuberデビューしました。
そこで、今回はUnityのARFoundationを使用したFaceTrackng(上記動画)の実装方法を紹介します。
1. プロジェクト設定
※今回はUnity2021.2.5f1でiOSプラットフォームを使用します。
1.1. プロジェクトの作成
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/060b088308caaa84157bbafc645d74bf.png)
まずはプロジェクトを作ります。
iOSへのSwitch Platformも忘れずに。
1.2. プロジェクトの設定
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/f9a852417071ab2adad7b28d5a3e8bdc.png)
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/4e25de3614f7749ea2c0a6f21b31d981.png)
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/14c0c24267568aba03595a32f10dedc4.png)
- Unity > Edit > Project Settings…を選択
- Project Settings > XR Plugin Managementタブを選択
- Install XR Plugin Managementをクリック
- Project Settings > XR Plugin Managementタブ > ARKitタブを選択
- Face Trackingにチェック
- Project Settings > Playerタブをクリック
- Requires AR Kit Supportにチェック
- Target minimum iOS Versionを11.0より上を入力する
1.3. ARFoundation Packageの追加
ここまでの作業でARのプラグイン系のパッケージが一通り入ります。
あとはARFoundation本体が入っていないので追加する必要があります。
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/4623fae5c8aac9c38da3581b37310ca4.png)
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/ad001a370f1f1da9185f4f7924d2ba90.png)
- Unity > Window > Package Managerを選択
- Package Manager ウィンドウの上部にあるPackage先をUnity Registryに変更
- AR Foundationを選択後、Installをクリック
2. SampleSceneの作成
2.1. SampleSceneに必要なオブジェクトを配置する
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/35b30e923c0a8943330eb93526daef5c.png)
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/b1c9bb3becdade2f783182fbeb53f4b6.png)
この時点で、シーン上で追加出来るXRオブジェクトの項目が増えています。
- AR Session Originを追加する
- AR Sessionを追加する
- AR Default Faceを追加する
- AR Default FaceはPrefab化し、削除する(右図は削除前)
- Main Cameraを削除する
2.2. ARFaceManagerコンポーネントの追加
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/d400072219610b932775aca246ee61b3.png)
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/d07491c6cd6c74d608a24693f5a55d87.png)
- AR Session Originオブジェクトを選択
- AR Face Managerコンポーネントを追加
- AR Face ManagerのFace Prefabに、2.1で作ったPrefabを参照させる
2.3. AR Camera ManagerのFacing Directionを変更
![](https://storage.googleapis.com/gpn-techblog-media/1/2021/12/47fc37c277c2d94c4579e1c967cf252a.png)
AR Cameraオブジェクトに付いているAR Camera ManagerコンポーネントのFacing Directionを”User”に変更します
3. ビルド
ここまで作ったSampleSceneをビルドすることで動画のようなFace Trackingをすることが出来ます。
※今回はメッシュだけを表示するようにカメラを変更しています。
ここではiOSのビルド方法は割愛させてもらいます。
4. まとめ
ノンコーディングでここまで作ることができました。
Unityの進化は目まぐるしく、この記事を書いたのもネット上にあるFaceTrackingの記事の多くが古くて動かなかったからです。
この記事のやり方で最新のUnityで動かない日が来たら、まずは下記Unityのサンプルを見てましょう。
https://github.com/Unity-Technologies/arfoundation-samples
Blend Shapeなど、大量のサンプルがあるので、動かすだけでとても楽しいです。