Rhinoceros ビューカメラのレンズ長の設定と圧縮効果

Rhinocerosのような3DCADアプリケーション3DCGアプリケーションにおいて、3次元空間を画面に表示するために視点として使われるビューカメラの設定は欠かせません。ただ、モデリングするだけだと初期設定のままで使っていることも多いと思います。3DCGアニメーションの製作ではカメラワークが重要なので、意識的にカメラの設定をすることとなりますが、モデリングにおいても知っておいた方が良いであろう、レンズ長圧縮効果について触れてみたいと思います。

Rhinocerosを立ち上げると初期設定では4画面に分けられたビューポートが立ち上がります。Top・Front・Right・Perspectiveです。Back・Bottom・Leftなども設定することで表示できます。この内Perspectiveだけは他とは異なり、3次元を描画するためのビューポートとなり、ビューカメラの設定をすることで描画結果が変わります。

オブジェクトが何も選択されていない状態だと、プロパティパネルにはその時点でアクティブなビューポートの設定(ビューポート・カメラ・ターゲット・壁紙)が表示されます。Perspectiveがアクティブなビューポートになっている場合にのみ、プロパティパネルのビューポートの設定項目でレンズ長を設定することが出来ます。

プロパティパネル

レンズ長は初期設定のままだと50に設定されています。50という値はカメラの交換レンズでいうと50mmレンズに相当し、フルサイズ一眼レフカメラに取り付けるレンズの中でも標準レンズと呼ばれるもので、人間の視角に近いため自然な遠近感を感じられます

Rhinocerosを起動時にあらかじめレンズ長の値を設定しておきたい場合は、OptionsコマンドからRhinoオプションウィンドウを開きビュー→ビューポートのプロパティ→デフォルトの35mmカメラレンズ長に任意の数値を入力して設定できます。

オプションウィンドウ

また、ZoomLens(ズームレンズ)コマンドを使ってレンズ長を調整することも出来ます。こちらは数値入力ではなく画面内をクリックアンドドラッグすることでレンズ長を設定します。

ドリーズーム・ズームレンズのアイコン

レンズ長を変えることで遠近感が変わっていくのですが、実際に数値を変える事によって、描画結果がどのように変化していくのか見ていきたいと思います。

レンズ長の設定による描画結果の違い

検証するための準備ですが、下記のようにY座標0に高さ10・厚さ2のソリッド化したABCオブジェクトを配置、Y座標100に高さ20・厚さ2のソリッド化した0~9の数字オブジェクトを配置します。描画されるABCオブジェクトのサイズ感を出来るだけ変えないようにするために、カメラ回転=0、カメラX位置=0、カメラZ位置=5、Xターゲット=0,Yターゲット=0,Zターゲット=5に固定して、レンズ長の数値と同じだけカメラY位置をマイナス方向に移動させます。ABCオブジェクトはマテリアル設定で少し透明にして、後ろの数字オブジェクトがうっすら見えるようにしています。下記の画像のような配置になります。

検証用レイアウトの説明

カメラモデルから伸びている線は3D空間上のビューカメラの設定を表したもので、実線の四角枠がビューカメラのターゲット位置(Xターゲット=0,Yターゲット=0,Zターゲット=5)で得られている描画領域、点線は背景として収まる領域・画角となります。Rhinocerosの初期設定のレンズ長である50で見てみましょう。

トップ画面(50mm画角)
パースペクティブ画面(50mm画角)

後ろにある高さ20の数字オブジェクトは前のABCオブジェクトより小さく描画され、2つのオブジェクトの間に十分な距離があることが伺える状態となっています。後ろにあるものほど小さく見えるという、ごく普通の遠近感です。

では、設定を変えながら見てみましょう。レンズ長の数値と同じだけビューカメラのY座標はマイナス方向へ移動させていきます。尚、設定の数値は某カメラメーカーの単焦点レンズのラインナップに準じています。

レンズ長Top画面Perspective画面
14トップ画面(14mm画角)パースペクティブ画面(14mm画角)
24トップ画面(24mm画角)パースペクティブ画面(24mm画角)
35トップ画面(35mm画角)パースペクティブ画面(35mm画角)
50トップ画面(50mm画角)パースペクティブ画面(50mm画角)
85トップ画面(85mm画角)パースペクティブ画面(85mm画角)
100トップ画面(100mm画角)パースペクティブ画面(100mm画角)
180トップ画面(180mm画角)パースペクティブ画面(180mm画角)
200トップ画面(200mm画角)パースペクティブ画面(200mm画角)
400トップ画面(400mm画角)パースペクティブ画面(400mm画角)
800トップ画面(800mm画角)パースペクティブ画面(800mm画角)

レンズ長の数値の小さい、いわゆる広角寄り14では後ろの数字オブジェクは小さく表示されて、すべて描画領域に収まっています。手前のABCオブジェクトは厚みが充分ある状態になっており、とても遠近感を感じられる描画結果となっていることが分かります。

一方、レンズ長の数値の大きい、いわゆる望遠寄りになればなるほど、後ろの数字オブジェクトは見える範囲が狭くなっていき、最終的にレンズ長800では4,5以外は描画領域から見えなくなりました。それと同時に数字オブジェクトのサイズ感は次第に大きく感じられるようになり、ABCオブジェクト(高さ10)と数字オブジェクト(高さ20)の本来のサイズに近い比率で描画されています。ABCオブジェクトは広角寄りとは違い、厚みは感じられません。望遠寄りになると遠近感が喪失したような描画結果となります。

