2008年2月12日火曜日

[MEL]画角(Angle of View)を調べる

カメラシェイプのアトリビュートにある[Angle of View]は、焦点距離(Focal Length)から
計算で出しているようで、カメラのアトリビュートの値として存在しない。
以下のMELをカメラ(のトランスフォームノード)を選択した状態で実行すると、
そのカメラの[Angle of View]を変数$AoVに取得できる。

// 使用する変数の宣言
string $camS[];
string $camT[];
float $fl;
float $AoR;
float $AoV;



// トランスフォームとシェイプノード名を取得
$camT = `ls -sl`;
$camS = `listRelatives -s $camT`;

// シェイプノードから焦点距離を取得
$fl = `getAttr ($camS[0] + ".focalLength")`;

// 焦点距離から画角を計算。その後ラジアンを度数に変換
// 【35.999999は謎の数値。本当はレンズスケールの筈だが・・】
$AoR = atan(35.999999 / ($fl * 2)) * 2;
$AoV = `rad_to_deg $AoR`;

// 結果表示
print "-----------------------\n";
print $camT;
print "Angle of View ";
print ($AoV + "\n");
print "-----------------------\n";



0 件のコメント:

コメントを投稿