Camera

Camera

Object Hierarchy | 関連する C++クラス:Camera

継承

SIObject

ProjectItem

SceneItem

X3DObject

DirectedObject

Camera

導入

v1.0

詳細

Camera オブジェクトは、シーン内の Softimage カメラです。Camera オブジェクトを作成すると、シーンの 3D ワールドの原点に注視点が必ず作成されます。カメラは、X3DObject.AddCameraまたはX3DObject.AddCameraRigを使用して作成できます。

以下の 1 番目の例に示すように、X3DObject.FindChildrenメソッドを使用してシーン内のカメラをすべて検索できます。

Field of View Angle(fov)やProjection Type(proj)など、Camera オブジェクトの最も重要な属性は、Primitiveを呼び出すと戻されるX3DObject.ActivePrimitiveParameterオブジェクトとして表示されます。

メソッド

Add2DChain Add3DChain AddAnnotation AddCamera
AddCameraRig AddChild AddControl AddCustomOp
AddCustomProperty AddFxTree AddGeometry AddICEAttribute
AddLattice AddLight AddLightRig AddMaterial
AddModel AddNull AddNurbsCurve AddNurbsCurveList
AddNurbsCurveList2 AddNurbsSurface AddNurbsSurfaceMesh AddNurbsSurfaceMesh2
AddPolygonMesh AddPrimitive AddProperty AddScriptedOp
AddScriptedOpFromFile AnimatedParameters2 ApplyEnvelope BelongsToオペレータ
EvaluateAt FindChild FindChild2 FindChildren
FindChildren2 FindShaders GetActivePrimitive2 GetActivePrimitive3
GetAllShaders GetBoundingBox GetICEAttributeFromName GetLocalPropertyFromName
GetLocalPropertyFromName2 GetModels2 GetPropertyFromName GetPropertyFromName2
GetShaderInputType GetStaticKinematicStateオペレータ HasStaticKinematicStateオペレータ IsA
IsAnimated2 IsClassOfオペレータ IsEqualToオペレータ IsKindOf
IsLockedオペレータ IsNodeAnimated IsSelectedオペレータ LockOwners
NodeAnimatedParameters RemoveChild RemoveFromParent RemoveICEAttribute
SetAsSelectedオペレータ SetCapabilityFlagオペレータ SetLock SetMaterial
ShapeAnimatedClusters TaggedParameters UnSetLock  
       

プロパティ

ActivePrimitive AllImageClips Application BranchFlagオペレータ
Capabilitiesオペレータ Categories Children Envelopes
EvaluationID Familiesオペレータ FullNameオペレータ Help
HierarchicalEvaluationID ICEAttributes Interest Kinematics
LocalProperties LocalRotation LocalScaling LocalTranslation
LockLevelオペレータ LockMastersオペレータ LockTypeオペレータ Material
Materials Model Models Nameオペレータ
NestedObjects ObjectID Origin OriginPath
Owners PPGLayoutオペレータ Parametersオペレータ Parent
Parent3DObject Primitives Properties Selectedオペレータ
Shaders Typeオペレータ    
       

1. VBScript の例

'vbscript example demonstrating how to access all Cameras in the

'scene.

'Create a sample scene with different cameras

NewScene ,false

GetPrimCamera

GetPrimCamera "Telephoto.Preset", "Telephoto"

GetPrimCamera "Orthographic.Preset", "Ortho"

'Put the orthographic camera inside a model

CreateModel

GetPrimCamera "Wide_Angle.Preset", "WideAngle"

'Hide one of the cameras underneath a cone

GetPrim "Cone"

CopyPaste "WideAngle_Root", ,"cone", 1

GetPrimCamera "Wide_Angle.Preset", "WideAngle"

'Perform a recursive search for all the cameras in the scene

set oCamerasCollection = ActiveSceneRoot.FindChildren( ,siCameraFilter )

'Print out some information about the Cameras in the scene 

logmessage "The scene contains " & oCamerasCollection.count & " cameras"

for i = 0 to oCamerasCollection.count - 1

	set oCamera = oCamerasCollection.Item( i )

	PrintCameraInfo oCamera		

next

sub PrintCameraInfo( in_obj )

	dim oCamera

	set oCamera = in_obj

	logmessage "-----------------------Camera " & i & "------------------------"

	logmessage "Camera Name: " & oCamera.Name

	logmessage "Camera Root: " & oCamera.Parent

	logmessage "Camera Primitive: " & oCamera.ActivePrimitive

	'The Interest a "sibling" of the Camera so

	'we find it via the parent

	set oChildrenOfParent = oCamera.Parent.Children

	dim oInterest

	for each o in oChildrenOfParent

		if ( o.type = "CameraInterest" ) then

			set oInterest = o

			exit for

		end if

	next

	logmessage "Camera Interest: " & oInterest	

	'Many aspects of the camera can be manipulated by reading and

	'writing the parameters on these various objects

	if ( oCamera.ActivePrimitive.Parameters("proj").Value = 1 ) then

		logmessage "Projection: Perspective"

	else

		logmessage "Projection: Orthographic"

	end if

	logmessage "Field of View: " & oCamera.ActivePrimitive.Parameters("fov").Value

	'Although these parameters actual belong to the local kinematic property,

	'these shortforms are available to vbscript to make it even more convenient

	logmessage "Interest Pos(local): (" & oInterest.posx.Value & _

						"," & oInterest.posy.Value & _

						"," & oInterest.posz.Value & ")"

	set oGlobalKine = oInterest.Kinematics.Global

	logmessage "Interest Pos(global): (" & oGlobalKine.Parameters("posx").Value & _

						"," & oGlobalKine.Parameters("posy").Value & _

						"," & oGlobalKine.Parameters("posz").Value & ")"

