Apple Engine

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

Swift3

iOS で SceneKit を試す(Swift 3) その60 - SCNMorpher でモーフィング

SceneKit では SCNNode に SCNMorpher が紐づけられており、1つまたは複数のジオメトリを配列として渡すと、各ジオメトリへ変形させることができるモーフィングというものが使える。 (3DCG のオーサリングツールでは Blend Shape と呼ばれているものある) …

iOS で SceneKit を試す(Swift 3) その59 - Blender で Collada (.dae) をエクスポートし Scene Editor で読み込む

とりあえず、手軽に試すため Blender でオブジェクトを DAE でエクスポートして、Scene Editor で読み込んでみる。 Apple 自体、Maya からエクスポートしている感じがしているので、Blender でエクスポートしたものが必ず上手く使えるわけではないので注意。…

iOS で SceneKit を試す(Swift 3) その58 - 3D のオブジェクトファイルを Scene File (scn) に変換する。

今まではテンプレートの ship.scn を使用したり新規で作成していたが、プロジェクトに読み込んだオブジェクトファイルを scn に変換することができる。 scn に変換する方法 変換方法は以下の3つ Xcode のメニューバーの機能から変換する オブジェクトファイ…

iOS で SceneKit を試す(Swift 3) その57 - SceneKit で使用できるオブジェクトファイル

SceneKit でのリソースの操作やオブジェクトファイルの読み込みは Model I/O のフレームワークを使用しており、 ファイルの読み込みは Model I/O に依存している。 オブジェクトファイルをプロジェクトで使用する場合、Project Navigator (Command + 1) にド…

iOS で SceneKit を試す(Swift 3) その56 - SceneKit プロジェクトファイルの .scnassets フォルダとは?

xcassets はプロジェクトの画像などのアセットを管理し最適化を行なっているが、 scnassets は SceneKit のファイルの管理をするフォルダ。 .scnassets にファイルを配置するとビルド時に内容を最適化してくれる。 主な最適化は2つ。 scnassets フォルダを選…

iOS で SceneKit を試す(Swift 3) その55 - SCNNode の Pivot(原点)を変更する

SCNNode の説明で書き忘れていた Pivot について。 SCNNode には Pivot と呼ばれる原点がある。 例えば球のジオメトリである SCNSphere は Pivot が中心にあり、 移動、回転、拡大縮小を行なった場合、中心から動作が行われる。 Pivot を変更することのメリ…

iOS で SceneKit を試す(Swift 3) その54 - Scene Editor の Geometory / Material の Unshare ボタンとは?

Scene Editor でコピーされたノードは負荷低減のため、 基本的には使い回しできるようになっている。 Geometory の Unshare ボタン そのため、Text(SCNText)で文字を書き、そのノードを Command + C, V などで コピー&ペーストし、 コピーした Text の文字…

iOS で SceneKit を試す(Swift 3) その53 - SceneKit の Point Of View

これまで紹介した SceneKit のカメラは、コードで設定するか、scn ファイル内のカメラで設定していた。 SceneKit の SCNView(SCNSceneRenderer)には pointOfView というプロパティがあり、 これに SCNCamera を設定しているノードを設定するとカメラに設定…

iOS で SceneKit を試す(Swift 3) その53 - SCNLight の Gobo と Category BitMask

シーン上でキャストシャドウを行うと基本的にはシャドウマップが作成される。 もし、ジオメトリの影を落とす際、細かなフォルムが必要なければ 事前にテクスチャ画像を作成したものを使用し、シャドウマップを生成させないことでライド使用時の負荷を減らす…

iOS で SceneKit を試す(Swift 3) その52 - Scene Editor の Light Probe

シーンで動かない物体にはライトマップでテクスチャに焼き付けると綺麗な見た目となるが、 キャラクターなど動くもがあった場合、光は反映されない。 Light Probe はシーンの色の変化とすべての方向から受け取る照明の強度を球体で設定し、 有効範囲にある P…

iOS で SceneKit を試す(Swift 3) その51 - Scene Editor の IES Light

IES Light はテキストデータのファイルを使用し照明のシミュレーションを行い陰や光を与える。 Directional Light とほぼ同じで、Scale のパラメーターがなく、IES ファイルの選択がある。 基本的にはライトからのシャドウマップで表現しているため、アーテ…

iOS で SceneKit を試す(Swift 3) その50 - Scene Editor の Directional Light

太陽光のように一定の方向に光を放つ Directional Light のご紹介。 設置位置に関わらず一定で光の影響を与える。 遮るジオメトリがあった場合に影を与えるキャストシャドウを設定することができる。 以下の画像は、ライトの位置を変更しても、光沢と影が変…

iOS で SceneKit を試す(Swift 3) その49 - Scene Editor の Spot Light と Cast Shadow (Shadow Mapping)

舞台照明で使用されているスポットライトを模した Spot Light のご紹介。 設置位置から円錐状に光の影響を与え、任意で遮るジオメトリがあった場合に影を与えるキャストシャドウが使用できる。 その前にキャストシャドウとは? シャドウマップというライトか…

iOS で SceneKit を試す(Swift 3) その48 - Scene Editor の Ambient Light

シーン全体に光を与える Ambient Light のご紹介。 設置位置に関係なく光の影響を与え、ジオメトリの暗部である陰の色を薄めたりできる。 シーン設定 iOS SceneKit のテンプレートでプロジェクト作成。 今回は床が必要ないので、ship.scn を表示するだけ。 S…

iOS で SceneKit を試す(Swift 3) その47 - Scene Editor の Omni Light と Attenuation

豆電球のような Omni Light の設定を見ていく。 Omni Light は設置位置によって光の影響を変化させるが、ジオメトリの影を落とすことはできない。 影は必要ないが光の影響を与えたい場合などで使用するのが良いかと思われる。 シーン設定 ひとまず、iOS Scen…

iOS で SceneKit を試す(Swift 3) その46 - SCNLight の共通設定

前回の書き忘れがあったのでライトの種類の前にこちらの紹介。 ライトには種類があったが、Light Probe 以外でいくつかの共通設定があるので、まずはこちらから。 Name コードで使用するための識別用の名前。 Light Probe でも使用可能。 Type ライトの種類…

iOS で SceneKit を試す(Swift 3) その45 - Scene Editor の Light について

今回はシーンのライトについて軽くご紹介。 シーン上には必ずライトとなるものが1つ必要となり、 SCNNode で light プロパティに SCNLight を設定するか、 以前、紹介したシーン設定の Light Environment (Image Based Lighting) を設定することで、 ジオメ…

iOS で SceneKit を試す(Swift 3) その44 - Scene Editor モーションブラー

実際のカメラでは速い動きを物体を撮る際、カメラ性能にもよりますが残像が出る場合があり、 それを SceneKit のカメラである SCNCamera でシミュレーション行う。 Scene Editor の パラメーター プロパティは一つのみ。 Motion Blur - Intensity 最大値を …

iOS で SceneKit を試す(Swift 3) その42 - Scene Editor カメラのポストプロセス

カメラとなる SCNCamara では画面描画後に簡易的な画像処理を行うことができる。 使用できる処理は以下のもの。 画面の周りを暗くするケラレ処理 ブラウン管のような色のにじみを出すカラーフリンジ 簡易的な色の調整を行うカラーグレーディング さらに複雑…

iOS で SceneKit を試す(Swift 3) その41 - Scene Editor カメラの Depth of Field(被写界深度)

カメラとなる SCNCamara で被写界深度のシミュレーションを行う。 実際のカメラと同様に距離でオブジェクトにピントを合わせて、 他がボケるさせる効果の設定を行う。 ちなみに、今回紹介するすべてのプロパティが macOS, tvOS, watchOS でも廃止予定で、 iO…

