[红警2DIY]MOD制作教程⑦ |
您所在的位置:网站首页 › ares平台使用教程 › [红警2DIY]MOD制作教程⑦ |
本期专栏可以只阅读文字版。 前几期只要一碰到图像设置的问题,就让大家先复制写好的,相信大家也迫切的想知道这些代码是如何写的了。图像设置,主要就是Artmd.ini了,我主要把图像设置分为三种:模组资源设置,碎片与动画。我们在讲之前,先看一眼Artmd.ini,发现里面只有个[Movies]的注册段,并没有其他的,Movies什么意思大家很清楚吧,也就是说,动画的注册不会在Artmd.ini里,而在其他的地方。 那么,平时我们用的最多的就是对模组资源的设置了,也就是最一般的图像的设置。其实,除了自创的素材的大佬,我们这些采用别人素材的当然要用已经写好的了。很多人在底下评论问怎么制作,这个我一开始就说过了我不会搞素材的,大家可以去PPM(https://www.ppmsite.com/)和红警DIY论坛(http://bbs.ra2diy.com/)去看看,上面有制作教程的。我们接着说,用的别人的素材,但是有时也会需要对图像的设置进行修改,因此学习一下这些代码还是很有必要的,我以海豹部队为例,讲解下步兵SHP图像的设置。 [SEAL] ; Regular SEAL Cameo=SEALICON ;建造栏图标 AltCameo=SEALUICO ;一星后建造栏图标 Sequence=SealSequence ;使用的步兵动作序列 Crawls=yes ;是否会爬行 Remapable=yes ;是否含有特殊的红色像素 FireUp=3 ;开火时使用的帧序号 PrimaryFireFLH=100,0,100 ;使用主武器时的开火位置 这里说一下重点: 一直强调的注册,注册是在Rulesmd.ini对应的Image=语句,这个以前讲过了,不再细说 Sequence=步兵动作序列,决定了SHP各帧对应的步兵的动作 Remapable=特殊红色像素的作用,大家看到了,SHP文件中都是红色的单位,我们知道红警中应该是根据所选国家颜色自动变更颜色。这些特殊的红色像素会随你选的国家颜色而改变 那么,我们就来看看步兵动作序列吧!以下是海豹部队的动作序列[SealSequence]: [SealSequence] Ready=0,1,1 Guard=0,1,1 Walk=8,6,6 Idle1=56,15,0,S Idle2=71,15,0,E Crawl=86,6,6 Prone=86,1,6 Die1=134,15,0 Die2=149,15,0 FireUp=164,6,6 FireProne=212,6,6 Down=260,2,2 Up=276,2,2 Paradrop=602,1,0 Cheer=603,8,0,E Tread=340,6,6 Swim=388,6,6 WetAttack=436,6,6 WetIdle1=484,15,0,S WetIdle2=499,15,0,E WetDie1=514,15,0 WetDie2=529,15,0 Die3=0,1,1 Die4=0,1,1 Die5=0,1,1 Panic=8,6,6 我们看到我没有给注释啊,因为我要单独说明一下,大家先看看这结构,都是这种“表示动作名称的单词=数字,数字,数字(,表示方向字母缩写)”。 第一个数字是特定动作的开始帧。注意游戏是从0号开始计算SHP的帧数,因此起始帧应该写0而不是1,同样第二帧应该是1不是2。第二个数字是每个特定动作用到的帧数,包括起始帧。第三个数字到达下一个动作所需的帧数。直接这样说有点难懂,大家打开个SHP文件,我们看到SHP文件的“行走”动作被分成了好几个方向,这个就是告诉游戏,相同动作不同方向的帧数。至于每个单词代表的动作,有不懂的就去翻网盘里的Art词典吧! 还要注意,不同的SHP可能使用同一个动作序列,所以想对某个兵的动作改动先看看是不是用的通用序列,如果是请单独复制一份改,不要把原先的通用的给改掉了。 说完了步兵,再来说说建筑,我以盟军基地[GACNST]为例。 [GACNST] Remapable=yes Foundation=4x4 ;指定建筑的占地面积,要用小小字母“x”,而不是用* Height=4 ;指定动画的高度 AnimActive=0,26,3 ;动画播放的位置 Buildup=GACNSTMK ;建筑建造时动画(如果没有,建筑不能被卖掉) DemandLoadBuildup=true ;建造动画在载入时就预先载入 FreeBuildup=true ;作用不明 NewTheater=yes ;是否在不同的场景使用不同的图像 ActiveAnim=GACNST_A ;通常情况下播放的动画 ActiveAnimDamaged=GACNST_AD ;残血状态下通常播放的动画 ActiveAnimZAdjust=-130 ;ZAdjust动画层次优先级 ActiveAnimYSort=362 ;YSort动画播放顺序的优先级 ;----下面为建造厂使用的动画---- ProductionAnim=GACNST_B ProductionAnimDamaged=GACNST_BD ProductionAnimZAdjust=-10 ProductionAnimYSort=543 ;-----结束动画设置------- CanHideThings=True ;能否挡住物体 CanBeHidden=False ;能否被挡住 OccupyHeight=3 ;占用的实际高度(游戏判定飞行兵之类) DamageFireOffset0=-24,-1 ;受伤时着火的位置1 DamageFireOffset1=64,36 ;着火的位置2 说一下重点: 还是先说注册,我们看到这里面定义了很多动画,只有建造动画不需要额外注册,其他的都要在Rulesmd.ini里面的[Animations]里面注册! 我注释的代码部分,我们看到是建造厂的设置,那么同样的其他有特殊动画的建筑会有类似的设置,希望大家能举一反三 Foundation=,指定建筑的占地面积,需要注意的是,地面工厂类尽量不用修改,如战车工厂,乱改会导致无法正常出坦克,兵营不用盟苏尤的会出兵位置奇怪。当然改机场没什么大问题,如果确实需要修改,需要用Ares自定义面积攻击计算好,NP就别想了 对于ActiveAnim=通常情况下播放的动画,还有两个语句控制他的行为: ActiveAnimPoweredSpecial=true ;动画只有在没被飞碟吸的时候才会播放ActiveAnimPowered=false ;动画只有在有电力的时候才会播放 NewTheater=是否在不同的场景使用不同的图像,这就是在讲建筑时让大家遵循的命名规则,游戏会读取第二个字母为A的作为雪地的图像,采用为D的作为沙漠图像,采用为L的作为月球图像,等等,G为通用图像,如果上述图像找不到默认采用G,当然也不用担心,比如只有A的没有G的会怎么样,游戏也不傻,这时就会默认用A的 不同建筑的动画定义语句不同,基地有ProductionAnim=,比如维修厂之类的闲置动画和维修动画定义语句都不一样(例:SpecialAnim=与IdleAnim=),建议复制粘贴+修改大法,什么类型的就复制一下再修改就不会漏掉语句了 注意这一部分Art词典的解释是错误的 我们也看到了里面定义了很多动画了,什么残血动画之类的,那么我们接下来看看这些动画的设置 [GACNST_A] Normalized=yes ;动画是否以恒定的速度播放 Start=0 ;开始的帧数 LoopStart=0 ;开始循环的帧数 LoopEnd=3 ;循环播放的帧数 LoopCount=-1 ;循环播放的次数(-1为无限循环) Rate=200 ;播放的速度 Layer=ground ;播放层次=战场 NewTheater=yes ;DetailLevel=1 ; Damaged active animation for construction yard [GACNST_AD] Image=GACNST_A ;使用的SHP图像 Normalized=yes Start=3 LoopStart=3 LoopEnd=6 LoopCount=-1 Rate=200 Layer=ground NewTheater=yes ;DetailLevel=1 ; Production animation for construction yard [GACNST_B] Normalized=yes Start=0 LoopStart=0 LoopEnd=20 LoopCount=1 Rate=200 Layer=ground NewTheater=yes ;DetailLevel=1 Shadow=yes ; Damaged Production anim for construction yard [GACNST_BD] Image=GACNST_B Normalized=yes Start=20 LoopStart=20 LoopEnd=40 LoopCount=1 Rate=200 Layer=ground NewTheater=yes 没有什么需要特别解释的,我们打开XCC看SHP文件可以看到一个GACNST_A同时有绿血的正常状态图和残血的破旧状态图,所以用指定起始帧的方式定义两个动画,分别用作正常和破旧状态的图像 普通的图像设置就这么点,还是非常简单的,VXL类的我没讲,第一我不会做VXL,第二VXL我以前提到过,它在Artmd.ini里就指定了个Voxel=yes,其他的全是.hva文件的功劳,这个是做VXL的领域了。那么接下来我们看看碎片,碎片其实也算是一种图像,碎片是高阶必备品,因为很多东西上可以跟碎片产生联系,进而实现更多功能,比如碎片可以产生矿石,当然作为新人向教程不准备详解,大佬们可以去自行研究。 [DBRIS1LG] Elasticity=0.0 ;碎片的弹性0-1之间 MaxXYVel=25.0 ;碎片在平面上的速度,不得小于 MinZVel=25.0 ;碎片的竖直速度,正数为向上飞 ExpireAnim=TWLT036 ;爆炸动画 Damage=20 ;被砸到的伤害 DamageRadius=80 ;伤害的范围(没什么实际作用) Warhead=HE ;弹头 LoopStart=0 LoopEnd=15 LoopCount=-1 RandomRate=220,600 ;随机播放速度(220,600) ;DetailLevel=0 Bouncer=yes ;是否有弹性 TrailerAnim=SMOKEY2 ;尾烟的动画 TrailerSeperation=2 ;每隔多少帧产生一个新的尾烟动画 我们接下来看一下真正的动画(即SHP格式的动画)。动画要在Rulesmd.ini里的[Animations]里注册,这里我写了一个燃烧的火焰的动画,具体啥用先不告诉你们,素材也不先给你们,来打我啊。 那么我们来看一下我写好的代码。 [COMBUSTION1] Image=COMBUSTION Scorch=yes ;是否会留下烧焦地面的痕迹,Ares平台会额外增加功能 Layer=ground Damage=2 Warhead=Fire2 Rate=500 LoopCount=8 UseNormalLight=yes ;使用正常的亮度 Translucency=25 ;透明度,仅支持25,50,75,三个透明度 Flamer=yes ;是否为火焰,NP平台中无实际作用 Next=COMBUSTION2 ;播放完后下一个播放的动画 [COMBUSTION2] Image=COMBUSTION Scorch=yes Layer=ground Damage=2 Warhead=Fire2 Rate=450 LoopCount=12 UseNormalLight=yes Translucency=25 Flamer=yes Next=COMBUSTION3 [COMBUSTION3] Image=COMBUSTION Layer=ground Damage=2 Warhead=Fire2 LoopCount=10 Rate=400 UseNormalLight=yes Translucency=50 Flamer=yes Next=COMBUSTION4 [COMBUSTION4] Image=COMBUSTION Layer=ground Surface=yes Damage=2 Warhead=Fire2 LoopCount=3 Rate=350 UseNormalLight=yes Translucency=75 Flamer=yes 这里说一下技巧: 通过透明度越来越高实现火焰渐渐熄灭的效果 大家还能看到,这个火焰定义了伤害和弹头的哦,注意一下,原版游戏引擎动画定义弹头是无效的,会被锁定为Fire2弹头,只有NPExt和Ares可以改弹头,或者一些别的什么奇葩小众引擎! 那么本期教程就到这里结束了。大家也看到了,我在本期提到了很多关于游戏引擎(平台)的事情,还提到了之前视频忘了介绍的Ares平台(我绝对不会说因为我现在才刚刚收到Ares能存档的消息)。因为我看很多人想让我出关于Ares平台的视频,那么我现在先把自己的MOD搬到Ares(之前用NPatch做的,好多代码不一样,现在才完成80%,所以本来本篇文字版教程应该昨天更新的),以后会在合适的时间把教程也换成Ares平台。 注意啦,如果有心急现在就要换Ares平台的,这样我们的“进化”功能就失效了,Ares目前不支持这个功能哦,其他的功能都能实现,我也会给大家讲一下NPatch到Ares的过渡技巧。 下期声音设置的教程,将介绍三种声音的设置:音效及语音,EVA,BGM。相信大家也想给自己的红警加上自己喜欢的BGM吧! PS:为了下期的准备,大家先去下载个音频格式转换软件吧,我用的格式工厂。 #最后更新:2023-1-6 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |