Tutorial by Siretu
让大多数接触星际2编辑器的人歇菜的原因, 就是这个数据编辑器(Data Editor). 不管你是个新手, 还是使用魔兽3的编辑器做过一些东西, 当你怀着满腔的热情准备做一张星际2的地图时, 数据编辑器就像挡在前面的一座大山, 让人恨不得撞死算了.
这种情况同样发生在我身上. 我自信用魔兽3的对象编辑器用得炉火纯青了, 但是当我打开数据编辑器时, 连怎么做个Unit都不知道.
现在, 我总算能凑合着用数据编辑器了, 但也不是太好, 谁让爆血把这玩艺弄得这么高深来着.
这个教程里我只说一些基础, 不会做一些实际的东西. 想学那些的, 看后面的教程去.
入门
让我们以数据编辑器的截图开始:
![](https://img-my.csdn.net/uploads/201206/06/1338998348_7979.jpg)
就算不知道是干什么的, 我们也能看出来分成好几个区域, 一个一个说.
标准按钮
这些按钮在其它模块里也有:
![](https://img-my.csdn.net/uploads/201206/06/1338998357_7388.jpg)
这个没什么好说的, 自己看一下Tooltips就知道了
数据编辑器的按钮
这些才有必要说一下:
![](https://img-my.csdn.net/uploads/201206/06/1338998363_7697.jpg)
查看原始数据 - 平时数据以比较漂亮直观的方式显示出来, 按下这个按钮后, 它们就卸妆了.
对象树列表 - 用树形显示还是用列表显示看个人习惯, 树形有分类层次, 列表好查找.
显示所有对象源 - 当你编辑一个兵时, 编辑器会创建一个拷贝来编辑, 老的还保留着. 你可以随时返回去看望这个没有编辑过的它.
显示对象浏览器 - 建议开着, 用来开关左下角的那个窗口的.
查看方式 - 表格/详情/XML - 建议表格方式, 好查找. XML方式可以让你看看它的实现原理, 好山寨一个.
显示默认值 - 显示成灰色的都是默认值, 表示跟它爹的值一样.
对象树列表 - 用树形显示还是用列表显示看个人习惯, 树形有分类层次, 列表好查找.
显示所有对象源 - 当你编辑一个兵时, 编辑器会创建一个拷贝来编辑, 老的还保留着. 你可以随时返回去看望这个没有编辑过的它.
显示对象浏览器 - 建议开着, 用来开关左下角的那个窗口的.
查看方式 - 表格/详情/XML - 建议表格方式, 好查找. XML方式可以让你看看它的实现原理, 好山寨一个.
显示默认值 - 显示成灰色的都是默认值, 表示跟它爹的值一样.
显示高级字段 - 开这个最好也"显示默认值".
显示字段类型 - 字段名会加一个分类前缀.
组合结构体的值 - 结构体字段太多了, 单独显示吧...
XML相关的俩按钮 - (会用的就没必要看我的翻译了).
测试地图 - 按一下就进入游戏测试当前正在编辑的地图.
对象选项卡
![](https://img-my.csdn.net/uploads/201206/06/1338998369_6257.jpg)
每种对象类型会显示一个选项卡, 方便切换用的. 右键菜单有更多的操作.
![](https://img-my.csdn.net/uploads/201206/06/1338998375_7153.jpg)
如你所见, 能干什么都写在菜单上了, 我不就翻译了.
大多数情况下只会用到Game, Actor, Art And Sound里的数据, 欲知详情, 且听下回分解.
对象列表
![](https://img-my.csdn.net/uploads/201206/06/1338998383_3245.jpg)
这只是Unit, 其它类型会有不同的列. 但是, 名字和来源(Source)一般都会有的.
字段列表
![](https://img-my.csdn.net/uploads/201206/06/1338998392_4591.jpg)
这是字段列表, 包含了选择对象的所有信息. 双击就可以改了.
对象浏览器
![](https://img-my.csdn.net/uploads/201206/07/1338998404_3118.jpg)
按了"显示对象浏览器"按钮才会冒出来.
这是一个简单对象的结构(女妖的隐形):
![](https://img-my.csdn.net/uploads/201206/07/1338998411_5765.png)
对象浏览器显示了所有连接到这个对象的东西. 跟魔兽3不一样的, 原来很多东西都塞进一个对象里, 现在分成多个对象类似来保存. 比如在魔兽3中改技能提示是在Ability中, 而星际2则是在Button中. Button包含标题, 提示, 快捷键等.
上面的图都说了些啥呢? (下面是些废话)
• 俩Actor(Banshee_CloakOn (Unnamed) 和 Banshee_CloakOff (Unnamed))
• 一Behavior(Banshee - Cloak)
• 俩Buttons(Cloak (Banshee) and Decloak)
• 一Requirement(Use cloaking field)
• 俩Sounds(Banshee_CloakOn and Banshee_CloakOff)
• 俩Sounds(Banshee_CloakOn and Banshee_CloakOff)
这就是女妖的隐形能力所需的所有东西了.
现在, 就算你看了这个也山寨不出一个来, 因为看不懂这些东西是怎么联系起来的. 好在破璃渣实现了一个工具, 右键点一个结点, 选择"Explain link(解释连接)", 一个新的窗口会解释给你看.
举个例子, 在"Banshee - Cloak"上点击解释连接, 会显示成这样:
[Ability] Banshee - Cloaking Field <Behaviors> ->
[Behavior] Banshee - Cloak
这些说的是 Banshee - Cloaking 有一个 Behavior 字段连接到一个叫 "Banshee - Cloak" 的 Behavior. 这就是Behavior怎么连接到Ability的. 是不是很简单? 来个复杂的. 在其中一个Sound上点击解释连接, 得出一坨:
[Ability] Banshee - Cloaking Field <Behavior> ->
[Behavior] Banshee - Cloak <Events> - >
[Actor] Banshee_CloakOff (Unnamed) <Sound> ->
[Sound] Banshee_CloakOff
比上一次量大, 不过前两行看起来一样. Actor看起来像是走后门的, 但是你还得接受它. Behavior后面的<Events>并不是说这是它的一个字段, 而是说Actor通过它的Events字段连接到Behavior. 然后, Actor通过Sound字段连接到一个Sound对象. 好了, 我说完了, 你估计晕了!
如果你还是没看明白, 不要紧, 这是最困难的地方. 要是你理清楚了, 那么就会爱上这个编辑器.
这就是我为什么在后半部分才解释常见的对象类型和它们的用途.
常见对象类型
Units(单位)
大多数人应该知道Unit是个什么东西, 因为它就是个东西的意思. 一个兵是Unit, 建筑也是, 子弹也是. 这个类型里你可以找到Unit的生命值, 能量值, 护盾值等. 所有可见的部分并不在Unit里, 而在对应的Actor里.
Abilities(能力)
Ability就是一个Unit可以干什么. 攻击, 移动, 建造之类都是Ability. 在这里你可以找到能量消耗值, 用到的Button, 范围和产生的Effect. Effect -Target提供一个可以选择目标的鼠标指针, 选择后Effect就在目标点启动.
Effects(效果)
Effect是让一件事情发生. 它是Aiblity幕后的实现, 可以增加Buff, 产生伤害, 治疗单位等.
比如"Apply Behavior"类型应用一个Behavior(一般是一个Buff) 到一个Unit, "Damage"类型对一个Unit产生伤害, "Search"在一个区域内搜索Unit并施加一个Effect, "Set"类型把多个Effect组合成一个.
Behaviors(行为)
Behavior有很多类型, 最常见的应该是"Buff". 就像你想得那样, 它会附加到一个Unit上并影响它, 比如加速, 禁用武器, 抵挡伤害等.
Buttons(按钮)
前面我说了Button是干什么的了. 在游戏里你有一个命令面板(右下角), 每个按钮都对应一个Button对象, 描述它的图标, 提示信息, 快捷键和名字.
Actors(演员)
这是个复杂又重要的东西, 它表示所有你能看到的玩意儿. 如模型, 网格, 生命条, 选择范围等. 没有Actor的Unit会显示成一个白球.
Actor是新手觉得最棘手的, 它有一个Events字段关联到一个事件触发器. 在我的一张地图里我用Actor的Events来实现单位获得一个Behavior后变色的功能.
如果我想做一个AOE技能, 加速所有范围内的单位15秒. 你能猜出来这些类型是怎么联系起来的吗?
我会做一个Ability(当然配个Button). 这个Ability是Effect - Target类型, 它的Effect是一个Search Effect, 搜索指定目标半径内的友军. 每个搜索到的Unit都会施加一个Effect("Apply Behavior"类型), 这个Effect会施加一个自定义的"Buff"类型的Behavior, 它的功能就是增加额外的移动速度.
总结
现在你有基础去自己学了吧? 最好的途径是多看看对象浏览器, 搞明白这些东西是怎么工作的. 然后制作你自己的Ability. 就算最后你花了半个小时才能让它运行起来, 那也会感觉非常美好的.
如果你觉得一个Ability太复杂, 请无视Actor, Sound什么的, 专门去搞Behavior和Effect, 还有它们之间的关系. .
注: 一些类型名就不编译了, 免得词不达意