ARKitこんにちはmorimori(@TatsunoriMorita)です。仕事の関係でARアプリ開発することになり、Unityで開発するにしても、ネイティブ言語のSwiftを使った開発知識が必要だと思うので、いろいろ調べながらメモして行こうと思います。Plues(iOS12.1)はじめにSwiftでARアプリを作成するにはARKitとSceneKitを使用します。ARKitとはARアプリを開発するためのライブラリで、地面の検出やスケール、光の検知などのARに必要な基本的な機能を提供するものです。SceneKitとは3DCGライブラリで、3Dオブジェクトやアニメーションなどを作成するものになります。3DCGにおいては、Unityの方がSceneKitより得意なようなので、アニメーションで凝ったことをするにはUnityの方が良いかもしれません。現状はARKitに慣れるために、Xcodeを使ってARKitとSceneKitで開発をすることにします。TechnologyをSceneKitを選択します。実機で動かす作成されたプロジェクトをそのまま実機に接続してアプリを動かしてみます。変な船?が表示されるのが確認できました。コードを眺めるコードを確認すると意外にコーティング量は少ないです。ARアプリだからもっといろいろコードが書かれていると思いましたが。使用されているクラスを確認ARアプリを動かすにあたって、主に使用されているクラスを確認しておきましょう。全体構成の粒度としてはARSession>ARSCNView>SCNSceneみたいですね。objectで、ARアプリに必要なデバイスカメラとモーション管理や、プロセスの調整などを取りまとめている司令塔のような存在。ARKitを使用するにあたって、必ずひとつは必要となるが、ARCSNViewやARCKViewオブジェクトを使用する場合は、これらのインスタンス内に含まれているため独自にARSessinのインスタンスを作成する必要はない。逆にARCSNViewやARCKViewオブジェクトを使用せずに、独自のシーンを作成して使用する場合は、インスタンス化して自分で管理する必要がある。3Dコンテンツと、デバイスカメラを融合して、カメラ越しに見える拡張現実のシーンを管理するためのビュー。UIView=>SCNView=>ARSCNViewの継承関係となっているのでUIView・・・アプリの画面を描画するビューSCNView・・・UIViewが進化してSceneKitという3Dオブジェクトの描画が管理できるようになったビューARSCNView・・・SCNViewが進化してAR機能の描画が管理できるようになったビューみたいなイメージですかね(たぶん)。https://developer.apple.com/documentation/arkit/arscnviewSCNScene3Dオブジェクトを表示するために、光源、カメラビュー、オブジェクトをツリービューのノード要素として管理している。ARSCNViewのsceneプロパティにセットすることで画面上に3Dオブジェクトを表示している。平面、垂直の検出設定、端末の傾き情報などの設定を管理するもよう。https://developer.apple.com/documentation/arkit/arworldtrackingconfigurationARAnchor実際に存在するオブジェクト、仮想オブジェクトの位置と向きを追跡できる。https://developer.apple.com/documentation/arkit/aranchorARSCNViewDelegate新たなアンカーが追加、更新された時に呼ぼれるイベントを実装したクラス。テンプレート作成時にデフォルトで作成されているイベントは親クラスであるARSessionObserverのもの。セッションが切れた時や、アプリがバックグランドに移動した時の処理を実装する。今回はテンプレートのコードで使用されている主なクラスについて説明しました。次回はコードの内容について詳しく見ていこうと思います。ノードの回転方法こんちにちはmorimori(@TatsunoriMorita)です。パーティクル・システムこんちにちはmorimori(@TatsunoriMorita)です。その4こんちにちはmorimori(@TatsunoriMorita)です。その3こんちにちはmorimori(@TatsunoriMorita)です。その2こんちにちはmorimori(@TatsunoriMorita)です。その5月別アーカイブ参加グループプログラミングスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。