Apple Engine

Apple, iPhone, iOS, その周辺のことについて

ARKit

Apple は本当に AR グラスの開発を取り止めるのか

現状、詳細は全くわからないが、台湾メディア DigiTimes がサプライチェーン関連企業から入手した情報によれば、Apple は研究・開発の体制を調整し、AR / VR ヘッドセットの開発チームが解散したと報じられた。 本当に AR グラスの開発を取り止めなのかは謎…

ARKit 3 の変更点 (Xcode 11 beta 3)

ARSession stopTrackedRaycasts ドキュメント説明がないため詳細不明。 レイキャストを止めたか調べるものだと思われる。 static var stopTrackedRaycasts: ARSession.RunOptions { get } ARSession.CollaborationData ドキュメント説明がないため詳細不明。…

ARKit 3 の更新内容(Xcode 11 Beta 2)

Beta 2 では AR の機能変更はない。 変更 / 追加 RealityKit の ARView なので厳密には ARKit ではないのだが、 ARView の Scene で Combine の Publisher 関連の関数が増えた。 Combine の Publisher で追加されたものがこちらでも適応されている。 publish…

ARKit 3 で追加された ARCoachingOverlayView

iOS 13 から ARKit に ARCoachingOverlayView が実装された。 ARCoachingOverlayView は AR でのセッション初期化中やリミテッドトラッキング状況で、ユーザーに視覚的な指示を表示する UI を提供する。 これまでは自力で実装していたものだが、iOS 13 では…

アプリ開発から見る ARKit 3 の新機能

WWDC 2019 で ARKit 3 が発表された。 ARKit 3 に関する他の記事は Keynote と SwiftStrike を体験した範囲で書かれているものが多いため、アプリ開発側からどのような機能が増えたか公式ドキュメントとセッション動画から調べて書いてみた。 ARKit 3 で端末…

ARKit 3 の更新内容(Xcode 11 Beta 1)

ARKit 3 の API の更新内容を調べてみた。 API の翻訳であるため新機能の詳しい説明はない。 新機能の概要に関しては別記事を参照。 ARView について 今回は書く量が多いので、ARView に関しては RealityKit の API を調べる際に書くかもしれないので割愛。 …

RealityKit の説明と SceneKit との違いについて考える (Xcode 11.0 Beta 1)

3DCG レンダリングと AR 補助機能を持った RealityKit が発表された。 RealityKit の説明をしつつ、最後に SceneKit との違いを考えてみる。 今回はコードでの説明はないので注意。 現状 Beta 版であるため公開されている情報からのまとめ。 以下の情報に関…

次期 ARKit の噂(WWDC 2019)

9to5Mac で WWDC 2019 での開発者向けの新機能や API の噂が公開されてている。 9to5mac.com 以下、噂なので本当に実装されるかは判らないが翻訳してみる。 今年の ARKit は、AR のための新しい Swift 専用のフレームワークとともに開発者が視覚的に AR 体験…

ARKit でジオメトリの影を描画する

今までに自分が作成してきたサンプルはジオメトリの影をテクスチャで表現してきたが、ライトを置きジオメトリの影を描画したい時があるかもしれない。 ARKit の場合、現実空間と仮想のジオメトリを合成するため、平面認識後アンカーノードとしてジオメトリを…

ARKit で Spider Verse の様な色ズレを表現する。

SCNCamera にフリンジの設定があるので、 colorFringeStrength と colorFringeIntensity を調整するだけ。 let mainCamera = sceneView.pointOfView?.camera mainCamera?.colorFringeStrength = 5 mainCamera?.colorFringeIntensity = 0.5 Strength はフリン…

ARKit / SceneKit でフォーカスが外れたジオメトリの位置を知らせる UI をつくる

上の画像の様な感じ。 カメラから対象物となるジオメトリがフォーカスから外れるとジオメトリがある方向に、端末を回転する様に促す矢印の UI が出る。 今回はサクッとつくったため、あまり精度はないのでご了承いただきたい。 流れ overlayScene に左右矢印…

ARKit や SceneKit で寿司を回す

前回の横に流れる文字の続き。 SpriteKit の SKScene でラベルをアニメーションさせたものを円筒状のジオメトリのマテリアルにテクスチャとして貼り付けて を流すとARKit で寿司を回る。 寿司を回す ARBoardSK からの変更 ジオメトリ ジオメトリを平面から…

ARKit や SceneKit で電光掲示板的な横に流れる文字を表示する

横に流れる文字(SceneKit) AR 空間で文字数の多いテキストを表示する場合、 紙のように板ポリゴン一面や空間にするケースがあると思われる。 AR は現実空間と密接になっているため、サイズが小さいと近くに寄る必要があり、逆に大きいと全体を見る為に遠ざ…

Xcode 10.2 Beta 1 (iOS 12.2 など) での ARKit、SceneKit、SpriteKit の更新

今回、更新はない。 Swift の場合は、Swift 5 へのアップデートに伴い構造体のイニシャライズで変更 (Modified) があるため、ARKit、SceneKit、SpriteKit でも広範囲で更新がかかっている。 更新はかかっているが機能的な変更はない。 まとめ 多分、今回更新…

がんばって USD ファイルをテキストで書いてみる

