添加一条路径并放在合适的位置
Add - Curve - Circle
设置旋转中心
Add - Empty - Plain axes
也可以设置为某个物体,设置一个empty更加自由
把相机固定在轨迹和中心上
选中Camera
- 首先把Camera的参数归零归一:Object - Transform - Location/Rotation归零,Scale归一
- Constraints - Add Object Constraint - Follow Path
Target选择BezierCircle,Forward Axis选Y,Up Axis选Z,勾上Follow Curve
可以调整Offset来控制camera旋转,也可以直接下方动画播放;动画播放速度调整是在:选中当前这个Circle - Data - Frames调整大小 - Constraints - Add Object Constraint - Damped Track
Target设置为empty,Track Axis为-Z
这里要用Damped Track,不清楚原理,但是用其他track都会导致相机转180度就上下翻转一次
导出相机轨迹位姿
simple script as follows:
import bpy
import numpy as np
scene = bpy.context.scene
cam = bpy.context.scene.camera
matrices = []
if cam is not None and cam.type == 'CAMERA':
for frame in range(scene.frame_start, scene.frame_end + 1):
scene.frame_set(frame)
bpy.context.view_layer.update()
bpy.context.evaluated_depsgraph_get().update()
matrix = cam.matrix_world.copy()
matrices.append(np.array(matrix))
np.save('to/path', matrices)
然后根据需要的任务对该外参矩阵进行一些调整