Unity游戏原型快速开发实践,我的题目和前面几位同事稍微差别

Unity游戏原型快速开发实践,我的题目和前面几位同事稍微差别

本文是Unity技术总监杨东在Unite2017大会上分享的。

Unite大会是Unity主办的全球开发者大会,已有10年的历史。 Unite现已成为游戏行业和VR/AR行业最具权威性和影响力的盛会。

作者 | Gad-腾讯游戏开发者平台

编辑| 赵新龙

android游戏开发案例与关键技术_安卓小游戏开发案例_安卓应用开发案例

今天的主题是Unity游戏原型快速开发实践。 我的主题与之前的同事略有不同。 他们将讨论非常技术性的话题,包括数学公式和非常实用的信息。 我主要想讲一下我过去做过的一个项目。 我想因为这个项目完全是在Unity中完成的,所以做了很多尝试,使用了很多工具。 我认为分析整个项目并与大家分享会很有帮助。

目前,我负责我们大中华区的讲师团队。 稍后我会向大家简单介绍一下我们的团队,但我会放在最后。 另一部分业务是与第三方平台的合作,比如小米。 我们支持小米平台。 小米平台对于我们国内的开发者来说是一个非常好的游戏发布平台。 我们在Unity做的事情包括2017.1要发布的平台,是直属Android平台的。

1. 为什么要制作游戏原型?

当然,这里的大部分人都是游戏开发者,甚至可能是他们自己完成了整个游戏的制作。 大家都知道制作游戏原型其实对于我们游戏设计来说是一个非常重要的过程,因为你要知道你不可能一次性花很多时间和精力去制作一个。 可能是策划或者老板说我想做这样的类型。 对于游戏来说,我们必须要做一些原型,包括找出我们需要使用什么样的技术,需要什么样的玩法,什么样的玩法有吸引力。 我想引导您了解这方面。 当然,游戏原型开发的形式有很多种。 有时你可能有一个想法,你可以用纸和笔实现游戏原型。 当然,游戏原型是可以玩的,你可以直接改变里面的材质来实现自己不同的想法。

第一个当然是验证技术的可行性,包括你要用什么引擎音乐音效,你要用什么技术,包括AI。 可以直接制作一个简单版本。

第二个核心玩法实验是大家都知道,你玩游戏的时候,肯定会有一个核心玩法。 核心玩法才是真正吸引玩家玩你的游戏的地方。 如果只是纸上谈兵,是没有办法做任何测试的,所以游戏原型可以支持你做小范围的测试,无论是内部还是外部。

第三点是你可以从一堆原型中挑选出最好的玩法和原型。 众所周知,像GameJam这样的游戏每年都会举办。 去年我们的同事参加了。 这非常有趣,要求我们在 48 小时内做出一个可以玩的游戏。 我们来看一个具体的例子。 大家都知道,现在最火的游戏之一GDC,原来的样子其实是这样的。 音频是日语的,所以我不会发布它。 之前是 2D,但这对应的是 3D 的最终场景。 它使用非常简单的 2D 游戏来快速实验数值设计和人工智能。 无需花费大量精力和时间来创建特定的三维模型。

再比如我们非常熟悉的SUPERCELL。 目前其最受欢迎的游戏有四款,但利润非常高。 其实有一款像皇室战争这样的游戏。 在制作这款游戏​​之前,制作了十个原型。 他们淘汰了这十个原型中的七个,留下了三个。 然后我们做了试运营,试运营过程中又淘汰了两个,最后就剩下了SLASH CLANS这款游戏。 你想要得到一款玩家可以玩的高质量游戏,如果经济效益巨大,你可以制作一个游戏原型。

2. 游戏开发制作团队

其次我们来说说我们很多游戏公司可能有好几种工种。 首先,你需要有一个计划者。 当然,有程序员、艺术家,也许还有一些专门从事音乐的人。 最终老板可能会被留下。 老板可能只在商业领域。 他实际上并不知道如何开发代码,但他知道市场需要什么,或者他只是很有钱。

