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 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 GetAllShaders GetBoundingBox
GetICEAttributeFromName GetLocalPropertyFromName GetModels2 GetPropertyFromName
GetShaderInputType GetStaticKinematicStateオペレータ HasStaticKinematicStateオペレータ IsA
IsAnimated2 IsClassOfオペレータ IsEqualToオペレータ IsKindOf
IsLockedオペレータ IsNodeAnimated IsSelectedオペレータ LockOwners
NodeAnimatedParameters RemoveChild RemoveFromParent 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