当前位置:文档之家 > Attempting the Difficult_挑战困难_变形金刚制作流程

Attempting the Difficult_挑战困难_变形金刚制作流程

Attempting the Difficult

挑 战 困 难

原教程出自:http://www.doczj.com/doc/697a29ce6137ee06eff91878.html网站

原地址:http://www.doczj.com/doc/697a29ce6137ee06eff91878.html/archives/mututorials/attempting_the_difficult

作者:Luima, June 27, 2011

翻译:freeyy

使用软件: 3DS Max, After Effects, Arion renderer

转载请注明出处和翻译者,请保持最起码的道德!本人能力有限出错在所难免,学习快乐!

Attempting the Difficult_挑战困难_变形金刚制作流程

Attempting the difficult is a personal project, inspired by the excellent work done by ILM for the Transformers feature film. The goal was to build, rig, animate and render a complex model with modest equipment and learn from the experience. My version is an approximation of, and a tribute to ILM’s great work. They have been an inspiration to me since Jurassic Park.

在我自己的一个项目中挑战了困难,其灵感是通过ILM(工业光魔)为电影《变形金刚》完成的优秀工作。(我的)目标是以合适的能力和以往的经验来建模、绑定、动画以及渲染一个复杂的模型。我的版本是一个很接近的,同时对ILM 的卓越成果表示敬意。在《侏罗纪公园》之后他们又给我了灵感。

Modeling

建 模

I started the modeling stage building the truck, initially working on a modern ‐looking version but eventually changed the idea and went back to a more traditional ‐looking one. For this part of the process I used a lot of reference images of Peterbilt trucks I looked up on the web.

我从卡车的建模阶段开始,起初的工作是围绕时髦的外观形式来进行的,不过最终还是改变了想法,然后回到了更传统一些的外观上。对于工作的这个部分来说,我使用了很多从网络上找到的彼得比尔特(Peterbilt)卡车的参考图片。

The method used to model the truck was

blocking the general shapes with simple geometry,

Attempting the Difficult_挑战困难_变形金刚制作流程

and then doing retopo over the basic shapes and

adding detail where needed. I tried to avoid using

meshsmooth to maintain the polycount low, but

in some areas it wasn’t possible to avoid using

some kind of smoothing to achieve nice curved

surfaces. In these cases, I later collapsed the

mesh and did manual optimization, reducing the

polycount.

卡车的建模方法是利用了简单的几何体,构建

了大概的形状,然后在简单的形状之上重新拓

扑并且在需要的地方添加细节。我尝试避免利

用meshsmooth,来保持多边形数低一些,不过在一些区域还是难免要利用一些平滑来获得不错的流线型表面的。在这个项目中,我稍后塌陷了网格并且做了手工的优化,以减少多边形数量。

The complete external geometry of the truck was modeled in 4‐5 days. After that I moved on to working on the head, and that’s where problems began. I don’t usually use 2D reference images inside Max when I model (or blueprints). I work with multiple monitors, so I put the reference image

on one screen and model on the other one. In

Attempting the Difficult_挑战困难_变形金刚制作流程

this case, the reference image (a still from the

film) only showed a part of each one of the pieces

that make up the head.

卡车的完整外观几何体建模用了4-5天。之后

我继续在头部工作,然后产生了一些问题。当

我建模(或者设计)的时候,我通常不会在MAX

内利用2D 参考图片。我利用多个显示器进行工

作,因此我把参考图放在一个显示屏里,然后

在另一个上进行建模。在这个项目中,参考图

(一幅来自电影的画面)仅显示了构成头部的

一部分。

This stage presented a lot of challenges because multiple pieces must fit together as one model with the ability to move and transform the model’s overall shape, so it wasn’t possible to model each piece and then try to fit them seamlessly. Also, modeling the head as one mesh and breaking it apart wasn’t going to work, because the pieces were going to be hollow and redoing the inside part of each piece wouldn’t have been very efficient. In order to solve the problem I combined both methods.

