CG游麟网官方站
查看: 4587|回复: 17

[人物教程] 【Maya】从原理上诠释三维动画技术1(模型篇)

[复制链接]

133

主题

174

帖子

2万

积分

苍生崇拜

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

麒麟币
25408
任务币
0
威望
15
贡献
453
主题
133
在线时间
28 小时

最佳新人忠实会员推广达人

发表于 2016-3-24 15:34:58 | 显示全部楼层 |阅读模式
【三维动画要素】
Three-Dimensional Animation,具有三种维度技术的动画,简称三维或3D动画。和另一个概念“3D立体电影”不同,三维动画是制作的技术范畴,而不是直接的视觉效果。三维动画设计固然需要一定艺术基础,但初学者也可以通过三维软件来反向学习基础的色彩、透视、构图、形体等。
无论是静帧还是动画,三维画面的原素均包含模型、材质、灯光、镜头,辅助的要素有骨骼动画、表达式控制、动力学特效、后期画面滤镜等。尽管以下将以maya为平台进行说明,但大部分原理也适用于其他三维软件。

6631201906118483283.jpg



模型篇
   【构成】

模型是三维动画最不可或缺的起步原素。计算机图形学中经常会用到的术语“矩阵”,简而言之,就是虚拟三维空间中的点。规定的三维空间中会存在一个零点坐标,它周围的点以XYZ坐标来表示方位,而这些点彼此之间可以连线形成线段;当不同的线段对接,就构成了三维线框结构--这就是三维模型的最原始形态。闭合的线段中间填补虚拟平面,于是三维结构有了体积。
6631362434816138773.jpg
模型由点线面(围绕零点的空间点,点连成的线段,线段围成的面)组成。
Maya中分NURBS(工业曲面)和Polygon(多边形)两种模型。这两者的本质同样都是三维线框构成,不同的是NURBS的点和点之间有曲线插值,可以通过重建曲面(RebuildSurface)做出无限圆滑的带弧度曲线,适合高精度的工业模具产品;而Polygon是两点直连,如果需要圆滑,则需要使用smooth(平滑)命令进行后期插值计算(会缩小模型),适合影视动画游戏的各种模型。同样显示级别,由于点插值的默认存在,NURBS会比Polygon更缓慢。
6630427849933142508.jpg

【尺寸】
三维空间是个矢量集合的区域,在软件自身限制下,模型是可以任意放大缩小的。以预设的软件长度单位为空间点坐标单位,可以精确规定模型的长宽高。maya默认以公制单位“厘米”为基本长度单位,场景中的模型的高度值也就是现实中的厘米高度。不过因为动画本身是种“后处理结果”,并不像工业建模那样必须精准的尺寸,所以软件的建议或者用户的习惯都可以改变默认的尺寸标准(maya的动力学系统是将厘米当做现实的米来用,容易和模型比例产生矛盾)。
仅以模型尺寸为例,maya中创建的基本几何体就是以厘米进行的。例如Sphere基本球体的Radius属性数值为1,就表示这是个半径为1厘米的球体;
6631245886583579214.jpg
  

cube基本方体的Width、Height、Depth为2,就表示这是个宽度、高度、深度分别为2厘米的长方体。
6631238190002203355.jpg

除了使用基本几何体做测量参考,也可以使用maya的测量工具来测量模型尺寸:
Create->MeasureTools->DistanceTool。不过在建模的时候,使用标准几何体的数值要比测量工具效率更高。
6631245886583579216.jpg
*maya场景默认的网格,一个方格的长宽为1厘米*1厘米。


【UVs】
除了自身结构和基本的材质效果,当我们要展现模型很丰富的纹理的时候,就需要UV贴图,例如带划痕的墙壁。
6631391022118460477.jpg
  

UV贴图其实也就是一张普通图片,经过软件的坐标映射,将这张二维图片在三维模型上呈现出来。UV贴图就好像一个物体的外包装。
6630571885957063172.jpg

