打开主菜单

Ballance Wiki β

MAplus/zh

BallanceBug讨论 | 贡献2020年8月28日 (五) 14:21的版本

MAplus(全称 Mapping Actions Pack plus),是Ghomist利用Virtools内建的Action开发的一套工具,其运行方式与Virtools原版的Actions相同。这套工具对Virtools内许多繁琐操作进行了简化,以VSL脚本的方式进行半自动化批量操作。

此工具包使用了VSL进行编写,完全开源[1]

此工具包目前涵盖了物件操作,网格操作,归辅助,灯光辅助,命名辅助共5个方面,大多数情况下能为VT内操作节省大量繁琐操作,减少出错率;在使用熟练之后可以使VT内操作效率大幅提高。

不过,VT内使用Action进行的操作是无法撤销的。尽管大部分时候错误操作不会造成过于严重的损失,还是建议制图者养成随手保存的习惯。

目录

安装与使用

MAplus内包含了5个文件夹,名称如下: (括号内为注释而非文件名)

  • B_3DEntity(物件操纵)
  • B_Group(归组辅助)
  • B_Light(VT内灯光辅助)
  • B_Mesh(网格工具)
  • B_Name(命名工具)

安装时,直接将上述5个文件夹复制到Virtools根目录下的Actions文件夹内,随后重启vt即可使用。

使用时,在VT内3D layout或Level Manager界面右键Actions选项内选择需要调用的Action即可。

值得一提的是,VT内可以设置Action的快捷键以实现更高效地调用常用的Action。关于快捷键的介绍详见后文

基本功能

下面列出了MAplus所有功能的简介。借助这些简介可以更好地了解MAplus的功能细节。

类似于索引,绝大部分情况下建议使用浏览器网页检索功能或本页目录直接查看具体的Action,而非一个个阅读。

目前支持的MAplus版本为v0.5。

B_3DEntity

Align2

对齐。

对VT原版Align(对齐)进行了优化,使得其可以将物件作为一个整体进行对齐。为了防止与原版Align重名遂加上了数字2作为后缀。

选中第一个基准物件,将第二个物件对齐至轴的指定方向使其顶端齐平(最大对最大/最小对最小)。

若选中As Whole则第三个物件及之后所有物件将与第二个物件作为一个整体,保持相对位置不变。不选中则所有物件按第二个物件的方式单独处理。

CenterDistribute

使物件在指定轴居于两物件正中。

选中前两个基准物件,之后所有物件的选定轴调整至初始两物件选定轴的中心坐标。

选择少于三个物件时不运作。

FastSplice

快速贴附。

选中第一个基准物件,第二个物件将贴附至指定轴指定方向的表面(如果指定方向选中Center则会使第二个物件贴附到基准物件的正中心)。

不同于Splice(贴附)功能仅影响选定轴,快速贴附还会影响选定轴外的其它轴方向,将第二个对齐到基准物件的中心。

第三个物件及之后所有物件将与第二个物件作为一个整体,保持相对位置不变。

SetPosition

设置坐标。

选中一个基准物件,并设置其坐标。

第二个物件及之后所有物件将与第一个物件作为一个整体,保持相对位置不变。

SetUnit

重置缩放。

将选中物件的Scale参数重置,使网格与视觉模型对应。效果类似于Set up窗口的Set as Unit功能。

Splice

贴附。

选中第一个基准物件,第二个物件将贴附至指定轴指定方向的表面(如果指定方向选中Center则会使第二个物件贴附到基准物件的正中心)。

若选中As Whole则第三个物件及之后所有物件将与第二个物件作为一个整体,保持相对位置不变。不选中则所有物件按第二个物件的方式单独处理。

Translate

世界坐标平移。

选中一个基准物件,并设置其位移,将进行平移。

第二个物件及之后所有物件将与第一个物件作为一个整体,保持相对位置不变。

此方法可较为有效地解决非整数坐标物件精确移动时的不便。

B_Group

AsFloor

将选中物件按“路面归组。若选中AsWoodenFloor则按“木制路面”归组。

将物件归入路面组,声音1组(包括滚动与撞击,若为木制路面则归入声音2组)。可自选是否归入影子组。

AsModul

将选中物件按“机关”归组。

输入小节代码(1到8的整数)和机关代码即可自动归入。

箱子道具球变球器Dome等不属于此处所说机关,对于这些道具请手动归组。

AsRail

将选中物件按“钢轨”归组。

即将物件归入钢轨组,声音3组(包括滚动与撞击)。

RemoveFromGroup

将选定物件从指定组移出。

若当前物件不存在于指定组内,则不执行。

SCREGrouper

存档点重生点飞船自动归组。

若名称不正确或不存在组,则不执行。具体详见归组#特殊物件组

SectorChanger

改变选中物件所在的小节组。

输入需要转入的小节数(1到8的整数),将会使物件从当前小节组移出并归入新的指定小节组。

若当前物件不存在于任何小节组则不执行移出,但仍会归入指定小节组。若指定小节组不存在(无法获取)则不执行归入,但会从原有小节组移出。

B_Light

LightOff

删除由“LightUp”产生的平行光灯

若不存在则不执行。

LightUp

生成一个位于世界原点处的平行光灯。

生成的灯角度已调整,可快速照亮路面上表面及一部分侧面。效果类似于游戏中的光照效果。

若需删除,可使用“LightOff”快速删除,亦可手动删除。若已存在,则不执行。

