開発
前回の横に流れる文字の続き。 SpriteKit の SKScene でラベルをアニメーションさせたものを円筒状のジオメトリのマテリアルにテクスチャとして貼り付けて を流すとARKit で寿司を回る。 寿司を回す ARBoardSK からの変更 ジオメトリ ジオメトリを平面から…
横に流れる文字(SceneKit) AR 空間で文字数の多いテキストを表示する場合、 紙のように板ポリゴン一面や空間にするケースがあると思われる。 AR は現実空間と密接になっているため、サイズが小さいと近くに寄る必要があり、逆に大きいと全体を見る為に遠ざ…
以前の記事で SpriteKit の SKVideoNode を使用して SceneKit のテクスチャに動画をループ再生する記事を書いた。 SpriteKit のシーンを貼り付けているため、基本的には SpriteKit で使用している機能を使いアニメーションや インタラクションをテクスチャと…
Xcode の多分 10.1 から Metal のシェーダーファイルを Material Inspetor > Propaties > Shading で設定できるようになった。 内容的には SCNProgram が Scene Editor でできるようになった感じ。 Metal のカスタムシェーダーファイルを作成する 新規ファイ…
今回、更新はない。 Swift の場合は、Swift 5 へのアップデートに伴い構造体のイニシャライズで変更 (Modified) があるため、ARKit、SceneKit、SpriteKit でも広範囲で更新がかかっている。 更新はかかっているが機能的な変更はない。 まとめ 多分、今回更新…
SCNScene から USDA が書きだせたので調べながら手書きで書いてみる。 今回は Apple 製品で動くものなので、実際の USD の仕様と異なるので注意。 本来は公式ページから GitHub へ行きツール群をビルドしそこから振る舞いを調べるべきなのだが、自分の環境だ…
Model I/O framework は Metal で使用する一連をアセット操作するものがああり、ファイルを読み込んでアセットにしたり、アセットを別のファイル形式に書き出すことができる。 アセットの設定は Model I/O の MDLAsset を使用するのだが、MDLAsset では Scen…
原因不明。 現象 Automatically manage signing で Team を設定し実機にビルド。 最初は実機で動作したが、scnassets フォルダにファイルを追加すると 「Command CodeSign failed with a nonzero exit code」でビルドが止まる。 対処法 scnassets フォルダを…
SceneKit でグローなパーティクルのサンプルがなかったのでつくってみることにした。 つくってから気がついたが Apple 謹製のサンプルファイル Fox 2 での背景の火の粉のパーティクルがそれに当たる。 パーティクルにグローができる原理 デフォルト / HDR + …
今回はクォータニオンで使用する線形補間の関数について。 基本的には球状での回転の補間となる。 用意されている関数は以下のもの。 simd_slerp simd_slerp_longest simd_spline simd_bezier ちなみに線形補間に関しては iOS でサンプルアプリがあるのでそ…
今回はクォータニオンで使用する関数について。 線形補間関連の関数はまたいずれ。 演算子と関数について書くが、基本的にはプロパティと関数が対になっている。 演算子 等価演算子と四則演算が可能。 +, - に関しては値が加算、減算されるため、正規化しな…
今回はクォータニオンについて。 確かこの Blog で SCNQuaternion もちゃんと紹介していないので、まずはクォータニオンについてのご説明。 クォータニオンのざっくり説明 クォータニオンは四元数と呼ばれ、スカラー(実数)部分と3つの虚数部分をまとめたベ…
今回は行列で用意されている関数について 用意されている関数 以下のものが用意されている。 simd_add() simd_sub() simd_mul() simd_equal() simd_almost_equal_elements() simd_almost_equal_elements_relative() simd_linear_combination() simd_determin…
今回は 行列型と初期化について。 ARKit や SceneKit で主に使用する float4x4 を説明する。 double4x4 は float4x4 と上限値以外は同じなので 割愛。 float4x4 と double4x4、クオータニオン以外では、以下の行列が用意されており、double や float、行列の…
今回は simd の演算用の関数についての説明。 simd のライブラリはベクトル内の各要素対して1つの命令で各要素に適応させることができる。 以前に紹介した通り、+演算子を使用すると、2つのベクトルの要素ごとに合計を簡単に計算することができる。 let f3_1…
前回に引き続き simd の説明で、今回は simd 型の初期化と演算子に付いて。 行列型に関して他の記事で紹介する。 今回は ARKit や SceneKit で主に使用する以下のものの説明。 double は float と上限値以外は同じなので割愛。 float3 float4 直接使用するこ…
ARKit や SceneKit で使用している Accelerate フレームワークの simd ライブラリについて書いてみる。 元々は Accelerate フレームワークで vImage、vDSP や BLAS、LAPACK などを使用する際に、ハードウェアに近い部分での計算を行うために追加されたものだ…
ARKit で仮想オブジェクト動かす際、タップ後スワイプして移動を行うことがあるが、 面倒なのでこういう UI / UX もありかなと試してみることにした。 あと過去の記事で書いたものが実現できるか試してみたかったので。 ARKit とは書いているが SceneKit の…
昨日のサンプルの方法で pointOfView の SCNCamera を取得し、LUT (look up table) 画像を使用してカラーグレーディングを行ってみる。 使い道として全体的に色味を変えたいときに使用する。 ARSCNView に直接 CIFilter で効果を入れられないので、普通なら …
ARKit で HDR や被写界深度を適応してみようと思う。 SceneKit ベースの ARKit のシーン上でのカメラは、ARSCNView の pointOfView へ SCNCamera を適応しているため、 SCNCamera の HDR や被写界深度を設定するとそのまま適応されるのでかなり簡単。 SceneK…
Xcode 9 の ARKit 用テンプレート、Augmented Reality App では ViewController の View に ARSCNView が設定されており フルスクリーン的な画面全体で表示されていたが、 Xcode 10 では ViewController の下に UIView が設定されており、 その下に ARSCNVie…
地味に UI が変更されたので、変更内容を見てゆく。 (Xcode 9 で追加されたものが混じっていたらすまない) Object Library 今まで右下のボタンや「Command + Option + Control + 3」で表示していたが、 該当部分とショートカットキーがなくなった。 ヘッダー…
ゲームアプリでは多分 SceneKit が使用されているケースは少ないが、 ARKit に関しては SceneKit が使用されているケースがそこそこある。 今回は SceneKit や Unity などのゲームエンジンでの違いを見ていこうと思う。 ゲームエンジンは Unity を指定してい…
Beta 版から記事を起こしているため今後変更される可能性あり。 先回、AREnvironmentProbeAnchor を automatic にして自動的に置いたので、今回はマニュアル設定で設置してみる。 どうやら、反射設定を行ったマテリアルの近辺に 複数 AREnvironmentProbeAnch…
今回の変更はない模様。 Xcode 10 Beta 6 の Scene Editor での ノード選択時のマニュピレーター、グリッドの表示エラーが解消されました。
ARKit の更新はないようで、SceneKit では Beta 4 で追加された2つのインスタンスプロパティの名称が変更された。 SCNPhysicsBody 物理ボディのインスタンスプロパティの名称が Sleeping から Resting に変更された。 Beta 4 var linearSleepingThreshold: C…
Beta 版から記事を起こしているため今後変更される可能性あり。 Apple のデベロッパーページのドキュメントの最初で SceneKit の仕様変更がなかったので気づかなかったが中身は変更されている模様。 Bata 4 の変更内容としてはいるが、自分の見落としで以前…
Beta 版から記事を起こしているため今後変更される可能性あり。 ARKit 1.0 や 1.5 は Beta 中は、ほぼほぼ変更はなかったが 今回はテストしながら必要な機能を少しずつ増やしている模様。 Beta 4 は以下のような更新。 変更数 追加 (Added) 1 変更 (Modified…
Beta 版から記事を起こしているため今後変更される可能性あり。 物体認識のクラス ARReferenceObject で参照オブジェクトの情報をマージできるようになった。 それに伴いマージ失敗のエラーが追加されている。 追加 ARSessionObserver ARError.Code objectMe…
Beta 版から記事を起こしているため今後変更される可能性あり。 主に SCNSceneRenderer の delegate と、 SCNPhysicsContact の contactDelegate のプロパティ属性が「unowned(unsafe) 」から「weak」に変更された。 SCNSceneRendererDelegate 変更前 unowne…