因为XYZ已经用来表示三维坐标,二维贴图上的坐标就使用UV来替代XYU=XV=Y),而使用到四元数的时候还会增加一个W参数,所以通常也叫UVW贴图(3dsMax中的叫法)。
*UVWXYZ……很通俗简单的英文字母排序取名法。
UV只是一个坐标符号(NURBS中表示方向),maya将UV加上复数形式表示模型上的UV点,也就是UVsUVs指的是Polygon(多边形)特有的UV点,而NURBS(工业曲面)也存在UV点,只是在你将它转换为多边形之前,这个UV点集合是无法编辑的,仅作为贴图位置参考--不少人误以为NURBS没有UV点。
6630571885957063171.jpg
UVs在创建多边形的时候就一直依附于模型点上,一个模型点可以有无数个UVs,取决于UV线是否断开--UVs的数量是大于等于模型点。赋予模型贴图时,UVs应尽可能分布于第一象限(UV编辑器的右上方区域),这样在绘制贴图和导出到其他程序的时候不容易出错;如果使用重复(四方连续)贴图,UVs则可以任意遍布。当一个模型上使用了多重纹理,也就是多个贴图的时候,根据需要我们还可以创建UV Set(UV集),用来管理模型上不同的UV贴图。例如一个重复纹理的墙面贴上一张小广告插画。
6630235435398277536.jpg

对UV偏移值设置关键帧可以制作有趣的贴图动画,常见于游戏的广告牌、河流、瀑布、坦克履带等。
6630693931747743734.jpg
【贴图映射】
先简单区分一些英文术语:
Shader(材质),Texture(纹理),Map(贴图),Image(图片),Bitmap(位图)。
[Shader]
材质通俗的说也就是材料,它表现出显而易见的视觉特征,例如:闪亮的金属器皿,潮湿的泥土,生锈的铁器,炽热的熔岩,腐烂的树皮等。也就是说材质本身是一种可形容的物体。
6630281614886644880.jpg 6631301961676611993.jpg


[Texture]
纹理是物体表面的纹路,它不是具体的物体,而表示一类特征,可强化材质的表现。例如同样质地的木板上不同风格的木纹,人物不同的皮肤,墙面不同的破损等。
6631384425048701378.jpg


[Map]
本意是地图,Mapping有映射绘制的含义,因此Map可以认为是有针对用途的具体图片,它在maya中是服务于模型渲染的。
6630173862747123598.jpg


[Image]
计算机上的图片通称,它可以是通常的jpg,bmp,png,GIF格式,也可以是HDRI,EXR,IFF等包含特殊信息的专有格式。
6630763200980295419.jpg
   [Bitmap]
位图也称点阵图像,用来解释图片的像素组成。事实上多数计算机图片都是位图,因为Vector(矢量图)需要专门软件处理。BMP是无损的位图,而jpg,png等是经过压缩的位图。
6630761001957039892.jpg

以maya的惯例来说,Shader和Texture使用频率较高。前者是必不可少的构成,后者通常指所有附加到材质上的纹理贴图(含程序纹理和外部图片)。Map和Image一般只有在展UV和贴图赋予的操作步骤中才会提到。
6630605970817508907.jpg

在maya中纹理分为2D纹理和3D纹理,前者依赖于模型UVs的分布情况,而后者是直接在填充于三维空间中的函数图形,效果直接显示在模型表面。2D纹理使用较为广泛,包含外部的图片和软件的程序纹理;3D纹理是maya内置程序纹理,用于一些三维特效的细节辅助,如烟尘飘动、天空云彩分布、导弹尾烟等。
6631424007467288919.jpg

maya中创建3D纹理时候场景会多出一个方块图标,可用于控制纹理的朝向和运动。
6630461934793604899.jpg

如果使用2D纹理的时候选择投影模式(纹理图标上右键:Create as projection),也可以忽略模型UVs将平面贴图应用于三维投影。
6630830271189590875.jpg
  贴图的投影方式有平面Planar、可调球形Spherical、圆柱体Cylindrical、圆球Ball、立方体Cubic等,由模型的外轮廓或者用户特殊的贴图需要进行更改。
6630464133816860465.jpg

无论2D纹理还是3D纹理,投影模式如果在动画模型上使用,很容易发生纹理偏移,并且显示效果较难控制。
   6630283813909900431.jpg 6630862157026795975.jpg
  

