
作者:Benjamin Duk
职业:自由艺术家
国家:南非
生日:05/1972
自我介绍:02/1982
介绍:
"Beren"头部和头盔的创意最初是我妹妹想出来的,之后我又进行了重新的设计,然后请我的好朋友 Michael Smith 设计了剩下的部分。
这个作品主要想表现 Beren 同 Mech(机械师)战斗场面,同时也是为了锻炼我的3D WIP 部分。Mech 的设计是由 Corlen Kruger 制作的。我的目标是30秒的战斗场景,不过 Mech 和场景正在制作中,因此还要过很长一段时间才可以。Beren 是我的迷你短片的角色之一,我希望能够找一个公司帮我完成它,靠我一个人的力量是不太可能,要花的时间太长了。
Beren 的制作从开始到结束花了我大约5个月的时间,每天4-5个小时。如果我在家全力以赴的话,也许1-2个月就可以完成了。
在这篇介绍中我尽量照顾到每个部分,包括从开始的设计到结束,及我用到的一些方法和技巧。希望能够对你有所帮助。

建模
我现在来介绍一下 Beren 的建模方法,如果你是一个 3d 新手,请看一下我下面介绍的几种建模方式的分析,或许能解决你的困惑。
·方法A:从"basic shape"(基本物体)开始,比如球体或立方体,然后使用 FFD/Lattices、Bend、Twist、Squash 等简单的修改器进行变形处理。
·方法B:Sub-Division Modeling(细分建模),从基本物体如立方体开始,通过 Bevel、Cut 及 Extrude 工具塑造模型。
·方法C:Patch modeling(面片建模)。一项伟大的技术,不过已经落后了。它使用3或4个点来生成一个面,通过面上的曲线来控制形状,有利于观察模型的正确形状。但缺点就是在制作耳朵眼睛等复杂部分的时候,贝泽尔曲线的手柄非常不好控制。
·方法D:这是最后的方法,也是我最长用到的:结合 Patch Modeling 和 Sub-Division(译者注:其实就是常用的从局部到整体的多边形建模方式,方法B就是从整体到局部的多边形建模方式)。在多边形模式下通过挤出边来建模,就好像是在用 patch,这种方法非常的强大灵活,可以快速达到你想要得效果。


我认为要制作一个好模型的关键就是注意观察,如果你注意到了每一处细节,你的模型就会非常的精确和生动。
我从 Beren 的头部开始建模,先做一侧然后以 reference 方式沿 X 轴镜像,调整完毕后再将中线的点合并。通常3d制作的物体都太过于"完美",而人体左右总是会有一些区别,因此我们要再做出一些模型的不对称性,使其更真实自然。
头部的模型非常复杂,因此我使用了方法D,从眼睛开始,向外挤出边,并从各个角度观察调整。确保主要变形的部分由四边形构成。这对于模型的绑定、动画和光滑都非常重要。主要动画部分是指靠近关节处的部分,面部经常运动的部分比如嘴、眼等。图中我的角色模型就是使用的四边形,虽然会使网格线复杂一些,但是确实有好处。
眼睛周围的布线应该更密集一些,这样能使它有更丰富的表现。先制作好眼球再以其为基础调整眼眶,注意两者的面不要相交。另外牙齿一定要摆对位置。我曾经有一次整个头部都做好之后,牙齿怎么放都不合适,就因为嘴部有一点问题,这个模型就"笑"不出来了。
我还制作了口腔和食道来模拟嘴里正确的光线环境。Beren 是一个小孩,他的特征就是鼻子和嘴不是特别突出。一个人要到十几岁的时候才会表现出明显的面部特征,在成年后定形。
手部的建模相对比较简单,值得注意的就是指关节的皱褶。我使用的是方法B(记住建模没有捷径,只有更适合更有效的方法),从一个 box 开始,先细分,然后切割、倒角,再挤出手指,手指不是笔直的,记得要让它们保持一个自然的弯曲状态。



我使用沿曲线放样的方法来制作 Beren 的身上缠绕着那些藤蔓植物。我使用这种方法的理由很简单:便于贴图。当你放样时,会有一个沿路径创建UV坐标的选项,这样无论你怎么弯曲曲线都没有关系。同时还可以省却你建模后再打开模型制作 UVW 贴图的烦恼,这一点非常有用!


