【やってみた】iOS13/Xcode11で登場の新機能「Reality Composer」を紹介するよ~~
6/3にappleのWWDC 2019 が開催されましたね。巷ではどうやらレビュー祭りが始まっているようなので
乗るしかない!!このビッグウェーブに!!!!
祭り!!祭り!!祭りだ!!
って感じでレビュー記事を投下します。
iPhoneでARアプリを作ってる人は読んで損ないはず。
TL;DR
WWDC 2019で発表された「Reality Composer」を実際にやってみた。
デモ動画付き。
Reality Composerってなに?なにができるの?
ズバリ、ARコンテンツの編集ができます。
え?どういうこと?って人は下の動画みてください。
イメージできました?
Youtubeの動画を拝借しましたが、これが一番イメージ伝わりそうだと思って。
投稿者に感謝。
こんな感じにARのコンテンツを自分で作れちゃいます。今までARの作成って敷居が高かったんですが、これによりグッと身近になりそうです。
他にも
・音声やアニメーションの表示
・ARコンテンツのインポート
・locationトリガーでARコンテンツの表示
ができるようです。
動画ではiPhoneでコンテンツ編集してますが、もちろんMacのxcodeでも同様に編集できます。
この記事ではxcodeを使って説明していきます。
ARKitとなにが違うの?
関連する用語が結構あるので整理しておきます。
・ARKit3
・人や対象物がどこにあるかを認識し、ARシーンを表示する
・モーションキャプチャで人の動きを追跡し、ARシーンへの入力にできる
・ARKit3から人やARの前後関係を表現できるようになった
つまり、現実世界のシーンを認識します。
床が写ってるよ、とか
壁があるよ、とか。
・Reality Composer
・前述の通りARKitで表示するためARコンテンツを制作する
つまり、ARKitが認識するシーンに対して
このオブジェクトを配置するよ
ここに配置するよ
っていうのを指定するのに使います。
・RealityKit
・ARコンテンツのレンダリングを担当する
・デバイスパフォーマンスも調整をする
つまり、ARKit3とReality Composerをうまいこと結合するやつです。
RealityKitのイメージがむずいですが、以下のイメージですね。
よくわからなかったらすみません。絵心磨きます。
兎にも角にも、アプリが作れればいいんです。
では、ついに、行きましょう!!
実際に作ってみた〜〜〜〜
↓ ↓ ↓
↓ ↓ ↓
実際にやってみた
ここから本番です。
実際にReality ComposerでARコンテンツを作って(インポートして)ARとして表示してみます。
最初に作ったものを紹介します。
簡単にこんなARアプリが作れちゃいます。
画像をARとして画面に出すようにしています。
この実装、コードはたった
10行
です。めっちゃ少なくないですか?
scenekitを使っていた頃はなんだったんだっていう。
delegateとかいらない。なんてすばらしいんだ。
じゃあ作り方です。
最初に動画みてください。
Xcodeを開いたらメニューの "xcode" > "Open Developer Tool" > "Reality Composer" の順にクリックします。
Reality Composerが開くので、アンカー(ARを表示するところ)を選択します。
あとはimportでusdz形式のファイルを選んでシーンに追加するだけです。
お手軽やーーーーん。
動画では端折ってますが、最後に画像をたくさん並べたものを保存しました。
こんな感じの。
保存するときに名前を聞かれるのでExperienceという名前にしてます。
また、シーンにも名前をつけられるので、sampleという名前にしました。
Experienceはrcprojectという拡張子で保存されるので、そのままプロジェクトにD&Dで追加します。
これはシーンをいくつも入れられる箱みたいなイメージです。
プロジェクトに追加すると自動的にクラスとして呼び出せるようになるので、こんな感じに使います。
guard let anchor = try? Experience.loadSample() else { return }
arView.scene.anchors.append(anchor)
AR表示するのに必要なのはほんとこれだけ。
コード自体も超簡単にかけるようになってます。
そうして実行したアプリがこちら。
床を認識して画像がたくさん並んで表示されています。
最後にコード全部貼っておきます。
import UIKit
import RealityKit
class ViewController: UIViewController {
@IBOutlet var arView: ARView!
override func viewDidLoad() {
super.viewDidLoad()
// Load the "sample" scene from the "Experience" Reality File
guard let anchor = try? Experience.loadSample() else { return }
arView.scene.anchors.append(anchor)
}
}
空白とコメントのぞいて10行。
10行で書けるのはほんとだったでしょう。
RealityKitまじやべえ。
所感
・ARコンテンツ自分で用意したのが使えるの嬉しい
・GUIで配置するのは結構めんどい
・対してコード書くのはほんとに簡単になった
・アニメーションとかやると夢広がりそう
・あ、表示カバーの画像は #MacProAR写真コンペ やってみたかっただけ
・locationトリガーでAR表示ができるらしいのでとても気になっている
・モーショントラッキングも気になってる
・MacBookで頑張ってたけど結構つらたん
・pro買ってください、オナシャス
・・・
Author:キング
・・・
We are hiring!!
こーゆー取り組みを自発的に提案して作りたい仲間も募集しています。
http://bit.ly/2M3k5Xr
Twitter もみてね。最近わりとちゃんとやってます。
https://twitter.com/NorthSandHQ