Apple Engine

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

SceneKit の検索結果:

Xcode 12.2 の SceneKit の Game テンプレートでビルドすると上下に黒い枠が出る

…機種のみだが、Xcode 12.2 の SceneKit の Game テンプレートを新規作成し、ビルドすると上下に黒い枠が出る。 (ランドスケープは左右にでる) UIWindowScene のデフォルトサイズなので、なんかなと思っていたら、LaunchScreen.storyboard が設定されていない模様。 プロジェクトにファイルを追加して、設定すれば、今までのように全画面で動く。 以上。 一応、Feedback Assistant で報告済みなのでそのうち治ると思う。

SceneKit のこれから

…けとして出ているが、SceneKit はこれかも続くだろうと淡い期待をしている。 RealityKit が AR 向けと書いているように、現状は SceneKit を置き換えるにはかなり機能が少ない。 そもそも SceneKit は汎用的な 3DCG を表示するためにつくられており、RealityKit は tvOS や watchOS で使用することはできない。 では、何故 RealityKit には tvOS や watchOS で使用できないのかというと、Reality…

iPhone と Reality Composer で始める簡単 AR その27 - AR で VR 編

SceneKit の ARKit でやった様に背景をカメラ画像から静止画にして VR チックなものを作成してみる。 Reality Composer ではカメラ画像を変更することはできないので、球のマテリアルに 360 度写真を貼り付けて表面の法線を反転することで背景画像を作ってみることにする。 試してみる 背景オブジェクトの作成 Reality Composer や SceneKit の Scene Editor では法線の反転ができないため、3DCG DCC ツールを使う…

iPhone と Reality Composer で始める簡単 AR その25 - RealityKit とやりとりする通知 編

…ARKit でいう SceneKit の ARSCNView や SpriteKit の ARSKView と同じ様なものを使用する。 ARView から Reality Composer のファイルを使用する場合、以下の様なコードでファイルを読み込む。 let boxAnchor = try! Experience.loadBox() Experience.rcproject というファイルで Box という名のシーンでのものを読み込んでおり、 SceneKit などとは異…

iPhone と Reality Composer で始める簡単 AR その19 - 物理アニメーション 重力編

…ityKit でも SceneKit 同様に何もしなくてもシーン全体で物理アニメーションの処理がされている。 SceneKit ではカテゴリマスクなどの設定が必要だったが、Reality Composer のシーンでは重力加速度と地平の物理判定の設定しかないため、簡単に物理アニメーションの設定を行うことができる。 また、以前も書いたがオブジェクトでは物理アニメーション用の種類と判定用の素材と形しかなく覚えることが少ない。 試してみる アンカーを選択 新規作成から水平方向のアン…

iPhone と Reality Composer で始める簡単 AR その16 - アニメーションの基礎知識編

…えるものしかない。(SceneKit でいう applyForce) トルクや物理フィールドも存在しないため、本当に重力とオブジェクトの移動方向へ力を加えるだけものだけ。 USDZ アニメーションは設定されているもの再生する。 3D でのアニメーションとは アニメーションと命を吹き込むという動詞の名詞で大体は動きのついた何かを指す。 現実世界では物が動く上で幾つかルールがあり、ざっくり言うと力は加え続けられると永遠に動き、ものは一定には動かず、大体のものは摩擦や空気抵抗がある…

iPhone と Reality Composer で始める簡単 AR その8 - オブジェクトの追加(テキスト)編

… 白 背景の素材 ペイント(光沢) 背景色 黒 テキスト 文字 Aa フォント Helvetica スタイル レギュラー 文字位置(垂直)中央寄せ 文字位置(水平)中央寄せ 折り返し オン まとめ テキストを使うと文字表現ができたり、簡単に複雑な形状がつくることができる。 ちなみに SceneKit と異なり、ジオメトリのメッシュがかなり細かいため処理が重いのか、パラメーターをいじると現状 iOS ではクラッシュしたりする問題を抱えている。 次回は矢印のオブジェクトについて。

