前回につづいてARKit関連の記事になります。

ARのアプリというと3Dモデルを使ってなんやかんやするというイメージが強く、ハードルが高いものだと思われがちです。

ただ、球体や立方体などのオブジェクトであれば簡単に表示することができます。

そこで、ちょっとしたサイコロアプリを作ってみることにしました。

Xcodeで新規プロジェクト作成時に「Augmented Reality App」を選択すると、ARKitを使用するアプリのテンプレートが作成されます。
今回はこれをベースに作りました。

最終的なプロジェクトファイルはGithubに上げましたが、いくつかピックアップして解説していきたいと思います。

https://github.com/micchymouse/ARKitDise

まずは ARSCNViewDelegate のメソッドである func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) にて、平面を認識した際の処理を記述します。
端末が平面を認識するとこのメソッドが呼び出され、ここで認識した平面を元に仮想空間上に床を生成します。
今回は簡単のために、平面認識を一度のみとしています。

makeFloor では床を作成しています。
平面認識時に作成された平面データの位置に直方体のオブジェクトを作成し、それを床として扱います。
床が作成されたことをわかりやすくするために、黒い半透明の色で塗りつぶしています。

initDice ではサイコロを作成しています。
立方体を作成し、その各面に対してあらかじめ用意した画像を貼り付けています。
また、先ほど作成した床とぶつかるように、物理演算設定も行っています。

画面タップ時に makeDice でサイコロを出現させています。
ランダムな面が表示されるように、出現時に乱数値を使って回転を与えています。

こんな感じで下記のようなアプリを作成しました。
各面には色々なご飯の絵が設定されており、今日何食べるか迷ったらこのアプリが決めてくれます(笑)

ARKitを使うと、3Dモデルや物理演算などの知識がなくとも、ちょっとしたアプリ程度であれば簡単に作成することができるので、是非とも皆さん挑戦してみてください!

最後に、ブレイブソフト初のARKitを使ったアプリ「ARケチャマヨバトル」も是非ともダウンロードして遊んでみてください!

Follow me!