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

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

Attempting the Difficult

挑 战 困 难



作者:Luima, June 27, 2011


使用软件: 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 的卓越成果表示敬意。在《侏罗纪公园》之后他们又给我了灵感。


建 模

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.


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






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.




内利用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.


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).



绑 定

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


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.


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

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


动 画

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.



渲 染

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


结 论

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年和他的兄弟以及朋友开了一家小的动画工作室。在他的家乡大部分的商业项目都是小的项目,所以它尝试挑战自己来保持学习新的事物,并且他看电影时都经常保持“他们是如何做到的”这样的想法,不顾所有局限的而去努力尝试找到解决问题的方法。关于它的工作你可以在