UVW 贴图
对我来说也许是最难得部分,因为这我是第一次使用 UVW Unwrap 和 Photoshop 来制作大项目。
我喜欢按部就班的作事情,因此在进入 Photoshop 之前,我先制作好了所有网格的 UV 坐标。对于一些 UVW Unwrap 中难以摆放的网格,我做了多种尝试,并找到了一种适合我的方法。


首先要确保文理没有拉伸。最好的方法就是使用棋盘格纹理来进行检测。
Beren 是一个高多边形模型,为了加快查看速度,你可以把 Meshsmooth 在视图区的光滑选项关闭。
另外我会在 Meshsmooth 之前先添加 UVW Unwrap 修改器来加快运行速度。比如手部,我先对正反面使用一个平面贴图,再添加 UVW Unwrap,然后调整那些挤在一起的 UV 坐标。有时我还会使用 UVW Unwrap 选项中的 relax 功能。
纹理
UV 点制作好后,就开始 Photoshop 的环节了。在导出 UVW 贴图之前,我还要先安排好不同物体的不同纹理,对于相同纹理的不同物体,我尽量单独为它们分配材质,这样可以让不同物体使用同一张贴图。调整好之后,使用 Texporter 导出 UVW 纹理贴图。导入到 Photoshop 后,在图层混合选项中选择 Screen 模式,就好像是你纹理的一个模板。

高多边形和低多边形纹理的制作方式有很大的区别。在低多边形贴图中你需要在一张贴图上制作出高光、漫反射、凹凸和阴影(除非游戏引擎支持高光和凹凸贴图)。高多边形纹理的制作方式要更加的多样和灵活。比如在 Beren 中,我就对不同部分的贴图使用了最多5种纹理,包括 Diffuse、Specular、Bump、Reflection,有时还用到 Displacement 贴图。这样很容易就会吃光你的内存,因此我不得不在动画时降低贴图的分辨率。大部分的纹理我都使用照片作为基础,然后再在上面添加一些细节,并通过混合不同的层来达到想要得效果。



绑定
Beren 的绑定并不复杂,只是有些地方比较花时间而已。我选择使用了 CAT 的 Bipe,因为我觉得 CAT 的系统更加适合我的角色。
骨骼的位置和尺寸非常重要,尽量让它们靠近你的模型表面。比如肩部,确保你的关节放置在模型肩膀要旋转的地方,这将为你之后的编辑带来很大的便利。


在调整之前,将你的模型或多或少摆出一定的姿势,这样在绑定后骨骼会自动朝向正确的方向旋转。比如胳膊向下45度,两腿稍稍分开。
Skin Modifier(皮肤修改器)
我发现 Skin 比 Physique 更适合高多边形模型来使用,同时 Skin 还有一些 Physique 没有的好处。
如果你的模型是一个整体的网格表面并添加好所有骨骼后,Skin 的速度会变得比较慢。这是因为 Skin 通常会将与骨骼不接近的点也一同包含进去计算。我的解决方法就是将角色的关键部分分割出来,并单独添加骨骼控制,这样可以加快视图区浏览速度,并避免了排除点的繁琐操作。
我只在容易出现问题的区域如脚腕和手腕的部位调整 envelope(包络),如果你想进行全方位的控制的话,就需要使用 Weight Table(权重画板)这个工具。在 Beren 的膝盖区域,我手动选择了每一行点并为它们添加权重值。听起来好像挺难,其实只是花点时间而已。

