2.1 大地图开发—如何创建新的地图

一、概述

骑砍2的大地图是每个mod不可或缺的一部分,如果你想在大地图编辑上省很多事,可以选择沿用native的地图,在上面做一些修修改改,因为定居点和触发都是现成的。如果你有足够的时间和精力,也可以选择创建全新地图。鉴于网上这类教学视频和文档非常少,这里在外网找到了一个文档,写的很详细,有英文阅读能力的可以尝试看一下,感谢这位大佬的总结。docs.google.com/document/d/...

二、前期准备

  1. 首先你需要在steam下载官方的编辑工具Mount & Blade II: Bannerlord - Modding Kit
  2. 官方的大地图文件路径为/Modules/SandBox/SceneObj/Main_map,如果你要用自己的地图,你需要在你的Mod目录下新建/SceneObj目录下建立一个同名目录Main_map,将你的地图保存进去,才能覆盖原本的卡拉迪亚地图,不过我建议在你的地图能运行之后再这样做,其他时候先用另外的名字。

三、开始开发大地图

  1. 启动mod编辑工具

  2. 打开一个新的场景,先选中inspector,然后点击右边inspector工具栏中的Properties,展开New Terrain Properties,这是新建新的大地图地形。 所有的场景都是由一个一个的网格节点组成的,这里有几个数值需要注意一下:

    • X和Y是每个2D轴上生成的节点数。
    • Single Node Size 是每个节点每条边的长度(节点是正方形)
    • Single Node Dimensions 表示每个节点每侧用于创建地形网格的顶点数

    这些是我根据1.1中提到的文档中翻译过来的,下面附上原文:

    All scenes are created on a grid of nodes, allowing different levels of detail (LODs) to be generated in surrounding nodes, optimising performance. X and Y are the number of nodes to be generated on each 2D axis. Single node size is the length of each side of a square node in metres (or game equivalent). Single Node Dimensions represents the number of vertices to be used on each side of each node to create your terrain mesh.

    关于这段的内容我是这么理解的,可以拿官方初始的例子来看 我们先按照卡拉迪亚的地图填数值,X和Y为16,Sing Node Size为52s,Sing Node Dim.为256,我们填好数值之后点击Generate Terrain生成地形。等待一会儿后地形会生成好,如下: 鼠标移上去可以看到地图的每条边有16个大红框级别的格子,这就是地图的X和Y,而256X256影响的是每个红框格子的大小,53代表的是每个Node代表的游戏中的米(metre),总之数值越大地图越大,具体可以再参考原文理解一下,我也理解的不是特别准确。

    3.记得在ScebeOptions中设置Water属性的Level,初始为-100,所以你看不到水,我的建议是至少设置为1(卡拉迪亚为1.8),这样以大海为初始蓝图,需要土地的地方就把该处升高即可。 接着可以保存地图了,保存在你的Mod目录下的SceneObj/Main_map文件下,然后勾选你的Mod进入游戏,你会发现开始游戏的话,游戏会崩溃,这是因为你的地图上缺少定居点以及其他一些素材,卡拉迪亚原始的世界地图涉及到一些硬编码的部分,因此这里建议还是复制官方的地图做为你的蓝本然后一点点的在此基础上修改。

相关推荐
Clarify5 天前
一种增量式的状态同步方案
后端·游戏开发
Thomas_YXQ12 天前
Unity3D项目为什么要使用FairyGUI
开发语言·unity·游戏引擎·unity3d·游戏开发
Raysen16 天前
GridLayout玩出花系列-使用Android原生GridLayout控件打造方块消除小游戏
android·游戏开发
Thomas_YXQ1 个月前
Unity3D ngui和ugui区别与优缺点详解
服务器·游戏·unity·unity3d·游戏开发
刘好念1 个月前
[UE5学习] 一、使用源代码安装UE5.4
ue5·游戏开发
懷淰メ1 个月前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5
Thomas游戏开发1 个月前
Unity3D 逻辑服的Entity, ComponentData与System划分详解
前端框架·unity3d·游戏开发
Thomas_YXQ2 个月前
Unity3D中管理Shader效果详解
开发语言·游戏·unity·unity3d·游戏开发
Ljw...2 个月前
C++游戏开发
c++·c·游戏开发
北冥没有鱼啊2 个月前
ue5 扇形射线检测和鼠标拖拽物体
游戏·ue5·ue4·游戏开发·虚幻