浅谈红警2图像上的常见引擎限制与缺陷

您所在的位置:网站首页 红警2模型文件在哪里 浅谈红警2图像上的常见引擎限制与缺陷

浅谈红警2图像上的常见引擎限制与缺陷

2023-09-14 15:19| 来源: 网络整理| 查看: 265

ICE Lab Copyright 2020,All right reserved.

本文共8888字。

前排感谢专栏内截图所包含的素材与补丁提供者和锑(B站ID:AlloyKingdom),萌新(B站ID:上仙-符华),戴子玲(B站ID:戴子玲Himeko),阿联UASR(B站ID:阿联UASR)。感谢双杀步枪在评论区的提醒,感谢NodRaveshaw与紫色逗逐在评论区对百夫长 vxl作者的纠错!

(前言:前几期专栏有点偏离mod制作的主流讨论方向了,所以我决定写一篇比较直接的帮助性专栏,希望能给各位读者有所启发。同时,如果有人在阅读本文后能给出更好的建议,欢迎在评论区指出,本人感激不尽)

众所周知,所有做过红警2mod的人都喜欢吐槽破引擎药丸。但吐槽归吐槽,大多数时候许多路人在看见了modder们鼓捣的一些神奇的新效果时,我相信他们心中一定会优先觉得这效果很不错而不是第一时间吐槽游戏引擎不够强导致做的太烂了。当然,抛开如今modder们普遍使用的ares平台或是少数技术大牛使用的ares平台自定义版(如以rn,wa,easb为代表的hares mod以及用了改良版ares0.A的TC)自身的革新来看,单就图像而言,现在主流的平台其实并没有在图像上破除许多限制。因此下面我就从我做素材的个人经验里来谈论一下我所认识到的在图像方面目前红警2(TS)的引擎限制。

西木如是对modder们说到

一. vxl部分

vxl名字的来源是文件后缀,因为红警2中体素模型的文件格式后缀叫.vxl而得名,同时vxl一般指voxel的简称。在红警2原版里,坦克们比如犀牛,灰熊,天启等都是vxl。vxl的优点主要体现在物理表现上,作为全游戏唯一的伪3D模型,vxl可以证明红警2这个2.5D游戏的3D特性。例如上下坡时车体的前倾后仰,收到Rocker=yes的冲击波弹头攻击时可以被掀翻等等。然而vxl的限制在客观上比shp要多很多,以至于许多时候vxl在表现力上不如shp,以下是vxl的常见限制:

标准vxl模型——犀牛坦克

1.糊

vxl相比shp给人的直观感受就是糊。尽管现在的vxl师们巧夺天工的制作工艺将vxl的表现力从红警2原版水平拉高了很多档次,但不得不说,在糊这一点上vxl比起shp还是永恒不变的。要想改变这点,shp载具是无法避免的选择。

左边vxl右边shp,质感还是右边好一些

2.只能用来做坦克

你有见过vxl步兵么?

3.颜色太少(无法自定义色盘)

vxl的色盘强制到了一种死板的地步,在ares平台放开了shp载具的色盘限制以后,vxl载具不能自定义色盘的缺点使它注定只能制作那几种固定色调的载具。vxl载具色盘默认使用的是unitXXX.pal作为色盘,unitXXX.pal色盘名字中的后三位XXX即代表不同的地形。原版只有tem,sno,urb;尤里的复仇(即YR,下文YR无特别说明均指代尤里的复仇)则添加了ubn,lun,des。在原版里,除了sno色盘的颜色稍微多一点以外,其他的默认色盘中有大片区域都是255 0 255紫红色的无效色块区。一个只有256种颜色的色盘,除去特殊像素区,再除去那些空白区,真正留给vxl师用来构造的颜色少之又少。再加上无法自定义色盘,这直接导致了vxl模型的颜色贫乏。当然,在一些后来的mod里,为了有更好的表现,一些mod将颜色最多的unitsno.pal改名替换了所有其他的unit色盘,这也算是为自己添加更好看的模型铺平了条件吧。

vxl制作器vse里的unittem.pal就这么多颜色,肯定比不过能自定义色盘的shp