iOS で SceneKit を試す(Swift 3) その40 - Scene Editor カメラの HDR 設定 Part2

引き続き HDR の説明。 カメラとなる SCNCamara の HDR とは、 トーンマッピング処理を行い、シーン全体の輝度値を、ディスプレイに表示できる狭い範囲の輝度値に変換するすること。 具体的には露出調整、Bloom 効果を表現する。 また、HDR は Scene Editor …

iOS で SceneKit を試す(Swift 3) その39 - Scene Editor カメラの HDR 設定 Part1

今回は HDR の説明と設定の準備。 HDR (High Dynamic Range) とは ざっくり説明すると、表示される画面は色の情報しか持たないが、 ピクセルごとに色とは別に光の情報を持つもの。 現実の色のより広いレンジを持ち、画像処理の際に多彩な表現を行うことがで…

iOS で SceneKit を試す(Swift 3) その38 - Scene Editor カメラの基本設定

今回はカメラの基本設定のプロパティについてのご紹介。 カメラを選択して Attributes Inspector(Command + Option + 4)を選択。 パラメーターは以下のもの。 ちなみに、iOS 11 では、Projection のパラメーターが変更されたり、 Unity でなどである機能の…

iOS で SceneKit を試す(Swift 3) その37 - Scene Editor の Material、Shininess と Fresnel

Blinn と Phong のライティングモデルでは Shininess と Fresnel を設定することができる。 Shininess 光沢の度合い。値を大きくすると光沢が小さくなる。 Shininess のデフォルト値 1 Shininess の値 4 Fresnel シャボン玉のように輪郭部分だけ光の反射が異…

iOS で SceneKit を試す(Swift 3) その36 - Scene Editor の Material のテクスチャ設定

Scene Editor の Material は SCNMaterial となっており、 diffuse、specular などの各ビジュアルプロパティに設定するためのコンテナ SCNMaterialProperty が用意されている。 SCNMaterialProperty 自体が持つプロパティは 度々コードの方で使用している An…

iOS で SceneKit を試す(Swift 3) その35 - Scene Editor の Material, Physically Based プロパティ

今回は Physically Based プロパティのご紹介。 Physically Based とは? 現実世界のライトの光などを近似させた物理ベースのシェーダーで 2010 年ぐらいから PC ゲームなどで使われ始め、モバイル GPU の進化によりスマートフォンのゲームでも使用される。 …

iOS で SceneKit を試す(Swift 3) その34 - Scene Editor の Material プロパティ

前回紹介を省略したマテリアルのプロバティについてご紹介。 Physically Based の Metalness、Roughness やテクスチャマッピングに関しては他の記事で紹介する。 以下の説明では Physically Based 以外のものを列挙しているが、 ライティングモデルの Consta…

iOS で SceneKit を試す(Swift 3) その34 - Scene Editor の Material Inspector

ジオメトリ選択後に Material Inspector を選択すると(Command + Option + 5)、以下のような表示になる。 長くなるので Lighting Model に影響のある設定(上の画像でいうPropaerties)に関しては別の記事で紹介する。 Materials 現在使用しているマテリア…

iOS で SceneKit を試す(Swift 3) その33 - ジオメトリの質感を決めるマテリアルについて

SceneKit で言うマテリアルとはジオメトリの質感を決めるための設定だと考えてもらえば良いかと。 これまででも、firstMaterial などで設定していたがもう少し詳しくを紹介していく。 以前に、3DCG にはカメラ、ジオメトリ、ライトが必要だと書いたが、もう…

iOS で SceneKit を試す(Swift 3) その33 - Scene Editor のジオメトリの Attribute Inspector

ビルトインジオメトリの設定値以外で、他の項目に触れていないため、もう少し見てみる。 概要 設定されているもの ジオメトリの情報 モーフアニメーション用の設定 サブディビジョンサーフェイスの設定 ジオメトリのシェアリングの解除 ライト情報のベイク …