INI 织网者¶
这是一个什么工具¶
这是一个面向高级 INI 用户的高级工具。所谓高级用户,写 INI 已经很少需要再去确认 INI 语句含义和写法之类基础,对于实现什么效果需要用什么语句、用什么类型的 INI 已经有了清晰的认识。
对于高级用户而言,写 INI 总的来说可以抽象为:从原版的许多现存 INI 段中复制粘贴原有的内容,并进行少量修改,然后建立联系。
在这一过程中,用户需要在 Rulesmd 中反复查找,复制粘贴,手动输入新的 INI 名称,再用各种语句去引用其他类的 INI 片段,最后还需要添加注册。在 Ares 时代,虽然新增复制单位的过程可以用继承系统来简单实现,但注册这一步是始终没法省略的;而如果要对某些属性进行改动,终究还是得去 INI 里面找原有语句。
这些过程可谓是写 INI 中最大的苦力活。而如果 INI 内容比较复杂,则模块之间的相互关联就会变成一个非常令人头疼的问题——单位连着武器,武器连着弹头,弹头连着粒子系统,粒子系统连着粒子,粒子连着图形,图形又有 trailer 连着其他动画,如果 INI 的安排比较散乱,则最终又难免在多个 INI 文件中上下滚动,查找各种模块,最后往往是看了上段忘下段,看了下段忘上段。
本编辑器解决了这些繁琐之处,让写 INI 的过程尽可能地简化了。
备注
本工具旨在最大限度增加灵活性,只是可以连线的图形化记事本罢了,除了连线规则外,工具本身并无内置的 INI 规范,不会检查 INI 的写作错误。
模块库与模块链接¶
编辑器使用画布和模块的可视化编辑方式。左键拖拽移动画布,点击选中模块,右键画框框选模块,ctrlc 复制,ctrlv 粘贴。
编辑器使用模块库系统。模块库系统可以理解为,系统内已经在几个文件目录内装好了许许多多复制好了的模块,用户只需要把这些模块扔到画布上,就等于是将一个原有的 INI 块复制粘贴到 ini 文件里了。编辑器发布时,虽然也提供了许多个模块,但这显然不可能涵盖一个用户日常可能使用到的一切需求。因此,我们鼓励用户自己定义自己的模块库,将自己需要经常复制的内容放入模块库里,以方便之后使用。各种自定义模块都位于 \Global\Modules 下。
除了手动录入模块库之外,系统也支持从剪贴板创建模块。只需要选定一系列模块,按 ctrl+c,然后打开编辑器提供的剪贴板样本,将 Data=
后面的内容替换掉即可。剪贴板样本创建的模块可以保留模块之间的位置关系,而手动录入的不能。
在拖入模块后,系统会自动将预制模块中****的部分替换为乱数注册名(这也使得编辑器生成的 INI 在不手动变更注册名的情况下几乎没有可读性),需要注册的大类如在大类注册表中声明,则会自动生成注册表。如果需要让某个语句后面填写其他模块的名称,如武器需要指明抛射体,则只需要将抛射体语句后的连接点连到一个抛射体上即可。
此外,工具也支持反向链接并自动创建连接语句:如一个抛射体需要被武器引用,则只需要将抛射体拖拽到武器模块上,将会自动连接 Projectile=
语句。如果武器模块上没有这个语句,则会自动生成一个语句并连接。关于反向链接的构成,可以参考下文中 RegisterTypes.json
相关内容。
软件界面上显示的「武器2」、「抛射体1」、「弹头1」等最终均为注释。按 F1 可以切换显示模式,即显示真实注册名。默认按 F2 可以重命名模块的注释名。按 F3 可以修改模块的注册名。模块大类暂时不支持修改。右键模块标题可以呼出菜单,修改模块的注释名、注册名,或对现有模块进行复制(等于是 Ctrl+C)。Ctrl+V 即可创建复制。
备注
继承目前是一种强行显示在所有模块上的链接节点。下版本可能会移动到其他位置。
单击任何模块,进入编辑模式。语句左侧的单选点为是否将语句显示在画布上。数值类如果显示在画布上,则可以直接编辑,或在左菜单栏双击数值进入编辑模式编辑。填是否的语句可以在画布和编辑界面直接勾选是否。
双击模块彩色标题栏或点击「编辑文本」按钮,进入自由文本模式,可以如同记事本一样编辑任何内容,增删任何语句。
可以将 SHP 和 VXL 直接拖进界面,系统会自动创建同名的模块。SHP 需要选择类型。
在完成编辑后,进入文件菜单,保存和另存为保存的是工程文件,而导出会输出可以直接 include 且自带注册表的 ini 文件。
重要
如果一个链接节点没有连接到任何模块,则这个节点在最终不会输出。
另外,在设置菜单中可以设置保存后立刻自动导出,使得用户在调试 ini 工程时不必反复确认和导出,只需要保存工程文件即可同步改动 INI。
字典和类别¶
编辑器内置了语句字典和大类类别注册表,位于 Global 文件夹下。 TypeAlt.csv
是字典,RegisterTypes.json
是大类注册表。
提示
为了避免录入代码词典这种麻烦事,本软件的字典系统采取了一种最精简的定义策略:
字典只需要收录链接到其他大类的语句。
链接限制 1 表示限定 1 个,-1 表示无限链接某个类别。
其他类别的语句,完全取决于预先录入在模块库里的内容。
如图:
所有在预录入模块库内写了
=yes
或=no
的语句都会自动被系统判定为 bool 类,只要在模块上的框内打钩即等于填写yes
或no
。而其他已填写数值的语句会被判为文本类。
备注
RegisterTypes.json
中可以对系统内存在的大类进行声明。字典中的「链接种类」必须填写在 RegisterTypes
内声明过的大类。Json 文件中已经有较为详细的注释了,用户可以根据需求自行引入其他引擎补丁可能添加的各种抽象大类。
其他设置¶
\Resources\language.ini
为语言文件,可以将编辑器翻译为其他语言。\Resources\config.json
为编辑器的主配置文件,可以修改快捷键等。常用快捷键也在其中登记了。以启动参数
-debugmenu
启动,可以显示调试菜单。
键盘命令¶
按键 |
功能 |
---|---|
F2 |
切换显示模式 |
Ctrl+S |
保存 |
Ctrl+Shift+S |
另存为 |
Ctrl+O |
打开 |
Ctrl+E |
导出 |
Ctrl+W |
关闭 |
Ctrl+C |
复制 |
Ctrl+V |
粘贴 |
右键画布 |
模块库目录 |
双击画布 |
模块搜索 |
左键模块 |
进入编辑 |
右键模块标题 |
进入模块菜单 |
双击语句 |
编辑语句数值 |
图像演示¶
右键模块库¶
连线到节点¶
反向链接¶
折叠语句¶
文本编辑模式¶
直接编辑布尔¶
直接编辑值¶
直接将素材拖进画布¶
Shape/Voxel 格式
界面概述¶
后续内容¶
将会允许语句链接到语句,如
ArmorTypes
的引用将会引入语句包类模块,链接到这类模块等于将这一模块的下属语句抄写到上级模块内。
继承链接点将会修改位置
将会增添更多模块导出类别,如AI、Sound之类。
将会允许读取整个 ini 文件并整理线路图