No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

3Dカメラの話

3Dのカメラの話です。
特に、Aperture、画角、焦点距離、に焦点をあててみました。

3DCG屋にとってのこれらのパラメータの印象は、

焦点距離(Focal Length) ・・・ 見える範囲を決めるやつ、その1
画角(Angle of View) ・・・ 見える範囲を決めるやつ、その2
aperture ・・・ なにそれ、おいしいの?

・・・かなと想像します。
これらについて、もう一歩踏み込んでみます。

camera_v01_re

 


[aperture]

アパーチャー。画像を映すフィルムやイメージセンサーの大きさのこと。
FilmBackと呼んだりもするとか。(本来はレンズの口径を指す言葉らしいです)
3Dソフトのカメラはシンプルなアイコン表示のみですが、そのカメラの内側にシーンを写し出すスクリーンがある、そんな感じでしょうか?

camera_v02

大事な項目なので、もそっと詳しく。

Mayaの場合

Apertureはカメラのアトリビュートの”Film Back”の項目で設定可能です。
camera_v03

今のMaya(2016)はCamera Apertureが”inch”と”mm”の2種類の単位で設定できるようになってますね。以前はinchのみだったのに。
1インチ=25.4mm、なので”mm”の方の数値を25.4で割った値が”inch”の方に入ってます。
デフォルトのこの数値は、35mmフィルムに相当します。(縦の長さ36mm、横の長さ24mm)

Lens073ここで注意したいのは、Mayaの場合必ずしもAperture=レンダリング領域というわけではないということです。
Mayaにはカメラの表示領域に、”Film gate”と”Resolution gate”という2種類が存在します。
“Film gate”がApertureの表示領域で、”Resolution gate”が実際にレンダリングされる領域になります。
View上でカメラの表示領域を見るとき押すアイコン。アレで確認できます。
Mayaの場合、Apertureと異なる比率のレンダリング解像度をいとも簡単に設定出来てしまうのが、良い点でもあり混乱する点でもあると思います。

camera_v04

Apertureとレンダリング解像度の縦横比が異なる場合は、基本の見え方はApertureの範囲内で、そこから縦or横を削ってレンダリング領域としているのかなと想像します。(未検証)
Mayaで実写合成しなきゃいけない場合は、Aperture&焦点距離、または画角を撮影したカメラのものと合わせ、さらにApertureの縦横比とレンダリング解像度の比率を一致させる必要があると思います。

Houdiniの場合

HoudiniのAperture設定はいっこだけ。

camera_v05

これは、Apertureの横幅の値です。特に明記はされてないけど、マニュアルの絵が横幅を示してるので、多分。
高さを設定する項目はないっぽいです。

fov

なぜApertureが横幅だけの設定しかないかと言うと、高さはResolutionの縦横比から自動的に決まるようになっているから・・・だと思います。

Houdini_Cam

上絵のように、Resolutionの縦横を変えても、カメラに映る範囲の横幅は変わりません。
見える領域の横幅はAperture(水平)で決めて、高さの範囲はResolusionの縦横比から自動で決まるというわけです。


 

[画角]

視野。”Field of View”とか”Angle of View”とか表記されてます。
カメラに映る範囲を角度で表したものですね。
これはイメージしやすいですね。

02_0021

画角には水平画角、垂直画角、対角画角の3種類があります。

camera_v06

camera_v07

どれかひとつの画角を設定すれば、Apertureから他の画角も自然と決まります。
3Dソフトによって画角の種類を選べたり水平画角でしか設定できなかったりいろいろですが、複数のソフトでデータをやりとりする事も考えると基本、水平画角で統一するのがよいと思います。

 


[焦点距離(Focal Lenght)]

レンズの中心からイメージセンサー(フィルム面、Aperture)までの距離。
(ほんとは文字通り焦点までの距離でレンズのあっち側とこっち側にそれぞれあるけれど)
カメラに写る範囲を調整できます。

camera_v08

なぜ、焦点距離がカメラの見える範囲に関係あるのかというと・・・
下絵のようにApertureサイズを固定して焦点距離を変更すると、見える範囲も変わるからです。

