この記事は GRIPHONE Advent Calendar 2021 19日目の記事です。
こんにちは、Unityエンジニアの萩原です。最近推しがVTuberデビューしました。
そこで、今回はUnityのARFoundationを使用したFaceTrackng(上記動画)の実装方法を紹介します。
1. プロジェクト設定
※今回はUnity2021.2.5f1でiOSプラットフォームを使用します。
1.1. プロジェクトの作成

まずはプロジェクトを作ります。
iOSへのSwitch Platformも忘れずに。
1.2. プロジェクトの設定



- 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本体が入っていないので追加する必要があります。


- Unity > Window > Package Managerを選択
- Package Manager ウィンドウの上部にあるPackage先をUnity Registryに変更
- AR Foundationを選択後、Installをクリック
2. SampleSceneの作成
2.1. SampleSceneに必要なオブジェクトを配置する


この時点で、シーン上で追加出来るXRオブジェクトの項目が増えています。
- AR Session Originを追加する
- AR Sessionを追加する
- AR Default Faceを追加する
- AR Default FaceはPrefab化し、削除する(右図は削除前)
- Main Cameraを削除する
2.2. ARFaceManagerコンポーネントの追加


- AR Session Originオブジェクトを選択
- AR Face Managerコンポーネントを追加
- AR Face ManagerのFace Prefabに、2.1で作ったPrefabを参照させる
2.3. AR Camera ManagerのFacing Directionを変更

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など、大量のサンプルがあるので、動かすだけでとても楽しいです。