第十一章:关卡动态载入.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章:关卡动态载入

第十一章:关卡动态载入 对于优化而言,Unreal Engine 3.0的新特性之一是关卡动态载入。简而言之,关卡动态载入是指关卡在内存中的装载和卸载,以及在游戏运行中对关卡可见性(visibility)的影响。其构思本身非常的简单;在您接近一个关卡之前,从技术上来说它不会“存在”在游戏里,而当您把关卡甩在身后时,它也不会存在。这将极大地节省内存的使用,同时使您的游戏拥有广阔的可玩区域。 11.1 关卡动态载入的优势 在之前版本的Unreal Engine中,此类优化通过分区(Zoning)来处理,使用这种方法能够将您的关卡分成多个相互隔离的区域,各个区域的可见性基于玩家是否看得到此区域而进行处理。这种方法有其优点,但是还是会受到这样一个事实的影响,即这种方法只是影响可见性;大型的关卡仍然需要大量的内存。通过将关卡在不被玩家视线所及时完全从内存中移除,关卡动态载入能够解决上述问题,因此对于优化关卡的可玩性来说,这是一种更有效的方法。 关卡动态载入的益处是多方面的;不仅仅是在计算机资源方面。首先是协作;因为所有用流方法组织在一起的关卡都包含在其各自的文件中,多个关卡设计师就能够在一个连续的流世界中工作,每人负责各自部分的关卡。另外一个重要的因素是这使每个关卡都有自己独立的Kismet序列,也就是说,每个关卡都能实质上独立控制gameplay的每个主要方面。 图11.1——本图说明了关卡动态载入背后的基本思想。 11.2 测试关卡动态载入 要牢记的重要的一件事是,实际上您不能在In Editor Game(编辑器中运行游戏模式)中真正的测试出关卡动态载入的效果。这是因为关卡中的所有场景都已经装载到内存中了,而动态载入处理只会用来调整各个关卡本身的可见性。为了准确的测试关卡动态载入的设置,您需要在编辑器之外对其进行测试,最好是在实际的游戏运行平台上。如果您正使用Unreal Engine 3 Runtime(Unreal Engine 3运行时端),您可以通过创建一个新的到ExampleGame的快捷方式来测试,要用您的关卡名作为快捷方式的扩展名,与编辑器的打开方法类似。例如,如果您的关卡命名为DM_DirgeOfMonkeys,那么您创建的新的到ExampleGame的快捷方式将如下所述: C:\UnrealInstallation\Binaries\ExampleGame.exe DM_DirgeOfMonkeys 11.3 动态载入的方法 有两种基本的方法可用于关卡动态载入:距离(Distance)和Kismet。无论关卡何时为了动态载入目的而引入,都必须在这两种方法中选择一种进行处理。两者之间的差别很明显而且从其名称即可看出各自的功能;距离(Distance)使用的是游戏玩家到将关卡串联在一起的给定点的距离,而Kismet使您能够使用Kismet事件和动作将关卡串联起来。根据哪种方法最适于关卡,您能够以任何喜欢的方式将其混合和匹配使用。 在使用Kismet方法时,关卡设计师也可以选择使用LevelStreamingVolumes(关卡动态载入体),它提供一种非常直观的进行动态载入处理的方法。还有一种特殊的技术能够用来串联多个关卡动态载入场景,在本章随后的内容中将对其进行讨论。 11.4 固定关卡vs.动态载入关卡 在关卡动态载入情况中有两种类型的关卡:固定关卡(Persistent Levels)和动态载入关卡(Streaming Levels)。固定关卡正如其名称所示,在游戏运行中总是显示。它是其它关卡装载和卸载的基础。固定关卡是任何关卡动态载入场景的必要条件,因为它是最初装载的用来启动动态载入处理的关卡。在许多情形中,此关卡只是一个漂浮在虚无空间的PlayerStart actor。实际的可玩的关卡随后动态载入这个固定关卡中。 因为每个动态载入情况中的关卡都包含自己的Kismet序列,固定关卡必须包含用于所有关卡的各种序列。这包括实际进行动态载入处理的各种Kismet,以及用于多个关卡的供Kismet使用的各种变量,如Music Track Banks。 实际被动态载入固定关卡的关卡被叫作“Streaming Levels(动态载入关卡)”。虽然从技术上来说,在动态载入情况下没有限制你可以放置多少动态载入关卡 ,但是您应该意识到,在每个固定关卡中装载大量的动态载入关卡会导致性能的下降。作为参考,Epic的游戏《Gears of War》(战争机器)一般在每个固定关卡中载入大约20个动态载入关卡。 当关卡在动态载入时,尺寸也是一个考虑因素。动态载入关卡的创建应该使其在载入到一起时能够互相连接,而不是重叠。也就是说,网格(grid)的大小将限制关卡动态载入场景的大小。然而,这不太会成为设计过

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档