一般情况下,动画网格直接接受纹理贴图没有什么大碍。但是对于用subdivision emulation技术创建的平滑多边形网格的纹理,要完全控制或者生成动画,就要用到复制纹理的方法。原因是当纹理坐标被指定给一个平滑物体时,默认情况下Maya优先接受纹理贴图,而不是平滑功能。
Maya假定:大多数情况下,需要的是直接把未平滑的网格直接与平滑的多边形物体绑定,这样就避免了处理大量多边形时的性能的降低和复杂的皮肤问题。在进行动画和平滑处理以前,纹理坐标信息已经被接受,这样就避免了形状改变时,纹理在网格上的游移。
但是,这也意味着:纹理坐标只是为低精度网格而创建,而不能精确表达实际的纹理情形。这里我们要做的就是复制一个可以接受所有纹理信息的平滑图形。一旦纹理坐标建立以后,就可以容易的从复制物体上把它们传递到实际的平滑表面上去,而不会在动画中出现游移。
第一步,创建一个纹理参照物体。选择smoothed mesh并用Edit->Duplicate工具复制出一个物体,把复制出的物体沿X轴移开一段距离,以免与原来的混淆。
然后,选择texture projection method,因为头的最重要的部分是前面,后面和侧面,这里我们选Cylindrical Projection工具。(Edit Polygons-> Textures-> Cylindrical Mapping)。
当使用Cylindrical贴图方式的时候,最好选上“Seam Crrect”选项,这样效果更好些。
为了看起来清楚,这里我用了棋盘格贴图。
上面是未修正的,下面是修正以后的。
但是我们看到,修正以后效果仍然不是很令人满意,我们还需要手动调节一下UV坐标。打开结构视窗(Panels-> Panel-> Texture View)。
首先,我们看到,UV超出了物体的实际边界。
用Image -> Display Image会看的更清楚。
在网格上单击右键,弹出窗口中选择UV,选取不正确的UV坐标轴...
用移动工具移动到合适的位置(热键W)。
也可以调节UV坐标重叠的区域。可以用手动调整,也可以用Maya的Relax工具(Edit Polygons -> Texture -> Relax UVs)。上面是调整前,下面是调整后(耳朵)。
有些很难选取的地方(例如嘴的内侧),可能需要附加的或者完全分离的材质。这就要用到Maya的独立选取工具Isolate Selection tool (Show-> Isolate Select-> View Selected)
。
建议在调节完成以后,删除物体纹理的历史记录,因为如果不删除,可能偶尔出现所作的调整会丢失的现象。
2D纹理贴图制作好以后,纹理文件可以被链接到任何channel上。过程是创建材质(例如:Create-> Materials-> Lambert),然后单击checkerboard按钮,从2D纹理菜单中选取一个文件,把新创建的纹理文件与材质链接在一起。
最后一步,用Polygons-> Transfer工具把UV坐标从参照物传送到最初的平滑网格中去,如下图所示:
由于这样只是传送了贴图信息,而没有传递材质信息。选取脸,在合适的材质上单击右键,从下拉菜单中选Assign Material to Selected。
这样就完成了。