(実際はフィルム面は固定でレンズ部分の位置を変えることで、焦点距離を変更しているのでしょうが、ここでは分かり易さ重視でフィルム面を移動させてます)

Apertureは一つの絵の中で、ホイホイ変更する類のものではないので、焦点距離を変えることで見える範囲をコントロールすることができるのです。

逆にいえば、同じ焦点距離でもApertureが異なれば見える範囲も違ってくる、ということです。

 

ちなみに、Apertureと焦点距離から、画角の値を知ることができます。

真上からの絵で考えると、Apertureと焦点距離は二等辺三角形の底辺と高さに相当します。
この二等辺三角形を半分に切って、直角三角形にして考えてみます。

camera_v09

直角三角形において底辺と高さが決まっている場合、その三角形の形は必ずひとつに決まります。

つまり画角も一意に決まります。

実際にApertureと焦点距離から画角を求めるにはアークタンジェントってのを使って計算します。
計算式はこんな感じになります。


FOVx = 2 * atn( (apertureX/2) / focalLength )

この式を日本語に訳すと、「アークタンジェントってのを使ってタンジェントの値から角度を求めて2倍にする」、です。

 


応用編。

仕事をしてて、「2D画ブレ用にレイアウトよりも少し広めの絵をレンダリングしなければならない」、なんてことはよくあります。
Mayaだけで完結出来る場合はCamera Scaleの機能を使えば良いのですが、複数のソフトにまたがって作業しているとそうはゆきません。
ソフト依存の機能ではなくカメラ共通の設定で一回り大きな範囲をレンダリングする必要があるのですが、実際にどのようにすれば良いのでしょう?

camera_v12

例として、解像度1920×1080の余白2割増しでレンダリングする場合を考えてみます。

camera_v10_3

1920×1080の2割増しなので1.2をかけて、解像度は2304×1296になります。
しかし解像度を変更するだけでは、見える領域は変わりません。

そいえば、焦点距離の解説のとこで、”同じ焦点距離でもApertureが異なれば見える範囲も変わる”ってのを書きましたが、それ使えそうな気がします。

上から見た絵で考えてみます。

camera_v13

この上下に連なった三角形は相似形なので、上の三角形の底辺(見える領域)を1.2倍にしたいのだから、焦点距離はそのままで下の三角形の底辺(Aperture)を1.2倍にすればイケそうですね。
解像度も1.2倍でレンダリングすれば、ちょうど元の絵から1.2倍の領域を持つ絵をレンダリングすることが出来ます。

もし万が一、使用する3DソフトにApertureを変更するとこが見当たらない! 画角で見え方をコントロールするしかないって場合は、先に紹介した計算式を使ってApertureと焦点距離から画角を求めることになります。


 

長々と書いてみましたが、実際仕事でApertureやら焦点距離やらを意識するのは、実写合成の時と画ブレ用に大きくレンダリングする時くらいかな、と。

 

以上、3Dのカメラについてでした!

何かあったらご指摘を!

 


『参考リンク』

[カメラ設定のオプション]

[VFX Camera Database]

[Behind the virtual lens: get to know your CG camera]

[実写合成時の画角について]

[カメラのアトリビュート同士の関係性]

[チュートリアル / Psyop:Todd Akitaと歩むICEマスターへの道のり 第3回:「ICE: デザイン ツール」]

[Understanding Your Camera: Revisiting Focal Length]

[Lens knowledge]

[SCNCamera]

[カメラレンズと焦点距離、画角]

[カメラの話をしよう!・基礎編]

 

関連記事

  1. 2014.01.27

    toxik:[PXL]

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

Archives

  • 2024 (1)
  • 2023 (2)
  • 2022 (9)
  • 2021 (14)
  • 2020 (46)
  • 2019 (17)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

Houdiniを使えるようになる本


Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.facebook.com/restserver.php?method=links.getStats&urls=http%3A%2F%2Fnomoreretake.net%2F2016%2F02%2F20%2Fcamera%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fnomoreretake.net%2F2016%2F02%2F20%2Fcamera%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132