这个阶段出现了很多挑战,因为多个部件必须组合到一起,可以移动然后变换模型的整体形状从而形成一个模型,因此不可能每个部分都建模,然后尝试准确无误的装配它们。同样,把头部建成一个网格,然后分离它也是不能操作的,因为部件将是空心的,并且需要重做每个部件的内部结构,也不会有很好的效率。为了解决问题我组合两种方法。

First I modeled a quick low poly general shape with the correct volume and form with a transparent shader applied so that I could use it as a 3D “ghost” guide. Then I started modeling each piece and assembling the head at the same time. This way I could model with precision and make sure that the model’s ability to “transform” was possible.

首先我快速建了一个低模的通用形状,它有正确的体积并且应用了透明的着色器(shader),然后我就可以把它作为3D“参考”的指引了。随后我开始建模每个部分,同时装配头部。这种方式让我可以精确的建模并且确保模型是可以进行“变形”的。

For the mechanical‐looking pieces I used the spline modeling technique(in most cases). Using booleans for modeling is not a good choice in my experience, but I found an acceptable way to using it sometimes when I need it. You can check the video below for an example of how to use booleans successfully in 3ds max.

机械外观的部分我使用了样条建模技术(大部分情况)。在我的经验中利用布尔建模并不是一个好的选择,不过我找到了一种可以接受的方法,可以让我在需要它的时候来利用它。你可以(翻墙)查看下面视频中的例子,来理解如何顺利的在 3ds max中使用布尔。

Attempting the Difficult_挑战困难_变形金刚制作流程

How to use Booleans sucessfully in 3ds max(如何在3ds max 中顺利的使用布尔运算)

Another technique used was adding an edit poly modifier on a smoothed piece, adding details and then optimizing the collapsed geometry as seen below

另外一个技巧是在一个被平滑的部件上添加一个edit poly修改器,增加细节然后优化被塌陷的几何体,就像下面这样。

Details over turbosmooth(在turbosmooth上的细节)

All these techniques combined properly can help achieve modeling most any surface in little time. Here is a video showing the combined use of booleans, retopo and poly modeling.

所有这些技术的正确组合可以有助于在短时间内实现大多数表面的建模。下面的视频显示了组合使用布尔、重新拓扑以及多边形建模过程。

Modeling timelapse(建模过程)

Creating all the pieces required a lot of patience, but it was done fairly quickly. Total time was approximately 3 months, for almost 3,000 parts (most of them nuts and bolts that I re‐used a lot on the final model).

创建所有的部件需要很大的耐心,不过建模过程相当快速。总的时间大概3个月,将近3000个部件(它们大部分具有细节,而且大部分我都重新用在了最终模型上)。

Rigging

绑 定

Attempting the Difficult_挑战困难_变形金刚制作流程

From the beginning I knew this was going to be no easy task. With

the model finished, the first thing I did was cut the truck into

pieces. That way it was easier for me to plan how the

transformation was going to take place, and I could better organize

the workflow. After splitting the truck model I proceeded to give

some thickness to the parts that needed it. I also added a low poly

interior and some engine parts so it didn’t look empty.

从一开始我就知道这不是一个容易的任务,模型完成以后,第

一件事我把卡车切割成了碎块。这种方式可以容易的帮助我规

划将如何进行变形,并且我可以更好的组织工作流程。在分离卡车模型以后,我为需要的部分添加了一些厚度。我同样添加了低模的内部以及一些引擎的零件,所以它看上去不是空的。

Merging the truck with the robot model brought another problem, I couldn’t navigate the viewport faster than less than one frame per second, due to the complexity of the mesh. I came up with the idea of breaking the pieces into 11 groups, and rigging each group in a separate scene. If that worked out, I could then mix all the pieces later for rendering the animation. I wasn’t sure this would be successful, though, and it meant working on animation half blindly. I used a basic skeleton for the base mesh, and a lot of custom rigs on top of it to drive the transformation and movement of the pieces. 用机器人模型合并卡车产生了另一个问题,在操作复杂网格期间,我的视窗浏览速度不能快于每秒一帧。我利用了切割想法,把部件归入了11个组(groups),并且绑定每个组到分离的场景中(部件另存文件)。如果工作完成,那么我可以为了渲染动画来混合所有的部件。虽然,我并不确定这样一定能成功,并且它意味着动画的工作有一半是尝试性的。

Attempting the Difficult_挑战困难_变形金刚制作流程

点击图片可看原图

Some pieces had a morph modifier applied to achieve the desired shape (the accompanying image is an example of this). The morph modifier worked great for this effect. The other option was to use bones, but I would’ve ended up working with too many bones, and the rig was going to be a lot more messy. To avoid strange deformations I made progressive morph targets, and that way deformation looked more natural.

有些部分应用了morph修改器以获得期望的形状(随附的图片就是这样的一个例子)。Morph修改器对这种效果来说非常好。另一个操作是使用骨骼,不过我已经结束了使用许多骨骼的操作,并且绑定变得非常混乱。为了避免强烈的变形,我逐步制作了变形目标(morph targets),这样变形看上去更自然一些。

For most of the parts that were not directly attached to the skeleton I used a combination of reactions and wire parameters linked to a slider helper. This way the animation of the transforming pieces and parts was more manageable. I was able to overlap the animations of those parts very easily without getting confused in the process. The video is a small example of this.

大部分的零件并没有直接附加到骨骼上,我使用了反应(reactor)组合以及绑参数(wire parameters)链接滑杆(slider)帮助物体(的方式)。这种变形部件和零件的动画方式更容易操作。在过程中我非常轻松的处理好了这些零件重叠部分的动画,没有产生混乱。下面视频是这里的一个小例子。

Transformation rig using reactor, wire parameters and slider helper

(变形绑定利用reactor,绑参数以及滑杆帮助物体)

I was trying to achieve natural‐looking motion, and didn’t want to scale pieces when the transformation occurred. Neither

did I want flying or levitating parts around the model. So I developed some small scripts to help with animating the groups of pieces, for tasks such as resetting the position/rotation relative to their parent, baking transformations, linking and unlinking several groups of pieces over time, etc. The rest of the parts was animated by hand.

我尝试实现自然效果的运动,并且当变形发生时,不希望缩放部件。我也不想在模型周围出现飞行或者漂浮的零件。所以我开发了一些小型的脚本(scripts)来辅助动画部件的组,这样的任务,比如相对于它们的父物体重置位置/旋转,烘焙变形,随着时间链接或解除链接几个部件的组,等等。剩余的部分采用了手工动画。

The cloth modifier was used to produce the swinging chains animation.

Cloth 修改器被用来产生丰富的约束动画。

Animation

动 画

Animation wasn’t as difficult as I expected in terms of logistics. To my own surprise, it was a straightforward process. I checked out some toys for reference and soon figured out a way of doing the overall transformation.

就像我从逻辑方式预计的一样,动画并不困难。不出我所料,过程很简单。我把一些玩具作为参考,并且很快想出了一个整体变形的方法。

The animation process itself, however, presented some challenges in terms of timing, achieving the flow of mechanical parts moving, sliding over other parts and rotating while maintaining the correct feel of weight. This was a scary task, so I turned to the best reference I could get, “real life”.

动画过程本身,不论如何,在定时方面体现出了一些挑战,实现机械部件的运动流畅,在其它部件上的滑动以及在保持正确的重量感的同时进行旋转。这些都是令人害怕的任务,所以我求助于我能得到的最好参考,“现实生活”。

Studying how mechanical devices work gave me a starting point, and the transformation animation from the movie itself helped me a lot to overcome the potential issue of weightlessness. Dividing the model into several groups of parts and animating each one on a different scene fortunately worked. This allowed me to handle complex meshes during the animation process. In order to preview the final animation (of the entire model), I merged all the scenes into one and rendered a preview.

