在Maya中进行Flipping Camera

zhangly 2021-11-23 16:02:04
Categories: > Tags:

前言

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

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

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

基本方法

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

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

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

脚本实现

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

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

# 选择你的摄像机,运行下面的代码
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.将所有物体包括摄像机打组

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

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

maya-flipping-camera-p5.jpg
4.先选择原始摄像机,再选择组外的mirror摄像机,进行约束操作

maya-flipping-camera-p6.jpg
5.将mirror的摄像机缩放数值设为1

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

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