Google が提供する AR開発ライブラリ ARCore に含まれている Augmented Faces を Unity上で試してみました。

これは、カメラアプリ SNOWや Snapchatなんかで以前から流行っている顔に ARで盛る機能要は顔の形を認識して、ARにてテクスチャを貼ったり3Dオブジェクトを表示させたりする機能のサンプルです。

このサンプルプログラム Augmented Faces の最終イメージは以下のような感じになります。顔にうっすらきつね色テクスチャが張られ、きつねの耳と鼻の3Dオブジェクトが表示されています。
ARCore_Face_20

また以前、他にも ARCoreのサンプルプログラム3つ(HelloAR 、 Cloud Anchors、Augmented Images)の Unity上での設定法を紹介しました。そちらもぜひご参考ください。

ちなみに今回の元ネタは以下になります。

Augmented Faces developer guide for Unity

ARCore_Face_01



【作業の概要】

以下に作業全体の流れを示します。後から、詳細を説明しています。
(以下の1,2は以前説明した HelloARとほぼ同じです。)

1.ARCore SDK for Unityのインポート
 1.1. ARCore SDK for Unityのダウンロード
 1.2. (Unity 2019.1以降のみ) 2 つのPackageのインポート
 1.3. ARCore SDK for Unityのインポート
 1.4.フォルダの確認(オプション)

2.Unityでの設定
 2.1. PlatformをAndroidに変更
 2.2. Player Settingsの設定

3.実機での実行



【使用環境】

 ・ Windows10
 ・ Unity 2019.2 (JDK や Android Studio は事前にインストール済み)
 ・ ARCore SDK for Unity v1.13.0
 (Augmented Facesは ARCore SDK for Unity v1.7.0でリリースされたので、それ以降のバージョンが必要)



【1.ARCore SDK for Unityのインポート】

1.1. ARCore SDK for Unityのダウンロード

まず、GitHub から最新の ARCore SDK for Unity をダウンロードします。以下のリンクから Unity Package がダウンロードできます。

このページの、ARCore SDK for Unity v1.13.0 であれば、以下の「accore-unity-sdk-v1.13.0.unitypackage」をクリックしてダウロードします。(Unity Package のバージョンで画面は変わるかと思います。)
ARCore_Face_02


1.2. (Unity 2019.1以降のみ) 2 Packageのインポート

Windows > Package Manager」でPackage Managerを起動。

Multiplayer HLAPI のインポート
Unity_Error_08

XR Legacy Input Helpers のインポート
Unity_Error_07


1.3. ARCore SDK for Unityのインポート

次に Unity を立ち上げます。
Assets > Import Package > Custom Package...」でダウロードした Unity Package を選択してインポートします。
ARCore_Face_03
  
全てにチェックが付いているのを確認して、「Import」ボタンをクリック。パッケージのインポートが始まります。
ARCore_Face_04

インポートが完了したら、ARCoreが使える状態になりました。


1.4.フォルダの確認(オプション)

Projectビューから ARCore SDK for Unity の folder 構成を確認してみます。

 • GoogleARCore > Examples :いくつかのサンプルが入っています。
 • GoogleARCore > Examples > AugmentedFaces
 :
Augmented Faces 用のシーンやスクリプト等関連 Assetのフォルダがあります。
 • GoogleARCore > Examples > AugmentedFaces  > Materilas > Textures
 :
AR表示される Textureがあります。



【2.Unityでの設定】

2.1. PlatformをAndroidに変更

では、Unity上でサンプルプログラムの Augmented Faces に関して 設定をしていきましょう。
まず、シーン AugmentedFaces をダブルクリックして、AugmentedFaces のシーンをオープンします。

GoogleARCore > Examples > AugmentedFaces > Scenes > AugmentedFaces

ARCore_Face_05

Unityの新規プロジェクトを立ち上げたばかりだと、通常 Platform が「PC, Mac & Linux Standalone」 になっているかと思います。ここでは、Platformを Androidに変更します。

File > Build Settings...」で Build Settings スクリーンを表示します。
ARCore_Face_06

Platformで Androidを選択して「Switch Platform」をクリックします。Platformの変更は少し時間がかかるかもしれません。
ARCore_Face_07


2.2. Player Settingsの設定

「Player Settings…」をクリックして、Player Settings画面を表示させます。
ARCore_Face_08

では、Player Settingsを以下の様に変更します。
Player Settings画面で「 Other Settings」項目で以下の設定を行います。

「Auto Graphics API」のチェックをはずす
「Graphics APIs」に「Vulkan」があったら、それを選択して「-」ボタンで削除する。
ARCore_Face_09

・「Package Name」に好きな名前を入力。例えば、以下の様な感じに。
・「Minimum API Level」で、Android 7.0 以上を選択。
ARCore_Face_10

次に、Inspector上の「XR Settings」項目で以下の設定を行います。
・「ARCore Supported」にチェックをつける。
ARCore_Face_11

Projectビューの AugmentedFacesのシーンを Build Settingsの Scenes In Buildにドラッグ&ドロップします。
ARCore_Face_12


 
【3.実機での実行】

USBケーブルで Android端末を接続します。
(ここでは説明は省きますが、事前に Android端末側の「USB debugging」を Onにする作業はしておくように。)

「Build And Run」をクリックして、ビルドとアプリのインストールを実行させます。ビルド時に聞かれるファイル名は何でもけっこうです。
ARCore_Face_13

実機側でアプリが立ち上がります。アプリ内で自撮りのカメラが起動して、人間の顔を認識すると自動的にきつねの耳と鼻、目のあたり頬が少しオレンジになります。
(このブログ内では自分の写真を出してなかったですが、やりようがなくて公開。すいません、お見苦しい写真で。。。)
ARCore_Face_21

あっさり認識されました。ほんとうに一瞬で顔と認識してくれます。実際に顔の方向や位置を変えてもぴったし付いてきます。

では、次にイラストの顔を使ってみます。ここでは、某アニメの1年戦争の英雄に登場していただきましょう。
ARCore_Face_14

あっさりアニメのイラストの顔も認識されました。すごい顔認識力です。

このサンプルアプリを試すだけなら上記の通り、ほんとうに簡単にできます。ぜひ、この認識力の高さを試して頂きたいと思います。


Sponsored Link