研究机械装置如何运作给我了一个出发点,而电影中的变形动画帮助我克服了许多在失重状态下潜在的问题。拆分模型到几个部件组中,并且在不同的场景中各自进行动画也幸运的成功了。这样做允许我在动画过程期间处理复杂的网格。为了预览最终动画(整套模型的),我把所有场景合并成一个,然后渲染预览。

(Click on the image below to see an early transformation test video)(点击下面的图像来预览早期的变形测试视频)

Transformation work in progress变形过程

For the second animation clip I went for a “japanimation” style that shows the Optimus/Jetfire combination.

对于第二个动画剪辑来说,我力求达到“日本动画”的风格,展现出擎天柱/卡车的组合。

Rendering

渲 染

I started testing render options during the modeling stage. Due to the complexity of the mesh I wanted to have an early idea of what kind of render times I would be facing. The scanline render with two lights and shadowmaps on gave an average time of 18 minutes per frame at 1920×1080. Fairly fast but not realistic at all, so I switched to Mental Ray. With glossy reflections and global illumination turned on, render time increased a lot: almost 10 hours per frame. At this point I was giving up the idea of rendering a complete animation and was thinking of only rendering high resolution stills. A few days later a client asked me to check a new renderer he recently bought, to see if it was possible to use it for a certain production he had in mind. It was the Arion renderer, from RandomControl (makers of Fryrender). The test I did for him was the transformation clip of the Optimus model. Compared to CPU renderers, I found an incredible render time difference. Arion was 50‐60x faster than Mental Ray on the same rig. The average time for each frame was 3.5 minutes. The downside was that I had to keep my textures below 1024×1024 pixels. Because of this limitation I had to redo all the texturing work, splitting the high resolution textures into several 1024 textures. Since this renderer does not have displacements, SSS, dispersion and absorption on dielectric materials (glasses), I had to render all these passes in Max (velocity, alpha, transparencies, etc.).

在建模阶段我已经开始测试渲染的设置。由于网格的复杂性,我期望尽早能获得一个我能够应付的渲染时间概念。用两个光源以及shadowmaps的扫描线渲染,在1920x1080时平均每帧花费了18分钟。相当快速但是根本不真实,因此我切换成了Mental Ray。打开了模糊反射以及全局光照之后,渲染时间增加了很多:每帧差不多10个小时。有鉴于此我放弃了渲染完整动画的想法,开始思考仅渲染高分辨率静帧(图像)。几天过后一个客户邀请我查看一个他最近购买的新渲染器,看看能否向他想的一样用于某个产品(的渲染)。这是Arion渲染器,RandomControl 出品(Fryrender的开发者)。我用了擎天柱模型的变形剪辑做了测试。与CPU渲染器相比,我得到了不可思议的渲染时间差距。在同样的装备下Arion比Mental Ray快了50-60倍(原文为x)。每帧的(渲染)时间是3.5分钟。缺点是我需要保持我的纹理低于1024x1024像素。由于这个限制我重做了所有的纹理操作,把高分辨率纹理切割成了几个1024的纹理。因为这个渲染器在电解质材质(玻璃镜片)上不支持置换,次表面散射,扩散以及吸收,所以我在Max中渲染了所有的这些通道(速度、alpha、透明等等)。

Another issue I faced during the rendering stage was storage, since Arion doesn’t read 3ds max scenes, it converted each animated frame to a separate object. The Max scene was over 1 gigabyte, which means that an animation with 30 frames (1 second) would need 30 gigabytes on disk. I rendered 3000+ frames, you can guess the rest. More than 3 terabytes of animated geometry. When I compared the unbiased quality of the renderer, though, I decided it was the best way to go. The complete time for the entire animation was 5 days with 4 PCs for the diffuse+global illumination pass. When everything was done, I used After Effects to combine all the passes.