B_Mesh

Attach

附加。

将选中的所有物件附加到第一个物件上。选中IfKeepOrigin则保留原物件,否则会自动将原物件删除。

注意!此Action可能具有严重bug,仅保证对少数“路面”进行操作时可正常处理,尽量选择IfKeepOrigin以防止出现不可逆转的错误。复杂物件、大量物件的处理请勿使用此Action!若需安全地附加,请使用NMO导出OBJ工具导出物件,并在3ds Max进行处理。

AxisReset

重置物件轴。

将选中的所有物件的轴进行重置。选项功能如下:

  • ResetAsCenter:将轴居中至物件的中心位置;
  • ResetAsWorld:将轴的方向与世界坐标轴对齐;

若选中IfKeepOrigin则保留原物件,否则会自动将原物件删除。

注意!此Action可能具有严重bug,仅保证对少数“路面”、“钢轨”进行操作时可正常处理,尽量选择IfKeepOrigin以防止出现不可逆转的错误。复杂物件、大量物件的处理请勿使用此Action!若需安全地调整轴,请使用NMO导出OBJ工具导出物件,并在3ds Max进行处理。

Exchange

交换网格。

将作为参数的两个物件的网格互换。

Mirror

镜像。

将选中的所有物件沿指定轴镜像翻转。若选中IfCopy则保留原物件,否则会自动将原物件删除。

注意!此Action可能具有严重bug,仅保证对少数“路面”、“钢轨”进行操作时可正常处理,尽量选择IfCopy以防止出现不可逆转的错误。复杂物件、大量物件的处理请勿使用此Action!若需安全地进行镜像翻转,请使用NMO导出OBJ工具导出物件,并在3ds Max进行处理。

SetLitMod

重置网格的LitMod为Lit。

一般用于快速修复Max导出到vt后网格变为PreLit模式。PreLit模式下物件变白、变亮,且不受光照影响。

SetShadow

为选中的物件设置影子坐标

使用了影子坐标的再发现中的有关结论,可以稳定地为物件设置影子坐标而无副作用。

StopMeshShared

消除网格共享。

将选中物件的网格复制一份,并去除原网格。利用了vt中复制不重名的特性,且确保了选中物件中没有共用任何一个网格。

原网格会从物件上移出但不会删除。使用vt内自带Unused Objects工具删除即可。

B_Name

Namer

批量重命名工具。

输入指定的名称,可将选中物件名称全部改为输入的字符串。

若选中AutoNumber,则在字符串基础上自动补充尾号,编号规则如下:

  1. 编号从0开始;
  2. 按选中物件的顺序进行编号;
  3. 编号长度不足3位数时以0补全(如第一个被选中的物件的尾号将会编为“000”);
  4. 超过3位数的编号直接接在字符串尾部。

快捷操作

MAplus的主要用途即为提升Virtools内操作的效率。下文较为粗略地介绍了如何利用多个Actions的配合以实现更高效的操作,可供参考。

快捷键的设置

在 Virtools 中点击 EditorsAction Manager 可以设置快捷键。

在任意 Action 的名称上点击右键,选择 Edit Keyboard Shortcut 即可设置快捷键。

快捷键设置规则如下:

  • Control/Shift/Alt中的一个 + F1到F12的任意一个功能键 (不能是Alt+F4)

注意,第一次打开 Action Manager 时不会出现新安装的 Actions,此时推荐手动删去所有的选项卡(选项卡是指 Import all Actions 按钮右边的选项卡,可右键选择 Remove Tab ,若不删去会导致选项卡重复添加),再点击Import all Actions按文件目录导入全部 Actions 。

成功导入后应出现总计9个选项卡。若有重复删去即可。

推荐设置快捷键的 Actions :

组合操作

快速接柱子/变球器

为一个1×1路块(边长均为vt中5单位长度)接柱子,仅使用 FastSplice 就可以非常迅速地实现。

具体操作步骤如下:

  1. 依次选中需要接柱的路块,柱子顶部,柱子底部;
  2. 调用 FastSplice;
  3. 参数的选择: axis 选择 Y, support 选择 Back ,指y方向贴附至路块选择框的下表面,并将xz方向对齐到正中心。

若第一步时只选择柱子顶部,柱子底部,则可以将柱子底部快速接合至柱子顶部。

同理,此方法可用于接变球器,接变球器底座等。配合Translate可在不完全规则的路面上进行高精度对齐。

不过注意,FastSplice 只支持贴附至物件某个方向的正中心,所以在 max 中创建模型时可预先保留一个用于接柱的“辅助方块”。

影子与归组

MAplus 内 SetShadow 可以无副作用地为物件上影子,同时可选择是否归入影子组,不过并不推荐在此时归入影子组。原因是待之后归入路面/木质路面时,可使用 AsFloor ,此 Action 中亦可选择归入影子组。

推荐的操作步骤如下:

  1. Ctrl+A 全选所有物件;
  2. 调用 SetShadow 为所有物件设置影子坐标,但不归入影子组
  3. 使用 AsFloor 为路面/木质路面归组时选择归入影子组。

若后期制图时,单独添加了某个额外物件且需上影子,此时可于设置影子坐标的同时归入影子组,避免遗漏。

下载

备注

  1. 事实上VSL文件可直接以文本文档的方式打开,并且可以直接看到源代码,故无需另行开放出源码。