Apple Engine

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

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

今回はカメラの基本設定のプロパティについてのご紹介。

 

カメラを選択して Attributes Inspector(Command + Option + 4)を選択。

パラメーターは以下のもの。

f:id:x67x6fx74x6f:20170724163916p:plain

 

ちなみに、iOS 11 では、Projection のパラメーターが変更されたり、 Unity でなどである機能の SSAO (Screen Space Ambient Occlusion) が使用できるようになっている。

 

Identity

Name

カメラを識別するための名前。
コードでこのカメラを調べるために使う。

 

Identifier

Scene Editor での設定不可。

 

Projection

Projection Type

f:id:x67x6fx74x6f:20170724163854p:plain

設定値 説明
Perspective デフォルト値。遠近感のある透視投影のカメラでシーンを表示する
Orthographic 遠近感のない平行投影のカメラでシーンを表示する

 

X fov、Y fov (Feild Of View)

f:id:x67x6fx74x6f:20170724164001p:plain

SCNCamera - SceneKit | Apple Developer Documentation より

 

画面を表示する視体積の角度。
上の画像を参照。

デフォルト値は互いに 0。 片方が 0 以外の場合はもう片方を自動的に調整され、
両方設定した場合はアスペクト比に最も適した値を使用し視野を自動的に調整される。

このプロパティは廃止予定で iOS 11 では Feild Of View と X fov、Y fov が1つになり、Focal Length (焦点距離)を設定して表示方法を決める。

 

Z Cliping

Near、Far

画面の奥、手前をどこまで表示するかを決める。
上の画像を参照。

デフォルト値は Near が 0、
Far は 100。

例えば、遠くに表示するものがない場合、Far の値を調整して表示させないことで端末の処理が軽くなる。

 

Category bitmask

設定されているノードのビットマスクを AND 演算して表示するか決める。
カメラのデフォルト値は 0 で全てを表示する。

注意: ビットマスクを設定しても、SCNView の allowsCameraControl を使用した場合、カメラを動作させるとビットマスク 0 に変更されるため表示される。

 

コード

let camera = SCNCamera()
camera.name = "camera"
camera.xFov = 0.0
camera.yFov = 0.0
camera.usesOrthographicProjection = false
camera.zNear = 1.0
camera.zFar = 100.0
camera.categoryBitMask = 0

 

Scene Editor にはパラメーターがないが、 usesOrthographicProjection を true にして、 Orthographic 表示にした場合、orthographicScale で表示倍率を変更できる。 デフォルトは 1.0。

camera.usesOrthographicProjection = false
camera.orthographicScale = 1.0

 

今回はここまで。

次回は カメラ の HDR について