Python Reference Guide
 
Loading...
Searching...
No Matches
Samples\Camera\CameraSwitcher.py
1# Copyright 2009 Autodesk, Inc. All rights reserved.
2# Use of this software is subject to the terms of the Autodesk license agreement
3# provided at the time of installation or download, or which otherwise accompanies
4# this software in either electronic or hard copy form.
5#
6# Script description:
7# Show the usage of CameraSwitcher
8#
9# Topic:FBCameraSwitcher, FBCamera, FBTime, FBRenderer, FBVector3d, FBPlayerControl, FBSystem
10#
11
12from pyfbsdk import *
13import os
14
15FBApplication().FileNew()
16filepath = os.path.abspath( os.path.join( os.getcwd(), "../Camera/camera_switcher.fbx" ) )
17print(filepath)
18print(FBApplication().FileOpen(filepath, False))
19FBSystem().Renderer.Render()
20
21'''
22
23
241. For FBSystem().Scene.Renderer's camera setting for panes:
25
26 FBSystem().Scene.Renderer.SetCameraSwitcherInPane()
27 FBSystem().Scene.Renderer.IsCameraSwitcherInPane()
28 FBSystem().Scene.Renderer.SetCameraInPane()
29 FBSystem().Scene.Renderer.GetCameraInPane()
30 FBCameraSwitcher().CurrentCamera
31
32'''
33FBSystem().Scene.Renderer.SetCameraSwitcherInPane( 0, True )
34FBSystem().Renderer.Render()
35
36FBPlayerControl().Goto(FBTime(0, 0, 0, 30))
37FBSystem().Renderer.Render()
38print(FBSystem().Scene.Renderer.IsCameraSwitcherInPane(0)) # True
39print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera 1
40print(FBCameraSwitcher().CurrentCamera.Name) # Camera 1
41
42FBSystem().Scene.Renderer.SetCameraSwitcherInPane( 0, False )
43FBSystem().Renderer.Render()
44print(FBSystem().Scene.Renderer.IsCameraSwitcherInPane(0)) # False
45print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera 1
46print(FBCameraSwitcher().CurrentCamera.Name) # Camera 1
47
48FBPlayerControl().Goto(FBTime(0, 0, 0, 60))
49FBSystem().Scene.Renderer.SetCameraSwitcherInPane( 0, True )
50FBSystem().Renderer.Render()
51print(FBSystem().Scene.Renderer.IsCameraSwitcherInPane(0)) # True
52print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera 2
53print(FBCameraSwitcher().CurrentCamera.Name) # Camera 2
54
55camera = FBSystem().Scene.Cameras[7]
56print(camera.Name) # Camera
57FBSystem().Scene.Renderer.SetCameraInPane( camera, 0 ) # use Camera Switcher
58print(FBSystem().Scene.Renderer.IsCameraSwitcherInPane(0)) # False
59print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera
60print(FBCameraSwitcher().CurrentCamera.Name) # Camera 2
61
62FBSystem().Scene.Renderer.SetCameraSwitcherInPane( 0, False ) # use Camera
63FBSystem().Renderer.Render()
64print(FBSystem().Scene.Renderer.IsCameraSwitcherInPane(0)) # False
65print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera
66print(FBCameraSwitcher().CurrentCamera.Name) # Camera 2
67
68
69
70'''
71
722. For FBCameraSwitcher and its 2 modes: manual vs. evaluate
73
74 FBCameraSwitcher().CurrentCamera
75 FBCameraSwitcher().CurrentCameraIndex
76 FBCameraSwitcher().UseEvaluateSwitch()
77
78'''
79
80FBSystem().Scene.Renderer.SetCameraSwitcherInPane( 0, True ) # use Camera Switcher
81FBSystem().Renderer.Render() # render
82print(FBCameraSwitcher().CurrentCamera.Name) # Camera 2
83print(FBCameraSwitcher().CurrentCameraIndex) # 3, time point to the 3rd camera in CS
84print(FBSystem().Scene.Renderer.IsCameraSwitcherInPane(0)) # True
85print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera 2
86
87camera = FBSystem().Scene.Cameras[7]
88print(camera.Name) # Camera
89FBCameraSwitcher().CurrentCamera = camera # go to manual mode
90FBSystem().Renderer.Render() # render
91print(FBCameraSwitcher().CurrentCamera.Name) # Camera
92print(FBCameraSwitcher().CurrentCameraIndex) # 3, time point to the 3rd camera in CS
93print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera, GetCameraInPane return camera switcher's current camera
94
95FBPlayerControl().Goto(FBTime(0, 0, 0, 30)) # move to Camera 1
96FBSystem().Renderer.Render() # render
97print(FBCameraSwitcher().CurrentCamera.Name) # Camera, in manual mode
98print(FBCameraSwitcher().CurrentCameraIndex) # 2, time point to the 2nd camera in CS
99print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera, in manual mode
100
101FBCameraSwitcher().UseEvaluateSwitch() # go to evaluate mode
102FBSystem().Renderer.Render() # render.
103print(FBCameraSwitcher().CurrentCamera.Name) # Camera for running script. Camera 1 for manual execute. Known issue.
104print(FBCameraSwitcher().CurrentCameraIndex) # 2, time point to the 2nd camera in CS
105print(FBSystem().Scene.Renderer.GetCameraInPane(0).Name) # Camera for running script. Camera 1 for manual execute. Known issue.
106
107
FBApplication is used mainly to manage files.
Definition: pyfbsdk_generated.h:801
Camera switcher.
Definition: pyfbsdk_generated.h:2918
Player control.
Definition: pyfbsdk_generated.h:13745
Provides access to the underlying system, and the MotionBuilder scene.
Definition: pyfbsdk_generated.h:18771
Time data structure.
Definition: pyfbsdk_generated.h:19596