手指部分我选择每个骨骼并排除掉不应该影响到的点,你还可以使用不同的 Angle Deformer(角度边形器)来达到更精确的效果。
我在脚踝、膝盖、肘部、手腕和胃部使用了 Joint Angle Deformer,而肩膀不得不用 Morph Angle Deformer 来代替。这是因为这些变形晶格(Lattice)是 Parent Dependant(父级物体的从属),也就是说晶格会使用父级骨骼的角度。比如肩膀不能使用 Joint Angle Deformer 是因为晶格会采用和锁骨相同的当前角度,而不能进行正确的边形编辑。
至于 Beren 的盔甲则很简单,只要把它们连接到相应的骨骼上就行了。
动画
一旦建模、贴图和绑定全部完成后,我得以开始最喜欢的动画部分的制作。另外我还总结了动画中常用到的几个基本法则:时间、重力、预先动作和平衡。
·时间:角色运动的精确速度
·重力:使角色有重量的感觉。比如在起跳前,角色会先下蹲和弯曲膝盖进行蓄力。
·预先动作:通常在运动之前身体会有一个准备动作。比如起跳前你的身体会向下弯并向前探出一点。
·平衡:这是身体运动时的一种本能,比如你用一条腿站立,身子向前弯曲,你的另一条腿就会向后伸出来保持平衡。
·动画有两种类型:Primary 和 Secondary(主要动作和次要动作)
次要动作是评判动画师好坏的关键。比如手指的运动,手腕的旋转,眨眼等都是次要动作。
在制作动画时,在添加次要动作前,我先要确定主要动作时间的正确性。我使用 Animation Preview/Playblast 来进行测试,而不是直接在视图区观看。这是因为视图区的实时回放会受到模型网格数量、cpu 速度等客观因素的影响,效果并不准确。然后我再开始添加次要动作是角色更加生动。
在制作动画的过程中,当我用尽全力而做不出正确效果的时候,我会选择从头再来。这样我就可以更清楚地发现之前犯的错误并有所收获。


布料模拟
我不能一人独占布料模拟的功劳,因为这是我的好朋友 Henk 帮我调整出来的出色效果。我只需针对动画中的某些部分做一些特定的设置就行了。下面我就来分享一下我在制作过程中学到的东西。
Beren 的布料模拟使用的是 Reactor Cloth。在调整的时候,一次最好只改变一个参数,然后进行模拟计算,这样才能清楚的了解每个参数改变的效果。
我下调了一点 collision tolerance (碰撞限度)来降低碰撞发生的距离。设置这个值需要注意的是一定要避免物体间的互相贯穿现象,比如布料会穿透另一个物体。
我使用 Deforming Mesh Collection 来使布料跟随物体运动。先为运动的物体添加 DMC,然后选择布料物体需要进行约束的点,然后点击 attach 连接到变形网格上。
对于盔甲物体我使用 Rigid Body Collection。为了得到更精确的碰撞效果,你必须打开 Reactor 的 Property Editor 来设置刚体和变形物体的属性。它的默认值设为 Mesh Convex Hull,适合没有洞或凹槽的实体模型,对于像 Beren 的护手这种物体来说,应该改为 Concave Mesh。
灯光
我使用 HDRI 照明。HDR 图像能够在图片中存储照明信息,使用这种方法能够得到更接近真实世界的照明效果。我的设置方法如下。
在 Environment 面板中,选择你想要的 HDR 图片,但不要点击 open,而是 setup 按钮。拖动 White Point 滑竿来消除紫边然后点击OK并记下它的值。打开 Material Editor 将图片从环境贴图拖放到一个空材质上,并设置复制方式为 instance。在 Mapping 下拉菜单中,将 Screen 改为 Spherical Environment。在 Output 部分将之前记下的值插入到 RGB Level 中。
我使用1 个Brazil 矩形面光灯用于额外的照明和产生柔和的阴影。2 盏聚光灯用于为角色的一侧提供更大的亮度。特定的物体比如眼睛需要从某些灯光中排除,不然就太亮了。1盏泛光灯作为填充光照亮角色的背面。
在面光灯选项中,我分别尝试了 RGB 和 HDR 两个选项。HDR 能够提供更真实的效果,但渲染时间也更长。RGB 的阴影更亮一些,而且有时会不清楚。另外我还调整了 Max Error %,这个值同样能够影响阴影的精确度。
渲染
我使用 Brazil 1.2 进行渲染,在 Image Sampling 中我使用 1 Min Sample 和 2 Max Samples。
在 Exposure Control 里,我将曝光度设为 0.8。因为场景过亮,所以我通过下调曝光值来降低场景亮度。
在 Luma 设置里,我在 Direct Illumination 中使用一个 Sky Light,并激活 Indirect Illumination。另外Beren 的叶子使用了 Sub Surface Scattering。在Sky Light 的设置选项中我选中 Use Environment Settings 并将 Color 设为1。
作者网站 www.spikeybox.com