每年,我们都希望为全球总决赛带来令人难忘和激动人心的内容。但在2017年,我们想看看自己能不能更上一层楼。因此,在为今年的决赛开幕式做前期准备的时候,我们组织了这样一支队伍,来实现大家心中最最天真的那个愿望:召唤一条巨龙。
让英雄联盟化为现实
每次策划全球赛事,我们其中的一个重要任务就是对东道主国家致以敬意。今年,全球总决赛在中国举办。中国的文化元素占据了非常重要的地位。从2017年2月起,我们就在逐渐筹备今年的开幕式。其中的内容包括二胡演奏,游戏英雄的京剧脸谱,超级巨星周杰伦登场献唱,还有Against the Current现场演唱《传奇永不熄》。然而大家还是觉得少了一点特别的内容。鸟巢是北京标志性的体育场,有什么东西能够和它的规模相媲美呢?
我们进行了不少构思,最终敲定使用增强现实(下文简称:AR)这一方案。将电脑图像描绘在现实世界里,来表达我们的想法。所谓增强现实,就是通过现实摄像机来控制一台带有渲染引擎的虚拟摄像机,再同时将两个画面合并在一起,把传统手法不可能的画面表现出来的一种技术。在体育直播界,AR的应用很常见。传统体育项目和刀塔国际邀请赛等其它电竞赛事都运用过这种技术,即使我们自己的北美LCS、季中冠军赛乃至全球总决赛更是如此。但这次我们想要实现的内容,规模要远超以往。
至于今年开幕式上使用AR技术展现怎样的内容,我们最初有过好几个构思。比如瑞兹在体育场里放魔法,还有艾希从银幕里射出冰箭。不过多年以来,大家一直开着这样的玩笑:“干脆在舞台上放一条龙好啦。”目前,我们还没有通往符文之地的传送门,所以没法召唤一条真正的巨龙。当时开这个玩笑的时候,要想制作一条看上去足够逼真的巨龙,让它飞翔在真正的体育场上空,这种技术还没有开发出来。而且也贵得离谱。然而2017年,AR已经发展到了一定的水平,应该可以实现这个想法了。我们把公司里最疯狂的技术先驱集合起来,组织了一支队伍,试图回答这样一个问题。“能不能制作一条巨龙出来?”
过去几年里,AR在电视直播上的运用发展迅猛。即便如此,我们依然担心它是否能够实现出一条足够逼真的巨龙。我们知道自己要面对的主要挑战有这样几个:
● 如何让一条巨龙飞进体育场,降落在鸟巢的边上?
● 巨龙要怎样才能投下逼真的阴影?而且不光是地面上,体育场的墙体上面也要产生投影?
● 是否能够调整演出当天的光照,来应对户外的天气情况?要怎么做?
● 要如何才能把巨龙的出场和现场表演完美地结合在一起?
巨龙的梦想
我们希望能够在北京的天空呈现一道有力而壮观的风景。在英雄联盟的世界里,没有什么比远古巨龙更加威武,更加有气魄的了。
我们和一些合作伙伴共同起草了全新的概念图,用来作为自定义建模和动画的基准,打造这条全新的远古巨龙。之前我们也尝试过很多不同的想法,不过看着概念图的时候,最能够调动我们情绪的,还是召唤师峡谷上那条威名远扬的巨兽。而其中最重要的一点,就是不管做出怎样的内容,玩家都要马上能够看出,朝场馆呼啸而来的正是他们的老朋友——远古巨龙。
把远古巨龙实现出来需要完成哪些工作?为此,从龙的头部到四肢,乃至翅膀,我们仔细地审视了每一个部分的细节。
各种细节经过大量的迭代,最后的概念图终于成形。
概念设计的部分已经完成,现在就要进入建模阶段了。和传统的预渲染动画角色建模不同,我们必须时刻留意,把巨龙的细节制作得尽量丰富,同时还要保证它能够被实时渲染出来。
什么是实时渲染?
实时渲染制作动画的渲染速度非常快,看上去就像是现场生成的一样。而一段10秒种的预渲染动画则需要花上几个小时来。比如说《玩具总动员3》,平均每帧就需要用七个小时来进行渲染。如果你从来没有听说过实时渲染也不要紧。其实显卡渲染游戏的时候,用的就是这种技术。
而我们的任务,就是要即时渲染一条飞进体育场的巨龙,让我们可以自由移动摄像机,把开幕式的全部内容都拍摄进来。这就意味着我们必须控制好多边形数量和顶点数,这样龙在天上才不会产生变形或是延迟。这些工作和我们在游戏里建模的时候控制多边形数量没什么太大的不同。无非就是仔细平衡画面质量和性能的问题。
下面是建模过程的大致步骤:
与此同时,我们的另外一个团队正在制作巨龙飞进体育场的动画。大家参考了《权利的游戏》、《龙之心》等影视素材,去了解一条龙究竟会对鸟巢这样的环境做出怎样的互动。它是怎么盘旋的?它是怎么着陆的?它会对脚下的人有什么反应?
最初的动画设计,是让远古巨龙带着召唤师杯,然后把它放在舞台上。最终,这个想法被否决了。取而代之的是在舞台上竖起一座16米高的充气奖杯,让巨龙环绕场馆。再说,真正的召唤师杯实在太重了,就算是巨龙也举不起来。
我们试过不同的方案,让龙落在舞台的各个位置上,甚至跟演员进行一些互动。比如舞蹈演员惊慌失措地跑开,或是躲避巨龙等等。最后,我们觉得一条真正的巨龙要是飞进自己的巢穴,看到那里有成千上万的人,它一定会让所有人都知道,这里只有它才说了算。毕竟,这是一条远古巨龙。因此看来把它放在舞台中央是唯一可行的方案。
随着动画逐渐成形,我们又遇到了另一个问题:龙有点太大了。基本上,它在降落的时候翅膀会和体育场产生穿插,这样整个画面就有问题。还有,我们看不到它的影子。我们需要把影子覆盖到观众席上面去,要让龙的影子笼罩在体育场的真人身上,这样才能让场面更加真实。我们也想过要不要把龙缩小一点。不过最后采取的解决办法,也是一条真正的威武巨龙会做的事情:改一下飞行路线。我们调整了降落的方式,确保阴影看起来没有问题,龙也不会穿到体育场的墙壁里面去。
现实中的海克斯科技
接下来,我们列出了一些注意事项,来保证动画的流畅播放,同时还要尽量忠实地反映设计阶段的构思:
- 动画的实时播放帧数一定要和直播帧数保持一致,也就是每秒59.94帧
- 确保巨龙能够根据鸟巢的几何尺寸和比例投下柔和的阴影
- 制作3D遮罩,在巨龙登场和退场的时候让它可以在体育场的后面显示,以及落地的时候在前景后面显示
- 能够随时地即时调整场景光源,应对我们可能遭遇的所有天气状况
- 实现可以即时校正巨龙色调的功能,匹配实际摄像机的曝光度和对比度
- 使用两台具备跟踪功能的摄像机,把内容发送给两个实时渲染引擎
- 要能够在两个渲染引擎上同时触发动画,让镜头可以无缝切换
- 配合开幕式音乐,在某个特定的时间点上触发动画
- 进行周密的筹划和足够的排练,让摄影师能够在情况如此多变的环境里拍出完美的镜头
我们进行了一次测试,看看是不是能够完成上述事项。大家把所有的设备都调试好,在公司的停车场召唤出了远古巨龙。测试的结果让我们非常满意。不好意思镜头稍微 有点脏:
进入鸟巢之后,我们只有一个星期的时间来完成所有的准备工作。我们要确保网络连接稳定无误,让镜头能够流畅地跟着龙走。我们要确保龙的音效播放位置正确,要检查动画是不是可以正常触发。而且最重要的是,我们要在机位上看看龙的走位是不是和场馆对齐了。除此之外,和每次组织英雄联盟现场活动一样,其它的正常准备工作也相当繁多。
另外,我们让龙和舞蹈演员进行了大概六七次彩排。期间我们发现,如果镜头移动,但是演员的编舞没有精确对时,那么巨龙就会把舞台上的演员一脚踩扁——当然龙是不会有什么大碍啦,就是形象不大好看。当时,演员们已经为了对时排练了好几个星期。所以我们一旦进行任何改动,就有可能打乱所有的表演安排。
我们决定通过合理地安排镜头缩放,把龙踩人的画面给隐藏起来。
你看到的所有镜头,都是由一个真人摄影师在现场实地拍摄出来的。为了确保摄影师明确镜头的拍摄位置、机位究竟该怎么走,以及什么时候进行缩放,我们和他们一起进行了无数次的彩排。我们还刻意安排了一些镜头的偏移,这样可以让摄影师有种看上去被龙吓了一跳的感觉。
下面是其中一位摄影师拍摄巨龙飞过观众席的场面:
直播还有十分钟的时候,我们发现龙的遮罩位置偏了。本来它应该是落在屋顶边上的,现在看起来像是它陷到了墙壁的里面去。导致这个问题的原因有很多。甚至可能是因为镜头的基座因为震动的关系偏移了几厘米造成的。表演还有几分钟就要开始了,我们必须打开实时图形编辑应用程序,把龙往上移。趁这个时候,我们还根据当时的光线调整了一下它的明暗度。接下来,就该让我们的远古巨龙在决赛场上翱翔了。
龙从屋顶上跳下来的时候,观众发出阵阵惊呼,这让我们兴奋地直起鸡皮疙瘩。能够感受到巨龙给玩家带来的震撼,正是大家坚持努力的初衷。我们的愿望,我们的目标一贯不变。那就是为粉丝和玩家带来难忘的体验,让他们可以铭记心间,与亲朋好友共同分享。只要我们继续朝这个方向努力,那就一定可以不断进步,成就更多非凡的壮举。在我们把自己的宠物蛇成功变成大龙宝宝之前,我们会继续迎接挑战,冲击全球总决赛的新标杆。同时,为了回报大家在这个社区里不断投入的热情,我们也会替诸位带来同样难忘的体验。