SCNScene から USDA が書きだせたので調べながら手書きで書いてみる。 今回は Apple 製品で動くものなので、実際の USD の仕様と異なるので注意。 本来は公式ページから GitHub へ行きツール群をビルドしそこから振る舞いを調べるべきなのだが、自分の環境だ…

SceneKit アプリで使用しているシーンを Pixar USD として書き出す

Model I/O framework は Metal で使用する一連をアセット操作するものがああり、ファイルを読み込んでアセットにしたり、アセットを別のファイル形式に書き出すことができる。 アセットの設定は Model I/O の MDLAsset を使用するのだが、MDLAsset では Scen…

ARKit (SceneKit) で Unreal Engine や Unity のようなグローパーティクルをつくる

SceneKit でグローなパーティクルのサンプルがなかったのでつくってみることにした。 つくってから気がついたが Apple 謹製のサンプルファイル Fox 2 での背景の火の粉のパーティクルがそれに当たる。 パーティクルにグローができる原理 デフォルト / HDR + …

ARKit や SceneKit で使用している simd について - クォータニオンでの関数編 その2 -

今回はクォータニオンで使用する線形補間の関数について。 基本的には球状での回転の補間となる。 用意されている関数は以下のもの。 simd_slerp simd_slerp_longest simd_spline simd_bezier ちなみに線形補間に関しては iOS でサンプルアプリがあるのでそ…

ARKit や SceneKit で使用している simd について - クォータニオンでの関数編 その1 -

今回はクォータニオンで使用する関数について。 線形補間関連の関数はまたいずれ。 演算子と関数について書くが、基本的にはプロパティと関数が対になっている。 演算子 等価演算子と四則演算が可能。 +, - に関しては値が加算、減算されるため、正規化しな…

ARKit や SceneKit で使用している simd について - クォータニオン編 -

今回はクォータニオンについて。 確かこの Blog で SCNQuaternion もちゃんと紹介していないので、まずはクォータニオンについてのご説明。 クォータニオンのざっくり説明 クォータニオンは四元数と呼ばれ、スカラー(実数)部分と3つの虚数部分をまとめたベ…

ARKit や SceneKit で使用している simd について - 行列での関数編 -

今回は行列で用意されている関数について 用意されている関数 以下のものが用意されている。 simd_add() simd_sub() simd_mul() simd_equal() simd_almost_equal_elements() simd_almost_equal_elements_relative() simd_linear_combination() simd_determin…

ARKit や SceneKit で使用している simd について - 行列型編 -

今回は 行列型と初期化について。 ARKit や SceneKit で主に使用する float4x4 を説明する。 double4x4 は float4x4 と上限値以外は同じなので 割愛。 float4x4 と double4x4、クオータニオン以外では、以下の行列が用意されており、double や float、行列の…

ARKit や SceneKit で使用している simd について - 関数編 -

今回は simd の演算用の関数についての説明。 simd のライブラリはベクトル内の各要素対して1つの命令で各要素に適応させることができる。 以前に紹介した通り、+演算子を使用すると、2つのベクトルの要素ごとに合計を簡単に計算することができる。 let f3_1…

ARKit や SceneKit で使用している simd について - 型の初期化と演算子編 -

前回に引き続き simd の説明で、今回は simd 型の初期化と演算子に付いて。 行列型に関して他の記事で紹介する。 今回は ARKit や SceneKit で主に使用する以下のものの説明。 double は float と上限値以外は同じなので割愛。 float3 float4 直接使用するこ…

ARKit や SceneKit で使用している simd について - 概要編 -

ARKit や SceneKit で使用している Accelerate フレームワークの simd ライブラリについて書いてみる。 元々は Accelerate フレームワークで vImage、vDSP や BLAS、LAPACK などを使用する際に、ハードウェアに近い部分での計算を行うために追加されたものだ…

ARKit でタップするカメラに追従する仮想オブジェクト

ARKit で仮想オブジェクト動かす際、タップ後スワイプして移動を行うことがあるが、 面倒なのでこういう UI / UX もありかなと試してみることにした。 あと過去の記事で書いたものが実現できるか試してみたかったので。 ARKit とは書いているが SceneKit の…

iOS 12 Programming の ARKit の章をレビュー(査読)をさせていただきました

前作の iOS 11 Programming で堤修一さんが執筆担当されている Metal の章のレビューをさせていただきましたが、iOS 12 Programming では ARKit の章のレビューをさせていただいております。 iOS 11 Programming の Metal の章では、あまり貢献できませんで…

AR UI 概論 抜粋版

AR の UI について他ではあまり語られていないためまとめてみる。 抜粋したのだが今回は割と長く、最初は UI について書いているため、必要なければ飛ばしていただいて AR の UI や AR UI パターンだけでよいと思われる。 また、面倒なのでここでは Mixed Re…

ARKit で LUT 画像からカラーグレーディング

昨日のサンプルの方法で pointOfView の SCNCamera を取得し、LUT (look up table) 画像を使用してカラーグレーディングを行ってみる。 使い道として全体的に色味を変えたいときに使用する。 ARSCNView に直接 CIFilter で効果を入れられないので、普通なら …

ARKit で HDR や被写界深度を適応する

ARKit で HDR や被写界深度を適応してみようと思う。 SceneKit ベースの ARKit のシーン上でのカメラは、ARSCNView の pointOfView へ SCNCamera を適応しているため、 SCNCamera の HDR や被写界深度を設定するとそのまま適応されるのでかなり簡単。 SceneK…