Unity学习笔记之Human fall flat
主要参考《人类一败涂地》官方教程
Unity版本
Unity版本:Unity2017.4.13f1
下载链接:Unity2017.4.13f1.
复制链接打开即可下载安装
安装好之后完成注册和登录即可使用了
详细教程获取
教程地址:打开steam,点击Human fall flat。进入“指南”,搜索“Getting started”,既可以看到这个叫Mildred Bumble 出的教程了。
开始工程导入
首先进入Unity,会提示更新版本,这里千万不要进行更新!
然后我们开始导入人类一败涂地的工坊资源包
Assets–>Import Package–>Custom Package
然后导航到你的steam安装目录
进入steamapps–>common–>Human fall flat–>WorkshopPackage,找到Human.unitypackage这个包,开始导入!
然后就进入了漫长的等待,等待加载完毕,会显示要导入的包,确认一遍,导入即可,然后又进入了漫长的等待(5-30min,由你的系统决定)
整个导入完毕之后,我们关闭Unity,然后打开目前这个工程所在的目录,接着打开刚才那个WorkshopPackage目录,将其中的ProjectSetting文件夹复制到你当前的工程文件夹中。
至此,导入工作就完成了。
素材包介绍
这里我只是简单的介绍一下我的理解,不详细介绍了。
首先打开刚才的工程,可以看到所有的资源包已经导入进去了
然后主要的素材在Assets–>Workshop–>Prefabs中,如下图所示
然后玩过这款游戏的同学就会发现,这些文件夹打的名字对应的都是Human fall flat中的基础关卡,然后每个文件夹都包含了对应关卡中地图的元素的素材,然后在这里我们称这些“素材”为预制件。
有些同学打开文件夹可能会遇到许多“小蓝块”,我们只需要点击Prefabs,右键–>Reimport All即可解决这一问题。
界面介绍
我们主要完成的是地图的构造,然后我们不需要camera什么组件,我们只需要Perfabs文件夹中的“level组件”,然后拖动这一组件到左边的Hierarchy栏中即可。就像这样!
然后我们的关卡就有了一些初始的元素了。
接着我们展开“level”,可以看到有以下几个元素。
这里应该是四个的,我把PassTrigger(通关点)已经放在地图里了,所以没在这儿显示。然后InitialSpawnpoint(人物出生点),FallTrigger(死亡触发点),Directional Light(平行光源),他们的作用也显而易见啦。
我们所要添加的所有的地图资源都要放在“level”文件夹底下,然后为了整合你的零零散散的资源,你可以重新建立一下包来将他们整合起来。
Create Empty–>Rename
这样就可以创建一个你命名的资源整合包啦,然后把你的预制件全部拖到这个包里就不会显得很凌乱了。
工具简介
主要的工具就上图中的6个,然后看图标就可以知道他们的作用。
从左到右分别是视角拖动,移动,旋转,立体缩放,平面缩放,自由改变工具,然后可以依次对一个预制件使用来看看效果,熟练运用即可开始制作地图了。
多练练就熟悉了,很简单的
常用组件简介
我们创建一个3DCube对象,就是一个方块,然后查看它的Inspector参数
下面一一介绍一下。
1.网格过滤器(Mesh Filter)
网格过滤器指的是物体给外界展示的外貌和形状,现在的状态是Cube,当然你也可以点击右边的小圆圈,选择并切换成其他形状
2.盒子碰撞器(Box Collider)
这个组件的作用是让这个物体可以被碰撞,可以被抓取。
而当我们不勾选盒子碰撞器时,这个物体就不可以被抓取,不可以被碰撞,也就是人物可以“穿过去”。
3.Mesh Renderer
不常用,这个组件的作用主要控制玩家能不能看到这个物体,也就是这个物体真实存在但是玩家看不见。
4.刚体(Rigidbody)
ADD Component,搜索并添加rigidbody即可。
这样一来这个物体就有了它自身的物理特性,如下图所示:
其中
Mass(质量),就是物体的质量了,一般情况下设置成25是比较合适的,是符合实际情况的;
Drag(阻力),表示你在拖动它时受到的阻力的大小;
Angular Drag(角阻力),表示你在旋转时受到的角阻力的大小;
Use Gravity(使用重力),用来控制物体是否受到重力影响;
Is Kinematic(是动力学的),一般来说勾选之后就会使得物体保持静止,就相当于没有刚体一样,所以一般要使得物体可移动的话,就不能勾选这一项了。
最后一个重要的参数就是Constraints,这个参数决定了我们可以固定物体在XYZ轴的位置,如果都不勾选,那么这个物体就是可以随意移动的。
其中X轴和Z轴是左右和前后方向,Y轴就是上下方向。
如果我们想物体只能上下移动,那么我只需要勾选Freeze Position中的X和Z,不勾选Y,这样一来我们就可以固定X轴和Z轴并使得物体上下移动了。
旋转也是一样,勾选Freeze Rotation的参数即可。
我们可以通过设置Constraints来固定物体,设计一些有趣的谜题和玩法了
其他的常用的还有网格碰撞器(Mesh Collider),它不可以和移动的物体一起运动,但是可以覆盖整个物体,一般情况下都是使用这个碰撞器,可以使人物可以和整个物体进行交互,也使得物体更加真实!
我们可以随意地修改这些参数来帮助理解他们对于物体的作用,这样一来我们也能让物体在游戏中显得更为真实。
一般来说,不必修改Drag和Angular Drag,只需要修改Mass就可以使得物体变得很真实。
多人游戏组件
在多人游戏中,常常需要用到“Net Body”组件,添加方法只需点击AddComponent,搜索并添加Net Body即可。
在地图中,如果你想要让你的物体被扔出地图后能重生,就只需要勾选“Respawn”即可,这在多人游戏中非常重要,一般来说,每个刚体物体都需要设置这个参数来保障物体能重生。
为了检查这一点,只需在搜索栏搜索“rigibody”,然后逐一查看被高亮的刚体物体即可,如下图所示:
地图构建和关卡设计
首先我们按照用上面的工具和预制件简单地制作一下地图,这里就略过了,按照个人的地图设计思路来就好了,然后我设计的一部分是这样的。
在做完这些步骤后,我们接下来要做的是设置小人的出生点(InitialSpawnpoint),这里我们只要点击“InitialSpawnpoint”,然后将这个出生点放置在你设计的出生点即可。
上图中,白线表示人物坠落的的地方,红圈表示人物落地的地点,其他的几个小灰点是其他玩家坠落后的着陆点。设置好之后,关卡一启动人物就会掉落在这个红圈里了。
至此,出生点就设置好了!
接下来我们开始设置掉落死亡区域,只要我们的小人掉落触碰到这个区域就死亡了,然后就会重新回到保存点。这一部比较简单,我们只需点击FallTrigger(死亡触发点),然后将它移动到整个地图的外部,调整大小即可,当人物掉落到地图外部之后,就会死亡了。
然后我设计的是这样的!
反正尽量设置的大一些,能覆盖整个地图,当然也可以自定义这个区域,也可以设置多个死亡触发区域,以迎合关卡的设计思路。
至此,死亡触发点就设置好了!
再接下来我们就来设置一个PassTrigger(通关点),当小人触碰到这个通关点就完成了整个关卡,然后就回到了游戏大厅了。
这里我将通关点放置在一个小岛的门边,当小人通关这个门就视为通关了。如下图所示:
然后我们可以用工具随意地设置通关点的大小和形状,按照自己设计思路来即可。
至此,通关点就设置好了!
还有一个就是Directional Light(平行光源),这个主要为你的关卡提供照明的光,当然一般情况下用默认设置就可以了,它可以提供很好的光照。
当然要是你制作的是恐怖系列的地图,你就要设置这个光源了
在Directional Light的Inspector设置里面,我们可以设置一系列参数,这些参数的作用都很好理解,看字面意思就行,自己设置就好。
这里我用的就是默认设置。
至此,平行光源就设置好了!
保存点的设置
人类一败涂地的关卡中都会设置保存点,用来保存玩家的游戏进度,可以让玩家获得很好的游戏体验,而保存点的设置也是考验设计者的思路啦。
然后我们创建一个空的物体,重命名为“checkpoint1”,然后进入其Inspector设置里面,点击“Add Component”,搜索并添加“Checkpoint(Script)”。
接着设置参数“Number”为1,这一步非常重要!!!
如果不设置的话,默认是0,会导致checkpoint1(检查点1)和InitialSpawnpoint(人物出生点)重合,人物就会直接出生到checkpoint1(检查点1)了,所以会导致错误。
另外“Box Collider”中的“Is Trigger”也要勾选一下,说明这个也是一个触发器,并且是可碰撞的。
整体设置如下图所示:
接着我们将设置好的checkpoint1(检查点1)按照设计思路放置在关卡保存点上,具体操作就像设置InitialSpawnpoint(人物出生点)一样的。
整个关卡中肯定要设置多个检查点的,而后续的步骤只需要将“Number”参数设置成2,3,4…即可。
运行测试
再构造完所有地图之后,我们就可以开始测试了。
在运行测试之前,我们要先打开并运行Steam客户端,当运行测试之后,会自动检测你的Steam上是否有《Human Fall Flat》 这个游戏,如果你没有这个游戏,那就别说测试的事儿了…
再运行Steam客户端之后,我们就可以点击“Play”按钮进行测试了。
运行结果如上图所示,然后就可以开始玩啦
导出及测试
点击Human–>Human Export即可
然后输入Dream Title和Dream Description,点击Export Dream即可。
要注意的一点是要将所有预制件放在包里面,不能在包外面,否则会提示无法导出,也就没有Export Dream这个按钮了
就像上图中的包结构一样,都是灰色的文件包就是正确的可导出的。
然后等待一会儿就可以导出成功了。最后我们打开Steam,进入《Human Fall Flat》 游戏,打开本地梦境,就可以在游戏中进行测试了。
写在最后
关卡设计主要还是看个人的设计思路,综合利用多种工具和组件,熟练运行在地图中,就可以设计出有趣的人类一败涂地关卡了。