Camera ノードを使用する¶
Use the Camera node to show the content of a Scene in Kanzi Studio Preview and in your Kanzi application.
Kanzi Studio Preview では、Scene ノードのプレビューカメラとして設定されている Camera ノードを通して Scene が見えます。カメラノードをプレビューカメラに変換する。
Camera ノードやその祖先ノードを、Render Transformation または Layout Transformation プロパティを使用してスケールしないでください。Camera ノードをスケールすると、設定したパラメータと一致しないようにプロジェクションに影響を与えます。
カメラノードの位置を設定する¶
Camera ノードの位置を設定するには、
Preview で、Camera tool を選択します。
Camera tool では、Orbit Camera または Free Camera を選択できます。

Orbit Camera は移動を可能にします。
Node Tree で選択するノード。
カメラの Constraints > Look At プロパティで設定したノード。
オービット (軌道) カメラを動かすには、以下のショートカットを使用します。
操作
ディスクリプション (Description)
マウスの左ボタンをクリックしてドラッグします。
ロテート (Rotate)
マウスの中央ボタンをクリックしてドラッグします。
Space キーを押し、左マウスボタンをクリックしてドラッグします。
パン
マウスホイールを回します。
Shift キーと Alt キーを押し、左マウスボタンをクリックしてドラッグします。
ズーム
Alt を押したままマウスの左ボタンをクリックします。
ノードを選択または選択解除します。

Free Camera は、特定のポイントに縛られずに移動することができます。
フリーカメラを動かすには、以下のショートカットを使用します。
操作
ディスクリプション (Description)
W
前進してください。
Shift を押し続けると速度が2倍になります。
S
後ろに移動します。
Shift を押し続けると速度が2倍になります。
A
左に移動します。
Shift を押し続けると速度が2倍になります。
D
右に移動します。
Shift を押し続けると速度が2倍になります。
Q
上に移動します。
E
下に移動します。
マウスの左ボタンをクリックしてドラッグします。
ロテート (Rotate)
マウスの中央ボタンをクリックしてドラッグします。
パン
マウスホイールを回します。
カメラスピードを設定します。
カメラスピードを下げるにはスクロールダウンしてください。
カメラスピードを上げるには、スクロールアップしてください。
Alt を押したままマウスの左ボタンをクリックします。
ノードを選択または選択解除します。
Camera ノードの位置を設定する際は、次のコントロールを使用します。
操作
ディスクリプション (Description)

カメラの現在の位置をプレビュー Camera ノードに保存します。

プレビュー Camera ノードの現在の位置にカメラをリセットします。

カメラの現在位置から新しい Camera ノードを作成します。

Node Tree または Preview で選択された3Dオブジェクトにカメラを持ってくる。

現在のシーンを表示したい Camera ノードを選択します。

