2017-06-01から1ヶ月間の記事一覧
今回は、以前に作成した Scene Editor のサンプルを元に球をたくさんを置いたもので試す。 Scene Editor のサンプル では ViewController.swift で SCNView の背景色を設定しているが必要ないので以下のものを消す。 scnView.backgroundColor = UIColor.blac…
ギークではない一般ユーザーが仮想空間の体験をする初めての接点が iOS と ARKit によるものとなる可能性が高い。 Virtual Reality (VR) Mixed Reality (MR) Augmented Reality (AR) これらの総称を X Reality (XR) というらしく、この体験をする人の増加は …
ひとまず、以前作成した scn ファイルを元に Utilities エリア を軽く確認してみる。 Utilities エリアには Source Editor や Interface Builder と同様に 上部にインスペクタと下部にライブラリと分けられている。 インスペクタ Utilities には7つのタブが…
ざっくり Scene Editor の UI や操作周りご紹介。 Xcode 9 で若干設定項目が増えるけど。 SceneKit の Scene Editor で扱えるものは dae、obj、abc(alembic)などのオブジェクトファイルと パーティクル専用の scnp とシーンファイルである scn。 scn での…
ARKit と深度情報が組み合わされると Kinect や HoloLens のような体験が可能になる。 では、そこに物体認識ができるようになったらどうなるだろう。 その前に物体を認識するとは何か iOS では過去にプライベート API の OpenCL を使用した顔認識がある。 以…
元ネタ japanese.engadget.com 特別なハードウエアを使って高精度 AR を実現 まず、Apple A シリーズの動作が化け物で、他の ARM の SoC が周回遅れな感があり。 センサー類の動作も素晴らしく、ARKit の可能にしているのは Metal 2 のおかげだと思われる。 …
今まではコードから SCNScene のクラスを使用してシーンを作成していたが、SceneKit にはもう1つ作成方法があり今回はそちらのご紹介。 Xcode に Scene Editor というツールがあり、Unity のエディタのようなもの。 オブジェクトを視覚的置いたり、アニメー…
適当に思いついたことまとめ ARKit に関しての Human Interface Guidelines がまだないので Apple にも AR は検討状態な感はあり伸び代がありそうな予感。 現状、近い将来にでもできそうなこと Apple Pencil による現実落書き 音声による何らの現実変更 、音…
ハード面から見てみる。 CPU まずは A10X Fusion(以下, A10X)の CPU スペック。 他のサイトで言われているように周波数は iPhone 7 / 7Plus の A10 Fusion (以下, A10) と同じぐらいで、メモリは 4GB に。 L2キャッシュ も2倍以上増えているため、L1 ほど…
前回のサンプルでは重大なミスをしており、 タップする度にルートノードに新規の球体のノードが追加されている。 そのためドローコールがタップ毎に増えており、 簡素なジオメトリとはいえ、あまり端末に優しくない。 修正してみる SCNNode には clone() と…
Unity などと同様に、SceneKit も物理アニメーションが行われるオブジェクトを設定し、物理アニメーションの影響を受けるが画面内に固定されたものを設定するだけ。 落下物を設定 GameScene.swift の func setUpScene() の中に 以下のコードを書くと球 Y 軸 …
Core Animation を使用するより SCNAction を使った方が便利なのでこちらを使用。 SpriteKit の SKAction の3次元版なので使用方法はほぼ同じ。 SCNAction での SCNVector3 と SCNVector4 SCNVector3 は x, y, z の3つの値を持ち値の方向に移動または回転さ…
SceneKit のアニメーション SceneKit のアニメーションには大きく分けて以下の 2 種類があり、 今回の紹介するものは後者のもの。 物理アニメーションやパーティクルなど SceneKit が自動で動きを計算するもの アプリ開発者が任意で動きを設定するもの アニ…
SceneKit でジオメトリなどのオブジェクトを変更する場合には、 SCNNode に変更を与えることでそこにぶら下がっているオブジェクトを含め変更される。 移動させてみる 前回作成したテンプレートの func setUpScene() の下に以下の命令を書くと、 角が丸まっ…
今後、コードサンプルで使用するためのものを作成する。 シーングラフのルートノードに追加するもの。 オムニライト (配置した位置から全ての方向を照らす光源) アンビエントライト (位置に関係なく画面全体を照らす環境光。ジオメトリに陰は落ちない) カメ…