圧縮効果とは

この現象は『圧縮効果』と呼ばれ、前後の物体の遠近感を感じさせなくした写真撮影で用いられる方法として知られています。例えば下記の写真は圧縮効果を活かした写真と言えます。

夕日と人影(圧縮効果の強い写真の見本)

夕日に佇む人影の印象的な美しい写真です。一見すると夕日に対して人影が大きいのか、人影に対して夕日が小さいのか、遠近感が掴めない写真になっています。モデルさんとの距離を十分確保して、なおかつ望遠レンズを使わないと、高解像度では圧縮効果を有効に使ったこのような写真を撮影することは出来ません。写真の世界では、こういった圧縮効果を活かした作品を目にすることは意外と多く、グラビアなどの人物ポートレートでもモデルを活かすために背景領域をコントロールする際に使われるテクニックです。

モデリングする場合のレンズ長の設定

では、Rhinocerosなどのモデリングの分野ではこの圧縮効果を考慮し適切な描画結果を得るためには、ビューカメラレンズ長はどのように設定するのが望ましいでしょうか。今度は一眼レフのモデルデータを使って、レンズ長の設定による描画結果の違いを見てみましょう。

レンズ長Perspective画面レンズ長Perspective画面
15パースペクティブ画面(レンズ長15)25パースペクティブ画面(レンズ長25)
35パースペクティブ画面(レンズ長35)50パースペクティブ画面(レンズ長50)
85パースペクティブ画面(レンズ長85)100パースペクティブ画面(レンズ長100)
180パースペクティブ画面(レンズ長180)200パースペクティブ画面(レンズ長200)
400パースペクティブ画面(レンズ長400)800パースペクティブ画面(レンズ長800)

広角寄りでは遠近感が強く現れ過ぎるために手前に映るレンズ部分が大きく描画されてしまい、実物とはかけ離れたようなプロポーションになり、設計する上でも望ましい描画結果とは言えません。初期設定値の50では一見すると自然なプロポーションにも見えますが、85、100と比べるとカメラボディが頭でっかちになっているような印象を受けます。超望遠寄りの400、800になると変化も少なくなり全体的にスッキリとしたポロポーションに整いますが、レンズ部分がこじんまりとして迫力を感じられなくなります。

動画で見ると変化が分かりやすいと思います。

レンズ長の段階

設計するものにもよりますが、極端な広角寄りの数値でなければ、特に正解はないと思います。ジュエリーのようなものであれば初期設定値50のままだとセンターストーンが大きく見えてしまうので、サイズ感に誤解を招くのを避けるためにも望遠寄りの方が望ましいです。レンズ長の設定は100以上が必要だと思います。建築物ではパースを感じさせないようにさらに望遠寄りの設定するほうが良い場面もあるでしょうし、逆に家具などは望遠寄りすぎると非現実的な印象になるので初期設定値の50あたりが良いと思います。

圧縮効果の補足説明

最後に圧縮効果の補足説明なのですが、望遠寄りのような大きい数値設定でないと圧縮効果が現れない訳ではありません。広角寄りの小さい数値設定でも圧縮効果は現れるということを検証を踏まえて説明します。

同じくABCオブジェクトと数字オブジェクトを使い、レンズ長=15カメラY位置=-100に設定してPerspective画面を見てみます。

トップ画面(14mm画角・距離100)
パースペクティブ画面(14mm画角・距離100)

広角寄りの設定でターゲットまでの距離をあけているのでオブジェクトは小さく描画されています。では、この描画結果を下記のように、黄色ラインの範囲でトリミングしてみます。これは前の検証で行った描画領域と同じ範囲です。

パースペクティブ画面(14mm画角・距離100)トリミング範囲表示

トリミングしたものを拡大して表示させます。

パースペクティブ画面(14mm画角・距離100・トリミング済み)

トリミングしているので少し画像が汚くなってしまいますが、どうでしょう。実はこの結果はレンズ長100での検証結果とほぼ同じものになっています。

レンズ長Perspective画面
15
(カメラY位置=-100)
(トリミング済み)
パースペクティブ画面(14mm画角・距離100・トリミング済み)
100
(カメラY位置=-100)
パースペクティブ画面(100mm画角)

このように、圧縮効果はカメラとターゲットの距離に依存するものなのでレンズ長には関係なく起きます。現実のカメラでは画素数には限界があり、トリミングすることで画質が低下するのは避けたいですし、望遠レンズを使ったほうが圧縮効果を活かした写真を高画質高精細な状態で得られます。一般的にも圧縮効果を感じられる写真撮影には望遠レンズが使われます。トリミングによる圧縮効果の強調の原理を知っていれば、35mmフルサイズ機・APS-C機・マイクロフォーサーズ機センサーサイズの違いが圧縮効果に影響することも理解出来ます。


以前、ジュエリー撮影がとても上手いプロカメラマンに撮影に使っている機材を聞いたことがあるのですが、200mm望遠レンズを使い、十分に距離をとって撮影し、画像をトリミング処理している、とのことでした。レンズ長だと300前後に当てはまる設定といったところでしょうか。圧縮効果を理解すると、何も考えずにジュエリー撮影用に60mmマクロレンズを買った苦い過去を思い出します。