忍者ブログ


~ 立ち上がれ ~
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

カメラの、画角(Angle of View)、被写界深度(Focal Length)、撮像面サイズ(Camera Aperture)の関係が、少々ややこしい。

・Camera Aperture(Horizontal) をいじると、Focal Length 固定で Angle of View が変化
・Focal Length と Angle of View はお互いをいじると、その互いの値が変化

となっている。

この計算は

C:\Program Files\Autodesk\MayaX.X\scripts\AETemplates
AEcameraTemplate.mel

というスクリプトのプロシージャ

AEcalculateFOV (Angle of View の算出)

float $focal = `getAttr $focalStr`; //Focal Length値
float $aperture = `getAttr $horStr`; //横Camera AZperture値
float $fov = (0.5 * $aperture) / ($focal * 0.03937);
$fov = 2.0 * atan ($fov);
$fov = 57.29578 * $fov; //Angle of View値

AEadjustFocal (Focal length の算出)

float $fov = `floatSliderGrp -q -value fovGrp`; //Angle of View値
float $aperture = `getAttr $horStr`; //横Camera AZperture値
float $focal = tan (0.00872665 * $fov);
$focal = (0.5 * $aperture) / ($focal * 0.03937); //Focal length値

で計算されています。各定数は

0.03937 : Focal Lengthのミリ数-インチ換算(Camera Apertureはインチなので)
57.29578 : 角度-ラジアン変換
0.00872665は、1/(57.29578*2)

ですね。

PR
Melを組むときは、ひとまずMaya上でその操作を実行した上で、Script Editorにコールバックされたコマンドやフラグを頼りしたりするのだが、中には、明確なコールバックが得られないときがある。

仕方がないので、これでは、というコマンドをコマンドリファレンスから見つけて実行してみたりするんだけど、微妙にうまくいかないときがある。trax の clip 作成 (character set も自動生成)がまさにそうだったんだけど、Option Window で入れられるはずの hierarcy の設定フラグがない??

これは怪しいぞと、

C:\Program Files\Alias\MayaX.X\scripts

でCreate Clip Optionウィンドウを構築しているmelを探り出し、実行ボタンを押したときに何が行われているかひとつづつ辿っていって内部的に実行されているコマンドを探り当てることにした。

Maya の GUI 自体が MEL の塊なので、分からないときにはココを探るとたいていのものが出てくる。

でね、これがまたシンプル極まりなくて拍子抜け。

performCreateClip false;

だそう。
しか~し、このコマンド自体が、コマンドリファレンスに載っていなくてフラグが立て方が分からないのです。いろいろ試した末、Create Clip Option Window で設定を保存( Edit -> Save Settings )した上でこのコマンドを実行させると良いことに気がつく。
やっとこGUI上で clip 作成したときと同じ結果になった。やれやれ。

もっとスマートな方法もありそうだけど、とりあえず行き着いたのがコレ。デザイナーの私に出来るのはここまでであります。

Mayaって、優しいんだか、不親切なんだか、たまに分からなるなぁ。

正攻法ご存知の方いらっしゃいましたら、是非ご教授ください。
 <HOME> 









忍者ブログ│[PR]