在渲染阶段我面对的另一个问题是存储,由于Arion不能读取3ds max的场景,而它把每个动画帧转换成了分离的物体。Max场景超过了1GB,也就是意味着一个30帧(一秒)的动画需要30GB的存储空间。我要渲染3000+帧,你可以想象一下结果。超过3TB的被动画几何体。当我客观的比较这个渲染器的质量时,显然,我觉得它是一个不错的方式。整个动画的总体(渲染)时间是5天,用了4台PC机打开了漫反射+全局光照进程。当所有事情完成后,我使用了AfterEffective来合成所有的通道。

(Click Below to see the final animation)(点击下面观看最终的动画)

Optimus Jetfire final animation

Conclusion

结 论

Working on a project for a large period of time can be something very difficult if you don’t focus and have the patience and perseverance it demands. I have learned from this project that achieving a vision is something that doesn’t happen overnight in all cases. It started as an experiment, to see if it was possible or not, and to test various techniques. Had I known all the problems this project was going to present, maybe I wouldn’t have dared to jump into it. On the other hand, if that had been the case, I wouldn’t have found out that it wasn’t impossible either. Sharing your work in progress on a forum can be a little scary at the beginning, but it helps you in a lot of ways. The opinions and points of view from other artists are very valuable, and to be able to lose the fear of being wrong is a great thing. Dealing with the opinions and criticisms from others has helped me a lot, because we are constantly learning new things. I have learned from them that we need to keep learning. Sometimes we tend to be satisfied with what we know, but that’s not enough for a real artist. We need to continuously learn new techniques, new tools, new methods, etc., so we can grow in our field, whatever that may be.

如果你不能集中精力并且具有耐心,坚持不懈去完成工作的话,那么在一个大型的项目上工作很长时间可能会非常困难。我从这个项目中学习到的是任何事情不可能是一夜之间就搞定的。开始时就像一个实验,看看它是否能实现或者不能,并且测试了不同的技术。或许如果我知道了这个项目中所有会出现的问题,那么可能我就不敢进行制作了。另一方面,如果一直这样,那么我可能就不会发现,这并不是完全不可能的。在论坛里分享你的制作过程一开始可能有些担心,但是它可以在许多方面帮助你。其他艺术家的意见和看法是非常有价值的,并且丢掉会发生错误的担心是件很好的事。回答其他人的意见和批评对我的帮助很大,因为我们需要不断的学习新事物。我从他们那里学到了我们必须保持不断的学习。有些时候我们满足于我们已经知道(东西),但是这对于现代的艺术家来说是不够的。我们需要坚持不懈的学习新技术,新工具,新方法等等,然后我们才能扩展我们的视野。

Luis Manuel Morillo (Luima) is a self‐taught modeler/animator from the Dominican Republic. He

decided to learn animation back in 1993, when he watched Jurassic Park for the first time on the big

screen, and has been inspired by the work of Industrial Light and Magic ever since. Despite the

animation industry in his country being almost non‐existent, he opened a small animation studio in

1999 (http://www.doczj.com/doc/697a29ce6137ee06eff91878.html) with his brother and a friend. Most commercial opportunities available in his

country are small projects, so he tries to challenge himself to keep learning new things, and every time he sees a movie that makes him wonder “how did they do that”, he tries to answer it by finding a way to do it despite all possible limitations. You can find more about his work at http://www.doczj.com/doc/697a29ce6137ee06eff91878.html.

关于作者:Luis Manuel Morillo(Luima)是一个来自多米尼加共和国依靠自学的模型师/动画师。他早在1993年就决定开始学习动画,当他第一次从大荧幕上看到侏罗纪公园时,他就一直受到了工业光线与魔术(ILM)作品的启发,尽管动画产业在他的国家几乎不存在,他还是在1999年和他的兄弟以及朋友开了一家小的动画工作室。在他的家乡大部分的商业项目都是小的项目,所以它尝试挑战自己来保持学习新的事物,并且他看电影时都经常保持“他们是如何做到的”这样的想法,不顾所有局限的而去努力尝试找到解决问题的方法。关于它的工作你可以在

http://www.doczj.com/doc/697a29ce6137ee06eff91878.html看到更多信息。