OK,这么多人,谁来制作这个游戏原型呢? 事实上,理论上任何人都可以制作游戏原型,只要你知道如何使用工具。 当然,说到游戏策划,他的想法可能最多。 他知道自己设计的系统是什么,玩法是什么,价值是什么,关卡是什么。 他可以和我们的程序、我们的美术、我们的音乐,当然还有我们的老板沟通来制作这个原型。 因为如果一个工具好用,比如他熟悉使用Unity,他就可以使用这个工具,让程序员和美工来配合他。 因为策划一款游戏最重要的能力其实并不是有多么新颖或者有多少想法。 其实说到底,就是一种沟通能力。 程序员、艺术家、老板都有自己的想法。 如果他的沟通能力很强,能够将自己的想法传达给这些人,让大家形成合力,这就是最强的。 每个人都知道游戏创意。 这里几百个人每个人可能都有几十个很奇怪的想法,但是你如何去沟通它们,如何让每个人都配合你去完成它们。

3、这个游戏原型具体是如何制作的?

我们现在知道谁可能正在开发它以及我们如何制作游戏原型。 首先,正如刚才提到的,我们可以使用纸和笔。 它非常简单而且非常快。 但也许你的沟通效率没有那么高,因为别人可能无法理解你的想法。 当然,第二点是一个偷懒的想法。 资源商店中有很多模板。 和FPS一样,你可以使用它并应用它。 这是一种可以快速制作原型的方法,当然成本也不高。 但更多的情况下,也许我们是程序员android游戏开发案例与关键技术,我们有现成的代码、现成的材料,我们可以直接用这些来快速制作原型。 这个方法就是我接下来要给大家讲的我之前是如何制作这个原型的。

实际项目分析,我主要想讲这方面。 实际项目分析。 事实上,这个项目是我和另外三个朋友在加入 Unity 之前创建的。 我于去年三月加入 Unity。 就在一年前,我们用业余时间做了一个月左右,因为他们也在其他公司工作。 他们也有这个想法,想要拍这个故事。 他们都是艺术设计感很强的人,所以给我做了一个视频。 他们希望我使用 Unity 作为工具来创建视频中的主要功能点。 首先让我向您展示他们将要做什么的视频。

(视频播放)

这是我们的初稿,第一个版本,角色设计非常粗糙。 这就是角色设计的最终版本。 这是他们制作的第一部影视视频。 影响如何? 包括这个应该是第二版的第二个场景。 这是他们希望在最终版本中达到的效果。 当然,我们最终达到的效果并不完全是这样,但我们想研究技术可行性以及我们可以使用什么方法来快速创建这些角色并创建这些动画的六连击连击。 稍后我会详细向大家解释。

这个技术游戏原型的目标其实是我朋友的团队在使用cocos2D之前就已经实现的。 其实如果从编辑的角度来操作会比较麻烦。 他们想尝试使用Unity来开发这款2D游戏。 我在这里列出了他们想要实现的所有具体功能。 第一个是我们的背景视差滚动功能。 当然这个功能还是比较简单的。 我会告诉你怎么做。 然后就是Unity导入Flash素材的问题。 第三个是主角的连击操作,如何在Unity中练习。 第四是找到一个合适的系统来做一些简单的AI,第五是触摸屏的滑动操作,这可以让你有更高的灵活性。 然后就是让碰撞物体在正确的时间出现在正确的位置的问题。 你必须在正确的时间演奏你的热门歌曲,这实际上需要一些工作,我将解释如何做。 最后就是粒子效果,比较简单,只需要一些材料。

简述一下各个功能点是如何解决的? 就像我们2D平台上的视差滚动一样,Unity官方项目有现成的脚本,可以用来直接找到地方并将其放置在相机和相关背景上。 然后将这些材质背景层关联起来即可。 因为现成的东西已经存在,你不必花时间自己写。 如果你想证明你的技能,没问题,你可以自己写一个。

