3D では十分 3 次元でない場合、立体視法(stereoscopy)が必要です。立体視法では、左の立体カメラから 1 つのイメージをレンダリングし、右の立体カメラから 1 つのイメージをレンダリングします。この 2 つのイメージが若干のオフセットを加えて重ね合わせられます。こうして合成したイメージは、適切な 3D メガネをかけて見ると、画面から浮かび上がって見えます。
Softimage では、立体視カメラ リグを作成して、この 3 次元被写界深度の目の錯覚を生み出せるシーンを設定およびレンダリングすることができます。立体視シーンをレンダリングする場合、Softimage ではすべての立体視カメラ プロパティが考慮されます。そして、どのようなコンポジタでも合成できるアナグリフ(並列画像)を作成するための計算が実行されます。
立体視カメラを使用した作業に必要な基本手順を、大まかに説明します。
以降のワークフロー画像の下に、各手順の詳細へのリンクがあります。
1 |
シーンにオブジェクトを設定します。 |
2 |
立体視カメラリグを作成します。「立体視カメラ リグを作成する」を参照してください。 |
3 |
[立体視]プロパティ エディタ(カメラ)で、立体視カメラのプロパティを設定します。このプロパティ エディタは、いつでも調整ができるように、開いたままにしておいてください。 [立体視タイプ]([軸外]、[収束]、または[平行])は、立体視イメージの出力を決定付けるものなので、まずこれを選択します。 |
4 |
[視野]、[ニア クリッピング プレーン]/[ファー クリッピング プレーン]、[投影平面]など、中央の立体視カメラの一般的なカメラ プロパティを設定します。「[Camera]プロパティ エディタ」を参照してください。 選択した立体視カメラのフラストラムを見るには、ビューポートで目のアイコンをクリックし、メニューから[円錐](Cones)を選択します。 |
5 |
ビューポートの[ビュー]メニューから、作成した立体視カメラを選択し、その立体視カメラの視点で確認します。「立体視カメラからのビュー」を参照してください。 |
6 |
立体視表示モード([アナグリフ]、[水平インターレース]、[平行]など)を選択して、立体視カメラの出力をプレビューします。「パフォーマンス」(「[Camera Display]プロパティエディタ」)を参照してください。 |
7 |
ビューポートにゼロ視差プレーンを表示します。「ゼロ視差プレーンを表示する」を参照してください。 |
8 |
オブジェクトから任意の距離に、立体視カメラ リグを配置します。 |
9 |
立体視カメラの注視点を、(まず表示してから)任意の距離に配置します。注視点を立体視カメラ リグと同じ平面に配置すると便利です。 |
10 |
立体視カメラ注視点のカメラからの距離を使って、ゼロ視差プレーンのカメラからの距離を設定します。「ゼロ視差プレーンを設定する」を参照してください。 |
11 |
左右のカメラからのイメージをレンダリングしてから、それらを合成します。「立体視出力をレンダリングおよび合成する」を参照してください。 |
既存のカメラ リグを立体視カメラ リグに変換する方法。「カメラ リグの立体視カメラ リグに変更する」を参照してください。
任意のメニュー バーから、[取得](Get) [プリミティブ](Primitive) [カメラ](Camera) [立体視](Stereo)を選択し、立体視カメラ リグを作成します。
下記の「立体視カメラ リグについて」に示すように、立体視カメラ リグが作成され、3 台のカメラのアイコンが表示されます。
表示される[立体視]プロパティ エディタ(カメラ)でオプションを設定します。
[立体視タイプ]([軸外]、[収束]、または[平行])は、立体視イメージの出力を決定付けるものなので、まずこれを選択します。
立体視カメラ リグは、センター カメラ([StereoCamera])と左右のカメラ([StereoCamera_Left]および[StereoCamera_Right])で構成されています。
リグの 3 台のカメラには、簡単に識別できるように、「カメラ リグの立体視カメラ リグに変更する」の表に示すようなユーザ キーワードがあります。
左右のカメラには、立体視カメラ オペレータが適用されます。このオペレータは、投影平面を設定し、センターの立体視カメラのカメラ パラメータを左右のカメラにコピーします。立体視カメラ オペレータは、JScript ファイルで、Softimage インストール パスの Addons¥StereoCamera¥Application¥Plugins フォルダにあります。
[StereoCamera_Root]ノードの下の[ICETree]オペレータには[StereoCameraRig]コンパウンドが含まれています。このコンパウンドは、左右のカメラの変換を設定するものです。センター カメラ(StereoCamera)のグローバルのキネマティクスと立体視プロパティを取得して、それらの値に基づいて、左右のカメラのグローバル変換値を設定します。
[StereoCamera_LeftRoot]ノードおよび[StereoCamera_RightRoot]ノードの下にも[ICETree]オペレータがあり、それぞれに[StereoCameraSecondaryRig]コンパウンドが含まれています。これらのコンパウンドは、単に、[StereoCamera_Root]の変換を左右のカメラにコピーします。
1 つの ICE ツリーで一度計算された変換データは、他の ICE ツリーによってコピーされます。左右のカメラの変換が評価されるのは一度だけなので、これによってパフォーマンスが改善します。
立体視カメラ リグは、1 つのコマンドを使って簡単に作成できますが、さらに、以下のような条件が満たされれば、既存のカメラ リグを立体視カメラリグに変更することができます。
必要に応じて、カスタム パラメータ セット(立体視プロパティ セットと同様)を作成して、それを立体視カメラ ルートの下に配置できます。「カスタム パラメータ セット」(「カスタマイズ」)を参照してください。このセットに、リグをカスタマイズしたりコントロールするのに使用するパラメータを保持できます。
リグの主要コンポーネントは、次のようなユーザ キーワードを使用します。ユーザ キーワードによってリグが立体視カメラ リグと識別されることにより、立体視カメラだけにディスプレイ モードが使用可能になります。「立体視カメラからのビュー」を参照してください。
ユーザ キーワードを使用してカメラ エレメントを識別するには
目のアイコンをクリックして、[ユーザ キーワード](User Keywords)オプションをアクティブ化すると、ビューポートにユーザ キーワードを表示できます。
ユーザキーワードの詳細については、「ユーザ キーワード」を参照してください。
視差とは、2 つの異なる視線から見た、オブジェクトの見た目の位置の差です。ゼロ視差は、オブジェクトのこの 2 つのビューをぴったりと重ね合わせたときの視差です。ゼロ視差プレーンは、オブジェクトを見るために視点が集まる平面、つまり画面上を表します。
[立体視]プロパティ エディタ(カメラ)で、[ゼロ視差距離](Zero Parallax Distance)を使用すると、カメラからの距離を、[収束]タイプおよび[軸外]タイプの立体視カメラ リグのゼロ視差プレーンに設定できます。
オブジェクトをスクリーンから「浮き出た」ように見せる(立体視エフェクト)には、ゼロ視差プレーンをカメラに近づけ、オブジェクトの後ろに配置します(これにより、オブジェクトの視差はマイナスの値になります)。この場合、深度がより大きくなります。ただし、オブジェクトの視差が大きくマイナスになる(見る人に近づきすぎる)と、見る人は目の焦点を合わせるのが困難になります。
オブジェクトをスクリーンに登場させる、または背景に退かせるには、ゼロ視差プレーンをカメラから遠ざけ、オブジェクトの前に配置します(これにより、オブジェクトの視差はプラスの値になります)。この場合、立体視の効果はさほど顕著ではありません。
ランプ(A)はスクリーンから「浮き出た」ように見えます(マイナスの視差空間)。ランプ(B)はスクリーン上です(ゼロ視差プレーンに近い)。ランプ(C)は背景に消えゆくように見えます(プラスの視差空間)。
マイナスの視差を持つオブジェクトが、左右のカメラのフラストラム内に完全に表示されるようにしてください。オブジェクトが切り取られてしまうと、立体視イメージの効果が台無しになります。
オブジェクトを配置する経験則は、ゼロ視差プレーンとの距離の半分よりも近くカメラに近づけ過ぎないことです。
一般的には、ゼロ視差プレーンを、カメラの注視点、つまりカメラの焦点に近づけます。
[立体視カメラ]ビューポートで目のアイコンをクリックし、メニューから[出力カメラまでの距離](Distance to Output Camera)を選択します。
この値を、[立体視]プロパティ エディタ(カメラ)プロパティ エディタの[ゼロ視差距離](Zero Parallax Distance)に入力します。その後、必要に応じてこの値を微調整します。
左右のカメラのゼロ視差プレーンは、ビューポートまたは Object View に表示することができます。プレーンは、立体視カメラのフラストラムの現在のサイズに適応します。
両カメラのプレーンが共有面にない場合は、[収束]立体視タイプの場合と同様に、交差線も表示されます。
プレーンは既定で半透明なので、オブジェクトとともに正確にシーンに配置できます。ただし、プレーンの透明度およびカラー値は自由に変更できます。
[立体視]プロパティ エディタ(カメラ)で、[表示](Display) [ゼロ視差プレーンの切り替え](Toggle Zero Parallax Plane)ボタンをクリックします。
これは、いずれかのビューのオブジェクトのプロパティエディタで[立体視用ゼロ視差プレーン](Stereo Zero Parallax Plane)チェックボックスを選択するのと同じです。
[シーンカラー]プロパティエディタの[コンポーネント]タブをクリックし、[ゼロ視差プレーン](Zero Parallax Plane)スライダを使ってプレーンの色と透明度を設定します。
立体視カメラの視点でシーンを表示するには、ビューポートまたは Object View で、[カメラ]ビューとして立体視カメラを選択します。
立体視カメラを選択すると、ビューのタイトル バーに[立体視]メニューが表示されます。[立体視]メニューには、さまざまな方法で立体視の出力をプレビューできる特別なディスプレイ モードがあります。
各ディスプレイ モードの詳細については、「パフォーマンス」(「[Camera Display]プロパティエディタ」)を参照してください。
シーン内のオブジェクトは、[アナグリフ]立体視表示モードで表示されます。左カメラはイメージをシアンで表示し、これが、赤で表示された右カメラからのイメージに重ねられます。
シーンを立体視で出力するには、左右のカメラのイメージをレンダリングする必要があります。これには、次のいずれかを行います。
左右の立体視カメラ([StereoCamera_Left]および[StereoCamera_Right]オブジェクトのみ)を含んだグループを作成し、そのグループをパスのカメラに指定してから、1 つのパスでレンダリングします。詳細については、「複数のカメラを使用してレンダリングする」を参照してください。
1つのパスでレンダリングする場合、[レンダチャンネル出力](Render Channels Output)を[Camera]トークンを含めるように設定します(「トークンとテンプレート」を参照)。たとえば、ファイル名は次のテンプレートを使用して定義できます。
[Pass]_[Framebuffer]_[Camera]
[Camera]トークンはレンダに使用されるすべてのカメラの名前を戻し、それらをレンダリングされた各フレームのファイル名に使用して、お互いに上書きされないようにします。
Stereo_Pass_Main_StereoCamera_Left.[1...500].jpg Stereo_Pass_Main_StereoCamera_Right.[1...500].jpg
レンダリングの後、左右のカメラ用に別々のプロジェクターを使用しない限り、左右のイメージを合成して希望の立体視効果を作成します。合成の際は、コンポジタの左右のイメージの幅と高さが、出力フィルム形式と一致するようにしてください。
アナグリフのイメージを合成する場合、左カメラのイメージは赤のカラー チャンネルのみを使用し、右カメラのイメージは緑と青のカラー チャンネルのみを使用するように設定してください。これら 2 つのイメージを合成して、最終出力にレンダリングします。