RealityKitのサンプル集「RealityKit-Sampler」をオープンソースで公開しました。
RealityKitはAppleの最新のARフレームワークです。
ソースコードは GitHub に置いてあるので、ご自由にご活用ください。
シンプルにRealityKitを操作する公式サンプルがあまりないので、RealityKit-Samplerでは「基本から応用まで、ARアプリを作る要素を網羅する」というところに気をつけています。エンティティ、コンポーネントシステムなど、一見するとこれまでのARKit+SceneKitとガラッと変わったように見えるRealityKitですが、触ってみると手軽にリッチなARコンテンツを扱えるので、とっつきやすさが伝わればと思います。
#ビルド方法
1、プロジェクトをダウンロードまたはクローンして、xcodeで開きます。
2、xcodeの署名と機能の「チーム」フィールドをアカウントに変更してください。
3、実際のデバイスでRunします。(シミュレータでは使用できません)。
#サンプル一覧
Put the box
シンプルなオブジェクトを平面に置く短いコード。RealityKitでオブジェクトを配置するのが意外と簡単なことがわかります。
![スクリーンショット 2021-06-22 6 25 04](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F122830079-cc028c80-d322-11eb-87a3-8aa4803860a4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=eb25156e33718865b4de90fcaf0ad593)
Gigant Robots
リッチなUSDZコンテンツを表示、アニメーションさせる方法。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F124874290-83292400-e002-11eb-948f-13302a5806ed.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e79591cc320e5c0421dbba94f1bdf1e0)
Big monitor
フォトアルバムから動画を選んでテクスチャとして貼り付けるサンプル。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F123641992-c8f52800-d85d-11eb-918a-4619071a54c9.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1682a3bde0869743259e1da0ed593ebe)
Building blocks
いろいろな形、表面のオブジェクトを使う方法。またそれらをジェスチャーを使って操作するサンプル。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F123644152-11ade080-d860-11eb-828f-68e86ac8ee28.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c98b472a8abdac1431a836102116f84e)
Speech Balloon
顔と表情を認識し、発話内容も併せて視覚化するサンプル。
Special Move
体を認識できるボディアンカーをつかって、体とARオブジェクトをインタラクトさせるサンプル。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F125154167-b7801a00-e193-11eb-93c6-631e827a96ed.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c6c3613e13b660c0d5d19964a1df4643)
Face Cropper
顔を認識して、ポスターなどを切り抜くサンプル。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F124336683-e158a000-dbd9-11eb-8a00-5c2943daefcb.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c03a25e1bf4c5fe2ad71e1485272e5de)
AR Hockey
マルチデバイス共有機能を使って、ゲームを作るサンプル。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F137721587-cc6e8235-b7a0-4fb1-ad12-4af3c1cbb5e9.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d3b344d82f54e88dc07d8ea18e8ab626)
Hand Interaction
AppleのコンピュータビジョンフレームワークとRealityKitを組み合わせて、ARオブジェクトに触れるサンプル。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F23278992%2F125152071-59e4d100-e185-11eb-8f4c-e14a825ada09.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ac8a3e68715606a178208efa86bc3a23)
学べること
コンテンツ | 技術要素 |
---|---|
Put the box | SwiftUIのARView, Scene, Entity, Anchor, MeshResource, Material. |
Big Robots | USDZ, Animation |
Big Monitor | VideoMaterial, SceneEvent |
Building Block | Ray Cast, Hit Test, Handle Gestures, Physics, Collision, TextureResource |
Speech Balloon | Face Anchor, ARSessionDelegate, RealityComposer |
Special Move | Body Anchor |
Face Cropper | Image Anchor |
AR Hockey | Collaborative Session |
Hand Interaction | addForce, Vision |
#RealityKitをつかうメリット
iOSでARアプリを作るにはいくつか選択肢がありますが、RealityKitはその第一候補になると思います。
理由として、以下のメリットがあります。
・公式かつ最新のフレームワークである
・よってアップデートとサポートが手厚い
・あつかいやすい
・レンダリングがきれいで、リッチなARコンテンツを表示できる
ぼく自身ARKit+SceneKitでARアプリを作っていましたが、この機会にRealityKitをひととおり試してみました。
SceneKitに比べて細かい融通がきかないようなイメージがありましたが、やってみるとぜんぜんいろいろできました。
RealityKitの扱いやすさを共有したいと思い、RealityKitの参考書およびこのSamplerを作りました。
🐣
フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com
Core MLやARを使ったアプリを作っています。
機械学習やAR関連の情報を発信しています。