插件刚下载下来,虽然从Demo里面看了下大致效果,但尝试使用的时候茫无头绪,因此决定一边读文档一边写下笔记。这个笔记会从最基本的名词概述开始一步一步到用法。
除非特别注明,所有内容都不是机翻,而是理解后自己翻译的。
翻译目录:
【零】API REFERENCE MANUAL第一章 、Documentation - Core Concept
【一】Documentation 功能概述
【二】Stream Quickstart
【三】Terrain Streaming Quickstart
【四】Documentation - Chunk Proxies
【末】活学活用
以下步骤会对场景造成大量改变且难以恢复,建议先进行备份。
绝大部分时候你会使用一个“Region Loader”,它用以加载以Player/Camera为圆心,半径范围内的Sectors。
通过直接搜索组件或者在Component -> Procedural Worlds -> SECTR -> Stream -> Region Loader可以找到组件并加到你的Player/Camera里。
Terrain streaming 需要将地形分割成区块(Splits/Chunks),这样一来地形可以变成小块围绕玩家动态加载,提高游戏性能。
一般情况下将地形分割会很麻烦且耗费很多时间,但通过SECTR的窗口可以变得方便。打开窗口的路径为
Window -> Procedural Worlds -> Sectr -> Terrain Window
选择能想要切割的地形然后确保“Split Terrain”勾选,然后拖动选择比例,比例越小分割成的Sectors越多。比例值平衡不容易,一方面较小的区块加载得比较快,但区块越小加载区块的频率就越高,若玩家移动速度快,便可能会不断进出区块。一般建议一个区块为512x512。
注意:你原地形会在分割的时候删除并替换成小区块,若你打算测试不同大小的地形分割,你需要先复制地形,然后在副本地形进行分割。
点击“Sectorize Terrain”,就会将你的地形分割成小区块并将每一个区块加入到一个Sector中。
若你在场景中有一些GameObjects你想和Terrain一起被Stream,你可以在这一步中间GameObject加入到Sectors。简单将物体拖动并放入对应Sectors窗口中的“Drop Objects to move them into Sectors”格子:
就会自动将物体加入Sector了。
注意:GameObject可以单独用给物体的Sectors,而非必须用Terrain的Sectors,这样的话在切割阶段就不会因为有很多物体横跨在多个Sectors而增加负荷,且GameObject所用的Sectors加载范围还不需要像Terrain的高。
当你的场景完成设置地形切割、Sectors和Portal后,且你加入了至少一个Loader之后,你就可以将准备流式导出了。这个阶段中每个Sector的全部子组件会被选取并导出到一个外部场景文件(称为区块(Chunk))。
区块通过SECTR STREAM 窗口导出和导入。使用以下路径打开窗口:
Window -> Procedural Worlds -> SECTR -> Stream Window
点击“Export all Sectors”即可导出。
注意:只有静态的Sectors可以被流式导出,所以若你更改了这个Flag就要小心。
当场景被流式导出后,你可以即使看到这个场景和地形流式效果了。地形应该会在玩家附近加载且玩家可以在游戏世界中移动。注意流式在编辑器可用,但效果在Build出来之后会更好。
注意:SECTR STREAM会自动将这个区块场景加入到项目的Build 场景列表。若你更新了新的区块场景,或者你改变了游戏布局(不需要这个场景了)的话请谨记从列表中移除。
附录:在地形上使用 Gaia / GeNA / CTS
上述三个插件均为同一家出品的其他插件,需要另外购买。此处不进行翻译。