end sub

'This is part of the output from running this example:

'INFO : "-----------------------Camera 2------------------------"

'INFO : "Camera Name: Telephoto"

'INFO : "Camera Root: Telephoto_Root"

'INFO : "Camera Primitive: Telephoto.camera"

'INFO : "Camera Interest: Telephoto_Interest"

'INFO : "Projection: Perspective"

'INFO : "Field of View: 6.662"

'INFO : "Interest Pos(local): (0,-2,-20)"

'INFO : "Interest Pos(global): (0,0,0)"

'INFO : "-----------------------Camera 3------------------------"

'INFO : "Camera Name: Ortho"

'INFO : "Camera Root: Model.Ortho_Root"

'INFO : "Camera Primitive: Model.Ortho.camera"

'INFO : "Camera Interest: Model.Ortho_Interest"

'INFO : "Projection: Orthographic"

'INFO : "Field of View: 53.638"

'INFO : "Interest Pos(local): (0,-2,-20)"

'INFO : "Interest Pos(global): (0,0,0)"

'etc.....

2. VBScript の例

'VBScript example : display the properties of a camera

Option Explicit

CreateCamera()

sub CreateCamera()

	dim oCam

	set oCam = ActiveProject.ActiveScene.Root.AddCameraRig( "Camera" ).camera

	LogMessage "camera interest"

	LogMessage oCam.name & ".interest.name: " & oCam.interest.name

	LogMessage "camera parameters"

	oCam.near.value = oCam.near.value * 2

	oCam.far.value = oCam.far.value * 2

	oCam.orthoheight.value = oCam.orthoheight.value * 2

	oCam.fov.value = oCam.fov.value * 2

	LogMessage oCam & ".near: " & oCam.near.value

	LogMessage oCam & ".far: " & oCam.far.value

	LogMessage oCam & ".orthoheight: " & oCam.orthoheight.value

	LogMessage oCam & ".fov: " & oCam.fov.value

	LogMessage "camera marking"

	oCam.near.marked = true

	oCam.far.marked = true

	oCam.orthoheight.marked = true

	oCam.fov.marked = true

	LogMessage oCam & ".near.marked: " & oCam.near.marked

	LogMessage oCam & ".far.marked: " & oCam.far.marked

	LogMessage oCam & ".orthoheight.marked: " & oCam.orthoheight.marked

	LogMessage oCam & ".fov.marked: " & oCam.fov.marked

	LogMessage "camera capabilities"

	LogMessage oCam & ".near.capabilities: " & oCam.near.capabilities

	LogMessage oCam & ".far.capabilities: " & oCam.far.capabilities

	LogMessage oCam & ".orthoheight.capabilities: " & oCam.orthoheight.capabilities

	LogMessage oCam & ".fov.capabilities: " & oCam.fov.capabilities

	LogMessage "camera kinematics position"

	oCam.posx.value = oCam.posx.value * 2

	oCam.posy.value = oCam.posy.value * 2

	oCam.posz.value = oCam.posz.value * 2

	LogMessage oCam & ".posx: " & oCam.posx.value

	LogMessage oCam & ".posy: " & oCam.posy.value

	LogMessage oCam & ".posz: " & oCam.posz.value

	LogMessage "camera kinematics rotation"

	oCam.rotx.value = oCam.rotx.value * 2

	oCam.roty.value = oCam.roty.value * 2

	oCam.rotz.value = oCam.rotz.value * 2

	LogMessage oCam & ".rotx: " & oCam.rotx.value

	LogMessage oCam & ".roty: " & oCam.roty.value

	LogMessage oCam & ".rotz: " & oCam.rotz.value

	LogMessage "camera kinematics scaling"

	oCam.sclx.value = oCam.sclx.value * 2

	oCam.scly.value = oCam.scly.value * 2

	oCam.sclz.value = oCam.sclz.value * 2

	LogMessage oCam & ".sclx: " & oCam.sclx.value

	LogMessage oCam & ".scly: " & oCam.scly.value

	LogMessage oCam & ".sclz: " & oCam.sclz.value

	LogMessage "camera kinematics constrained transfo"

	oCam.cnsscl.value = false

	oCam.cnsori.value = false

	oCam.cnspos.value = false

	LogMessage oCam & ".cnsscl: " & oCam.cnsscl.value

	LogMessage oCam & ".cnsori: " & oCam.cnsori.value

	LogMessage oCam & ".cnspos: " & oCam.cnspos.value

end sub

関連項目

CameraRig DirectedObject.Interest GetPrimCamera