4.vxl动画难以制作细腻

vxl动画在红警2官方的原版和资料片里给人印象最深的无疑是武装直升机的螺旋桨旋转动画了,vxl动画一般有两种情况,一种是vxl单位行走时的行走动画,一种是炮台攻击时的多炮台动画。第二种动画在原版里运用于光棱坦克攻击上,不仔细观察不容易看清。vxl动画制作的难度可谓是巨大的,与现在的3D模型软件的绑骨拉关键帧不同,vxl动画的制作就好比你用老版ps做gif动图一样,需要逐帧绘制每一帧的样子与设定每个组件的部位。这种方式无疑极其麻烦,在vxl模型在mod中占比越来越少的今天,每个制作可动vxl的vxl师们的工作都是值得尊敬的。目前在所有公开的vxl里最著名同时制作工艺复杂尺寸最大的可动vxl无疑是mo3里的百夫长攻城机甲。三足运动的特殊性再加上无与伦比的尺寸,这让它在vxl模型中一直是制作最精良的vxl之一。

百夫长的vxl,其制作者为Mevitar(一开始我还搞错了人😰)

5.尺寸限制太严

vxl的大小一直是很令人头痛的地方,引擎限制导致vxl尺寸必须在250*250*250以内,诚然,某些沙雕图会把vxl放得极大,但那些一般与vxl的参数记录文件hva有关,模型本身大小并没有改变。而且这种限制是硬性的,hva可以改变vxl在游戏内的显示大小却改变不了像素点的大小,所以你用vxl 做的模型越大,其分辨率就越低。而这也就是为啥在mo3里号称大几百米甚至数公里长宽的悖论引擎在游戏里才一栋楼那么大而且还很糊的原因(所以为毛三轮要做vxl飞船?shp不香?)。当你的vxl过大的时候,游戏内则可能会出现一些由于模型实际大小大于框架大小而导致的报错或是边缘的模型自身的异常显示。总而言之 ,用vxl做大型载具,尤其是大型空中载具在如今shp载具常态化的情况下不是一个好选择。

悖论作为vxl模型里几乎是最大的大件了,然而它的大小也不过如此,其他的vxl就更别说了

6.vse为制作vxl部署动画时转出的obj模型面数较多

现在主流的vxl制作工具是vse,全称voxel section editor(体素模型片段编辑器),而当你在制作vxl动画变建筑时,你难免就要面对vxl转3D渲染成shp的过程,这时你需要用到vse1.39的3D Modelizer功能。现在的vxl制作变形动画依旧是个麻烦活,步骤本身倒是清晰的,但是由于vse自身解构vxl模型时拆uv的愚蠢,以及vse以vxl构建obj模型时以点为单位创建面的原则导致一个不那么大的vxl转成obj文件时候会产生一大堆点(一个vxl模型转换可以轻松 达到几十万面,几十万面的模型一般同等情况下都是影视级模型拥有的面数了),这对制作者的耐心与电脑都是极大的挑战。

每次做这种动画我都得与电脑对线,模型来源:萌新

7.vse工具较老,使用不便

(这段只是我的个人感受,意见相左还望谅解)

vse诞生的年份较早,所以vse与现在的建模软件有很多不一致的地方。在现如今建模流程甚至逐渐以雕刻为主的年代,一个还需要逐层堆叠像素块,无法直观观测最终制作效果的制作器毫无疑问是愚蠢的。当然vse1.38的某个改进版拥有了3D视角捏vxl的功能,不过目前我手里的该版本完成度并不太出色,长时间使用3D视角捏vxl模型以后会导致软件崩溃。不过整体来说vse自身在建模方面问题并不大,毕竟在如今的vse软件下,由于各位vxl大佬们在教程上的推广,vxl制作者人才辈出,vse工具也并没有显得太不好用。vse在法线烘焙上有一些小问题,例如mo3的模型给人感觉缺少了原版模型的金属感,这就是自动法线的缺陷与vpl文件将光照调暗了导致的后果。vse在制作大型vxl时也有太吃单核运算导致电脑很容易卡的缺陷,当然,那一代的所有工具都有单核运算的缺陷,甚至游戏本身都有,所以这里我也仅仅一笔带过。

