iOSアプリ開発5日目〜その1〜
ここでは、ARKitを作成していく。ここでは、Augmented Realityを理解する、ARシーンキットを使って簡単なオブジェクトを実写映像に重ねるという2つを柱にしている。
<ARアプリケーションをつくる上での基本的な知識>
・AR:Augmented Reality(拡張現実)実写と3D CGを組み合わせて、あたかも現実空間に3D CGが実写の世界に存在するかのように見える技術のこと
・PlaneDetection:カメラの映像からPlain(平面)を検知する。平面を検知して、それとCG映像を重ねて、よりリアリティのある世界を作る
・ARKit:Apple社の公式サイトにて、提供されているフレームワーク(既成クラスライブラリ)。つまり、ARKitがあるため、それをアプリ内で呼び出して使用する技術が求められている
・ARでは、Sub View(ARKitに含まれるScene View)を切り替えて表示する
・二次元や三次元で表示される物体のことをNode(ノード)とよぶ
・各Sub Viewには複数のノードを持つことができる
・Nodeは、GeometryとMaterialで構成されている
・Geometry(ジオメトリー):形状のこと。幾何学的形状(カタチ)
・Material(マテリアル):表面のこと。画像ファイルや生地ファイル、色を指定することもできる
1.ARKitの作成
ARKitを作成するために、新規プロジェクトは、「Augmented Reality App」を選択する。
User Interfaceを「Storyboard」にする
Single View Appと違うのは、「art.scnassets」ファイルというARコンテンツを管理する場所ができていること
ship.scnでは、擬似空間に表示されるノード(節、ポイント)が保存されており、textuer.pngでは、サーフェイス(表面の画像)があらかじめセットされている。
サンプルプロジェクトとなっており、どこも変更しなくても、実機で実行できる。
2.立方体を表示させる
プリインストールされている飛行機のノードではなく、指定した立方体を表示させるアプリを作成する。
ViewController.swiftを開き、下記を追加していく。
※30行目:let scene = SCNSene()
※飛行機のノードを表示するようにセットされているので、その表示を外してブランクにしてあげることを忘れずに!
3.テキストラベルを表示する
今度は、立方体ではなく指定したテキストを三次元空間に表示させる
※30行目:let scene = SCNSene() (引数をブランクで指定する)
インストラクタのことをSwiftではイニシャライザという
※こちらも、飛行機のノードをブランクにしてあげること!
・実機での実行画面(一部)
4.さいごに
今回はテキストラベルを表示するプログラムを書き込んで、実機で動作確認をしようとしたが、私の無課金AppleIDでは、7日で10コのアプリしか作成できないという上限に達してしまったため、数日間 日を置いて後日改めて続きを作成していくことにする。
次回は、複数のオブジェクトを三次元空間に配置するアプリに挑戦する。