こんにちは! SpeeeでiOS/Swiftエンジニアをしている id:Mitsuyoshi です。
Apple World Wide Developer Conferenceに参加するため、カリフォルニア州サンノゼに来ています。 今回のWWDCではAR関連のセッションがとても充実しており、個人的にもARKit2の進化はとても面白いものだったので、それぞれのセッションを紹介します。
TL;DR
- アップデート全般を見たい
- 👉 What’s New in ARKit 2
- ARマルチプレイヤーゲームの裏側が知りたい
- 👉 Inside SwiftShot: Creating an AR Game
- AR Quick Lookについて知りたい
- 👉 Integrating Apps and Content with AR Quick Look
- 良いAR体験を作るにはどうしたら良いか
- 👉 Creating Great AR Experiences
What’s New in ARKit 2
まずはこのセッションを見るとARKit2のアップデートについて理解しやすいです。
最低限の機能のみが実装されていたARKit1に対して、ARKit2では以下の機能が追加されています。
- Saving and Loading Maps
- WorldMap(マッピングした現実世界の情報)をセーブ/ロードできる
- Environment Texturing
- 光を反射する3Dオブジェクトに周囲の現実の風景を映し込める
- Image Tracking
- 画像をARのアンカーにする
- Object Detection
- あらかじめスキャンした現実のオブジェクトを認識できる
- Face Tracking Enhancement
- 顔認識の向上。視線トラッキングなど
Environment Texturingは従来のARアプリの体験を向上するアップデートです。 他の項目もARの体験を良くするものではありますが、これらのアップデートによってARを使うアプリにもうひとつ別の方向性がもてるようになりました。
このセッションでは例として、視線を動かしてプレイするゲームが登場しています。 そのゲームでは視線を検出するためにカメラを使用しているものの、カメラ映像のプレビューは表示せず、あくまで入力インターフェースとしてのみARKitを使っています。 このように、ARKit2で登場した機能を使うと、iPhoneの位置や姿勢、周囲の画像や物体、そしてユーザーの顔などを使ってアプリを操作することができるようになります。
AirDropを使ったことがある方はわかると思いますが、AirDropは「誰にファイルを送るのか」「その人が持っているiPhoneの名前は何か」ということを考えて使わないといけません。 しかし、iPhone同士の距離がわかるのならば、そのような心配は不要で、単に隣のiPhoneに送信すれば良いということになります。
ARはゲームや展示などに使われることが多いのですが、私はこちらの、AR技術を使ったアプリも楽しみに思っています。
Inside SwiftShot: Creating an AR Game
ARKit2を使ったSwiftShotというゲームがどのように作られたか説明するセッションです。
SwiftShotはARKit2の新機能である、Saving and Loading Mapsを使って複数の端末間で同じAR空間を共有する、マルチプレイのゲームです。 手軽に遊べてかなり楽しめるので、iOS Developer Programに加入している人はぜひ遊んでみてください。 ソースコードはこちらからダウンロードできます。
SwiftShot: Creating a Game for Augmented Reality | Apple Developer Documentation
会場にもデモ機が設置され、最終日には参加者対抗トーナメントが行われました。 私も参加したのですが、1回戦で敗退して、ARKitロゴのバッジだけ手に入れました。
さて、SwiftShot自体はARKitとその他のフレームワークの仕組みを組み合わせて作られている、仕組みとしては単純なアプリです。 しかし、端末間での通信量の制約から、どの情報をどれだけ送るかといったことを工夫する必要があり、SwiftShotでは独自のCodableプロトコルを作成して不要な情報を削減しています。 また、会場では常に同じ場所でデモが行われるので、iBeaconを設置して、作成済みのWorldMapを配信するなどのトリックも行なっています。
総じてマルチプレイARゲームを作るときに非常に参考になるセッションでした。
Integrating Apps and Content with AR Quick Look
iOS12から登場するAR Quick Look機能に関するセッションです。
AR Quick LookはファイルアプリやSafari上で、3DオブジェクトをARで表示できる機能です。 その機能をいかに使うかということと、どのようにAR Quick Lookに適した3Dモデルを作成するかについて説明されています。
Safariに搭載されるので、今後はARアプリを作らなくても3Dモデルさえ作ってwebページに載せればARコンテンツを体験してもらえるというのは大きいです。
Creating Great AR Experiences
開発者がARアプリケーションを作る際に気をつけるべきポイントとベストプラクティスを説明するプレゼンですが、ARの体験を良くするためにAppleがいかに注力しているかがよくわかるセッションです。
内容としては、前半にARアプリを作る上で注意すべき部分、後半にARに表示する3Dモデル作成のtipsが説明されます。
一般に、ARやVRというものはいかに現実に近づけられるかという軸でその質が語られますが、「遠くからでも、真横から見ても、文章がカメラに正対するのでちゃんと読める」という部分に関しては現実世界よりも使いやすいとさえ言えると思います。
ARとは直接関連しませんが、Designing Fluid Interfacesもアプリの体験に関するとても良いセッションです。 Apple製品の「ぬるぬる動く感じ」が何であるのか、どのように実装されているのか説明されています。
最後に
ARKit2から、ARは表現の手法というだけではなく、様々な応用が効くようになりました。 また、ARを使ったゲームも、表現能力が上がったりマルチプレイが可能になったことで、さらにできることが増えています。 今後もARKitやそれを使ったアプリの動向を追っていきます!