这里仅介绍2D贴图的UV映射。
将模型的UVs进行分割缝合伸展移动,就是展UV的工作。不管采用何种初始UV映射,在UV编辑器中的操作效果都是一样的,这个由用户的习惯和技巧决定。Maya2015后新增的Unfold3D展UV插件,极大的提高了工作效率。
*Unfold3D原是独立的外部模型UV展开软件,被Autodesk收购后成为maya的内置功能。
展UV常有这样的规则:平均分布,无重叠面和反面。除了显示正反面(蓝色正面红色反面),我们还可以在maya的UV 编辑器中查看UV的伸展情况:白色表示范围内贴图匹配图片尺寸(合理),红色表示范围内贴图将被拉伸(模糊),蓝色表示范围内贴图将被压缩(锐化)。
6630411357258725890.jpg
  不过很多时候,我们可以根据细节要求,将模型上的UV进行不对等缩放,也可以在某些不需要在意的地方随意处理UV,甚至游戏中为了节省贴图容量而采用重叠使用的UV布线。大致上,除了平均分布,我们很多时候需要在意的是UV接缝--断开UVs区域的贴图连续性。UV接缝常分布在模型隐蔽处,例如人物头部模型的后脑中间,大腿模型的内侧中线等,这样做是为了减少后期贴图绘制时候的工作量,尽可能的减少接缝对模型贴图效果的不良影响。
6630699429305882600.jpg

【明暗关系】
没有灯光我们是看不到三维场景中的模型的,之所以能在maya默认视图中看到模型的明暗,那是因为软件默认就提供了一个和摄像机同方向的平行光,这个默认灯光会在加入新的灯光后自动关闭,避免影响渲染结果。
*如果渲染时完全不考虑默认灯光的影响,可以在渲染设置窗口的RenderOptions栏去掉EnableDefaultLight的勾选。
模型的面是如何计算出光照的明暗效果呢,于是引入一个数学概念:法线。数学中的法线指的就是平面的垂直虚线,对于圆弧曲面是垂直于点切线的直线。在计算机图形技术中,除了面,每个顶点也具有法线向量,并且法线是以射线的几何概念存在。因此,Maya中,法线分为面法线顶点法线两种,并且由射线的朝向来区分正反方向。
三维软件中的灯光就是数学上的射线(光源点+发射的光线),当它无限延伸的一端接触到模型表面,会类似物理上光在平面上的吸收和反射,将模型表面照亮。
6630537801095920653.jpg
在视图菜单上,不勾选Lighting->TwoSidedLighting,场景中的模型反面(法线负方向)以黑色显示。我们可以通过这个设定来判断模型面的正反。
6630511412816855691.jpg
*模型面的正反不只影响建模命令的效果,还和一些材质的渲染效果、特效中粒子的碰撞有关。

有别于现实的物理反射(法线始终垂直反射面),由于三维灯光是根据模型表面的法线方向来判断材质照明的,我们可以在软件中人为的改变法线朝向而“欺骗”灯光对物体表面的判断。因此Maya中对模型执行SoftenEdge(软化边)命令后,在材质和灯光的作用下模型会显示出柔和的过渡。
创建一个基本多边形球体,执行MeshDisplay->HardenEdge(硬化边),我们会发现此时的模型棱角分明,不那么讨喜。事实上,这才是模型真正的初始法线形态,软件默认帮我们进行“美化”而已。
*Maya2015及早期版本的HardenEdge命令在Polygons多边形模块的Normals菜单下。
6631277772420795998.jpg
  菜单Display->Polygon->FaceNormals/VertexNormals,显示模型的面和顶点法线。面法线是由组成它的点的空间分布决定,和顶点法线朝向无关;而一个点上有4根线段相连,所以有4条方向不同的顶点法线。执行SoftenEdge(软化边)后,会发现和点连接的所有线段的法线都统一了方向,这是多条顶点法线均值后的结果。此时模型表面也变得圆滑了很多。
*Display->Polygon->Soft/HardEdges,显示模型的软硬边分布情况:虚线是软边,实线是硬边。
6630478427468019586.jpg

“软边”虽然能给模型效果增色,但是并非什么情况都适用:当面和面之间夹角不大于90度,“软边”会产生一种错误的亮部,模型失去转折处的细节。小于等于90度夹角的面,需要增加线来均摊顶点法线的夹角,至少保持两线以上。
6631245886583579258.jpg
  maya可以选择模型局部线条进行软化,但不推荐使用更改法线工具自行调节,因为容易出现不正确的灯光效果。此外,还可以对多边形法线进行锁定以防止更改。
*不小心使用VertexNormalEditTool的时候,会同时锁定法线(LockNormals),需要解锁法线(UnlockNormals)才能使用硬边和软边修正。
游戏模型通常使用整体“软边”,当遇到需要锐利的转折,例如刀刃,通常的做法是从线条处分割模型,因为模型的边界边(BorderEdges)就是硬边。现在很多游戏引擎也可直接支持模型上的软硬边划分。
*3dsMax中的SmoothingGroups(平滑组)相当于maya的SoftenEdge(软边)。
6630412456770353653.jpg

