组的分类
为了使地图中的物件实现其功能,可能需要同时归数个组,以在不同领域上被游戏识别。因此为了方便制图表述,常常对组进行分类。
实际上,组并不是分类后才发挥效果的,对组进行分类是制图者为了表述方便的自定义分类,本条目采用《系统性制图教程》中对组的分类,这也被认为是制图中最常用的对组的分类标准。
特殊物件组
主条目: Ballance关卡结构 |
特殊物件组又称基础物件组。包括重生点、起始存档点、存档点和飞船。这四种特殊物件的存在是一个可通关的正常关卡的必要条件——若飞船组无物件,则游戏因不存在可激活的飞船而无法通关;若缺少重生点和起始存档点,关卡甚至不能被正常加载,而是在加载过程中卡死;若PC_Checkpoints
组(小节存档点组)中没有任何物件,则由于游戏加载机制,会出现无菜单bug。
对于这四种特殊物件,往往需要特殊的命名才可发挥正常作用。即飞船的命名需为 PE_Balloon_01;重生点的命名需为 PR_Resetpoint_小节序号(如第三小节的重生点命名为 PR_Resetpoint_03 );起始存档点的命名需为 PS_FourFlames_01;小节存档点的命名为 PC_TwoFlames_存档点序号 (需要注意这比对应的小节序号数值上小1,如第五小节的小节盘点火命名为 PC_TwoFlames_04 )。
这四种特殊物件归组时,只需要归对应的特殊物件组,而不需要归其它组,这是区别于机关组,而将此四个组归为此类的依据。不过对于死亡区组和影子组是否应并入此类,尚存争议。
道路物件组
主条目: 道路 |
道路物件组又称物理化物件组,因为组名均以 Phys_
开头。顾名思义,划分这类组的标准是作为道路的、需要被物理化的、不能动的物件组。归这类组的物件将直接使用它们当前被激活的网格(形状),并且被按照 Levelinit.NMO 内的物理化属性表格 Physicalize_Floors
物理化,从而成为道路。
因为此类的成员组均有重要应用,因此在制图中往往直接使用“路面组”、“钢轨组”等名称来称谓这类组,而少有提到“道路物件组”。归了此类组的物件不需要归其它组即可生效,但有时需要同时归声音组等其它组以实现物件本身的功能。
死亡区组
主条目: 死亡区 |
此类实际上只包含一个DepthTestCubes
组,即死亡区组。归了此组的物件会被识别为死亡区,原则上归了死亡区组的物件不应该归其它组,否则会导致游戏加载时崩溃。
机关组
主条目: 机关 |
顾名思义,机关组为使游戏识别所归组的物件为机关的组。因为游戏中机关数量较多,而都具有机关的通性,使得在制图中习惯将这些组统称为“机关组”,这与不动物件组不同。
由于机关只能在特定小节出现,因此对物件除了归机关组外,还需要归对应的小节组,如果一个归了机关组的物件未归小节组,则游戏会在关卡加载过程中卡死,反之亦然。一个机关只能归一个小节组,如果同时归两个或多个小节组,则只能在其中一个小节发挥作用,而具体情况未被充分研究。
由于游戏识别机关时,会强制把其本身的网格(以及其所从属的材质、贴图)“切掉”,并且强行换用安装目录下的 3D Entities\PH
文件夹内的配置文件进行渲染,因此对于归机关组的物件,应该删除或尽量简化其网格并确认其未使用任何材质和贴图,以保证正常的材质和贴图不在关卡加载过程中丢失。事实上,机关的网格与机关在游戏中的表现无关,因此不少制图者为了方便经常随意借用不同机关的网格,甚至为了节省文件大小直接删除了网格。
小节组
主条目: 小节 |
如机关组所述,小节组是为限定机关在特定小节出现的组。
小节组在 Virtools 中名为 Sector_小节序号
。一位数的小节号需要有引头的 0 以补全为两位数,而由于默认条件下 Ballance 只支持最多8个小节,因此实际上默认状态下只有 Sector_01
至 Sector_08
是有效的。若一个关卡存在多于8个小节,且未安装999小节加载器,则游戏会成在加载过程中卡死;将机关只归入机关组或小节组而不是二者都归入也会导致卡死。
飞船会出现在最后一个小节组对应的小节,即飞船在哪个小节出现并不取决于存档点的个数,因此做只有1个小节的地图时,常保留第2小节的小节存档点,而将其置于远处,以防止无菜单bug的发生。
声音组
声音组是使路面和钢轨和球作用时产生音效的组。声音组分为碰撞声音组和滚动声音组,前者使球碰撞目标时产生音效,后者使球在目标上滚动时产生音效。
一般地,若给某个路面或钢轨声音效果,需要同时归同类型的碰撞声音组和滚动声音组,但也有例外,比如13-5大螺旋为了防止无规律的石球碰钢轨声音,只归了滚动声音组,而无碰撞声音组(但也有人认为此现象是游戏制作者的失误,因为之后的木球上升螺旋就具有碰撞声音组,而与此同时竟然被误归入了路面的滚动声音组)。
不过,Stopper 的音效与声音组无关。每个地图中归Stopper组的物件只有其中的第一个才有碰撞声音效果,因此直接纯 Virtools 制图暂时无法改变这一局面。同一张地图内所有需要音效的 Stopper 均应被附加到同一个物体,并被第一个归入 Stopper 组中。
影子组
主条目: 影子 |
此类实际上只包含一个 Shadow
组,即影子组。与死亡区组类似,此为相对独立而难以分类的一个组。如果路面需要加影子,则需要同时归影子组。但由于路面需要影子坐标,因此归影子组是使路面具有影子效果的必要不充分条件。
制图过程中需要归的组
考虑到列举描述的困难,所有组均以列表展示:
组类型 | 组名称 | 组含义 |
---|---|---|
特殊物件组 | PS_Levelstart | 起始存档点 |
PC_Checkpoints | 小节存档点 | |
PR_Resetpoints | 重生点 | |
PE_Levelende | 飞船 | |
道路物件组 | Phys_Floors | 路面 |
Phys_FloorRails | 钢轨 | |
Phys_Floorstopper | Stopper | |
死亡区组 | DepthTestCubes | 死亡区 |
机关组 | P_Ball_Paper | 道具纸球 |
P_Ball_Stone | 道具石球 | |
P_Ball_Wood | 道具木球 | |
P_Box | 箱子 | |
P_Dome | Dome | |
P_Extra_Life | 生命球 | |
P_Extra_Point | 分数球 | |
P_Modul_01 | 活式木栅栏 | |
P_Modul_03 | 升降机 | |
P_Modul_08 | 秋千 | |
P_Modul_17 | 单摆 | |
P_Modul_18 | 风扇 | |
P_Modul_19 | 双向挡板 | |
P_Modul_25 | 推板 | |
P_Modul_26 | 沙袋 | |
P_Modul_29 | 软木桥 | |
P_Modul_30 | 跷跷板 | |
P_Modul_34 | 落石 | |
P_Modul_37 | T型板 | |
P_Modul_41 | 箱式浮板 | |
P_Trafo_Paper | 纸球变球器 | |
P_Trafo_Stone | 石球变球器 | |
P_Trafo_Wood | 木球变球器 | |
小节组 | Sector_小节序号 | 第小节序号小节 |
声音组 | Sound_HitID_01 | 碰撞水泥路 |
Sound_HitID_02 | 撞击木板 | |
Sound_HitID_03 | 撞击钢轨 | |
Sound_RollID_01 | 在水泥路上滚动 | |
Sound_RollID_02 | 在木板上滚动 | |
Sound_RollID_03 | 在钢轨上滚动 | |
影子组 | Shadow | 影子 |
归组操作
在 Level Manager 内选中需要归组的物件,对其点击右键,在 Send To Group
中选中该物件需要归的组即视为归组成功。因此,若同一个物件需要归多个组,需要同时进行此操作多次。
如果在关卡中找不到需要归的组(一般是机关组),可以在 Level Manager 中对需要归组的物件点击右键,选择 Place Selected In New Group
,即创建一个新组,并且把所选中的物件自动归到该组。由于游戏是通过识别组的名称来给予所归组的物件其物理属性的,因此将所创建的新组命名为对应的名称即可。
你知道吗
- 创建新组时,Virtools会根据已有组的命名,给予默认命名
New Group.组序号
,组序号取4位数字,会被自动计算为已有的组名的末尾含有数字的组的组名末尾数字加1,如多数地图中含有组P_Modul_41
,则新创建的组的默认命名为New Group.0042
;同理,若玩家创建一个名称为“1000”的组后创建新组,则新建的组名将会是New Group.1001
。 - 已归组的物件,若在Virtools中复制并粘贴时,选择
Custom Dependencies
,并在 Basic Object → Scene Object → Behavioral Object 中选中Group Belonging
,则复制后的物件默认归和原物件一样的组。这常被用来降低制图中归组的工作量。
|