Apple Engine

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

開発

ARKit 2 の AREnvironmentProbeAnchor をマニュアル設定で配置する

Beta 版から記事を起こしているため今後変更される可能性あり。 先回、AREnvironmentProbeAnchor を automatic にして自動的に置いたので、今回はマニュアル設定で設置してみる。 どうやら、反射設定を行ったマテリアルの近辺に 複数 AREnvironmentProbeAnch…

iOS 12 SDK Bata 6 の ARKit、SceneKit 変更内容

今回の変更はない模様。 Xcode 10 Beta 6 の Scene Editor での ノード選択時のマニュピレーター、グリッドの表示エラーが解消されました。

iOS 12 SDK Bata 5 の ARKit、SceneKit 変更内容

ARKit の更新はないようで、SceneKit では Beta 4 で追加された2つのインスタンスプロパティの名称が変更された。 SCNPhysicsBody 物理ボディのインスタンスプロパティの名称が Sleeping から Resting に変更された。 Beta 4 var linearSleepingThreshold: C…

iOS 12 SDK Bata 4 の SceneKit 変更内容

Beta 版から記事を起こしているため今後変更される可能性あり。 Apple のデベロッパーページのドキュメントの最初で SceneKit の仕様変更がなかったので気づかなかったが中身は変更されている模様。 Bata 4 の変更内容としてはいるが、自分の見落としで以前…

iOS 12 SDK Bata 4 の ARKit 2 変更内容

