iOS 13ベータでARKit 3を動かすメモ

先日のWWDC 2019で発表されたARKit 3、大幅に機能拡張されて衝撃を受けました。

Find the latest technology news and expert tech product reviews. Learn about the latest gadgets and consumer tech products for entertainment, gaming, lifestyle ...

ARKit 3の新機能のサンプルをUnityから動作させることができるので手順をメモしておきます。

iOS 13 / iPadOS 13 / Xcode 11のインストール

ARKit 3はiOS/iPadOS 13の機能になりますので、実機にどちらかのインストールが必要です。
Apple Developer Programに参加して、Downloadからインストールイメージをダウンロードしておきます。
(無料の会員でもダウンロードは可能です)

また、Xcode 11ベータもダウンロードして、インストールしておきます。

なお、インストールにmacOS 10.15ベータは必要ありません。

iTunesを起動して、デバイス画面の「アップデートの確認」をOptionキーを押しながらクリックすると、イメージを指定するダイアログが出てくるので、先ほどダウンロードしたiOS/iPadOSのイメージを指定します。(バックアップなどは事前に取っておいてください)

復元が始まると初期化されると思いきや、iOS 12の時に使っていたアプリや設定は引き継がれたままiOS 13になりました(いつもそうなるとは限りませんし、iOS 12に戻す場合にも備えてバックアップは取っておいてください)

サンプルプログラムのダウンロード

ARKit 3のサンプルプログラムですが、AR Foundationを使用して作成されています。これまでのARKitは、ARKitのSDKをBitbucketからダウンロードして使用していましたが、今回からはAR Froundationに統合されたようです。AR Foundationは、ARKitやARCoreといったプラットフォーム依存のAR技術をラッピングしつつ同一のコードで作成できる仕組みで、Unity Package Managerから入手することができます。

Unityが進めている、AR開発を機種依存無しでできるようになるパッケージ「AR Foundation」を触ってみました。 AR Fo...

なお、最新の情報に関しては下記のフォーラムで議論されています。

AR Foundation 2.1で、ARKit 3の一部の機能がサポートされたと記載があります。

Hi everyone. After a long wait we are pleased to announce the availability of AR Foundation 2.1.0 as a preview package. What’s New In AR Foundation?...

また、Unity 2018.4を使っている場合はAR Foundation 2.1.0は利用できないが、1.5.0を使用すればよい旨の記載もありました。

サンプルプログラムプログラムは下記になります。

Example content for Unity projects based on AR Foundation - Unity-Technologies/arfoundation-samples

cloneしてみると、プロジェクトで使用されているUnityは(6/9時点で)2019.1.5f1でしたので、素直にインストールしましたが、2019系でしたらば動くのではないかと思います。
また、2018.4を使用している場合は、Asset以下のファイルから適宜コピーして、Package ManagerでAR Foundation 1.5を入れれば動かすことはできると思うのですが、試していないので詳しくは不明です。

Unity 2019.1.5f1で開いた場合、Package Managerでは既に
・AR Foundation 2.2.0
・ARKit XR Plugin 2.2.0
がインストールされた状態でした。

実機確認

あとはBuild SettingsでiOSに切り替えてビルドして、Xcode 11で開いて実行すれば実機で動かすことができました。

NDAのため実機のスクリーンショットは載せられないのですが、Scene/HumanSegmantation 以下のBody Tracking関連のサンプルは非常に精度が高くて驚きました。(A12以降のチップでしか動かないらしいです)

おまけ(シーン切り替え)

こういうシーンがたくさんあるサンプルを動かす時に、シーン切り替えの機能を毎回作ってしまう気がするので、単純ですがスクリプトをメモしておきます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class ScneneChange : MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(gameObject);
    }
 
    public string[] scenes;
 
    void OnGUI()
    {
        foreach (string scene in scenes)
        {
            if (GUILayout.Button(scene, GUILayout.Width(250), GUILayout.Height(50)))
            {
                SceneManager.LoadScene(scene);
            }
        }
    }
}

新しいシーンを作って、空オブジェクトにアタッチして、インスペクタにシーン名(Build Settingsの一覧と同一のもの)を入れて、作ったシーン自体も登録してScene一覧の一番上に移動させておきます。すると、シーン切り替えボタンが表示されます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク