カメラの共通プロパティ、演算子、メソッド
 
 
 

> MAXWrapper > ノード > カメラ

 

   

ライトとカメラ - クイック ナビゲーション

   

プロパティ

以下に示すプロパティは、全てのタイプのカメラに適用されます。

<camera>.fov Float default: 45.0 -- animatable, angle 	 

カメラ ビューに含める領域の幅を設定します。 これは水平視野です。

   

<camera>.curFOV Float default: 45.0 -- float   

以下で説明する fovType の値に関して現在の視野を返します。3ds Max 8 以降で使用可能です。

   

<camera>.fovType Integer default: 1 -- integer 

現在の視野のタイプを設定します。 カメラの UI で視野スピナーの横にあるフライアウトを変更します。 3ds Max 8 以降で使用可能です。

有効な値は次のとおりです。

1 -水平

2 -垂直

3 -対角

   

<camera>.orthoProjection Boolean default: false 

オンの場合、カメラ ビューは、ユーザ ビューと同様になります。オフの場合、カメラ ビューは標準パースペクティブに似たビューになります。

   

<camera>.type Name default: #free 

カメラのタイプ:

#free - フリー カメラ(ターゲット ビューを任意の方向に設定可能)

#target - ターゲット カメラ(カメラは常にビューをターゲット オブジェクトに揃える)

   

<camera>.showCone Boolean default: false 

カメラの視野によって定義されている円錐(実際にはピラミッド)を表示します。円錐は、他のビューポートには表示されますが、カメラ ビューポートには表示されません。

   

<camera>.showHorizon Boolean default: false 

水平線を表示します。カメラ ビューポートの水平レベルにグレーの直線が表示されます。

   

<camera>.nearrange Float default: 0.0 -- animatable; alias: Near_Env_Range 

環境効果での近接距離。

   

<camera>.farrange Float default: 1000.0 -- animatable; alias: Far_Env_Range 

環境効果での遠方距離。

   

<camera>.clipManually Boolean default: false 

オンにすると、クリッピング平面を定義します。[手動でクリップ]がオフの場合、カメラに近接した(3 単位内)ジオメトリは表示されません。

   

<camera>.nearclip Float default: 1.0 -- animatable, alias: near_clip 

近接クリッピング平面より近いオブジェクトは、カメラには写りません。

   

<camera>.farclip Float default: 1000.0 -- animatable, alias: far_clip 

遠方クリッピング平面より遠方のオブジェクトは、カメラには写りません。

   

<camera>.showRanges Boolean default: false 

オンの場合、カメラの円錐内に、近接範囲および遠方範囲設定を示す黄色い四角が表示されます。

   

<camera>.targetDistance Float default: 160.0 -- animatable, alias: Target_Distance 

非表示のターゲットに使用するポイントを設定します。

   

<camera>.mpassEnabled Boolean default: false -- boolean; MultiPass_Effect_Enabled 

MultiPass カメラ効果を使用可能/使用不可能にします。

   

<camera>.mpassRenderPerPass Boolean default: false -- boolean; MPEffect___Render_Effects_Per_Pass 

Render Per Pass オプションを使用可能/使用不可能にします。

   

<camera>.multipass_effect SubAnim default: SubAnim:MultiPass_Effect -- SubAnim 
<camera>.mpassEffect Depth_of_FieldMPassCamEffect default: Depth_of_FieldMPassCamEffect:Depth_of_FieldMPassCamEffect -- SubAnim 

MultiPass カメラ効果を取得/設定します。詳細は、「MPassCamEffect オブジェクト」を参照してください。MultiPass カメラ効果をビューポートでプレビューする場合は、「maxOps.displayActiveCameraViewWithMultiPassEffect メソッド」を参照してください。

例:

$Camera01.mpassEffect = Motion_BlurMPassCamEffect()
$Camera01.mpassEffect.disableAntialiasing = true
注:

 fov プロパティは度単位の水平視野の値です。

垂直視野の値、対角視野の値、およびレンズの値は、水平視野と現在のレンダラーの口径幅に基づいています。

視野タイプと現在の値にアクセスできるようにする、3ds Max 8 に追加された新しいプロパティと関数を参照してください。

次の MAXScript 関数を使って、水平視野から垂直視野を計算することもできます。

関数

   

fn GetCamVFOV theCamera =(local r_aspect=(renderWidth as float)/renderHeight2.0*atan(tan(theCamera.fov/2.0)/r_aspect))

CameraFOV 構造:

3ds Max 8 以降で導入された CameraFOV 構造では、カメラ視野の変換に関連する関数のセットが提供されます。

   

<float>cameraFOV.FOVtoMM <float fov> 

指定された水平視野をレンズ MM に変換します。

   

<float>cameraFOV.MMtoFOV <float mm> 

指定されたレンズ MM を水平視野に変換します。

   

<float>cameraFOV.CurFOVtoFOV <camera> <float cfov> 

カメラの現在の視野方向における視野を水平視野に変換します。新しいカメラ プロパティ .fovType および .curFOV も参照してください。このプロパティでは、視野タイプ フライアウト、およびフライアウトの状態によって定義されている現在の値にアクセスできます。

   

<float>cameraFOV.FOVtoCurFOV <camera> <float fov> 

水平視野をカメラの現在の視野方向の視野に変換します。新しいカメラ プロパティ .fovType および .curFOV も参照してください。このプロパティでは、視野タイプ フライアウト、およびフライアウトの状態によって定義されている現在の値にアクセスできます。

c = freecamera()
--> $Free_Camera:Camera01 @ [0.000000,0.000000,0.000000]
cameraFOV
--> #Struct:cameraFOV(
FOVtoMM:<fn>,
CurFOVtoFOV:<fn>,
FOVtoCurFOV:<fn>,
MMtoFOV:<fn>)
cameraFOV.FOVtoMM 45--45 度の水平視野を mm に変換します。
--> 43.4558
cameraFOV.MMtoFOV 43.4558--43.4558 mm を度に変換しなおします。
--> 45
c.fovType = 3--視野タイプを対角に設定します。
--> 3
cameraFOV.CurFOVtoFOV c 54.7473--対角視野を水平視野に変換します。
--> 45
cameraFOV.FOVtoCurFOV c 45--45 度の水平視野を対角視野に変換します。
--> 54.7473
c.curFOV--現在の視野タイプ。 この場合は 3 (対角)です。
--> 54.7473
c.fov--常に水平視野です。
--> 45
c.fovType = 1--現在の視野を 1 (水平)に設定します。
--> 1
c.curFOV--現在の視野が水平になりました。
--> 45
c.fov--両方が水平なので、現在と同じ値を返します。
--> 45
 

[全範囲ズーム全ビューポート]のシミュレーション

次のスクリプトは、指定されたカメラの視野を変更し、そのカメラの「全範囲ズーム」をシミュレートします。

 
fn ZE_Cam cam objs =
(
local max2, fov, asp, v-- ローカル変数の宣言
-- 配列内の値のセットの
-- 最大値を返す関数を定義します。
fn maxof vals = (local v=vals[1];for v1 in vals do (if v1 > v do v=v1);v)
fov=0-- fov の値の初期化
asp=(renderWidth as float)/renderHeight-- レンダラーのイメージのアスペクト比を計算 aspect ratio
in coordsys cam-- カメラの座標系で操作
(
for obj in objs where obj != cam do-- カメラを除くすべてのオブジェクトでループ
(
if obj.min.z >=0 do continue-- オブジェクトがカメラの背後にある場合はスキップ
-- y 値のイメージのアスペクト比を補正するオブジェクトの
-- バウンディング ボックスの最大値を取得します。
v = maxof #((abs obj.max.x),(abs obj.min.x),(abs (obj.max.y*asp)),(abs (obj.min.y*asp)))
fov = maxof #(fov,(2*atan(-v/obj.min.z)))-- 必要に応じ fov を増加
)
)
cam.fov=fov-- カメラの fov を新しい fov の値に設定
)
-- テスト ベッド --
cam=$camera01-- カメラを「全範囲ズーム」に指定します。
ZE_Cam cam $*-- 関数を呼び出して、すべてのオブジェクトを含むオブジェクトのセットとカメラを渡す
 
関連事項