3Dノードを使用する場合、カメラの視野を度単位で設定します。
ヒント
Preview ウィンドウで Node tool を使用する際に、Camera ノードの位置を操作できます。
Orbit Camera を動かすには、Alt を押しながら以下の操作を行います。
マウスの左ボタンをクリックしてドラッグすると回転します。
マウスの中央ボタンをクリックしてドラッグするとパンします。
マウスホイールを回すとズームします。
Free Camera を動かすには、マウスの右ボタンを押しながら以下の操作を行います。
マウスを動かすと、カメラのアングルを任意の方向に傾けたり回転させたりできます。
W、S、A、D を使用して、カメラの位置を前、後ろ、左、右に移動します。
E と Q を使用して、カメラの位置を上下に移動します。
マウスホイールを回してカメラスピードを設定します。
移動中に Shift を押し続けると速度が2倍になります。
F を使用すると、Preview で選択された3Dオブジェクトにカメラを移動します。
ヒント
配置するには:
ノードを Preview 内の Camera の現在のビューの位置に配置するには、Node Tree でそのノードを右クリックし、Align With View を選択します。
Preview のビューを任意のノードの位置に配置するには、Node Tree でそのノードを右クリックし、Align View To Selected を選択します。
たとえば、Camera ノードを Scene ノード内の任意のノードの位置に配置するには、次のようにします。
Camera ノードを配置したい位置にあるノードを右クリックし、Align View To Selected を選択します。
その位置を Camera に保存するには、Camera を右クリックし、Align With View を選択します。
ヒント
コンテキストメニューの Focus To Selected コマンドを使用するか、ノードツリーで選択したノードをダブルクリック(プレハブ以外のノードの場合)することで、Camera の現在のビューを選択したノードにフォーカスできます。
カメラノードをプレビューカメラに変換する¶
Kanzi Studio Preview では、Camera ノードを通して Scene が表示され、そのノードは Scene ノードのプレビューカメラとして設定されています。デフォルトで、Preview は Scene のデフォルトカメラを使用します。
Camera ノードをプレビューカメラにするには、Node Tree で次のいずれかを行います。
その Camera ノードをダブルクリックします。
その Camera ノードを右クリックし、Activate Camera in Preview を選択します。
プレビューカメラを設定する場合、Kanzi Studio:
Scene ノードで、Preview Camera プロパティをプレビューカメラに変換した Camera ノードに設定します。
Node Tree で、プレビューカメラに (Preview) のマークを付けます。
Kanzi アプリケーションは、Scene ノードの Camera プロパティで設定されたカメラを使用することに注意してください。Node Tree で、Kanzi Studio はこのカメラに (Default) のマークを付けます。
プリセットの視点からアクティブなシーンを表示する¶
Camera tool を使用すると、プリセットされた視点のいずれか(前、後、上、下、左、または右側)から Scene のコンテンツをすばやく表示できます。カメラの現在の位置を保存するオプション(
)をオンにしない限り、プリセットされた視点は Scene 内の Camera ノードの位置を変更しません。カメラノードの位置を設定する を参照してください。
プリセットの視点からアクティブな Scene 全体を表示するには:
Preview で、Camera tool を選択します。
デフォルトで、次のショートカットを使用します:
プリセット (Preset) ビューポイント
デフォルトショートカット
ショートカットの説明
シーンを左から表示します。
Shift 1
左カメラプリセット
シーンを右から表示します。
Shift 2
右カメラプリセット
シーンを上から表示します。
Shift 3
トップカメラプリセット
シーンを下から表示します。
Shift 4
ボトムカメラプリセット
シーンを正面から表示します。
Shift 5
フロントカメラプリセット
シーンを背面から表示します。
Shift 6
バックカメラプリセット
独自のショートカットキーを設定するには、メインメニューで Edit > User Preferences を選択し、そこで Shortcut Keys タブを選択します。
カメラノードの作成¶
Node Tree または Prefabs では、Scene ノードまたは任意の3Dノードに Camera ノードを作成できます。
Preview で Camera ノードを作成するには:
Preview で、Camera tool を選択します。
Orbit Camera または Free Camera のいずれかを使用して、カメラを作成したい場所に移動します。カメラノードの位置を設定する を参照してください。
をクリックします。
Kanzi Studio はカメラの位置に Camera ノードを作成します。
カメラノードの投影タイプを設定する¶
3Dプロジェクションにより、3Dオブジェクトを2D表面に表示することが可能になります。
これらの投影タイプは、Kanzi で利用可能です。
Perspective プロジェクションは、カメラに近いオブジェクトを遠くのオブジェクトよりも大きく表示します。これはデフォルトのプロジェクションタイプです。透視投影 を参照してください。
Asymmetric perspective プロジェクションでは、透視投影の各角度の視野を制御できます。非対称透視投影 を参照してください。
Orthographic プロジェクションは、奥行き感を提供せずに3Dシーンの2Dビューを表示します。正投影 を参照してください。
透視投影¶
3Dシーンのリアルなビューを提供するために、透視投影を使用します。透視投影は、Camera ノードに近いオブジェクトを遠くにあるオブジェクトよりも大きく表示するようにカメラを設定します。これは3Dシーンで最も一般的に使用される投影タイプであり、Kanzi でのデフォルトの投影タイプです。
パースペクティブプロジェクションを使用するには:
Camera ノードを選択します。
Properties に追加して設定します。
(オプション) Projection Type を Perspective に。
これがデフォルト値です。
視野の方向を設定するための FOV Type:
X FOV は、x軸に沿った視野を設定します。
Y FOV は、y軸に沿った視野を設定します。これがデフォルトです。
カメラの視野角を度単位で設定するための FOV。
デフォルトで、45度です。
非対称透視投影¶
非対称透視投影を使用すると、透視投影の視野を左、右、上、下に個別に制御できます。
非対称透視投影を使用するには:
Camera ノードを選択します。
Properties に追加して設定します。
Projection Type から Asymmetric perspective へ
Asymmetric FOV を左、右、上、下の視野に度単位で向けます。
デフォルトで、視野は左、右、上、下に45度広がります。
例えば、y軸に沿ったデフォルトの45度の視野を持つ透視投影に一致させるには、Asymmetric FOV プロパティを設定します。
Up プロパティフィールドを -22.5 に設定します。
Down プロパティフィールドを22.5に設定します。
正投影¶
3Dシーンの奥行きを感じさせずに2Dビューを表示するために、正投影を使用します。正投影のラインは投影面に対して直交しており、カメラからの距離はオブジェクトの描画サイズに影響を与えません。
正投影を使用するには:
Camera ノードを選択します。
Properties に追加して設定します。
Projection Type から Orthographic へ
Orthogonal Type を使用したい直交座標系のタイプに設定します。
Absolute は、親 Viewport 2D ノードのピクセル単位のサイズに一致する領域を表示するようにカメラを設定します。
Relative は、Orthogonal Plane Size プロパティの値に基づいて幅がスケーリングされるエリアを表示するようにカメラを設定します。これがデフォルトです。
Relative 座標系を使用するカメラのビュー平面の半幅または半高を設定するための Orthogonal Plane Size:
FOV Type が Y FOV (デフォルト値)に設定されている場合、Orthogonal Plane Size はビュー平面の高さを設定します。
FOV Type が X FOV に設定されている場合、Orthogonal Plane Size はビュー平面の幅を設定します。
デフォルト値は 1.0 です。
レンダーパスのためのカメラ設定¶
3Dコンテンツのレンダリングを定義するためにレンダーパスを使用する場合、各レンダーパスで、そのレンダーパスとその子孫がコンテンツをレンダリングするために使用する Camera ノードを設定できます。レンダリング を参照してください。
デフォルトでは、レンダーパスはコンテンツのレンダリングに Scene ノード内のデフォルトの Camera ノードを使用します。任意のレンダーパスで、Draw Objects レンダーパス > Camera プロパティを追加して設定できます。これにより、そのレンダーパスとその子孫のレンダーパスが特定のカメラを使用するように設定できます。レンダーパスで設定した Draw Objects レンダーパス > Camera プロパティの値は、祖先のレンダーパスで設定した値をオーバーライドします。
たとえば、このレンダーパスプレハブでは、すべての Draw Objects レンダーパスがデフォルトで Scene ノードの Camera プロパティに設定された Camera ノードを使用します。Group レンダーパスで Draw Objects レンダーパス > Camera プロパティを追加して設定すると、そのレンダーパスプレハブ内のすべてのレンダーパスは、それぞれの Camera プロパティを設定しない限り、そのカメラを使用します。
Draw Objects レンダーパスは、Camera のプロパティ値から次のプロパティの値を計算し、シェーダーに渡します。
Calculated Camera Matrix は
kzCameraMatrixユニフォームを設定します。Calculated Camera Position は
kzCameraPositionユニフォームを設定します。Calculated Homogeneous View Position は
kzViewPositionユニフォームを設定します。Calculated Projection Matrix は
kzProjectionMatrixユニフォームを設定します。Calculated Projection Near And Far Planes は
kzCameraNearFarPlaneユニフォームを設定します。
シェーダーユニフォーム を参照してください。
これらのプロパティはレンダーパスで設定できます。設定した値は、Camera ノードで設定したプロパティ値を上書きします。
APIでカメラノードを使用する¶
正投影のカメラを作成するには:
// Create a camera named Camera.
CameraSharedPtr camera = Camera::create(domain, "Camera");
// Set the projection of the camera to relative orthogonal.
camera->setOrthogonalProjection(Camera::OrthogonalCoordinateSystemRelative);
// Make the viewing box display [-width,width] x [-1, 1] x [-1, 1] portion of the 3D space.
// The width of the viewing box is determined by the viewport aspect ratio.
camera->setOrthogonalPlaneHeight(1.0f);
camera->setZNear(-1.0f);
camera->setZFar(1.0f);
パースペクティブプロジェクションを持つカメラを作成するには:
// Create a camera named Camera.
CameraSharedPtr camera = Camera::create(domain, "Camera");
// Set the projection of the camera to perspective.
camera->setPerspectiveProjection();
// Make the viewing box display a horizontal 90 degree cone of the 3D space.
// The vertical cone angle is determined by the viewport aspect ratio.
camera->setFovType(Matrix4x4::FieldOfViewType::YFov);
camera->setFov(90.0f);
camera->setZNear(0.1f);
camera->setZFar(100.0f);
詳細については、Camera クラスを参照してください。
カメラプロパティタイプとメッセージ¶
Camera ノードで利用可能なプロパティタイプとメッセージのリストについては、Camera を参照してください。