カメラシェイプのアトリビュートにある[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 件のコメント:
コメントを投稿