用户名 密    码

Unreal动画教程:怎样使用UE3引擎制作动画(5)

来源:火星时代 作者:爆豆 发布时间:2011-02-12 18:15:19 网友评论 0


Skeletal Animation(骨骼动画)

  骨骼动画是改变hierarchy of digital bones(带有层次结构的数字骨骼)(在character中构成一套骨骼系统)顶点位置的过程。顶点通过一个加权影响系统(weighted influence system)联系到骨骼上,可以使特定的骨骼受到各个顶点一定百分比的控制。

  这个加权影响系统可以在关节上加上平滑的弯曲,而不会在方向上有生硬的变化。这种网格物体和骨骼的连接的结果在《Unreal》中就是指带骨骼的网格物体。(图08)

\


  骨骼的位置和旋转可以在如3Ds Max或Maya这样的外部3D应用软件中被应用动画。动画不会在UnrealEd中播放。当要对一个character或对象的骨骼应用动画时,美术人员通常使用一个用户定制的控制系统来驱动这些骨骼。

  这个用来驱动character和对象骨骼的控制系统通常被称作控制骨架绑定。对一块块的骨架绑定应用动画,就像控制一个数字木偶一样,骨骼也同样会运动,这样会连带驱动网格物体的顶点。从某种意义上说可以比手动移动网格物体顶点更快地创建character跑步、跳跃、战斗等动画。

  完成之后,这个带骨骼的网格物体(由实际网格物体本身加上控制它的骨骼所组成)将会导入《Unreal》。然而,这个带骨骼的网格物体是同动画分开导入的。动画将只会由一个骨骼到另一个上的位移和旋转的变化组成。

  任何用来驱动3D软件包中的骨架的骨架绑定或控制对象都将被忽略。将带骨骼的网格物体从动画中分离出来的好处是多个不同的对象(如各类character)能够用一套动画来驱动,而不用为同样类型的每个独立的对象创建不同的动画。

带骨骼的网格物体

  《Unreal》中的带骨骼的网格物体的例子可以是character、载具以及武器。正如前面所述,带骨骼的网格物体是通过将网格物体与一套层次结构的骨骼相联接而来的。这种连接方法被称作skinning(蒙皮),并且通常在外部的3D软件包中处理的。

  一个带骨骼的网格物体的每个顶点都受到它周围不同骨骼的一定比例的影响。例如,一个正好位于character前臂中点的顶点可能会受到来自前臂骨骼100%的影响,因为无论前臂骨骼朝哪动,都会带动前臂。

  然而,位于character手肘位置的顶点将会受到一部分来自前臂骨骼的影响,以及一部分来自上臂骨骼的影响。这种分配给单独的顶点的不同的权重,能使从一个骨骼到另一个骨骼的顶点变化平滑过渡。(图09)

\


Chunks(小块网格)与Sections(大段网格)

  为了在Unreal中使用skinning(蒙皮)技术并且也为了控制网格物体如何渲染,所有的带骨骼的网格物体都被分成了单独的段。这些段总共有两种不同的类型:小块网格(chunks)和大段网格(sections)。

  一个大段网格是由所有的包含同样材质的网格物体的多边形组成的。正如您所知,在《Unreal》中可以在网格物体上应用多个材质。一个包含三种单独材质的网格物体将会由三个不同的大段网格组成。

  大段网格将会根据对网格物体大段网格有影响的骨骼的数量进一步分成更多小的段。这些段就是所谓的小块网格。每个小块网格至多可以包含75根骨骼。应当注意的是,只有那些有顶点权重影响的骨骼才会被计算在内。任何对网格物体的形变没有影响的骨骼都将被忽略并且不会用于创建小块网格。

  小块网格和大段网格十分重要,这是因为,带骨骼的网格物体包含越多小块网格和大段网格,就需要花费越多时间来渲染到屏幕上。因此,必须要控制小块网格和大段网格的数量尽可能的少。这些可以通过在网格物体上使用尽可能少的材质,以及在保证网格物体合适的韧性的前提下使用尽可能少的骨骼来实现。

  例如,一个包含若干不同材质的网格物体如果使用适当的纹理方法的话,通常可以将这些材质都压缩进一张贴图中。彻底掌握本地3D应用软件中的蒙皮工具能够有助于获取需要应用在物体上……

搜索栏目