《疯狂动物城2》全球票房破12亿美元那天,特效动画师Jesse Erickson正在调试一段蛇鳞数据。他没去看庆功宴的直播——那条名叫Gary的蓝蝰蛇,还有127处鳞片在极端卷曲时会穿模。
这条蛇没有四肢,不会说话,全片出场不到8分钟。但迪士尼动画工作室为它专门造了一套叫Scute的系统,名字取自龟壳鳞片向外"挤"着生长的生物学术语。用Erickson的话说,这是"我这辈子做过最难的事"。
从"贴图糊弄"到"每片都是真的"
一开始,团队想用老办法:贴图加位移映射。这是行业标配——在模型表面画一层鳞片纹理,用算法假装出立体感。省时省力,观众隔得远也看不出。
但Gary有个致命习惯:把自己扭成W形。蛇身急剧弯曲时,贴图像被揉皱的糖纸,鳞片拉伸、重叠、穿帮。特写镜头下,假的就是假的。
Erickson被派去解决这个问题。他的起点不是电脑,是动物园和纪录片。"你就被这种事烦到了,"他说,"它在大自然里怎么运作的?"
团队观察发现,真实蛇鳞不是随机排列。它们像屋顶瓦片一样层层覆盖,每一片都有固定生长方向,在关节处会微妙滑动而非硬折。这种规律,贴图永远模拟不了。
Scute系统由此诞生。基于Houdini(一款三维特效软件)开发,它用程序化生成替代手工绘制——输入蛇的身体曲线,算法自动计算每片鳞的位置、角度、与相邻鳞的咬合关系。不是画出来的,是"长"出来的。
反向工程:把自然翻译成代码
"我们就是在反向工程世界上所有神奇的东西,"Erickson这样概括工作本质。这句话听起来像产品经理的漂亮话,但执行层面极其枯燥。
团队花了数月建立规则库:鳞片密度如何随身体部位变化?腹部鳞片为何比背部宽大?快速移动时鳞片是平贴还是微微翘起?每条规则都要对应一段代码,每个参数都要能动画师手动覆盖。
最棘手的是动态交互。Gary在片中多次缠绕其他角色,鳞片与被接触物体必须产生真实挤压。传统做法是穿模后手动修,但Scute要求物理正确——鳞片像真实生物组织一样,遇阻则让,有空间则回弹。
这意味着模拟层级翻倍:蛇身骨骼动画→肌肉变形→皮肤滑动→鳞片位移→与环境碰撞。五层数据实时联动,单帧渲染时间从几小时飙到几天。制片部门一度想砍戏份,导演坚持保留。
一个工具改变的工作流
Scute最终没有只服务于Gary。迪士尼将其模块化,变成可复用的生物表面系统。爬行动物、鱼类、甚至某些哺乳动物的特殊表皮,都能调用相同底层逻辑。
Erickson的职务也从"解决那条蛇的人"变成技术顾问。他开始带新团队用同样方法论攻其他难题:程序化羽毛、自适应毛发、可撕裂的皮肤。核心思路不变——观察自然,提取规则,代码实现。
这种工作方式的代价是前期极慢。Scute开发周期超过18个月,占去《疯狂动物城2》前期制作的三分之一时间。但回报是后期极快:Gary的所有镜头,动画师拿到绑定后直接调用,无需逐帧修鳞片。
对比十年前《冰雪奇缘》的雪宝——每个雪花都是手工放置——Scute代表迪士尼动画从"手艺"向"工程"的迁移。不是取代艺术家,而是把重复劳动交给算法,让人专注创意决策。
那条蛇现在躺在服务器里
《疯狂动物城2》上线Disney+后,有观众在Reddit发帖问:Gary的鳞片是不是太精细了,根本看不清?高赞回复是:"这就是重点——你看不出是假的,他们的工作就完成了。"
Erickson偶尔还会打开Scute的源文件。那个项目文件夹名叫"Gary_v47_Final_FINAL",大小超过4TB,包含他职业生涯最密集的失败记录:v1到v46,每次迭代都存了完整备份。
最近他在内部讲座分享了一张截图:v12版本,Gary盘成蚊香状,鳞片像炸开的烟花一样四射。台下年轻动画师大笑。他等笑声停了才说,"这个bug花了我们六周,因为我们在找数学错误,其实是最初的生物参考图拍错了角度。"
现在Scute的文档首页贴着一行注释,据说是Erickson加的:"自然从不犯错,只有我们的观察会错。"
如果下一部迪士尼动画出现一条完美的龙、一只逼真的蜥蜴、或者某种人类从未见过的幻想生物——它的鳞片系统很可能仍叫Scute,仍基于那条蓝蝰蛇的W形卷曲测试。一个为8分钟戏份开发的工具,正在悄悄定义未来十年的生物动画标准。这算不算某种意义上的成功?Erickson的答案是:"我只希望下次别再用蛇开头了,我想做毛茸茸的东西,毛茸茸的至少不会穿模。"
热门跟贴