恐怖角色的建立过程赏析

修改
鏉ユ簮: 貌似殊途 浏览 2630 日期 2011-11-02 0

朱峰社区在本节为大家介绍制作3d恐怖角色模型

 

模型效果图

模型效果图

与终结者一样,其他的3d模型都是在3ds max中独立完成的——整体效果得到了绝大部分网友的认同,也有朋友提了中肯的建议。不过有些网友认为是用maya做的模型,或者是从网上下载的山寨模型。对于前者来说,我实在不知道有什么特征能判断一个3d模型是用什么软件来做的,也许这位网友是maya的忠实粉丝。对于后者,倒提醒我了,也许下回做东西之前,真应该先上网上找找,看有没有山寨版的模型,这样可以省去了大把的建模时间。

模型效果图

头部线框图截图

尽可能真实的材质

因为是与实拍场景合成,所以逼真的材质非常重要,真实的环境中,物体过于崭新会显得不那么真实,所以可以看到终结者和自助机的表面都有丰富的细节,包括高光、反射、灰尘、划痕等等。

[next]

为了实现逼真的金属质感,终结者身上的所有零件都需要编辑uv、绘制贴图、制作材质等步骤,每个材质使用了近50个贴图通道,全身共使用了150张贴图,其中绝大部分是在photoshop中绘制的贴图。另外一些使用金属纹理。手绘贴图与编辑uv花去了基本同样的工作量,好在部分零件可以对称使用,这也节省了一些时间。

材质进化流程

环境贴图在材质中也起到了非常重要的作用,方法是用广角相机在相同的曝光参数下,在三脚架上环拍若干照片,然后在软件中合并成全景图。之所以使用广角,是因为所在空间是建筑物之间,比较狭小。

拍摄

个人制作短片可以使用dv或者佳能5d mark2,后者画质方面更理想,不过这里我使用的还是高清dv,这样可以得到高分辨率的视频,给后期留下足够的空间。

[next]

拍摄并不是很顺利,而是反复了几次,因为主要的镜头是个将近3分钟的长镜头,拍摄时突发事件很多,比如突然出现路人挡住了镜头或者站在可乐机所在的位置等等。因为各种原因,之前制定的layout不得不放弃,原定的故事发生在苹果店的正门,不得不转移到它的侧门,但这种改变最终证明是正确的。

摄像机追踪

不少网友在看《三里屯》这部短片的时候,都好奇地问,终结者是怎么跟着场景一起“晃动的”。我比较费解的是,同样一种技术,在好莱坞电影上出现,没人会在意,例如《变形金刚》中那些机器人在场景里四处走动。而在个人电脑上出现的时候,却非常吃惊?其实他们没有想过,其实好莱坞电影上运用的一些技术,完全可以在个人电脑上同样使用。

摄像机追踪(camera tracking),也叫摄像机匹配(match moving)。这绝对可以说是一个平民级的技术,也是一个非常成熟的技术。这个技术在好莱坞电影中大量被使用,甚至大部分美剧也离不开它,在电影制作中是关键的一个环节,也可以被称为是看不见的特效,因此这个环节往往是被观众忽略掉的。如果没有这个步骤,实拍和cg物体根本没法正常合成。所以它的重要性可想而知。《阿凡达》中使用了摄像机匹配的镜头超过300个,没有摄像机匹配,那么基本上就没有这部电影了。

[next]

《阿凡达》中应用了摄像机追踪的镜头

摄像机追踪

目前主流的软件有matchmover(已被autodesk收购后置于maya中,单独的版本还可以在网上找到)、boujou、pftrack、syntheyes、3dequalizer(电影《阿凡达(avatar)》中被使用)。虽然还有一些其他的软件,但是这些软件的原理基本都是一样的——根据连续的2d图像序列或者视频,通过一系列计算,得到拍摄此视频时候的摄像机运动轨迹,并导出到3d软件中,供3d场景使用。

导入到3ds max中的摄像机

同很多技术一样,对人的要求往往超过了对硬件的要求,摄像机匹配需要使用者了解摄影或者摄像,以及掌握必要的3d软件,否则会碰到很多困难。特别这方面的资料和教程相对3d软件(3dsmax,maya等)不是很多,更多的时候需要读者自己钻研和反复试验。

[next]

3d动画

绑定骨骼一般在模型完成之后,也可在材质完成之后,这取决于具体情况。整个终结者的身上一共使用386个骨骼,机械的传动装置占用了其中的大部分。动画的大部分工作是走路,而走路又是生物动作里最困难的部分。在这上面花了大量的时间和精力。所有的动作也都是用关键帧一帧一帧手动调节的。最后,这个镜头中的终结者一共有3960帧。

困难:动画关键帧过多,链接到biped上的骨骼也过多,导致后期关键帧动画特别慢。

关节动画

下颌动画

全身骨架

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}