第二点是解决Flash素材导入Unity的问题。 我找到了一个 GAF Pro 插件。 经过比较和阅读用户反馈后,我决定使用这个。 包括给团队写一封信,询问他们是否对性能有任何具体问题,我决定使用这个工具。

第三点就是主角的连击操作。 一开始,我们想编写一堆代码来控制这些触摸屏。 其实我想要达到的效果就是按住按钮,点击每个按钮的时间间隔是0.3毫秒。 一旦进入,就会进行下一步android游戏开发案例与关键技术,依此类推,直到第六步。 如果下次点击的时间超过 0.3 毫秒,我就会返回待机状态。 逻辑很简单。 虽然这个逻辑很简单,但是如果要连续走六步,相信代码肯定是可以写出来的。 但当时我选择使用PlayMaker来做这个连击操作。

安卓小游戏开发案例_安卓应用开发案例_android游戏开发案例与关键技术

它有很多动作。 你可以看到这个长长的名单。 您必须编写相同的代码来对应每个操作。 但好处是都写好了,只需要关联节点就可以了。 这就是快速发展的优势。 另一个,如果您找到相关操作,有一个按钮可以加载其他几个文件。 它有一个动作搜索引擎,可以将开发人员贡献的脚本直接放在这里。 你可以搜索出来直接导入到Unity中使用。 当然,所有这些代码都是开源的。

我使用的是EasyTouch 5这个插件来操作触摸屏,通过一个简单的脚本就可以实现。 我将解释它如何与 PlayMaker 交互。 另外就是解决碰撞体在正确的时间出现在正确的地方的问题。 大家都知道我刚才播放的动画。 其实这样解释有点困难。 我会直接打开项目。 在这个项目中,假设我已经导入了所有这些材料,并且我身后的背景都设置好了,然后我可以进行六连击,然后将其击倒,或者我只有一个操作,或者我可以使用大动作或可以跳跃。 对于这样的操作,首先,当我挡住他的球时,我需要知道我击中了他的胃,但是Unity不知道他的胃在哪里。 这只是一张图片,不像 3D。 这是一张长方形的图。 所以一个解决办法就是跟艺术家商量,就是你攻击他的时候,我需要知道这一拳是什么时候出的。 比如说我们来看看主角。 导入插件后,您可以调整框架。 比如说,如果我的拳头看起来像这样,此时,我可以在这一点上打一拳。 如果你遇到僵尸,应该播放这个动画。 如果只是加到这个上面不管,会经常遇到敌人,效果会一直打,这不是我们想要的。 因此,我们和艺术家讨论了针对不同攻击时期创建节点。 当这一拳打出时,这个地方就是攻击判断点。 我知道他的手是这样生成的。 我们可以在这个地方给它加一条视线。 我们可以实现这个视线。 当您进入对撞机时,我们知道它何时进入。 如果我们坚持这一行动游戏开发素材,我们就会知道。 我们也知道它是否结束。 其实这个很简单。 当我们进入这个动画节点时,我们打开拳头上的碰撞器。 当然这种方法比较原始,但是还是可以的。 这里可能有朋友有更好的方法,但是这个方法可以解决这个问题。 如果我离开这个状态,我将关闭碰撞。 这样的话,碰撞器只有在我需要的时候才会生效。

回到PPT,这是我们刚刚制作的脚本。 粒子效果非常简单,只是使用资源商店中的一些材质。 刚才讲的具体开发步骤就是我想要达到的目标。 我将引导您完成接下来的具体步骤,包括导入材料以进行连接。

首先,我们的材料是Flash。 比如说我拿我们主角的一个素材,我们设计师设计的时候,他已经把所有的动画都做好了。 然后Flash中有很多攻击方式,非常直观,也很容易调整。 例如,如果我不想在被击中时执行此操作,并且想延迟 0.5 秒,那么我可以稍后更改它。 然后改好之后扔给我,然后进入Unity引擎,我们主角就可以把它电竞出来了。 例如,如果我把它放在一个文件夹中,然后我们打开GAF,它会生成两个文件。 您可以在此处预览这些动画,以确保它们与 Flash 中的完全相同。 他向我们声称这是一个 Zip 文件,里面有两个文件。 它包含了主角的动画,哪个动画应该使用哪些图片,如何放置,位置信息都在里面。 然后还有一张图,效果不太好。 没有充分考虑手柄和脚的分离,导致转换器在转换时切得乱七八糟。 让我给你举一个更好的例子,那就是另一个角色。 怪物角色就是一个很好的例子,所以我将导出它。 如果将此角色放入转换器中,动画将是相同的。 它可以显示所有动画,但是它的纹理会很小,因为它的手和脚给你分开了,所以纹理很小。 但事实上,它的效果并不比英雄差。 所以这取决于你的设计师如何设计。 也许主角在设计的时候并没有想那么多,只是按照自己的想法去做。 当谈到怪物时,他想到了我要把这些四肢分开。

有了这两个文件之后,其实就很简单了。 比如我在Unity中找到一个文件夹,然后我把monster这两个文件直接放在这里,然后导入。 导入后,这里会有一个材质。 正如您所看到的,它有很多属性和按钮。 你所要做的就是生成这样一个可以使用的东西。 它会转换你所有的攻击,包括像这样的东西,这里面有很多jeger,包括你想要的动作,如何触发这些动作。 您可以将单个动作分成多个动作,并且可以将其分开,以便更整齐。 当然,这个例子看起来比较干净,没有太杂乱,一目了然。 但有一个坏榜样给大家看,它就是我们的怪物。 这实际上是一个不太好的例子。 事实上,如果导入这种节点,就可以进行连击。 我们可以看看 FSM 是如何做到的。 正如你所看到的,我在我的主角下面放置了几个脚本和一堆 FSM。 这是什么意思? 就是说我要赋予这个角色,我要控制他的角色,包括他的奔跑、他的打击、他被击中的状态。 例如,此攻击使用这些节点。 看起来很复杂,但实际上它的逻辑很简单。 因为我想做一个六连击,首先我需要看是否要进行动画过渡,其次我需要确保它已经达到了角色的待机状态。 看看是否是第一拳。 如果不是第一拳,请确保回到第一拳。 这些判断实际上是判断它是否恢复到原来的状态。 包括脚本我使用EasyTouch来判断是否被点击。 这是一招、二招、三招、四招、五招,最后是第六招。 当然,这看起来比较复杂,但实际上从开发的角度来看,比如你写一段代码,我不喜欢你的动作之间的间隔,或者动作之间的间隔太大。 事实上,代码要靠程序员来修改这个参数。 比如你的策划就可以使用这个组织核心,所以调整就很简单。 程序员可能会有点看不起这个,但是对于规划者来说却非常友好。 它是快速原型制作的一个非常好的工具。

让我谈谈我们的剧本。 其实在播放器控件内部,它就像一个空壳来调用里面的Playmaker。 如果你没有编程经验,或者你不想使用它,因为我自己就是一名程序员,这样写比较容易。 看一下PPT,应该都涵盖了。 我想说的大部分内容都已经涵盖了。

最后,我想向大家展示的是用于控制碰撞测试、具体逻辑和角色移动的C#脚本。 AnimationEvent 用于与 Playmaker 交互。 对于他们之间的具体关系,我做了一张图。 您可以查看最左侧的脚本。 事实上,你可以使用Playmaker来处理它。 他们之间的关系是这样的。 另外,因为我们的讲师团队经常发一些教程,所以我们的活动会直接发布在我们的官方微博和社区上。 我们于三月份开始了Unity中国技术路演。 我们的三位讲师已经去了深圳、厦门、广州、香港等八个城市。 4月份我们还去了西安、北京、成都、重庆,下半年我们也会去。 更多其他城市也进行了这些技术讲座。 这些活动都是免费的,欢迎大家参加!

本文经公众号Gad-腾讯游戏开发者平台授权转载。

文章来源:http://www.sohu.com/a/147463533_256833