在Maya中进行Flipping Camera

前言

视效制作中,在完成Camera Tracking后,可能会被告知:“素材进行了翻转处理”。然后丢给你一个镜像后的素材,并要求你重新进行Tracking。

翻转素材一般有两种情况:

  • 基于x轴镜像
  • 基于y轴镜像

    对于这样的镜头,不用重新再做一遍Tracking,只需要在Maya里进行一些处理就可以了。

这篇文章主要是讲如何让摄像机和场景物体匹配上翻转后的素材。

基本方法

1.对于x轴翻转的,将摄像机的ty,rx,rz轴的数值设为其相反数。

2.对于y轴翻转的,将摄像机的tx,ry,rz轴的数值设为其相反数。

3.最后把场景中其它物体(不要摄像机)打组,以原点为中心缩放-1的数值。(如果是x轴翻转,缩放y轴;如果是y轴翻转,缩放x轴)

脚本实现

上述最麻烦了的就是对摄像机进行操作,因为如果手动的去修改每一帧数值会非常繁琐。

通常这样的问题可以交给代码来处理。

1
2
3
4
5
6
7
8
9
10
11
# 选择你的摄像机,运行下面的代码
import pymel.core as pm

cam = pm.ls(sl=1)[0]
start_t = int(pm.playbackOptions(q=1, min=1))
end_t = int(pm.playbackOptions(q=1, max=1))

for t in range(start_t, end_t+1):
pm.currentTime(t)
for attr in ('tx', 'ry', 'rz'): # 基于y轴的翻转
cam.attr(attr).set(-(cam.attr(attr).get()))

当然除去使用脚本,我们也可以用约束的方法,手动实现翻转摄像机的效果。

手动实现

这里以y轴翻转为例

1.将所有物体包括摄像机打组

2.在组上将y轴的数值改成-1(基于y轴的翻转)

3.将原始的摄像机ctrl+d复制一份,提出组外,为了方便区分重命名为Cam_mirror_y

4.先选择原始摄像机,再选择组外的mirror摄像机,进行约束操作

5.将mirror的摄像机缩放数值设为1

6.选择mirror摄像机的constraint节点,修改offset rotate x的旋转为-180

7.这个时候将mirror摄像机替换翻转后的素材,可以看到已经实现了摄像机翻转的操作。最后就是烘培mirror摄像机的动画,删除constraint节点。将所有物体提出组就好了。