こんにちは!
デザイナーの伊東です。
現在ALAKIで取り組んでいるVR/AR開発の話題から、今日はARのお話です。
先日、WebARについての記事を投稿しました。
WebARはじめてみませんか?〜第1回 AR.jsで簡単WebAR〜
A-FrameとAR.jsを組み合わせて、簡単にブラウザ上でAR体験を提供する方法をご紹介しました。
WebARの場合はカメラに映ったマーカーを認識して、それに対して3Dオブジェクトを表示するという仕組みです。ブラウザで動かすので、高い負荷のかかることはできませんでした。
今回は、もっと高度なAR開発にチャレンジしたい!という方のために、Unity + ARkitでARを開発する方法をご紹介します。
プログラミングの経験がなくて不安な方でも体験していただけるよう、入門編のような内容になっています。
こんなサンプルができるところまでを、今日のゴールとします。
最後までよろしくお願いします!
はじめに
先ほどのデモを作成するために、今回は以下のような技術・ツールを使用しました。
- Unity
- ARkit
- Xcode
それぞれ簡単にご説明します。
Unity
こちらはゲームの開発言語として知られたプログラミング言語です。
3Dを扱うのが非常に得意で、優秀な物理エンジンが用意されています。
3Dを簡単に扱えるということで、ゲームの開発のみならずAR/VRなどの開発にも適している人気の言語です。
無料版と有料のPro版がありますが、無料版でも多くの機能を使用することが可能です。
開発者数が多く、日本語の情報も多いので、開発のしやすい言語と言えるかもしれません。
ARkit
こちらはAR開発を行うためのSDK(Software Development Kit)です。
Appleが開発したSDKとして知られており、IOSでARアプリをリリースすることに適しています。
ARkit特徴は以下の通りです。
ARKitができる事
- ポジショントラッキング
- 平面検出
- ポイントクラウド(3次元の点座標情報)取得
- 周囲の明るさ推定
- 現実空間への当たり判定(HitTest)
- 現実空間とのスケール一致
- カメラ画像の取得
ARKitができない事
- 取得した情報の保存/読み込み
- 現実空間の位置との関連付け
- 精度の高いリアルタイムなポイントクラウド取得
- ポイントクラウドからのジオメトリ生成
- マーカートラッキング
出典 : ARKitができる事、できない事
https://qiita.com/arumani/items/6efad65a17e2eafde5a1
Xcode
こちらもApple製のアプリケーション開発ツールです。
今回は、Unityで作成したデモを実機にインストールする際に利用します。
ちなみに、今回はXcodeのインストール方法は割愛します。
下記のページからダウンロードしてください。
https://itunes.apple.com/jp/app/xcode/id497799835?mt=12
Unityのインストール
それではUnityのインストールから始めていきましょう。
ダウンロードページは下記になります。
https://store.unity.com/ja
無料版のところから、”Personalを試す”のリンクからダウンロードしましょう。
インストールが完了したら、Unityへサインアップを済ませてください。
プロジェクトの作成
インストールしたUnityを立ち上げたら、新しいプロジェクトを作成します。
- “New”のボタンをクリックします。
- 必要な情報を入力しましょう。”Project name”、”location”は任意で設定してください。
“Template”のところは”3D”を指定してください。 - “Create project”をクリックすれば、プロジェクトの作成が完了します。
Unity ARKit Pluginのインストール
次に、Unityで利用できるARkitのプラグインをインストールします。
メニューバーから、”window”>”General”>”Assets Store”を選択してください。
こちらから様々なプラグインをインストールすることができます。
標準だと画面が小さく見づらいので、”Maximize”を選択して画面を大きくします。
検索窓に”Unity ARKit Plugin”と入力して、該当するプラグインをインストールしてください。
これでUnity ARKit Pluginのインストールが完了し、ARkitのアセットが使用可能になりました。
サンプルのカスタマイズ
インストールしたARkitのアセットの中身を確認してみましょう。
- “Scene”を選択して、開発画面に切り替えます。
- 画面下部の”Project”から、”Assets”>”UnityARKitPlugin”>”Examples”>”UnityARKitScene”を選択
- 画面右下に表示されたファイルをダブルクリック
すると、画面中央のシーンに立体が追加されました。
この状態ではじめてARkitのアセットを使用することができます。
- 次に、画面左上の”Hierarchy”から、”HitCubeParent”>”HitCube”を選択します。
- 画面右側の”Inspector”から、”Script”の”UnityARHitExample”というファイルをダブルクリックします。
すると、エディタが立ち上がると思います。
そのファイルを以下のように書き換えましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
using System; using System.Collections.Generic; namespace UnityEngine.XR.iOS { public class UnityARHitTestExample : MonoBehaviour { //Cameraの宣言 public Camera cam; void Update() { if (Input.touchCount > 0 && cam != null) { //キューブの生成 GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); //ランダムに色を生成 Material material = new Material(Shader.Find("Diffuse")) { color = new Color(Random.value, Random.value, Random.value) }; //色をキューブに適用する cube.GetComponent<Renderer>().material = material; cube.transform.position = cam.transform.TransformPoint(0, 0, 0.5f); cube.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); //重力の設定 cube.AddComponent<Rigidbody>(); cube.GetComponent<Rigidbody>().AddForce(cam.transform.TransformDirection(0, 1f, 2f), ForceMode.Impulse); } } } } |
編集後、エディタで忘れずにビルドしてください。
エディタを閉じてUnityの画面に戻理ます。
すると、”Inspector”の部分に”Cam”という項目が追加されているかと思います。
その項目を選択して、”Main Camera”に設定してください。
ビルドする
カスタマイズしたサンプルアプリをビルドしていきます。
メニューバーから、”File”>”Build Setting”を選択します。
- “Add Open Scenes”をクリックして、作成したサンプルアプリのシーンを追加します。
- 追加されたシーンにチェックをつけます。
- “Platform”の項目から、”iOS”を選択して”Player Settings”をクリックします。
- 最後に”Build And Run”をクリックしてビルドを開始します。
これでUnityのビルドは完了です。
Xcodeが立ち上がるので、実機と繋いでテストアプリをインストールします。
インストールできたら、実機で動作確認できたら成功です!
まとめ
いかがだったでしょうか。
今回はまずサンプルを読み込んでビルドするところまでをご紹介しました。
ARkitを利用した開発は、基本的には同じようにサンプルコードをシーンに読み込んで、それをベースに開発を進めていきます。
サンプルコードの意味がわかるようになれば、改修してやりたい表現を実装していくことも可能です。
わからないコードがあればどんどん調べてみることをおすすめします。
あなたもUnity + ARkitでのAR開発に挑戦してみてはいかがでしょうか。