本全新指南将引导你完成准备Unity环境以创建《人类:一败涂地》关卡的初始步骤。之后会带你创建初始关卡布局、添加机械预制件、设置在线多人游戏、光照和检查点。还包括将你创建的关卡导出并发布到Steam的内容。
配置《人类:一败涂地》创意工坊的Unity环境
安装Unity并创建新项目
可从官网下载免费版Unity,Unity 2017.4.13f1具备开发《人类:一败涂地》关卡和多人游戏大厅所需的全部功能。对于Mac用户,你需要确保在安装过程中勾选了【Windows Build Support】复选框(见下文)。如果未勾选,你将无法从Unity导出关卡,并会收到以下错误:为目标“WindowsStandaloneSupport”构建资源包不被允许,因为所需模块未安装。安装完成后,启动Unity并创建新项目。请指定以下详细信息:
•项目名称 - 可自定义名称。本指南中命名为“New Human Project”。
•位置 - 可自定义位置。确保有足够的磁盘空间。
•模板 - 选择3D项目而非2D项目。
然后选择创建项目。将Human Workshop Package导入Unity
创建项目后,从主菜单中选择资源选项,然后按照以下步骤操作:
•选择导入包,然后点击自定义包•这将弹出一个窗口,用于选择你想要导入的包。
•导航至《人类一败涂地》的安装文件夹。
•《人类一败涂地》创意工坊文件的默认位置为:C:/ProgramFiles(x86)/Steam/steamapps/common/Human Fall Flat/WorkshopPackage
•完成后,选择Human Unity包文件并点击打开。
•短暂延迟后,会出现导入Unity包窗口。
•点击导入按钮。•你应该能看到一个进度条。等待它完成安装。
•安装完成后,完全退出Unity。
•从提供的创意工坊文件夹中复制【Project Settings】文件夹,该文件夹位于【C:/ProgramFiles(x86)/Steam/steamapps/common/Human Fall Flat/WorkshopPackage】。将此粘贴到“新人类计划”文件夹中,以替换现有的“项目设置”文件夹。再次运行Unity,现在你可以在资源窗口中查看Human包内的Workshop文件夹了。重新导入预制体缩略图
不过,现在你会发现在资源窗口中,并非所有预制体都显示预期的缩略图,而是显示成这样,这没什么用处。正如Unity Issue Tracker上的此页面所述,这是Unity中的一个漏洞,且不会被修复。
不过,要让缩略图正确显示,你可以按照以下步骤操作:
•右键点击Prefabs文件夹。
•选择重新导入全部选项,完成后缩略图将正确显示。不过,此过程会花费相当长的时间。
创建你的关卡
基本部分
•创建一个新的场景文件。
•重命名为MyHumanLevel或任何你想给关卡起的名字。
•打开场景文件。
•从层级中删除主摄像机。
•从层级中删除方向光。
关卡游戏对象
•如果你导航至Workshop > Prefabs,会找到一个Level预制件。你可以将其直接添加到任何新关卡中以节省时间,也可以按照以下步骤从头开始制作。
如果不想了解如何自行制作关卡预制件,请跳至本指南的【初始关卡布局】部分。
如何创建关卡游戏对象
•创建一个空对象并将其重命名为【Level】。
•确保其所有轴上的位置均设置为0。
•添加名为【Builtin Level】的组件。此组件允许关卡在编辑器中运行。
•添加名为【Sound Manager】的组件。这允许关卡使用游戏的声音系统。
•添加名为【Sound Library】的组件。用于指定游戏使用的正确声音库。
•添加名为【Net Scene】的组件。允许场景通过网络用于在线多人游戏。
•添加名为【Scene Manager】的组件。用于多人游戏的网络场景控制。
•在关卡下创建一个空对象并将其重命名为初始生成点。此对象将控制玩家在场景中的生成位置。
•添加名为检查点的组件。
•将位置设置为0,0,0。
•将初始生成点拖入关卡的内置关卡组件中的生成点框和调试生成点。
•在关卡下创建一个空对象并将其重命名为掉落触发器。此对象将检测玩家何时从关卡掉落。
•添加名为掉落触发器和盒体碰撞器的组件。
•将位置设置为0,-30,0。
•将盒体碰撞器大小更改为200,20,200。
•确保勾选了是触发器选项。
•在关卡下创建一个空对象并将其重命名为通过触发器。此触发器用于检测已到达关卡终点的玩家。当玩家通过此点后从关卡掉落时,将进入下一关。
•添加名为PassTrigger的组件和盒体碰撞器。
•将位置设置为0,-3,34。
•将盒体碰撞器大小更改为6,6,6。
•确保勾选“是触发器”选项。
•在层级下拉按钮中选择“Triggers”。初始关卡布局
•在工坊预制件目录中搜索GreyStoneEdgeLargeGrassFlooringStraight1.prefab
•将预制件拖入场景
•设置其位置为0,-1,0
•设置旋转为0,0,0
•移至层级结构中的Level游戏对象内
•标记为Floor1
•在工坊预制件目录中搜索LightSandStoneFloorSmallAztecFloorPattern1
•将预制件拖入场景
•位置0,-0.5,12
•设置旋转为90,0,0
•移至层级结构中的Level游戏对象内
•标记为Floor2
•在工坊预制件目录中搜索LightWoodFloorTreePlatform1
•将预制件拖入场景
•位置0,0,25
•旋转0,90,0
•缩放3,1,0.9
•移至层级结构中的Level游戏对象内
•标记为Floor3•选中1层、2层和3层,按下CTRL + D复制这三个对象。
•将它们分别重命名为4层、5层、6层。
•设置4层的位置为0,-1,37。
•设置5层的位置为0,-0.5,55。
•设置6层的位置为9,0,55,旋转角度为0,0,0。
现在你的关卡应该看起来是这样的:添加机械预制件
•在工坊目录的预制件文件夹中搜索MetalMechPressureSwitchDoorwLight1,并将其放置到场景中。
•将其移至层级面板中的Level游戏对象内。
•将其重命名为DoorPuzzle1。
•设置位置为0, 0, 0。
•点击层级面板中DoorPuzzle1旁的三角形,展开其子对象列表。
•从层级面板中选择PressurePlate。
•设置位置为-3,0.1,14。
•选择Indicator。
•设置位置为0, 2.5, 26。
•从层级面板中选择AutomaticDoor。
•设置位置为0,0.1,26。
现在你的关卡布局应如下所示(当然,你可能不会如此近距离地盯着一扇关闭的门)。•在工坊目录中搜索LightGreyMetalMechMediumDanglingLantern1并将其放置到场景中。
•在层级面板中找到Level游戏对象并点击进入。
•将位置设置为0, 6, 46。
过关触发器
一个用于定义玩家落入区域的体积,触发当前关卡结束并加载下一关。
•在层级面板中选择PassTrigger。
•将位置设置为15, -3, 55。
刚体与在线多人游戏
任何带有刚体组件的游戏对象都需要添加网络体组件,以确保其在在线多人游戏中通过网络正确同步。
你可以通过点击Crate1x1x1对象查看相关示例。添加网络体组件时,也会自动添加网络标识组件,并且在保存关卡时会自动为其分配一个值。
通常,如果场景中的对象会移动,并且具有刚体组件,那么它也应该具有网络体组件。
光照设置:
1. 打开窗口菜单,依次导航至光照和设置。
2. 将天空盒材质更改为天空。
3. 将关卡预制件自带的方向光拖入太阳源框中。
4. 将环境光照源更改为颜色。
5. 将环境颜色更改为#6C7B96。
6. 将环境反射强度乘数更改为0.7。检查点
若你导航至工坊 > 预制件,会找到一个检查点预制件。可将其拖入关卡对象以节省时间,或者你也可以从头制作:
•选择关卡对象,添加一个空的子游戏对象并将其重命名为检查点。
•添加组件盒碰撞体。
•将大小设置为6,6,6。
•勾选盒碰撞体上的是触发器选项。
•添加组件检查点。
•将检查点脚本上的数字字段设置为1。
•在层级下拉按钮上选择触发器。
•将位置设置为0,3.5,35。
•要添加更多检查点,复制此对象并将其移至相应位置。
•为关卡中添加的每个额外检查点,将检查点组件上的数字增加1。这是检查点预制体现在你的关卡应该添加了检查点,看起来是这样的:放置角色
你可以通过将角色放置到场景中的任意位置,快速测试谜题和检查点。操作步骤如下:
•按下播放/运行按钮。
•选择场景选项卡。
•在场景窗口中导航至想要放置的位置。
•选择角色下拉菜单。
•选择放置角色。
•角色将落入场景窗口视野内的指定位置。
•现在切换回游戏选项卡,从角色掉落的位置继续测试你的关卡。
导出到本地关卡
好了,你已经在Unity中测试了关卡,现在可以将其导出到游戏中,以便在游戏内继续测试和游玩。但在将新关卡导出到游戏之前,需要满足一些要求。导出流程
首先,你需要在“游玩/运行”模式下测试关卡时创建缩略图截图。如果在选择“游玩/运行”模式后,你没有在游戏标签页中生成关卡,这可能是因为控制台中出现了一些错误,并且控制台中的“错误暂停”按钮被设置为开启状态。如果你将其设置为关闭,你会发现能够按预期生成关卡。在游戏或运行模式下,在合适的位置按F9键可为你的关卡创建缩略图截图。操作后会显示“Thumbnail Captured”确认消息。•再次按下“开始”/“运行”以结束游戏。
•选择“人类”选项,然后选择“人类导出”。•关卡标题:在关卡标题处输入你想要为关卡取的名称。Steam限制字符数为129个(包括空格),但在游戏内会远早于达到此限制时就被截断,因此请尽量保持简洁!
•关卡描述:在关卡描述处输入关于你关卡的更多信息。Steam限制字符数为8000个(包括空格),但在游戏内会远早于达到此限制时就被截断,因此请仔细考虑你想对关卡说些什么。发布关卡后,标题和描述都可以通过创意工坊中心进行更新。
•梦想类型(标签):如果你的关卡仅适合单人游玩,请进行选择。如果既适合单人也适合多人游玩,则选择多人游戏选项。•推荐玩家数量(标签):选择此关卡的预期玩家数量,范围为1-8人。
•主题标签:接下来会看到主题标签勾选框。默认情况下,系统会检测关卡中使用的所有预制件,并自动勾选相应主题。例如,我们提供的中级关卡示例场景会自动填充宅邸、火车、爆破、城堡、水域、发电厂和阿兹特克等主题标签,因为该场景包含所有这些关卡主题的预制件。
•导出梦想:然后点击“人类导出”窗口底部的“导出梦想”按钮。片刻后导出过程完成,即可关闭“人类导出”窗口。下一部分指南将为你介绍如何对关卡进行测试以及如何将其发布到Steam平台。
导出错误
以下是导出关卡时可能出现的所有导出错误,在“导出梦想”按钮可用前,你需要解决这些问题:
•场景中不应存在相机。
•场景中存在多个关卡。
•场景中没有关卡对象。请查看示例场景。
•关卡未定义生成点。
•关卡中没有灯光。请查看示例场景。
•关卡中没有坠落触发器。请查看示例场景。
•关卡中没有关卡通过触发器。请查看示例场景。
•缺少检查点。
•梦想标题不能为空。
•梦想描述不能为空。
•元数据无效。•需要【梦境图像】。
【人物导出】功能
在【人物导出】窗口中还有其他一些按钮,具体如下:
•语言选择:在【人物导出】窗口顶部有一个语言选择选项,你可以将窗口内的任何文本更改为你选择的语言(只要游戏支持该语言)。这有望帮助你理解显示的任何【导出错误】,你可能需要在导出关卡前清除这些错误。
•打开创意工坊文件夹:这将打开你导出的关卡在本地保存的位置,路径如下:
C:/Users/user.name/AppData/LocalLow/NoBrakesGames/Human/Workshop
•加载截图点击此按钮将加载你最后截取的截图缩略图,该截图可能是在游戏内(通过【本地关卡】菜单进入关卡游玩时按F9键截取)或在Unity中截取的。
•加载梦境图像:如果你之前已将关卡导出到游戏中,此选项将重新加载导出关卡中保存的缩略图,而非显示你自关卡导出后可能新截取的任何缩略图。
换句话说,【加载截图】会切换到你的新截图,而【加载梦境图像】则会在你之前已将关卡导出到游戏的情况下,切换到该关卡现有的截图。游戏测试与发布至Steam
成功从Unity导出关卡后,该关卡将可在游戏中游玩。发布到Steam创意工坊中心前,你可以在单人或合作模式下进行游戏测试。只有发布关卡并订阅后,它才能在在线多人模式中使用。操作步骤如下:
1.打开《人类:一败涂地》。
2.选择【游玩】>【本地】>【选择关卡】。
3.选择【本地关卡】。
4.在此菜单中,你应该能看到从Unity导出的关卡。如你所见,你可以查看关卡的名称、描述和截图缩略图,以及从Unity导出关卡时设置的所有标签的详细信息。
从这里开始,你有以下几个选项:
•【工坊法律协议】:如果你尚未接受该协议,则需要先接受它,之后才能将你创建的任何内容发布到Steam创意工坊中心。
•【发布到工坊】:完成以下操作后,你将可以选择此选项:
- 你已接受【工坊法律协议】。
- 你已确保关卡包含名称、描述和截图缩略图。如果缺少其中任何一项,此选项将不可用,直至补充完整。•游玩。在将你的关卡发布到Steam之前进行测试时,你应该选择此选项,现在我们就来操作。
截图:除了可以在本地测试关卡以确保你对其满意外,你还可以按照以下步骤在游戏中截取关卡截图:
•在关卡中按F9键截取缩略图。如果你正在游玩大厅,需要先按两次F8键进入正确的相机视角,然后在关卡中按F9键截取缩略图。•系统会显示缩略图捕获确认消息。
•捕获的缩略图截图将保存在以下位置:
C:/Users/user.name/AppData/LocalLow/NoBrakesGames/Human然后只需将此缩略图文件移动到Levels文件夹下的正确文件夹中,以替换该关卡当前使用的缩略图。
重新加载关卡
除了可以在游戏中截取关卡截图外,当你从本地关卡菜单进入关卡游玩时,还会在关卡的暂停菜单中找到【重新加载关卡】这一额外选项。这是一个在游戏中测试你的关卡、并在Unity中对其进行更新和改进的非常实用的功能。使用方法如下:
•首先运行游戏,然后运行Unity,确保两者同时处于活动状态。
•在Unity中成功导出关卡,使其能在游戏的【本地关卡】菜单中显示。
•切换到游戏,在【本地关卡】菜单中找到导出的关卡并进行游玩。
•进入关卡后,切换回Unity。
•对关卡进行修改,必要时截取新的缩略图,然后重新导出。
•切换回游戏,打开暂停菜单并选择【重新加载关卡】选项。
•关卡将完全重新加载,现在会包含你从Unity上次导出的更改。暂停菜单中另一个额外选项是【在创意工坊显示关卡】,但该选项只有在你成功发布正在测试的关卡后才会添加到暂停菜单中。本指南稍后会介绍【在创意工坊显示关卡】选项,现在我们先来看如何将关卡发布到Steam。
•选择【发布到创意工坊】选项,Steam上传将立即开始。上传完成后,Steam 界面会自动打开,这部分内容我们将在本指南的下一节进行介绍。
订阅、评分和举报
订阅
在关闭 Steam 界面之前,你需要订阅自己刚刚发布到 Steam 的关卡,这样它才会显示在【已订阅关卡】菜单中,你才能在本地单人或合作模式中游玩。更重要的是,订阅自己发布的关卡后,你可以使用该关卡主持在线多人游戏会话。
你也可以从创意工坊中心订阅并下载其他人的关卡、大厅和模型(皮肤)。
关闭 Steam 界面并返回游戏后,请执行以下操作:
•选择【游玩】>【本地】>【选择关卡】。
•选择【已订阅关卡】。你应该能在这个菜单中看到所有已订阅的关卡。•已订阅关卡界面新增【打开Steam创意工坊】选项。
•选择该选项将打开Steam覆盖层,并根据你在游戏中查看的物品类型(关卡、大厅或模型(皮肤))跳转到创意工坊中心的相应部分。这能让你快速浏览并订阅新内容。
•当你作为房主时,也可通过在线多人游戏中的【选择关卡】选项找到已订阅关卡界面。对于您已订阅的任何关卡,若您喜欢当前游玩体验,可通过Steam界面为其评分。在游玩该关卡时,从游戏内暂停菜单中选择【在创意工坊中显示关卡】选项,即可在创意工坊中心轻松找到该已发布关卡的工坊页面。选择此选项会立即打开Steam界面,您可在此进行订阅和评分操作。
如果您不喜欢当前游玩的内容,或发现关卡中包含令您不适的内容,也可通过同一界面向Steam举报该关卡。好了,现在你可以自由游玩自己创作的内容了!
请查看我们的其他指南,了解多人游戏支持、对1.2 Alpha2版本的向后兼容性、创意工坊示例关卡、模板、预制测试平台、节点图系统等更多内容。
提示与技巧
最大关卡尺寸
如果想创建一个在多人游戏中运行无问题的关卡,你需要将其控制在合理大小。当物体距离关卡原点超过500单位(即0.5公里)时,可能无法正常运行(这实际上已是现有最大游戏内关卡的两倍大小)。此限制是由于网络系统的范围所致,多人游戏中通过网络发送位置信息的最大范围为500单位。在多人游戏中,任何超过该距离的物体都会导致客户端出现物体损坏的情况。
作为参考,【水关卡】中的水体仅占此距离的不到一半,而实际可玩区域甚至比这更小。
预制件放置、网络范围警告和使用网络场景父节点
除了必须将关卡保持在适合多人游戏的合理单位大小外,如果您希望使用大量预制件放置,还需要确保已在关卡中设置好场景以应对大量预制件放置。如果你在Unity控制台中收到以下类型的警告,那么你需要考虑在场景的层级结构中添加网络场景父节点:
网络作用域“Level”(网络ID=0)可能会生成大于1200字节的数据包,这在某些平台上可能无法发送!此作用域的估计最坏情况大小为1395字节;最大安全限制为1193字节
上述警告与未在网络场景节点之间划分过多放置物有关。你可以在我们提供的Unity包中的PrefabTestbeds里看到所需设置的示例。PrefabTests最初是单个PrefabTested,但在开发过程中,由于放置数量过多,我们不得不将PrefabTestbed拆分为多个独立关卡。即便如此,在测试预制件的多人游戏功能时,每个关卡仍需进一步拆分为多个独立的网络场景。
如果出现此警告,则需要将关卡拆分为多个独立的网络场景,以确保多人游戏功能正常运行。默认情况下,如果没有至少几个网络场景父节点,所有内容将处于单个网络场景下,这会导致该错误。台阶尺寸标准:在关卡中建造台阶和楼梯时,每级台阶的高度不应超过35厘米,深度不应低于35厘米。这样玩家在关卡中可以直接走上台阶。如果不遵循这些尺寸标准,玩家将难以行走,不得不跳上楼梯。
跳跃尺寸标准:
- 垂直跳跃距离:跳跃以抓住上方边缘的距离约为2米。
- 水平跳跃距离:这需要根据具体情况进行调整和测试,因为跳跃距离取决于物理效果和关卡区域的地形,例如是上坡跳跃还是下坡跳跃。
FBX模型:使用Maya、3DS Max和Blender等程序。创建新模型以用于你的关卡!
热键:本页面提供了Unity默认键盘快捷键的概述。
掌握Unity:
- Unity互动教程
- 官方Unity学习播放列表
ProBuilder:ProBuilder是一款能快速构建你理想关卡的出色工具,并且已随Unity一同提供!
截图:请记住,在“播放/运行”模式下测试关卡时,你需要按F9键创建缩略图截图。操作后会显示“缩略图已捕获”的确认消息。当你准备好将其导出到游戏并最终发布到Steam时,它将被分配到你的关卡中。
你也可以在游戏内截取关卡截图,但如果你正在游玩大厅,需要先按两次F8以进入正确的相机视角,然后在关卡内按F9截取缩略图。
进一步阅读:请查看我关于《人类:一败涂地》创意工坊功能的其他指南:人类创意工坊:功能、多人游戏支持及与1.版本的向后兼容性。Alpha2版本
人类工坊:示例工坊关卡、模板与预制件测试平台
人类工坊:编辑器改进与节点图系统
人类工坊:节点图参考指南
人类工坊:发布后修复、更新与新增内容 - 即将推出!
附录
检查点:这些是玩家通过一次后才会激活的生成点,会替换之前的生成点。
坠落触发器:定义玩家落入后会被重置并落回关卡的区域体积。
文件夹:导出关卡前请先创建一个文件夹。
游戏窗口:用于测试的游戏渲染窗口。
图形节点:附加到对象的不同脚本之间交互性的图形表示。层级:当前场景中所有游戏对象的列表。
检视面板:当前选中对象的所有信息。
关卡:每个关卡都需要一个空游戏对象,作为关卡中其他必要对象的父对象。
关卡描述:将显示在主游戏中的关卡说明。请务必填写此项,以便其他玩家了解关卡内容!
关卡预制件:在工坊文件夹的预制件目录下有一个关卡预制件。你只需将其拖入关卡,即可完成所有相关设置。
关卡标题:给你的关卡起一个有趣的名字来吸引其他玩家。大多数《人类:一败涂地》的关卡名称都是单个词语,但你可以自由命名自己的作品。网络实体:这是一个特定脚本,允许物体在在线多人游戏中同步,并且如果从关卡掉落会重新生成。
通过触发器:一个定义区域的体积,玩家落入该区域会触发当前关卡结束并加载下一关。构建大厅关卡时不需要此触发器。
物理材质:这些不同的材质会改变物体的物理属性。
预制件:在预制件文件夹中可以找到现成的物体。也可以查看资源>工坊>场景>关卡>预制件测试台。我们为游戏中的每个关卡都创建了单独的预制件测试台,你可以打开它们。然后你可以进入播放/运行模式,这样就能浏览该关卡的所有预制件了!查看这些场景可以快速了解所有内容!如果您在预制件中找不到想要的内容,请告诉我们,我们会将其添加到待办工作列表中,以便为您创建。
项目A:当前项目中所有资源的列表。可从此处直接将资源拖放到场景窗口中。
刚体:一种组件,能使物体成为物理对象,从而与其他物体产生交互。
场景窗口:用于导航游戏世界以及操作物体的窗口。
生成点:一个区域,用于显示玩家首次生成到关卡中时的下落轨迹。