3,425
个编辑
更改
影子坐标
,无编辑摘要
== 历史 ==
在早期的[[自制地图]]中,制图者已经注意到归入Shadow[[组]]中的物件会产生影子,但是有些物件可以,有些不可以,在大量总结规律之后,得到如下结论:[[原版关卡]]的结构(即使该物件原先是[[机关]]示意模型)在归入[[物理化物件组]]和影子组后都可以产生影子,而制图者由外部建模并导入的结构不可以。之后便产生了“影子坐标”的说法,即:原版关卡的文件中,所有物体均已具有影子坐标,且复制已具有影子坐标的物体时,影子坐标可以被同时复制。并且制图者已经认识到影子坐标与物体相关而与网格无关,并通过切换原版物体关联的网格来强行让物体具有影子坐标,并在游戏中显示。和影子组后都可以产生影子,而制图者由外部建模并导入的结构不可以。之后便产生了“影子坐标”的说法,即:原版关卡的文件中,所有物体均已具有影子坐标,且复制已具有影子坐标的物体时,影子坐标可以被同时复制。并且制图者已经认识到影子坐标与物体相关而与网格无关,而且通过切换原版物体关联的网格可以强行让物体具有影子坐标,并在游戏中显示。
“影子坐标”最早的称呼来源不明。2010年时,加入影子时产生的此类奇特现象已经被发现,并于之后数月内逐渐广传,但至少至2014年,均无人给予此现象任何名称。有推测{{来源请求}}认为“影子坐标”的称呼最早来源于2016年[https://tieba.baidu.com/home/main?un=NiceMelodies NiceMelodies]在其[[制图教程]]中对之的称呼。
再发现的主要步骤是这样的:
# 打开一个原版关卡打开一个原版关卡;# 从外界导入一个自定义物体(CK3dEntity)从外界导入一个自定义物体(CK3dEntity);# 选顶一个原版关卡物体(CK3dEntity)选顶一个原版关卡物体(CK3dEntity);# 将原版关卡的物体(CK3dEntity)对应的Mesh(CKMesh)关联到自定义物体(CK3dEntity)上将原版关卡的物体(CK3dEntity)对应的Mesh(CKMesh)关联到自定义物体(CK3dEntity)上;# 清理其余所有无用组件,然后保存清理其余所有无用组件,然后保存;# 使用{{zh|Virtools SDK}}编写独立的Virtools播放器,尝试读取物体(CK3dEntity)的一些属性来比较两者的不同编写独立的Virtools播放器,尝试读取物体(CK3dEntity)的一些属性来比较两者的不同。
比较的结果便是,两者的MoveableFlags不同,但是二者在Virtools 3.5环境下,通过遍历枚举VX_MOVEABLE_FLAGS所有可能的情况,发现两者完全一致,进一步研究之后发现原版物件(CK3dEntity)使用了一个不存在于Virtools 3.5中的VX_MOVEABLE_FLAGS中的标识。并且观察枚举VX_MOVEABLE_FLAGS,非常容易发现其并不连续,因此一个大胆的推论就是:影子使用了一个Virtools 3.5遗弃的VX_MOVEABLE_FLAGS标识来进行实现。