由oranke改良后的vse,可以实现3D层面vxl的绘制,然而还是不好用,模型来源:和锑

8.vxl碎片应用限制较多

vxl是可以用来做碎片的,在原版中,当你打爆了盟苏两阵营的矿车时,其飞出来还在地上弹跳的轮胎便是vxl碎片。然而原版vxl碎片少的可怜,这不仅是因为vxl碎片注册表个数限制,同时也是因为vxl碎片是在rules里注册的原因,导致art中动画无法使用vxl碎片。当然在一些修改过的自定义ares平台内,vxl碎片则能实现更多的功能,这点我也就不展开了。

General条目下的vxl碎片

9.无法快速放大

准确说这个锅应该是hva来背,但是hva作为vxl运动数据的一部分,也可以算是归为vxl类里。如果你要放大一个vxl,那么你必须先放大2的指数倍该模型再缩小,否则就会出现显示黑点bug。这是由于vse的放大并不会处理非整数缩放但缩小可以,或许是vse的bug?又或许是游戏引擎自身的bug?一切都未曾知晓(个人更倾向于后者)

在hva builder里把基地车放大1.3倍,看起来没啥问题然而游戏内指定角度会显示出现撕裂bug

10.难以加密

vxl模型一般来说不改色盘,而基本上没哪个mod会冒着修改整个游戏里已有的所有模型的风险跑去改unit色盘,于是这就导致在拆包小鬼们逐渐增多的今天,vxl模型变成了拆即用的绵羊。而shp由于可以自定义色盘且shp所对应的色盘名字可以完全与shp本身命名规则无关,让其在加密上歪打正着成了更优选择,当然,依旧有恬不知耻的偷窃者们会跑去用这些挖来连色盘都不知道是啥的shp,只不过当玩家们玩那些小鬼们低劣的作品并遇到了那些动画之时,小偷的原型便展现在了玩家眼前。

色盘用不对,小偷两行泪真实图像

上面就是我了解到的一些主流的vxl模型所拥有的引擎限制。

vxl模型作为体素模型,本是西木用来解决坦克的方案,而现如今的modder们在制作mod时经常出现机甲设计或是要求所有vxl都是可动vxl来增加细节等等,这着实让vxl这个本就不那么容易表达精细的模型格式在追求细节的今天变得捉襟见肘,更何况Ares平台让shp载具可以有32面来使转向等动作更加顺滑,于是很多时候现在的modder如果技术足够的话会优先考虑制作更多的shp载具来加强视觉效果。然而,vxl的制作相比shp来说上手更快,再加上vxl制作工艺在诸如布加迪,issly,rocky等前辈与和锑,司机,厕纸,田鼠等后来者们的传承之下,每一个后来者都能比较轻松的跟随前人的步伐去学习制作一个好看的vxl模型,同时vxl模型制作图标的流程也已经被细致总结,许多学习了mod制作知识的新人们都可以在对vxl技术的努力下做出自己设想的单位来为自己的mod添砖加瓦,这使得精良的vxl的制作师们在主流红警2mod里总能拥有一席之地,同时也是一个好学的新人通过技术进步摸到mod制作初步门槛的最优桥梁。

二. shp部分

shp作为游戏里几乎所有的2D图像来源(少数静态图像是pcx),它的名字来源来自于红警2中2D图像文件的文件名后缀.shp。在红警2原版中,所有的建筑,特效,动画,多帧UI,多帧按钮,步兵以及少数载具(如恐怖机器人,巨型乌贼,海豚)都是shp。shp加色盘构建了整个游戏的大部分画风。没有vxl的mod是可以存在的,但是没有shp的mod不可能有。然而凡事都有多面性,绝大多数modder们头痛的地方也正是在于shp上,shp中那些常见的bug与限制也正是西木喂给后来的制作者们的一坨最大的shit。下面是shp的常见限制:

恐怖机器人是原版最有名的shp载具没有之一

1.卡(内存占用过多)

卡顿对于红警2来说其实是个日常问题,毕竟红警2是个单核游戏,但凡红警2能支持多核心也能让红警2的运行帧数显著提高很多倍。许多modder都知道卡顿的核心在于半透明shp的滥用,这点的确是真理,但在今天仿色代替半透明的大趋势下,卡顿的问题依旧没有减少。这是因为古老年代的优秀mod一般使用上百个shp就已经质量很高了,而现在的mod可能光一张图就上百个新shp,而且shp帧数都很多。shp的过度使用会让玩这些mod的电脑内存压力显著增加。当你在游戏中看见或是建造了两三个长相精美动作顺滑的飞船时,他们出现的时候可能就占据了你电脑一两个G的内存,这毫无疑问对于一个老游戏来说是个缺陷。

你造shp单位造的太狠了内存占用与电脑帧数都会变得不好,这对电脑配置不那么好的玩家是很不友好的

2.没有半透明效果(Alpha)

这是一个对于所有modder来说都非常非常头痛的问题,也是红警2离现代特效永远有一步之遥的核心原因。没有Alpha!没有Alpha!没有Alpha!任何一个做特效的红警2modder在制作之前都会念叨这句话。当然单从那个年代来看,红警2的特效已经是所有RTS游戏中的上乘了。况且西木制作红警2时,估计怎么也没想到红警2的mod制作者能讲这个游戏的生命带到20年后的今天。当然,shp在游戏中可以通过Translucency=(后填数值)来实现整体半透明,但是这句话会显著增加游戏卡顿几率,更何况真正的Alpha图层中的半透明值肯定不是一张图一个固定值,而是有的像素不透明有的像素半透明有的像素接近全透明。所以这句话在现在的mod里已经很少用了。如今的modder们一般处理半透明时会用到仿色效果。即通过不透明像素不密集的排布来模拟半透明。这种方式优点自然是显示效果不错且真的在运动中感觉就是半透明,而一旦玩家帧数不够或是需要截图时,像素之间交叉密排的把戏便会暴露,特效也会由于播放慢而变得没那么好看,而这也就是有些modder不用仿色的原因(比如mo,mo的所有特效几乎都没用仿色,但是很多特效的硬边缘给人的观感一言难尽)。

要是shp有Alpha的话,电能团就不会通过像素点的隔空排布来制作假Alpha效果了

3.大

shp的每一帧都是位图,而众所周知位图的图像压缩率一直很感人。当然,西木做的shp的大小一般不过分,帧数最多也就八九百帧,还只有8面。而如今32面shp都变成基操之后,shp的容量就开始有些失控了。shp过大的典型代表是TC(Tiberium Crisis,作者是AutoGavy,B站同名可搜)。TC作为一个mod来说无疑是一件艺术品,无论是画质,游戏性还是玩法上都有与其他红警mod非常不一样的地方,然而作为一个红警2mod,它的完全体总容量竟然达到了7.8G……这也让一些玩家吐槽玩TC还不如玩cnc3kw。这个锅当然与modder是没有关系的,shp的压缩率不佳是shp为主的mod变得极其大的主要元凶(TC过大的第二大元凶是红警2的影片容量压缩率,TC使用了大量影片来充实自己的战役剧情,虽然这让TC成为了一部佳作,但同时影片所占据的大量硬盘空间也是让人在下载之前无疑要仔细考虑)。上述种种情况最终都说明了一个事实:如果一些modder想做一个轻量级mod的话,shp载具能不用还是要不用,vxl载具在存储空间方面表现还是更不错的。

最新版TC主界面图,电脑条件允许的话还是挺建议大家去玩一玩的

4.颜色太少(自定义色盘缺陷)

之前我提到vxl颜色太少时夸奖了shp的颜色问题,怎么在这里我却又说shp颜色太少呢?主要原因有以下几点:

a. 色盘256色限制。不管怎么样,使用色盘来构建的图统统都只有256个颜色,但是第一条的颜色大多不可用,由于背景色,常亮色与所属色的原因(详见我写的专栏CV4085755开头)实际一个shp的常亮可用颜色只有224个以内;

