一种拍电影的新方式

如果你玩过魔兽、星际之类的游戏,有一样东西可能会让你很惊讶,反正我是很惊讶,就是它的录像系统。在《星际争霸2》里,一场一个小时的比赛,录像文件大小大概只有50k左右。你下载下来,在游戏里运行这个文件,就可以观看一场完整的比赛。

游戏录像的原理

这实在是很奇怪,为什么一部电影需要1个G,但游戏录像只要50K呢?原因是这些录像(REP)是以记录操作的方式构建的,播放时只需要将所有对象的状态根据操作重新构建出来就好了。

也就是说,你操作一个游戏角色的时候,录像系统只会记录你的操作,而这个角色的模型、样子都存放在游戏里的(《星际2》有9个G)。当你回放这个记录的时候,录像系统会根据你的操作,把这个角色“什么时候、在哪里、做什么”重新在游戏里构建起来。并不需要记录画面。

电影的冗余

如果你用Ruby写过程序,你会发现Ruby写出来的代码往往比较少。原因是很多时候你可以通过更高层次的抽象来减少冗余。

但电影不是这样。只要稍微一想,就会发现,任何一部电影都有巨大的冗余。不妨这样想:

如果一部电影里,有一个主角总共出现了一个小时.
一小时有3600秒,每秒有24帧,一帧就是一幅图。
那么这个人,将反复出现在3600 * 24 = 86400 幅图片里。
每一幅图都记录了他。这不是一种冗余吗?

冗余本身并不是大事,可是它带来了很多副产品。其中最典型的问题( 也许目前没有人会说这是个问题)就是:

一部电影在它制作完的时候,就是死的了。
因为任何一个画面,你都改不了。如果你想要往里面加入一栋建筑、一个演员,或者其他元素,你怎么办?如果你想要换一个镜头角度,你怎么办?

新的可能

有没有可能,拍电影的最好方式不是拍摄它,而是"重新构建"它?

是的,就像游戏录像那样“构建”它。有趣的是,我发现人的记忆可能也是这样的。现在的科学家普遍开始认为,记忆并不是像文件存在硬盘中那样存放的,而更可能是根据不同的感官体验,分布在大脑不同地方的。当你回忆某个场景,这些元素会通过"涌现"的方式重新组建起来,灯光、相貌、声音、味道、心情,重新构建出了这一回忆的画面(“渲染”)。

游戏、程序、记忆,我觉得它们可能预示着制作一部电影的终极方式:

1. 先建立环境和元素的模型
2. 然后记录各个元素(演员、物体、环境)的状态、行为
3. 最后播放时,先搭建环境、读取元素信息,还原元素状态。
这个时候,摄影师和剪辑师,可以将虚拟的"摄像头"可以放置在空间中任意位置.
在时间线上不断变换位置,来组成人们最终看到的一部电影。

如果可以做到的话,这样的好处有两个。
第一,电影可能会空前灵活,你可以在任何时候,往里面加入任何元素。
第二,电影有了交互的可能。你有可能看电影不再是跟着镜头走,而是在电影里面,选择任何你喜欢的角度,甚至做一些其他操作。
甚至电影也可以有API,你可以在上面做二次开发,把一部电影,重新改造成你想要的样子。

相信你们可以猜到了,我还有另一个更激进的想法,那就是电影和游戏是殊途同归的,游戏越来越像能玩的电影,电影越来越像能看的游戏。因为归根究底,它们都是对于我们现实世界的再创作而已。

comments powered by Disqus