3Dのカメラの話です。
特に、Aperture、画角、焦点距離、に焦点をあててみました。
3DCG屋にとってのこれらのパラメータの印象は、
焦点距離(Focal Length) | ・・・ | 見える範囲を決めるやつ、その1 |
画角(Angle of View) | ・・・ | 見える範囲を決めるやつ、その2 |
aperture | ・・・ | なにそれ、おいしいの? |
・・・かなと想像します。
これらについて、もう一歩踏み込んでみます。
[aperture]
アパーチャー。画像を映すフィルムやイメージセンサーの大きさのこと。
FilmBackと呼んだりもするとか。(本来はレンズの口径を指す言葉らしいです)
3Dソフトのカメラはシンプルなアイコン表示のみですが、そのカメラの内側にシーンを写し出すスクリーンがある、そんな感じでしょうか?
大事な項目なので、もそっと詳しく。
[画角] 視野。”Field of View”とか”Angle of View”とか表記されてます。 画角には水平画角、垂直画角、対角画角の3種類があります。 どれかひとつの画角を設定すれば、Apertureから他の画角も自然と決まります。 [焦点距離(Focal Lenght)] レンズの中心からイメージセンサー(フィルム面、Aperture)までの距離。 なぜ、焦点距離がカメラの見える範囲に関係あるのかというと・・・ (実際はフィルム面は固定でレンズ部分の位置を変えることで、焦点距離を変更しているのでしょうが、ここでは分かり易さ重視でフィルム面を移動させてます) Apertureは一つの絵の中で、ホイホイ変更する類のものではないので、焦点距離を変えることで見える範囲をコントロールすることができるのです。 逆にいえば、同じ焦点距離でもApertureが異なれば見える範囲も違ってくる、ということです。 ちなみに、Apertureと焦点距離から、画角の値を知ることができます。 真上からの絵で考えると、Apertureと焦点距離は二等辺三角形の底辺と高さに相当します。 直角三角形において底辺と高さが決まっている場合、その三角形の形は必ずひとつに決まります。 つまり画角も一意に決まります。 実際にApertureと焦点距離から画角を求めるにはアークタンジェントってのを使って計算します。 この式を日本語に訳すと、「アークタンジェントってのを使ってタンジェントの値から角度を求めて2倍にする」、です。 応用編。 仕事をしてて、「2D画ブレ用にレイアウトよりも少し広めの絵をレンダリングしなければならない」、なんてことはよくあります。 例として、解像度1920×1080の余白2割増しでレンダリングする場合を考えてみます。 1920×1080の2割増しなので1.2をかけて、解像度は2304×1296になります。 そいえば、焦点距離の解説のとこで、”同じ焦点距離でもApertureが異なれば見える範囲も変わる”ってのを書きましたが、それ使えそうな気がします。 上から見た絵で考えてみます。 この上下に連なった三角形は相似形なので、上の三角形の底辺(見える領域)を1.2倍にしたいのだから、焦点距離はそのままで下の三角形の底辺(Aperture)を1.2倍にすればイケそうですね。 もし万が一、使用する3DソフトにApertureを変更するとこが見当たらない! 画角で見え方をコントロールするしかないって場合は、先に紹介した計算式を使ってApertureと焦点距離から画角を求めることになります。 長々と書いてみましたが、実際仕事でApertureやら焦点距離やらを意識するのは、実写合成の時と画ブレ用に大きくレンダリングする時くらいかな、と。 以上、3Dのカメラについてでした! 何かあったらご指摘を! 『参考リンク』 [Behind the virtual lens: get to know your CG camera] [チュートリアル / Psyop:Todd Akitaと歩むICEマスターへの道のり 第3回:「ICE: デザイン ツール」] [Understanding Your Camera: Revisiting Focal Length]
カメラに映る範囲を角度で表したものですね。
これはイメージしやすいですね。
3Dソフトによって画角の種類を選べたり水平画角でしか設定できなかったりいろいろですが、複数のソフトでデータをやりとりする事も考えると基本、水平画角で統一するのがよいと思います。
(ほんとは文字通り焦点までの距離でレンズのあっち側とこっち側にそれぞれあるけれど)
カメラに写る範囲を調整できます。
下絵のようにApertureサイズを固定して焦点距離を変更すると、見える範囲も変わるからです。
この二等辺三角形を半分に切って、直角三角形にして考えてみます。
計算式はこんな感じになります。
FOVx = 2 * atn( (apertureX/2) / focalLength )
Mayaだけで完結出来る場合はCamera Scaleの機能を使えば良いのですが、複数のソフトにまたがって作業しているとそうはゆきません。
ソフト依存の機能ではなくカメラ共通の設定で一回り大きな範囲をレンダリングする必要があるのですが、実際にどのようにすれば良いのでしょう?
しかし解像度を変更するだけでは、見える領域は変わりません。
解像度も1.2倍でレンダリングすれば、ちょうど元の絵から1.2倍の領域を持つ絵をレンダリングすることが出来ます。
コメント