b. 特殊色缺陷。在特殊颜色中所属色是有缺陷的。红警2的所属色只能有暗色系而没有亮色系,即所属色梯度是由黑色到特征最明显的所属色225红,而不能由225红到全白。这导致所有shp制作者都只可以制作到中央越来越黑的所属色黑洞,而不能做中央最亮四周是所属色的亮球;

c. 帧序列转换失真,vxl毕竟大多数都是在vse里用现成颜色画出来的体素,但shp的来源就十分广泛了,png序列中的颜色一般都不是256色,而是现在通用的百亿色或是千万色,用一个最多包含千万色的图片去转换成一个只有两百多种颜色的帧序列那是肯定会造成失真现象(即使png内或许只有上百种颜色),如果你做单位时懒得用自定义色盘而是用普通色盘的话,这种现象则会更加严重。

我做的机械虫族感染虫,所属色由于是逐渐变亮的情况,色盘所属色区的硬性限制导致放大后的shp还是有许多的缺陷。

5.所属色强制换色问题

art里有句话叫Remapable=yes,这句话控制了一个单位是否有特殊的红色像素变为所属色。这句话的解释没错,但是西木其实在shp单位上并没有写出这个功能。举个例子,你把恐怖机器人的art片段里的这句话删掉,恐怖机器人身上的红色像素在游戏中依旧会变成所属色,哪怕你写了Remapable=no还是会强换所属色……这种bug的出现导致shp载具假如不需要所属色的话将不能使用16-31号色中的任何一个颜色,不然不管你是啥色,写了Remapable=no没有都会被强制换掉。(西木weishi第一定律,总有一些ini句子写了吊用没有)

按理说写了Remapable=no的话,蜘蛛身上的所属色应该恒定为红色的,然而……

6.上下坡不能俯仰

这个问题是shp单位的一个老毛病了,而且通过shp单位的制作手段可以很快得出这个缺陷的结论。当然有时候为了单位显示更细腻去无视这条限制也不是不行,再加上大型机甲上下坡时本来就应该保持头朝上的自平衡,这反而使这个缺陷成为了一个功能。所以说这个缺陷还是见仁见智吧。

左边的vxl单位在斜坡上可以倾斜,右边的shp单位缺不行

7.无法被气浪掀翻且无法被蜘蛛攻击时摇晃

这个问题与上面那个问题类似,都是shp单位是假3D的问题,然而即使是这个感觉像是100%缺陷的部分,在TC里却变成了功能。TC里仿照CNC4设置的战局矿石投送系统的矿石便是能寄生在他人体内,寄生后无伤害也无法选中,寄生单位的攻击虽然没有掀翻坦克,但是却对被寄生者产生了减速效果,这也刚好模拟了cnc4的单位负矿时减速效果,可以说是对游戏功能的一个极具创意的设计了。

TC先锋军团的野狼坦克携带升降机上的矿石的效果,矿就是个类似蜘蛛一样的单位,只不过由于载具是shp无法掀翻只有减速效果

8.炮塔无法使用TurretOffset挪动位置

shp载具是可以有炮塔的,但shp载具的炮塔必须在整个单位的正中央。这也直接导致在官版ares中几乎没有人使用shp来做有炮塔的船,而对于vxl的船只来说,船只旋转的中心点可以不与炮塔在一个Z轴上。

这个将军舰的中轴在塔楼那里,但是前炮台的旋转轴却是前面一点,毫无疑问shp载具在官版做不到这点

9.IFV逻辑载具不能使用shp来更换炮台

modder都知道IFV载具的炮台是单独的,比如fvtur1-fvtur8。然而shp载具并不能这么做,准确的说shp载具不能使用本体以外的炮台,即xxx.shp与xxxtur.shp,那就更不用说需要大量不包含在素材内的炮台的IFV炮台了。此处说的IFV炮台指的是步兵车逻辑的单位,并不特指是步兵车。

但是无敌的工头解决了这个问题鸭!复仇时刻的圣骑士机甲如是说

10.shp单位炮台不能混用vxl,也不能用shp。