iPhone と Reality Composer で始める簡単 AR その3 - 主なユーザーインターフェイス編

…のゲームエンジンや SceneKit でいうシーンと同義のもの。 このボタンを押すとシーンを選択する UI が表示される。 プロジェクトでは複数のシーンを作成することができ、ビヘイビアのトリガーでシーン再生、アクションで別シーンへ遷移させる設定が可能。 iOS では詳細ボタンからアクセスできる。 フレーム シーンにあるすべてのオブジェクトをシーンの表示(ビューポート)に収まるように合わせたり、選択したものをシーンの表示に収まるように表示するボタン。 「フレームシーン」がすべて…

iPhone と Reality Composer で始める簡単 AR その1 - 概要編

…た開発環境の1つで SceneKit でいう Scene Editor。 オブジェクトの配置や振る舞い、AR のプレビューやプレビュー用のファイルを簡単に作成することができるアプリケーションである。 Apple アプリ開発環境 Xcode とは別のアプリとなっており、macOS (Mac Catalyst) 以外にも iOS / iPadOS があり、App Store からダウンロードができ単体で動作する。 そのため macOS を使わなくてもある程度コンテンツの作成するこ…

Xcode 11 での SceneKit の変更点 その7 - マテリアルの新しいライティングモデル

…ode 11 での SceneKit でマテリアルのライティングモデル (Lighting Model/Shading) では新しくShadow Only が追加された。 使用用途としては AR の際に影だけ描画したい場合など。 現状では AR の現実空間の表示は画像に過ぎないので、影を落とすことができない。 そのため、仮想オブジェクトで影を落とすためのジオメトリを設置しマテリアルを透過させ differed 設定で影だけ表示する必要があった。 appleengine.hat…

Xcode 11 での SceneKit の変更点 その6 - マテリアルの追加機能

…ormal テクスチャ ClearCoat の Normal テクスチャ クリアコートラフネス (ClearCoat Roughn es) クリアコートの表面の荒さを設定する。 テクスチャ画像で暗い部分はクリアコートの塗装がかかっていない様な状態を指しているのだろうとは思われる。 今回で Xcode 11 での SceneKit の変更はおしまい。 ざっと書いてみたが面白い機能が増えたとは思う。 書き忘れがあったので追加。 次回はマテリアルの新しいライティングモデルについて。

Xcode 11 での SceneKit の変更点 その5 - カメラの機能追加

カメラで3つの機能が追加された。 Scene Editor で3つ目の機能を使用し操作すると現状では Xcode が 100% クラッシュするので注意。 プロパティやメソッドは過去記事参照。 Bloom の追加機能 Scene Editor 上でカメラの Bloom に Iteration と Spread のパラメーターが追加された。 コード的には bloomIterationCount と bloomIterationSpread。 Iteration は範囲の繰り返し回…

Xcode 11 での SceneKit の変更点 その4 - スクリーンスペースリフレクション

…加したもの。 これまでの SceneKit で使用されなかったわけではなく、似た様なものを指すなら SCNFloor だろう。 平面というのが約束されているため、SCNFloor の場合、カメラから反射した位置にもう1つのカメラを置き、この結果を SCNFloor にマテリアルに足している。 注意点 スクリーンスペースリフレクションはシーンに設定される。 そのためのリフレクションプローブがかかっていると異なる反射が両方とも適応されるので注意。 次回はカメラの機能追加について。

Xcode 11 での SceneKit の変更点 その3 - リフレクションプローブ

リフレクションプローブ(Reflection Probe)とは? ライトプローブ同様に周囲の光(色)をキューブマップとして焼き込み、周りの反射するマテリアルに適応する。設定方法はライトプローブと変わらない。 ARKit の environmentTexturing プロパティ、AREnvironmentProbeAnchor で生成される環境マップの表面反射と同様。 ただし、ARKit はカメラ画像から推論して周囲の画像を生成しているが、リフレクションプローブはカメラからちゃ…