Beta 版から記事を起こしているため今後変更される可能性あり。 ARKit 1.0 や 1.5 は Beta 中は、ほぼほぼ変更はなかったが 今回はテストしながら必要な機能を少しずつ増やしている模様。 Beta 4 は以下のような更新。 変更数 追加 (Added) 1 変更 (Modified…

iOS 12 SDK Bata 3 の ARKit 2 変更内容

Beta 版から記事を起こしているため今後変更される可能性あり。 物体認識のクラス ARReferenceObject で参照オブジェクトの情報をマージできるようになった。 それに伴いマージ失敗のエラーが追加されている。 追加 ARSessionObserver ARError.Code objectMe…

iOS 12 SDK Bata 3 の SceneKit、Scene Editor 変更内容

Beta 版から記事を起こしているため今後変更される可能性あり。 主に SCNSceneRenderer の delegate と、 SCNPhysicsContact の contactDelegate のプロパティ属性が「unowned(unsafe) 」から「weak」に変更された。 SCNSceneRendererDelegate 変更前 unowne…

Xcode 9 の Scene Editor、iOS 11 の Scene File の Procedual Sky のバグについて

Xcode 10 を触っていて気づいたのだが、Xcode 9 の Scene Editor、iOS 11 の Scene File では Procedual Sky で正しい表示がされないバグがある。 ちなみに Scene Editor での Procedual Sky の適応方法は、何らかのノードを選択後、Scene Inspector (Comman…

ARKit 2 の環境マッピング AREnvironmentProbeAnchor を試してみる

Beta 版から記事を起こしているため今後変更される可能性あり。 ARKit 2 で環境マップテクスチャの作成ができるようになった。 通常は AREnvironmentProbeAnchor から環境マッピングのテクスチャを作成するのだが、SceneKit の場合は設定をするとデフォルト…

iOS 11.4 で追加される ClassKit とは何か

ClassKit フレームワークは、 先の教育向けイベントで発表された Schoolwork というアプリと連携するためのフレームワークで、既存のアプリへ何らかの機能を付け加えるものではない模様。 Classroom は生徒や生徒の端末、生徒のコンテンツの管理、教師と生徒…

指定した場所にジオメトリを複製する SCNReplicatorNode をつくってみた in SceneKit

画像は球状にスペースシップを複製し配置したもの(ReplicatorSample3) ジオメトリを位置情報の配列をもとに複製したり、法線情報の配列から回転させるやつで 3DCG や動画編集などであるリプリケーター。 また、複製したジオメトリに対して SCNAction 設定…

Document Base App テンプレートを使って SceneKit のシーンファイル(.scn)簡易ビューワーをつくる for iOS

macOS の場合、ファイル選択しスペースキーを押すと QuickLook 経由でシーンファイルのプレビューが閲覧できるのだが、 iOS の場合設定がされていないので、極めて簡単な表示するだけのビューワーをつくってみる。 iOS の Document Based App とは? iPhone …

Xcode 9.3 Beta 2 の SDK での変更

ざっと見た感じ BusinessChat の API が追加されている模様。 Beta 1 の頃から Swift 4.0 > 4.1 の変更があるけど割愛。 (機能追加や、flatMap { $0 + [1] } の flatMap が compactMap に変更とか) BusinessChat で追加された Class BCChatButton BCChatAc…

ARKit 1.5 で平面認識した箇所からポリゴンを描画する

ARKit 1.5 から平面を認識した箇所からポリゴンを描画し、 以前の ARKit ではできなかった丸いテーブルなど若干ではあるが形状に合わせた平面を描画できるようになった。 今回はその解説。 ひとまず注意点 Beta 版であるため今後仕様が変更される可能性があ…

ARKit 1.5 で Vuforia のような画像認識を行う

ARKit 1.5 から Vuforia のような画像認識を行うことができるようになった。 壁や床などの画像を想定しているようなので、現象 Vuforia ほどの正確さはなく、 今後のアップデートで期待したい。 また、公式でサンプルが用意されているため、英語を読むのが苦…

ARKit 1.5 での変更点 (Xcode 9.3 Beta / iOS 11.5 Beta )

Beta なので公開されている情報からのまとめ。 NDA 上スクリーンショットが出せないので今回も文字だけ。 以下の情報に関しては今後変更される可能性があるため注意が必要。 主な変更 www.moguravr.com 垂直方向平面の認識 画像認識 以前よりも細かな形状認…

Xcode 9.2 での SceneKit の変更点

今更だけど、書き忘れていた。 Xcode 9.1 から Xcode 9.2 での変更は1つ。 SCNSceneSource.LoadingOption のタイププロパティ useSafeMode が廃止予定となった。 useSafeMode - SCNSceneSource.LoadingOption | Apple Developer Documentation SCNSceneSourc…

ARKit + SceneKit でカメラから取得した映像にエフェクトをかける

ARKit Advent Calendar 2017 | 15日目 以下の昨日の記事の動画。 前半では ARKit で取得しているカメラ映像に対して Core Image のフィルター CIDotScreen を使用し、 新聞のモノクロ写真のようなモノクロドットや黒の塗りつぶしで構成された効果を適応して…

ARKit + SceneKit を使用したポジショントラッキングなモバイル VR

ARKit Advent Calendar 2017 | 14日目 ARKit はカメラ画像と各種センサーを使用して端末の位置を特定しているため、 1眼のポジショントラッキングなモバイル VR なら、わりと簡単にができますよというお話。 とはいえ、ARKit は真っ白な部屋とか特徴点が拾え…

SceneKit の SCNNode のレンダリングオーダーでどこでもドア的表現をする

そう言ってみれば説明していなかったなとということで、SCNNode の Rendering Order について書いておこうと思う。 マテリアルの Writes depth や Reads depth は深度情報の重なりの順序を無視し前面や背面にジオメトリ表示するが、 こちらはノードのレンダ…

ARKit の Face Tracking で顔にマスクをつける for iPhone X - Depth image (深度画像) 取得編

一応、深度画像を取得してみようと思う。 深度画像取得の流れ ARKit の ARFrame から取得できるので、ARSessionDelegate から呼び出し何か View に表示する。 ARFrame の capturedDepthData が持つ depthDataMap が cvImageBuffer を返すので、 今回は CIIma…

ARKit の Face Tracking で顔にマスクをつける for iPhone X - 実践編

前回は概要の説明だったが、今回は Xcode を使用しアプリを作成していく。 Apple 公式のサンプル「Creating Face-Based AR Experiences」のコードをスリムにし機能を絞ったものなので、 英語やコードを読むことが苦にならないのならそちらを読んだ方が良い。…

ARKit の Face Tracking で顔にマスクをつける for iPhone X - 概要編

iPhone X では端末前面に従来の FaceTime HD カメラやセンサーの横へ、Microsoft Kinect のようなドットプロジェクタや赤外線カメラを追加しており、 これらのセンサーユニットの総称して TrueDepth カメラと呼ばれている。 TrueDepth カメラは、背面の iSig…

iPhone X の Safari で表示する Web ページの HTML / CSS 設定

どうやら、そのままだとサイトが表示領域の全体に面表示されないっぽい。 参照元 ayogo.com 対処方法 meta タグ Viewport に「viewport-fit=cover」を入れる。 <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> このままだと問題があり、本体を横に傾けてランドスケープにすると コンテンツが両サイドまでい</meta>…

iOS で SceneKit を試す(Swift 3) その90 - ここで一区切り

Swift 3 (Xcode 8) の SceneKit の解説に関してはここで一区切り。 カスタムの Action、ParticleSystem、PhysicsField、 シーンを管理する SCNSceneRenderer、 scn ファイルを読み書きする SCNSceneSource、JS で SceneKit を設定する SCNExportJavaScriptMo…

iOS で SceneKit を試す(Swift 3) その89 - SCNNode をフラット化する。

もう1つ忘れていたものノードのフラット化について。 Scene Graph でチルドノードが増えすぎたりするとドローコールが増えるため、パフォーマンスが落ちる可能性があり、 SceneKit の機能でノードのジオメトリをひとまとめにする Flatten Node の処理を行う…

iOS で SceneKit を試す(Swift 3) その88 - SceneKit で SpriteKit の SKVideoNode を使用して動画のテクスチャを適応してみる

書き忘れていたが、SceneKit では SpriteKit の SKScene シーンを SCNMaterialProperty の各 contents に渡すことができる。 やり方としては作成した SKScene をジオメトリの firstMaterial.diffuse.contents を渡すだけ。 2D描画処理のコストはかかるが、複…

iOS で SceneKit を試す(Swift 3) その87 - SceneKit でマルチパスレンダリングを行う SCNTechnique を試す

SceneKit では他のゲームエンジンと同様にシーンを複数回レンダリングし画像を合成するマルチパスレンダリングを行うことができる。 内容的には結構複雑なので、こんなことができるよというのがわかってもらえれば良いかと。 マルチパスレンダリングの使用用…

iOS で SceneKit を試す(Swift 3) その86 - SceneKit のカスタムシェーダーについて

SceneKit でのカスタムシェーダーは主に3つ SCNProgram でプリコンパイルしたものを使う SCNShadable の shaderModifiers に Metal / GLSL のスニペットであるテキストデータを使う SCNTechnique で設定し主にポストプロセスのように画面全体の変更する際に…

iOS で SceneKit を試す(Swift 3) その85 - SceneKit で 2D ライブラリ SpriteKit の SKTexutre をテクスチャとして使用する

今まで SCNMaterial が持つ SCNMaterialProperty の content で UIImage を設定し、テクスチャを決めていたが SpriteKit の SKTexutre を設定することができる。 SKTexutre を適応してみる いつも通り、Xcode の Game テンプレートで SceneKit を選択し作成…

スポンサーリンク