为了深入解释上述现象--模型法线对灯光和材质的影响,这里顺便提到两个技术概念:
平面着色(FlatShading)顶点着色(GouraudShading)
所谓着色,并不是我们通常所理解的贴图显示,而是模型各顶点色调的融合结果--也就是由材质色彩和灯光作用后得到的计算值,UV贴图只是后期的叠加辅助。平面着色时一个面上只有一种材质色彩,模型表面会呈现不同的纯色块,灯光的高亮点在模型上呈现出锐利的边界;顶点着色通过点之间的色彩线性插值,可以平滑多个面之间的色彩过渡,柔和灯光的强弱渐变,不过计算速度慢于平面着色。
*平面着色和顶点着色的平滑效果对比,有点像多边形和工业曲面的区别。
Maya视图看到的模型实时材质效果,属于顶点着色(Shading->SmoothShadeAll)。如果选择视图菜单Shading->FlatShadeALL,则是将全部可见模型转为平面着色显示。
6630682936631466029.jpg
  对于模型自身来说,顶点法线是平面着色和顶点着色的切换关键:平行于面法线的顶点法线不产生插值,硬边模型实时效果采用平面着色;均值化(不平行于面法线)的顶点法线,通过线性插值平滑色彩,因此软边模型实时效果采用的是顶点着色
从以下图示可以看出“硬边(法线垂直面)”和“软边(法线均值化)”对照明的影响。
6630178260793634702.jpg

【总结】
三维模型由这些要素构成:点线面,UVs,法线。对以上基础概念有了清晰认识之后,接下来材质灯光内容的学习将会很容易。

作者:

楼主热帖
回复

使用道具 举报

0

主题

475

帖子

654

积分

声名鹊起

Rank: 4

麒麟币
167
任务币
70
威望
0
贡献
0
主题
0
在线时间
78 小时
发表于 2016-3-24 16:41:29 | 显示全部楼层
CG游麟网真是个很好的学习天堂!
回复 支持 反对

使用道具 举报

18

主题

6000

帖子

1万

积分

蜚声中外

Rank: 13Rank: 13Rank: 13Rank: 13

麒麟币
12781
任务币
441
威望
3
贡献
353
主题
18
在线时间
783 小时

最佳新人忠实会员推广达人论坛元老

QQ
发表于 2016-3-25 10:04:24 | 显示全部楼层
神贴降临,吓死本宝宝了!
回复 支持 反对

使用道具 举报

0

主题

4867

帖子

1万

积分

蜚声中外

Rank: 13Rank: 13Rank: 13Rank: 13

麒麟币
12539
任务币
0
威望
0
贡献
0
主题
0
在线时间
305 小时
发表于 2016-3-25 13:44:02 | 显示全部楼层
棒棒的,感谢楼主分享。
回复 支持 反对

使用道具 举报

23

主题

1万

帖子

3万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
14932
任务币
400
威望
0
贡献
1213
主题
23
在线时间
1499 小时

最佳新人忠实会员

发表于 2016-3-26 09:41:49 | 显示全部楼层
CG游麟网真是个很好的学习天堂!
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

3万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
21764
任务币
359
威望
2
贡献
131
主题
0
在线时间
754 小时

忠实会员

发表于 2016-4-3 23:53:21 | 显示全部楼层
感謝分享這麼好的資源!
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

3万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
21764
任务币
359
威望
2
贡献
131
主题
0
在线时间
754 小时

忠实会员

发表于 2016-4-7 14:43:16 | 显示全部楼层
常常吸取前輩的實務經驗才能增長自己的實力!
回复 支持 反对

使用道具 举报

2

主题

2万

帖子

3万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
3788
任务币
70
威望
1
贡献
18
主题
2
在线时间
666 小时
发表于 2016-4-12 10:31:58 | 显示全部楼层
太棒了,感谢楼主
回复 支持 反对

使用道具 举报

2

主题

2万

帖子

3万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
3788
任务币
70
威望
1
贡献
18
主题
2
在线时间
666 小时
发表于 2016-4-12 10:33:22 | 显示全部楼层
太棒了,感谢楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
客服QQ:
47413829
新QQ群:
418757022
在线时间:周一至周五
9:00-22:00 Email:
47413829@qq.com
举报:网盘资源失效
在线客服
快速回复 返回顶部 返回列表