作者robinhoodli (知更鸟)
看板Ourmovies
标题[转录][影评]少年pi的奇幻漂流的幕後功臣
时间Thu Nov 29 13:09:03 2012
这篇文章是位动画+游戏设计师在纽约看电影的心得
他也介绍李安的新电影中,很多特效场景如何制作出来的
原文出处(附图及表格):有物报告
http://yowureport.com/?p=3225
作者:Chi-Feng
《少年 PI 的奇幻漂流》幕後功臣:大量运用的 PROCEDURAL MODELING
李安征服刁钻纽约客
19日晚上笔者有幸参加李安导演的新片《少年 Pi 的奇幻漂流》纽约口碑场试映会(
screening),地点在纽约42街附近的 AMC 影院。笔者还未到戏院,远远的就已经看排队
人潮了。现场约有三百多人,各种族裔齐聚一堂。
电影结束後,笔者竖耳偷听,反映普遍都不错,也有许多人散场後留在戏院小组讨论了起
来。看来台湾之光李安导演又再次征服刁钻挑嘴的纽约客。
当然电影本身没让我失望。其中的唯美画面,似乎将时间定格似的,一幅幅深植脑海。
笔者不知道李安是否参与了美术设定这个环节。但在游戏制作的时候,会有所谓 Art
Director 来确保游戏的美术设计从始至终一贯。
通常 Art director 会有一本所谓的 Art Bible,供游戏制作时的美术风格创作依据。
根据李安的说法,他本人花了一年的时间将整个漂流历程画成动画,
所以我想导演的美学修养多少会展现在《少年 Pi 》的美术设定中。
没有 Procedural Modeling,少年 Pi 就无法奇幻漂流
除了唯美的画面之外,电影中大量应用「程序性产生」( procedural modeling)的特殊
效果场面,更是让笔者印象深刻。尤其是鲸鱼跃出水面、以及主角望着海中沉思的这几个
桥段。
看到鲸鱼跃出水面时,伴随着数不清的水花、许多相似的 3D 模型组合成大量的几何图形
交叠,读者会不会想,这到底是如何办到的?
通常电影中需要大量类似模型,例如「一千棵树的背景」时,艺术家不会一株一株的建立
模型,而会选择让电脑去做这样具有高度重复性的工作。也就是说利用某种沟通的方式,
让电脑能够理解你的意图,之後让电脑负责heavy lifting,
这样的方法称为 Procedural Modeling。
如下图《少年 Pi 》的电影截图中,有许多形状特异的浮游生物与鱼类水母等。如果艺术
家认真的手动的画,那我们可能要等到2015年才看得到这部电影了。
图:《少年 Pi》的奇幻漂流场景中大量型态类似的海中生物
http://yowureport.com/?attachment_id=3237
Procedural Modeling 帮艺术家节省了大量宝贵的时间
其实 procedural modeling 是一个概称,举凡任何利用数学(algorithm)与规则所产生
出来的模型都可以纳入此范畴。如用来产生树木模型的 L System。
目前市面上每个 3D application 都可藉由 C 语言、Python 语言或是其他程式语言来完
成 procedural modeling 的任务,当然最常见的 Maya 也不例外。Maya 有自己的
scripting language 叫做 MEL(Maya Embedded Language),如果笔者没记错的话,
Maya 在2008的版本之後开始支援 Python。
MEL 语言初探
笔者想跟读者分享一段简单的 MEL,如下:(编按:虽然主编也不懂程式码,但不影响对
整篇,特别是结语的理解)
(此部分coding参照原文阅读会较清楚)
http://yowureport.com/?p=3225
Procedural modeling 是程式设计师向自然取经
看到这,读者或许会问,这一段 MEL 似乎离《少年 Pi》中的奇幻特效还有点距离?当然
圆形跟鱼的形状是差很多的,上述那段 MEL 充其量也只是一个开头,只是产生出一个非
常简单的 procedural model。
但至少读者可以体会到使用 MEL 所带来的方便。请试着想,我如果要手动产生8*8*8共
512个圆形并整齐排列,要花多少时间?
如果使用 MEL 的方式在瞬间产生大量的圆形,并且可以随时修改,
这种效率正是电影特效制作中最需要的。
如果留心看看自然界,上天已经隐藏的许多绝妙的 procedural model 在我们身边了。读
者应该都看过向日葵吧?
向日葵 flower core 的部分,如果读者仔细观察,您会看到一幅上帝的杰作。
图:
http://yowureport.com/?attachment_id=3228
向日葵 core 的排列,隐藏了一系列数学计算
向日葵花的排列,非常具有规律与美感,由中心像花瓣一样四散出去。类似这样排列的图
样,在数学上称为「费马的螺旋」(Fermat’s spiral),而其中最适合描述向日葵花的
是一种叫 Polar system 的座标系统。向日葵的wikipedia有对向日葵核心排列的图样更
详尽的解释,读者可参考了解笔者下述的 MEL。
笔者参考 Polar system 的三个核心部分:
r = c根号n
r = + or - theta ^0.5
theta = n * 137.508度
写出了下列的 MEL:
for ($i =0; $i <=200; $i++){
float $currentAngle = $i * 137.5;
float $radius = 15 * sqrt($i);
float $newY = -1 * $radius * sin($currentAngle);
float $newX = $radius * cos($currentAngle);
sphere;
duplicate;
scale (1+$i*0.2) (1+$i*0.2) (1+$i*0.1);
move (0+$newX) (0+$newY) (0+$i*0.15);
};
如此产生出来的向日葵花核(core)如下图。
只要改变$i角度,就可以改变核心的密集程度。
http://yowureport.com/?attachment_id=3234
http://yowureport.com/?attachment_id=3245
看到这里,读者是不是能够再仔细想想,自然界还有哪些东西是类似向日葵花一样,
暗藏上帝的杰作呢?
而《少年 Pi》在特效的制作正是大量利用了Procedural Modeling 来产生令人惊艳的
奇幻效果,所以说或许某些程面上,李安也是受到自然或是生物所启发吧!
这也是在电影结束之後,我想对片尾字幕中列出,负责写 procedural modeling 的程式
人员致敬的原因。
有了这些人与技术,在电影特效制作上不仅节省巨量的宝贵时间,
还能够无限制的驰骋导演的想像力。
图:Procedural Modeling 让许多奇幻的特效有机会呈现在大萤幕上。
http://yowureport.com/?attachment_id=3240
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 68.170.71.133
※ 编辑: robinhoodli 来自: 68.170.71.133 (11/29 13:10)
※ 编辑: robinhoodli 来自: 68.170.71.133 (11/29 13:11)