“归组”的版本间的差异

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

2020年4月25日 (六) 14:08的最新版本

”重定向至此。对于对象之间的碰撞属性,请见碰撞组

归组是指在制图时,将自制地图里的各物件归入对应“组”以供游戏识别的操作。

(Group) 的含义是包含一系列物件的集合元素。

制图中,归组既可以在 Virtools 内,又可以在 3ds Max 内进行(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 物理化,从而成为道路。

道路物件组包括路面组、钢轨组、Stopper组。

因为此类的成员组均有重要应用,因此在制图中往往直接使用“路面组”、“钢轨组”等名称来称谓这类组,而少有提到“道路物件组”。归了此类组的物件不需要归其它组即可生效,但有时需要同时归声音组等其它组以实现物件本身的功能。

死亡区组

主条目: 死亡区

此类实际上只包含一个DepthTestCubes组,即死亡区组。归了此组的物件会被识别为死亡区,同时已被归入死亡区组的物件不应该归其它组,否则会导致游戏加载时崩溃。

机关组

主条目: 机关

顾名思义,机关组为使游戏识别所归组的物件为机关的组。因为游戏中机关数量较多,而都具有机关的通性,使得在制图中习惯将这些组统称为“机关组”,这与不动物件组不同。

由于机关只能在特定小节出现,因此对物件除了归机关组外,还需要归对应的小节组如果一个归了机关组的物件未归小节组,则游戏会在关卡加载过程中卡死,反之亦然。一个机关只能归一个小节组,如果同时归两个或多个小节组,则只能在其中一个小节发挥作用,而具体情况未被充分研究。

由于游戏识别机关时,会强制把其本身的网格(以及其所从属的材质、贴图)“切掉”,并且强行换用安装目录下的 3D Entities\PH 文件夹内的配置文件进行渲染,因此对于归机关组的物件,应该删除或尽量简化其网格并确认其未使用任何材质和贴图,以保证正常的材质和贴图不在关卡加载过程中丢失。事实上,机关的网格与机关在游戏中的表现无关,因此不少制图者为了方便经常随意借用不同机关的网格,甚至为了节省文件大小直接删除了网格。

小节组

主条目: 小节

机关组所述,小节组是为限定机关在特定小节出现的组。

小节组在 Virtools 中名为 Sector_小节序号。一位数的小节号需要有引头的 0 以补全为两位数,而由于默认条件下 Ballance 只支持最多8个小节,因此实际上默认状态下只有 Sector_01Sector_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 影子

归组操作

由于绝大多数时候对 Ballance 的物件的归组均在 Virtools 内进行,此处仅介绍 Virtools 内的归组操作。

将物件归入组

在 Level Manager 内选中需要归组的物件,对其点击右键,在 Send To Group 中选中该物件需要归的组即视为归组成功。因此,若同一个物件需要归多个组,需要同时进行此操作多次。

如果在关卡中找不到需要归的组(一般是机关组),可以在 Level Manager 中对需要归组的物件点击右键,选择 Place Selected In New Group,即创建一个新组,并且把所选中的物件自动归到该组。由于游戏是通过识别组的名称来给予所归组的物件其物理属性的,因此将所创建的新组命名为对应的名称即可。

更改归组

制图中,有时可能需要更改归组,例如物件被归入错误的时。

在物件被需要错误归入的组中找到您需要更改归组的物件,并右键将之归入正确的组。之后在原先错误的组内的物件上右键删除或者点击 Delete 键,物件所归入的组就被成功改换了。

你知道吗

  • 创建新组时,Virtools会根据已有组的命名,给予默认命名 New Group.组序号组序号取4位数字,会被自动计算为已有的组名的末尾含有数字的组组名末尾数字加1,如多数地图中含有组 P_Modul_41 ,则新创建的组的默认命名为 New Group.0042;同理,若玩家创建一个名称为“1000”的组后创建新组,则新建的组名将会是 New Group.1001
  • 已归组的物件,若在Virtools中复制并粘贴时,选择 Custom Dependencies ,并在 Basic ObjectScene ObjectBehavioral Object 中选中 Group Belonging ,则复制后的物件默认归和原物件一样的组。这常被用来降低制图中归组的工作量。