透視投影カメラのレンダリングを、特定のオブジェクトの大きさにぴったり合わせる

  • カメラにぴったり収めたいオブジェクトとカメラとの距離を測る。例えばオブジェクトが原点(x,y,z が 0,0,0 の位置)にあるとして、カメラの位置 x,y,z がそれぞれ 5,0,0 であれば、カメラとオブジェクトとの距離は 5 とすることができる。カメラ、オブジェクトの位置は任意だが、上記のようにそれぞれの中心座標を結ぶ線分の長さを求める必要があるため、オブジェクトは原点に、カメラはそのオブジェクトに対して特定の方向軸以外は 0 の位置にしておく方が計算が楽になる。
  • カメラに収める基準となるオブジェクトの大きさを調べる。例えばオブジェクトの大きさ x,y,z が 4,2,0 だとして(つまりこのオブジェクトは平面)、x の幅でレンダリングしたければ、4 が基準の大きさとなる。x,y 両方にぴったりと合わせたい場合、前述のように x の大きさを基準としたあとに、x に対する y の比率をそのまま「プロパティ - レンダー - 寸法 - 解像度」の X に乗算した値を同項目の Y に指定すれば良い。上記の例で言えば、y は x に対して 0.5 だから、仮に解像度 X が 2000 だとすれば、2000 * 0.5 で、解像度 Y は 1000 になる。
  • カメラとオブジェクトの距離、カメラに収めるオブジェクトの大きさを、それぞれ二等辺三角形の高さと底辺と仮定する。この二つの値を使い、その二等辺三角形の底角を算出し、そこから頂角を得る。底角については下記の「参照」にある計算サイトで計算できる。頂角は 180 - 底角 * 2 で得られる。
  • 頂角を得たら、3D ビュー上でカメラを選択し、「プロパティ - データ - レンズ」で「透視投影」を選択、その後、その直下にある項目の「レンズ単位」を「視野角」に変更し、その隣の「視野角」に上記頂角を指定すれば良い。当然、カメラはオブジェクトの方を注視している必要がある。以上の設定ができていれば、レンダリングを行うと、そのオブジェクトをぴったりに収めた出力が得られる。(奥行きがあるオブジェクトについても有効かは不明)

参照