用Maya表达式Fake背景

用Maya表达式Fake背景—连接贴图的摄像机
如图,如果把带有Alpha通道的树木的纹理贴到NURBS平面上,复制并摆放这些平面,可以很快的得到一片树林。使用这种方法可以很快的Fake出树林的背景。

但是问题随之而来,如果此时转动或移动摄像机,就会穿帮,因为树木是贴在一个NURBS平面上的,而不是真正的3维树木。即这些NURBS平面必须时刻正对着摄像机,才能保证场景的以假乱真。
如何让这些平面时刻正对着摄像机,即使移动旋转摄像机也不会穿帮呢?下面介绍制作方法。
执行Create | Cameras | Camera,创建一个新的摄像机,默认情况下该摄像机是在原点,不要移动摄像机,可在top视图菜单中执行Panels | Perspective | camera1,将top视图切换为摄像机视图。摆放NURBS平面,并查看摄像机视图中的最终结果,如图。

选择所有NURBS平面,按W键,激活移动工具,然后按Insert键,进入Pivot调整模式,如图。

按住x键不放,拖曳中键到原点,将这些NURBS面的Pivot都移动到原点,因为摄像机也在原点,所以此时所有NURBS面的Pivot与摄像机的Pivot重合,如图。

再次按下Insert键,进入普通的移动模式。选择NURBS面,查看他们的Pivot,应该都在原点。选择所有的NURBS面,执行Modify | Freeze Transformations,如图,将他们的变换参数都规零。

Freeze Transformations之后,这时你会发现所有的NURBS面的变换参数与摄像机的变换参数完全一样,对了,下面将使用表达式(Expression)建立摄像机与NURBS面的联系,使NURBS面跟随摄像机变换。
执行Window | Animation Editors | Expression Editor,如图,打开表达式编辑器。

假设某个NURBS面的名称为obj,而新建摄像机的名称默认为camera1,则在表达式编辑器中输入如下表达式:
obj.tx = camera1.tx;
obj.ty = camera1.ty;
obj.tz = camera1.tz;
obj.rx = camera1.rx;
obj.ry = camera1.ry;
obj.rz = camera1.rz;
即可使该NURBS面跟随摄像机运动了。
当然这里需要对每个NURBS面添加表达式。使用各个NURBS面的实际名称替换上面的obj即可,如图。

添加完表达式之后,移动旋转摄像机,发现这些NURBS面已经可以跟随摄像机变换了,并且时刻正对着摄像机,这正是我们要的效果。相当与我们把贴图与摄像机连接了起来,制作了多个Image Plane。

作者: hmaya

developer!

看完不过瘾?点此向作者提问

《用Maya表达式Fake背景》有3个想法

  1. 还真是,父子可能更简单。
    我本来要实现各个树都可以绕自己的轴旋转的效果,不过没想到办法。

发表评论

邮箱地址不会被公开。 必填项已用*标注