您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 chenpan85 于 2022-9-16 22:54 编辑
Sean Low: 今天分享的主题是“在英雄联盟手游资源管线不重复造轮子的艺术”,我是Sean Low,在Riot Games担任技术美术总监。
开始之前,快速做个自我介绍,我开始做游戏是加入迪士尼互动(Disney Interactive),在《Disney Infinity》系列(2和3)担任技术美术、负责工具研发。《Disney Infinity》是个很大的项目,我们需要与迪士尼、漫威以及卢卡斯影业等工作室合作打造与IP相关的所有东西。在《Disney Infinity》研发期间,我学到了很多,而且还参与了很多未发行游戏的创意原型和研发。 随后加入了Unity Technologies,在全身投入到实时演算CG动画《ADAM》项目之前为多个demo团队服务,《ADAM》是个野心很大的项目,因为我们希望通过用它来证明游戏引擎也可以打造高保真电影。这个项目成功之后,我们团队开始与迪士尼TV合作,我们希望证明游戏引擎也可以用来制作动画内容,比如《Baymax Dreams(大白的梦)》。我在Unity最后的工作是负责Unity引擎所有的编辑器界面,这个工作正式开始于2019年3月份,在这个项目上,我和很多工程以及设计团队一起合作。 现在我加入了Riot Games,主要从事《英雄联盟手游》项目,刚开始加入的时候我都没有意识到它是什么,所以为它做个简单介绍: 这是一款MOBA手游,是移动平台版本的《英雄联盟》,你和你的对手们都会进入游戏组成5人团队,每个人都要选择一个英雄,随后10人被分成红蓝双方进入召唤师峡谷,游戏最终目标是推掉对方基地,也可以相互战斗。 在《英雄联盟手游》打造过程中,我们重新打造了全新的美术资源和代码库,这次我们得以从玩法、游戏设计等多个方面了解游戏,带来具有新鲜感的体验。不过,这也意味着我们有大量的工作需要完成,因为我们不仅需要搞定所有的新内容,还需要在很多方面与PC版本的《英雄联盟》保持一致。 《英雄联盟手游》资源管线遇到的问题 对我个人来说,加入这个规模不断扩大的项目是从创意原型研发转向了在线运营,这给我带来一个需要解决的大问题:我们如何让具有很大依赖性的美术资源保持在可追踪的状态?所以今天的分享就是解决这个问题的经验,包括情景、不断扩张的规模、实际部署,以及心得。 英雄资源 我想先说说《英雄联盟手游》的英雄资源,因为它对于MOBA手游来说是非常独特的。对于一个英雄来说,主要分为icon、原画(Splash Art)、游戏内模型以及turntable模型,除了游戏内模型,其它三个都是玩家在战斗开始之前都可以看到的资源,进入游戏之后,游戏内资源才是最重要的,它是最复杂的资源,也是我们今天主要分享的内容。
进入游戏之后,每个英雄都有四个技能需要学习和升级,你可以这四个技能看作英雄的能力,比如火炮、带来AOE伤害或者治疗。对于每个技能,我们都有一套动画、特效和音效与之对应。 比如我们游戏里的辅助、坦克(曙光女神)蕾欧娜,她的第一个技能是破晓之盾,这里你们可以看到在操作这个角色的时候,触发破晓之盾技能看到的效果: 第二个技能是日蚀,第三个技能是天顶之刃,终极技能(大招)是日炎耀斑,可以看到,当她的这些技能被触发的时候,我们需要在地面呈现不一样的特效。
在我们一次视频会议中,有人问,“我们项目里的哪个英雄的多边形最高?”我直接写了一行简单的代码,对比了一些资源数据,就很快得出了结果:萨勒芬妮星籁歌姬(原皮)。设想我在Unity项目直接做这件事会是什么结果:首先需要等5分钟加载所有东西,随后还要通过C#脚本找到最高的模型,然后再用几分钟找到具体的答案。 所以,有了这个工具之后,我们可以用到任何格式中,比如CSV或者Excel文件,因为并不是团队所有人都能写Python脚本。不仅如此,我们还可以将工具与任何框架或者工具连接,比如Maya或者其他单独工具,我们还把这个工具用到了其它项目,甚至可以用到主机、PC游戏,几乎能覆盖Riot所有团队。 研发心得 了解你的游乐场 为了不重复造轮子,我学到的第一件事,就是了解你的游乐场。这里我提到的游乐场,指的是现有的数据和工具,在这样大的项目中,一定会有很多的数据,其中一些是很容易上手的,比如我们的json文件,还有些数据是不存在的,我们必须想办法填补空白。 另外,了解已有工具也是同样重要的,有些工具是定制化的,比如我们提到的游戏逻辑系统,还有些工具是通用的,比如Unity资源系统。得到了这些信息之后,它不仅可以让你掌握整体状况,还可以避免从头开始做重复的事情。 我们更愿意在已有的基础上打造工具,而不是从0开始,这种方式很明显是更快速、更有效率的。这种方法的不利在于,了解已有信息可能需要付出更多的沟通成本,但是从长期利益来看,这些都是值得的。 对的工具和前瞻性计划 第二个心得,就是选择对的工具并打造一个具有前瞻性的计划。 我们希望自己选择的工具是很容易做长期支持的,而不是一个5年内就可能过期的方案。我们还希望这个工具更灵活,可以在必要的时候做出调整,很容易运用到其他甚至是未来产品中。另外,我们还希望这个工具的依赖性很低,这样不需要太多的风险就可以继续迭代。 我们选择Python写这个工具是非常适合团队的,首先Riot团队已经有很多的Python用户,意味着学习门槛较低。与此同时,这还意味着在我们需要帮助的时候可以很容易得到支持,因此在技术和人员支持方面都比较容易做到,谈到支持,Python有官方支持还有很活跃的社区,这让我们更有信心。在我们没有开始做这个工具之前,就希望它的技术依赖性很低。 快速试错 最后一个心得,特别是对我来说最重要的是,一开始保持小规模,这样才能快速开始,也就是很多人提到的“fail fast”。在创意阶段,你可以很快向同事展示对应的结果,更早地发现问题。 通过这种方式,你可以将项目模块化,通过一些小组件的叠加得到更大的部分,你可以复用一些内容,甚至在必要的时候很容易拿掉不需要的模块。我非常相信,《英雄联盟手游》会有更大的潜力。 总的来说,对我而言,如果想要避免“重复造轮子”,最重要的是整合,你们可能在此之前听过很多次,我打造这个工具的方式就是合作精神,而且我觉得这比所有权更重要,这在《英雄联盟手游》很重要,我们与全球很多伙伴合作,只有这样才能给我们的玩家带来令人惊艳的手游体验。 作为技术美术,我们的职责就是将技术和艺术融合,实现更好的体验,协同合作比各扫门前雪更有趣,尤其是在我们都已经居家办公一年多的情况下,我鼓励所有人积极合作,如今短暂的社交隔离,不是我们停止协作的理由,相信我们很快就可以走出家门,再次到办公室一起合作,参加业内活动。 最后,1+1>2,我们在一起的时候更好,希望今天的分享给你们的工作、管线、游戏,甚至是团队、伙伴之间的工作关系带来帮助,让我们共同创造更有趣、更精彩、更好的游戏。 |