[3dsMax]カメラの焦点距離を取得し、ビューポートに表示したい。


スクリプトを使い、
スライダーマニュピュレーターに、カメラの焦点距離を表示させる。

プレビューに焦点距離を載せたいときなどに便利。

●焦点距離の取得について
カメラの焦点距離は、スクリプトから直接取得する事が出来ない。
まず画角を取得し、焦点距離に変換する必要がある。

●手順
・カメラ、スライダーマニュピュレーターを用意
・コマンドパネル→モーションタブ→コントローラを割り当て
・スライダーマニュピュレーターのスケールに、スケールスクリプトを割り当て
・式欄に以下のスクリプトを入力

gakaku = $Camera01.fov
kyori = cameraFOV.FOVtoMM gakaku
kyori = kyori as integer
$スライダ01.sldName =”焦点距離=” + kyori as string + “mm”
[1, 1, 1]

●スクリプトの説明
gakaku = $Camera01.fov
–↑gakakuという名前の変数に、カメラの画角を入れる
–※Camera01の部分は作ったカメラの名前にしておく。

kyori = cameraFOV.FOVtoMM gakaku
–↑画角を焦点距離に変換して、変数kyoriに入れる。

kyori = kyori as integer
–↑実数を整数にする。(注意:四捨五入ではなく小数点以下を切り捨て)

$スライダ01.sldName =”焦点距離=” + kyori as string + “mm”
–↑スライダーマニュピュレーターの名前に入力
–as stringを使い、数値から文字列へ変換している。
–※スライダ01の部分は、作ったスライダーマニュピュレーターの名前に変更しておく。

[1, 1, 1]
–↑スケールスクリプトに入力しているので、何か値がないとエラーになってしまう。

●処理の流れ
カメラから画角(視野角)を取得
取得した画角を焦点距離に変換
その数値をスライダーマニュピュレーターの名前に割り当てる。

●資料
 MAXScript リファレンス カメラの共通プロパティ、演算子、メソッド

●おまけ
テキストオブジェクトに焦点距離を表示する。

テキストオブジェクトを作り、スライダーマニュピュレーターに以下のスクリプトを追加するだけ。

$Text01.text = “焦点距離=” + kyori as string + “mm”
※Text01の部分は、任意のテキストオブジェクトの名前にする。

↓スクリプト全文コピペ用

gakaku = $Camera01.fov
kyori = cameraFOV.FOVtoMM gakaku
kyori = kyori as integer
$スライダ01.sldName =”焦点距離=” + kyori as string + “mm”
$Text01.text = “焦点距離=” + kyori as string + “mm”
[1, 1, 1]
広告

コメントを残す

メールアドレスが公開されることはありません。

スパム対策用の計算式と画像認証です。↓の欄を入力しないとコメントが出来ません。 *

*