見出し画像

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(マテリアル):表面のこと。画像ファイルや生地ファイル、色を指定することもできる

スクリーンショット 2020-05-10 17.23.31


1.ARKitの作成

ARKitを作成するために、新規プロジェクトは、「Augmented Reality App」を選択する。

スクリーンショット 2020-05-10 14.00.00


User Interfaceを「Storyboard」にする

スクリーンショット 2020-05-10 14.02.06

Single View Appと違うのは、「art.scnassets」ファイルというARコンテンツを管理する場所ができていること

スクリーンショット 2020-05-10 17.02.56

ship.scnでは、擬似空間に表示されるノード(節、ポイント)が保存されており、textuer.pngでは、サーフェイス(表面の画像)があらかじめセットされている。

スクリーンショット 2020-05-10 17.03.02

サンプルプロジェクトとなっており、どこも変更しなくても、実機で実行できる。



2.立方体を表示させる

プリインストールされている飛行機のノードではなく、指定した立方体を表示させるアプリを作成する。

ViewController.swiftを開き、下記を追加していく。

スクリーンショット 2020-05-10 16.37.20

※30行目:let scene = SCNSene()

※飛行機のノードを表示するようにセットされているので、その表示を外してブランクにしてあげることを忘れずに!



3.テキストラベルを表示する

今度は、立方体ではなく指定したテキストを三次元空間に表示させる

スクリーンショット 2020-05-10 16.47.07

※30行目:let scene = SCNSene()   (引数をブランクで指定する)

インストラクタのことをSwiftではイニシャライザという

※こちらも、飛行機のノードをブランクにしてあげること!


・実機での実行画面(一部)

画像8


4.さいごに

今回はテキストラベルを表示するプログラムを書き込んで、実機で動作確認をしようとしたが、私の無課金AppleIDでは、7日で10コのアプリしか作成できないという上限に達してしまったため、数日間 日を置いて後日改めて続きを作成していくことにする。


次回は、複数のオブジェクトを三次元空間に配置するアプリに挑戦する。

よろしければサポートお願いします。いただいたサポートを皆さんに還元していきたいと思っております。