Unity2021でもFaceTrackingをしたい!

AvatarPosted by

この記事は GRIPHONE Advent Calendar 2021 19日目の記事です。

こんにちは、Unityエンジニアの萩原です。最近推しがVTuberデビューしました。

そこで、今回はUnityのARFoundationを使用したFaceTrackng(上記動画)の実装方法を紹介します。

1. プロジェクト設定

※今回はUnity2021.2.5f1でiOSプラットフォームを使用します。

1.1. プロジェクトの作成

まずはプロジェクトを作ります。

iOSへのSwitch Platformも忘れずに。

1.2. プロジェクトの設定

  1. Unity > Edit > Project Settings…を選択
  2. Project Settings > XR Plugin Managementタブを選択
  3. Install XR Plugin Managementをクリック
  4. Project Settings > XR Plugin Managementタブ > ARKitタブを選択
  5. Face Trackingにチェック
  6. Project Settings > Playerタブをクリック
  7. Requires AR Kit Supportにチェック
  8. Target minimum iOS Versionを11.0より上を入力する

1.3. ARFoundation Packageの追加

ここまでの作業でARのプラグイン系のパッケージが一通り入ります。

あとはARFoundation本体が入っていないので追加する必要があります。

  1. Unity > Window > Package Managerを選択
  2. Package Manager ウィンドウの上部にあるPackage先をUnity Registryに変更
  3. AR Foundationを選択後、Installをクリック

2. SampleSceneの作成

2.1. SampleSceneに必要なオブジェクトを配置する

この時点で、シーン上で追加出来るXRオブジェクトの項目が増えています。

  1. AR Session Originを追加する
  2. AR Sessionを追加する
  3. AR Default Faceを追加する
  4. AR Default FaceはPrefab化し、削除する(右図は削除前)
  5. Main Cameraを削除する

2.2. ARFaceManagerコンポーネントの追加

  1. AR Session Originオブジェクトを選択
  2. AR Face Managerコンポーネントを追加
  3. 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など、大量のサンプルがあるので、動かすだけでとても楽しいです。