Xcode 11 での SceneKit の変更点 その2 - エリアライト

エリアライト (Area Light) が追加された。 ライトタイプを area に変更するだけ。 let light = SCNLight() light.type = .area プロパティやメソッドなどは過去記事参照。 エリアライト いわゆる面光源。 diffuse に柔らかに光を当て、面光源の形状のハイライトを付加する。 3DCG DCC ツールのオフラインレンダラーの様なエリアシャドウの様な影を落とすことができない。 というか、影が落ちないので、スポットライトかディ…

Xcode 11 での SceneKit の変更点 その1 - 概要と Scene Editor

リリース版が出たので詳細を書いていこうと思う。 コードのプロパティやメソッドは過去記事参照。 Scene Editor の変更 エリアライトの追加 リフレクションプローブの追加 シーン全体のスクリーンスペースリフレクションの追加 カメラの Bloom のプロパティとホワイトバランスの追加 マテリアルでクリアコートのプロパティが追加 Scene Editor プレビュー下に Default lighting が追加 Xcode のアプリメニュー Editor > Rendari…

Xcode 11 の Scene Editor から USDZ ファイルを作成する

…code 11 の SceneKit のシーンファイル (.scn) などを閲覧、編集を行う Scene Editor から USDZ ファイルを書き出すことができるようになった。 手順 Xcode でシーンファイル (.scn) 開き、 アプリケーションメニューの File > Export から 「 Universal Scene Description (Mobile)」を選択して保存する。 上の画像は試しに SceneKit のビルトインジオメトリ SCNText を…

SceneKit の変更点 (Xcode 11 beta 3)

変更されたものは2つ。 simd framework から Swift Standard Liblary の SIMD Vector Types に変更された。 SCNVector3 init が float3 から SIMD3 double3 から SIMD3 に変更された。 init(SIMD3<Float>) init(SIMD3<Double>) SCNVector4 init が float4 から SIMD4 double4 から SIMD4 に変更された。 in…

SceneKit の変更点 (Xcode 11 Beta 2)

追加 SCNMaterial、LightingModel で shadowOnly が追加された。 多分、AR などで影だけ表示するためのジオメトリのマテリアル用に追加されたのだろうと思う。 developer.apple.com 変更 修飾子 が unowned(unsafe) から weak に変更されたもの。 SCNParticlePropertyController の inputOrigin SCNSceneRenderer の delegate 以上

SwiftUI でカスタムビューの SceneKit を表示する (Xcode 11 Beta 1)

…るもの 完成予想図 SceneKit の SCNView を上部、リストをその下に配置する。 そして、リストをタップすると SceneKit のシーンのカメラポジションを変更される。 ちなみに今回つくるのは iOS 版。 あと、ランドスケープ時の処理を特に入れてないので、横に傾けると描画がおかしくなるので注意。 プロジェクトを作成する Xcode 11.0 の Beta 版を起動し、iOS のテンプレートから「Single View App」を選択し右下の「Next」ボタンを…

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

…lityKit や SceneKit を使用する場合は数行書くだけでこの機能が使用できる。 深度情報なし 深度情報あり ボディトラッキング バックカメラのカメラ映像から人体を検出し、ARKit で設定されている 93 の骨(スケルトン)を割り当て、仮想キャラクタを動かしたり、モーションキャプチャデータとして使用することができる。 画面座標となる 2D 座標も同時に設定されるため、2次元のキャラにも適応可能。 予想では先のピープルオクルージョンで人体の形状を取得しそこからスケル…

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

…meraGrain SceneKit で仮想コンテンツに画像ノイズを適用するかどうかを決定する。 ARSCNView の場合、SCNCamera のパラメーターを上書きする。 var rendersCameraGrain: Bool { get set } ARCoachingOverlayView アプリを起動時に ARKit が平面を見つけるなど状態を知らせるコーチングオーバーレイを表示する UI を提供する。 別記事で記載。 ワールドトラッキング ARWorldTrac…

SceneKit の変更点 (Xcode 11 Beta 1)