跟上述问题理由一致,shp单位的炮台是包含在shp单位内的。

11.shp单位变单位炮台无法添加动画

在Ares平台也拥有了变形金刚逻辑以后,广大modder自然是跃跃欲试。然而vxl转vxl单位可以添加动画,vxl部署成单位炮台可以添加动画,vxl部署建筑可以添加动画,shp单位转建筑可以添加动画,shp单位变shp单位也可以添加动画,唯独shp单位部署成shp单位炮台不能添加动画。我暂时当它是个bug,希望后面的Ares版能修复这个问题。

但是无敌的工头也解决了这个问题鸭!复仇时刻的武装直升机如是说

12.shp过多导致显示不全

这个问题是由戴子玲跟我讨论的时候提出的,由于ta做的是00lab是一个展示型mod,特效大量使用了shp,结果出现了在同一张地图上shp过多而随机无法显示的问题。虽然大多数modder由于自己的肝不够强,这辈子都不会遇到这种问题,但这也说明了shp在游戏中过多的话可能产生的bug还是蛮多的……

图来自未完工的地图

13.建筑显示不全

当你制作一个体积较大的建筑并按照sb中自带的格子摆好的时候,可能你会突然发现你的建筑缺了个角,以前我觉得这个问题无解,但diy论坛的雷德克里莫(与Q群克洛瑞德曼是同一人,B站ID:阿联UASR,在vxl单位制作图标专栏CV3465938内感谢他在voxelshop使用方法上的探究)修复了buildngz.sha来永久解决了此问题,所以这个问题目前看来已经解决了,广大modder们可以去ra2diy论坛进行下载。

经常做建筑的modder肯定都看到过这种情况,而且这点也肯定令人头痛

14.无法染色

经@双杀步枪在评论区的提醒,我觉得这个众所周知的特性有必要在文章中补充。shp载具一个众所周知的bug——无法染色。无论是铁幕也好,迷幻也好还是EMP也好,shp载具会一直保持常亮,然而shp载具并不会因为图像不受影响而真的免疫铁幕与迷幻或EMP,有时这种现象会对操作者有相当大的误导性。

shp载具并没有像vxl载具一样变黑,但身上的动画显示它已经被铁卫无敌了(然而无敌的工……)

15.难做

vxl体素可以用vse做,hva可以用hb改,ini可以用notepad++写,然而shp绝大多数步骤却不能用shp builder做(不要打简称啊!),这也就是许多mod提到制作shp就头痛的原因。shp的制作是一个modder在美工上巅峰造诣的结晶,要想做一个什么类型shp都会做的shper,modder要基本熟识PS,同时还得至少懂一个建模软件与一个特效制作软件,单纯做特效的话你可以学习AE等特效制作软件,而涉及到建模,即使你只是当一个转换工,你也至少需要了解你的建模软件的渲染器效果,场景搭建与动作修改。假如你要完全独立建模的话,则需要学会建模布线上贴图,绘制高级贴图时甚至要掌握拆uv与一个绘制贴图的软件,如果你要制作模型与特效交互的话,甚至你还要学习粒子系统,物理系统,流体系统……

所以假如你的工作或是专业与其无关还不能特别肝的话,制作shp就趁早找砖工,早找早超生。

……

…………

(看什么看,别看我啊woc~)

满桌搬砖言,一把辛酸泪

三.后记

无论是vxl也好还是shp也好,从上面种种的情况来看,所有bug的一切还是归咎于西木做游戏时的粗心大意与赶工砍设定这两点。当然,西木做红警2的时候也未曾想过,在20年以后,还有一群有热情肯探索的modder们为它添砖加瓦,这对于天国的西木来说也算是一个丰碑了。在玩家眼里,shp也好vxl也好,只有做的符合审美而且效果独特才能说是出彩的mod,所以合理利用shp与vxl的一些特性也是每个modder所必需的能力,毕竟作品为王,对于modder来说将自己的作品让自己希望拥有的玩家去鉴赏无疑是最重要的使命。

暑假已经到来,希望大家能享受自己的假期,在自己愿意学习的技术上获得更多的成就。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3