今回も SceneKit のセッションがなく、ドキュメントの説明もないのでメソッドやプロパティ名から予想。 間違っていたらすみません。 ちなみに、Scene Editor の変更がそれなりにありそうなのだが NDA 的に紹介できないのでそのうち。 長いので最初にまとめ 以下、主な更新内容 エリアライトの追加 リフレクションプローブの追加 シーン全体のスクリーンスペースリフレクションの追加 カメラエフェクトの追加と調整 マテリアルでクリアコートのプロパティが追加 SCNScen…

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

…明をしつつ、最後に SceneKit との違いを考えてみる。 今回はコードでの説明はないので注意。 現状 Beta 版であるため公開されている情報からのまとめ。 以下の情報に関しては今後変更される可能性がある。 RealityKit とは RealityKit は Metal 新たにつくられた 3DCG レンダリングを行うビューで ARKit 共に使用し AR 体験を手軽に体験するコンテンツを作成することができる。 ノードベースでシーンを作成するのではなく、ゲームなどで使用さ…

WWDC 2019 の発表をなんとなく妄想する

…む Metal や SceneKit の 3D Graphic Core ML や Create ML の強化 macOS での UIKit の使用 ARKit を含む Metal や SceneKit の 3D Graphic ARKit で Swift 専用のフレームワークが増える ARKit で Swift 専用のフレームワークが増えるという噂だが、もしそうなら Create ML のような macOS でつくる事前処理か、それとも Apple のプラットフォームで O…

SceneKit と Metal で片方のビューをキャプチャし、他のビューのジオメトリに貼り付ける

…tal の命令から SceneKit のシーンのレンダリング結果を取得する方法を試してみる。 今回の記事の注意点としては、 フレーム毎に Command Buffer を生成するため、そこまで処理が軽くない。 また、今回 Metal に関してはあまり解説しないため本や Web で調べて欲しい。 サンプルファイル 上もしくは左のビューを動かすと、もう片方のビューのテクスチャ画像も動く。 (テクスチャを正方形にしているので画面比 約 2:1 の端末が望ましい。) github.c…

次期 ARKit の噂(WWDC 2019)

…ion framework で画像分類 メモアプリ などの文書スキャン機能が使用可能になる Mac ではファイルプロバイダ拡張機能を提供され Dropbox などアプリと Finder との統合方法の改善。 まとめ ARKit では大幅に変更が行われる模様だが、macOS アプリで UIKit を使用できるようになるため WWDC 2019 で大幅に SDK の変更が予想される。 個人的には、去年 SceneKit の変更がほとんどなかったため、大幅な機能追加を期待している。

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

…WWDC 2017 SceneKit: What's New SceneKit の中で紹介されている話をそのまま書いているので、観たことがある人はこの記事を読む必要はないかも。 developer.apple.com まずはライトを設定する ジオメトリの影を落とすことができるライトはシャドウマップが使用できる Directional と Spot のみ。 どちらかを設置し、キャストシャドウをオンにする。 キャストシャドウをオンにする ARKit のカメラは初期状態で poin…

Xcode 10、SceneKit の Cross-platform Game テンプレートを自力でつくる

…ode 10 から SceneKit と Metal が増えた。 今回はこちらがどのような構造になっているのかというのと、このテンプレートのつくり方を探ってみる。 特に何かなければ、自力でつくらずに Cross-platform Game テンプレートをつくり、watchOS などいらないものを消していったほうが楽かと思われる。 Command + Shift + N で新規プロジェクトを作成し、Cross-platform タブの Cross-platform Game テ…

Swift 5 で導入された SIMD Vector Types

…る ARKit や SceneKit でも使用することができるか? 今まで通り simdPosition など simd の付くものへそのまま渡せる。 let cameraNode = SCNNode() cameraNode.camera = SCNCamera() scene.rootNode.addChildNode(cameraNode) cameraNode.simdPosition = SIMD3<Float>(0, 0, 15) // cameraNode.po…