谨以此文献给那些初做MOD被各种报错打击到即将放弃的初心者们

之所以发这个贴是因为前段时间做TA MOD时即将就要被各种报错、加载失败、模型出现灵异、动作脚本无效、武器不发射变哑巴等等

太多太多的问题给折磨得即将放弃时,又在天下会和各种教程中没有找到直接的答案时无意间将一些问题迎刃而解后才感叹一定要把

这些经验分享一下,不要让后人再纠结到放弃的地步了。。。。。。。。。开头好长的话。

本帖即不讲教程,也不去分析案例,纯粹是把新手在刚开始着手MOD制作时可能会遇到的问题和可能的解决方案以及测试经验跟大家

分享,因此本帖的目标人群是:对TA MOD有浓厚兴趣和想法,而且已经下全了所有制作工具以及读完了大部分使用说明和教程,但是

仍然在实际工作中遇到各种令人受挫和严重打击积极性的各种问题,不保证全面和有效的解决你在门槛前的所有问题,但是希望本帖

可以为一些被各种报错和效果不理想折磨得快要放弃的朋友在做放弃决定前再找一找可能改变你主意的最后希望。。。但愿你遇到了

跟我一样的问题;而一些有打算做MOD但还没开始动手的朋友,希望你们看过此帖后能少走些弯路(虽然我认为弯路是很有必要走的,

因为只有走了才能明白他为什么是弯路= =||)。。。对这部分朋友,我但愿你们不要遇到跟我一样的问题,下面正式开始。

本帖只讨论最容易出现的和最打击人积极性的问题以及可能的解决方案,主要集中在四个环节上,1)分别是3D建模、2)模型导入、

3)脚本编写、4)数据编写;由于这四个环节主要都是后台工作,你在还未进入游戏测试前可能就被卡住了,因此这些问题很可能成

为对你做MOD兴趣最有杀伤力的障碍,我们称之为门槛,其实一旦你把初期门槛迈过去,就会发现那些问题都很初级,这也就是为什

么你很难在网上找到针对那些问题的解决答案了,我们这里做一下不完全小结吧。

从3D建模讲起,这个环节所使用的制作工具可能每个人都不太一样,但需要注意的是所有你制作的建模都要导入到3DObuilder这个软

件中去进行定义和贴图,它只认三种格式,实际上很可能你只能找到一种格式适合于你的3D建模软件,不过不要紧,有一种就足够了

。由于我是用wings3D的,所以我也只能分享有关wings3D的一些使用经验和心得了,对于wings3D用户,你需要将建模导出成.obj文

件,其实如果你没有善用的软件,纯粹是个新手,我也建议你用wings3D来做,当你进入wings3D时首先需要注意的就是分清楚XYZ三

个坐标轴,如果没有3D建模经验的人很可能会搞不清楚X轴和Y轴,我一开始的时候就曾经因为搞反了X轴和Z轴而导致坦克像螃蟹一样

横着走的囧况,而且还需要注意一点,wings3D中的x轴和z轴与3DObuilder里是相反的,因此你做的任何东西一定要背向z轴(三条轴

都是有颜色的,没有颜色的一边为背向),这样你导入到游戏中的模型才不会倒着走。现在注意事项高清了,如果你还未动手就看到

这个贴,你很可能就少走了由于搞不清三条轴而导致的失败,很值得恭喜一下,那么下面就来做点什么吧,一般都做什么呢?坦克教

程很有名,而且很多教程中都拿坦克、导弹车来做案例,一个地盘、一个可转动的炮台、一个可升降的炮管再加上武器发射的火光就

算齐活,听起来不难,但实际制作起来你会遇到很多意想不到的问题,我倒是建议先从飞行单位起手,由于游戏中有很多参数都已经

把飞行单位的各种行为规定好了(其实陆地单位也是一样),而且飞行单位极少会涉及到一些动作脚本,除了飞机自身做一些动作(比

如伸缩翅膀、空中翻滚等一些动作,这些你可以先忽略掉,能起飞,能降落,能发射武器就好,而这些动作不用你写脚本,你只需要

写最简单的就够了),基本上不用做炮台瞄准、炮筒后座力等效果,由于模型一般呆在空中,不在地面做过多停留,模型发生灵异的

影响也不是很大,那么我们可以先从游戏中提取一个现成的飞机单位的相关文件,或者去TA UNIT UNIVERSE网站上下载一个现成打包

好的飞机来试手,他的所有数据我们可以不改变,武器、单位数据甚至脚本都保持不变,只把模型改一改。看过教程的都知道

3DObuilder里要做树形部件定义的,目的是为了用脚本来实现动作的,而飞机的起落都是整体动作,因此你甚至可以只做一个整体部

件,对导入是很容易的,导入后查看一下脚本,将部件名称改成你自己的(其实一般都有通用的叫法,如果你看到大家都这么叫,也

跟这叫就好,不要弄得太有个性了),然后把一些多余的动作脚本程序先用“//”给屏蔽掉,把你3do文件的名字改成要测试的单位的

名字,然后你就可以进入游戏中测试你的模型了,大致流程就是这样。

在上述过程中你就有很多机会碰到报错,加载不能,或者武器失效等问题了,这些问题出在哪儿了呢?问题可能出自一下几点:

  1. 如果加载中跳出了,其实有时会显示问题所在,你可以参考一下,方便你找出问题原因;
  2. 跳出的一个很常见的原因是缺少一些必要的文件,比如爆炸时的效果,尤其是如果从一些第三方种族MOD中提取单位时最容易出这

类问题了,你只需要根据系统的提示再找来相关的文件就能加载了;
3. 还有一种原因是你单位的大小和死后的尸体占地面积不符,有时候系统会不能加载,当然这是针对陆地单位的,空中单位都不做

尸体的,你需要修改对尸体的描述文件;
4. 飞机在空中飞过敌方上空或盘旋但不启动武器,发射不出子弹来,这个问题也非常常见,不要灰心,原因一般不出在脚本上,而

是武器文件中,很可能武器与单位数据不匹配,或这武器数据超出限制(一般发生在你试图自己编写一种全新的威力强大,且音效惊

人的武器时),解决的最好方法就是,在你不确定的时候不要轻易修改武器参数,或者查看一下论坛里关于数据修改限制的帖子;
5. 飞机在降落在一些不是很平整的地面上时会发生模型错乱,导致灵异,这个问题,如果你一上来就制作坦克,很可能非常频繁的

遇到,当你发现坦克以超级凌乱的造型诡异的出现在你的游戏中时,你很可能听到自己心碎的声音,对制作MOD的信息打击力是非凡

的,这也是为什么我要说最好用飞机试手,因为飞机一旦飞起来就不会再发生灵异了。其实解决的方法也是非常简单的,但是你很难

发现到,这个问题原因出在3DObuilder里,在这里再说一个用3DObuilder的好习惯,那就是保留部件树的最根部为地平,也就base,

然后把单位的主题放在地平的分支上,一般可以叫body,当你想解决这个模型凌乱的问题时,点到base也就是地平上,反转一下地平

的模型面,快捷键按F2,然后保存后再导入游戏,再试试,很可能就解决了,你也可以在下次做新单位是先把地平翻转一下,如果进

入游戏还凌乱,就再翻转回来,一般来说就能解决了,前面说要单独保留地平为base是为了当你出现这种问题时,只需要轻松的按下

F2,就可以解决困扰你多时的噩梦而且还不至于让你在那之后把地平上的部件贴图工作再重做一遍,否则你会很可能遇到由于贴图被

翻转后的新问题了。。。。。当你解决了这个问题时很可能会长出一口气;
6. 好啦,一些做飞机享受到一点成功喜悦的朋友很可能会在探索坦克脚本时遇到一个巨大的问题,那就是无论你怎么写脚本,坦克

的炮台就是不转动,不瞄准,除非你车头掉过去,否则绝对不开一枪。这个时候你很可能怀疑脚本失灵了,甚至开始怀疑自己的人品

,怀疑写教程的人是搞恶作剧,各种猜想,其实没那么深奥,这很可能是因为你的武器跟脚本不匹配了,别忘了你是做航空生意起家

的,现在改做汽车行业,还用的飞机的武器,肯定要失灵,那么现在查看一下你新单位的武器文件,这里面有一个区别固定武器和炮

台武器的关键参数,“turret”参数,一般飞机上装备的武器都是固定武器,也就是说只能朝前开枪,因此才能做出飞机俯冲或盘旋

射击的效果来,飞机武器turret默认值一般都是“0”(除了个别MOD的T3、T4单位),或者干脆就没有turret参数(系统会默认为是“0

”),而只有当turret=1的时候,炮台瞄准的脚本才能启动然后发射武器,因此赶紧把turret=1;这行加到武器文件里把,但是当你这

么做了以后,日后还会有一个问题,那就是由于你修改了飞机的武器,而武器是通用的,那么等于是让飞机也可以四面八方的乱射了

,所以最正确的做法是把武器改个名字,做成一个新武器,给你装备新做的单位用,当然你改完了武器文件的名字别忘了去unit文件

把单位的对应武器名也改一下,要不然跟没改一样。。。
7. 如果你武器有turret参数,而且值也是“1”,但还是发射不能,那就说明你武器参数中有超过限制的数值了,那就要去网上查修

改限制的说明了,当然还少不了自己多摸索摸索,总之不要胡思乱想,更不要怀疑自己的人品就对了;
8. 下面这个问题也很搞笑,你发现你的新单位模型,部件在运转动作时发生局部灵异,比如炮台跟炮管各转各的,谁也不理谁,居

然还能发射子弹,或者部分炮台游离出主体之外,像浮游炮一样的诡异发射着,这其实是因为你没有正确的将3D建模导入到3DO文件

里,虽然在静态下部件的位置都很正确,那么我们要回到wings3D里了,查看一下你是怎么导出部件的,这个时候你要注意一下

wings3D界面,XYZ三条线汇集的那个点很重要,因为这个点就是传说中的“模型原点”,围绕着这个点来决定改模型如何移动,如果

旋转,如果你整体做了一个模型,然后顺手把部件分别导出,那么你其实是以整体建模的原点在导出部件,当改部件被导入到

3DObuilder时仍然在参考那个错误的原点,因此才会导致脚本做出许多诡异的动作,所以你不能怪脚本器,因为她也搞不懂你为什么

给她这样的命令,因此正确的做法是,当你完成一个整体模型时(也许你会想为什么不单独做不同的部件,我的建议是,你可以那么

做,但最好做一个整体的再拆分,这样模型才会看起来整体比较协调),导出部件时单个导出,先导出主题,再想一下炮台是如何运

动的,你在做脚本前就应该实现想好部件如何运动的,因此在建模时就要把部件调整到可以围绕原点做出你希望的运动轨迹的位置上

,这样才能实现部件在游戏中正确的运动,当你把每一个部件都重新调整位置再导出以后,就基本上不会再看到脚本器拿着你辛苦做

出的漂亮模型做傻事了;
9. 上面少补充了一条,那就是当你把一些部件导入到3DObuilder时可能发现模型错乱,这是因为你很可能一次导入了多个单独的模

型,一般来说一次只能导入一个单独的模型,当你wings3D里做了一个组合模型部件时,你需要先用wings3D命令菜单里“combine”

命令(只有当你在编辑“块”并锁定多个“块”时才会看见这个命令)将模型组组合成一个模型,再导入到3DO中就不会乱了;
10. 再说一个模型导入时的窍门,那就是你很不幸没看到此帖就开始着手做单位,然后发现模型在游戏中倒退行进,甚至是做河蟹状

横着走,想修改你的模型了,然后你进去wings3D,框住所有模型部件,让他们统一向后转或者向左转,然后就泪流满面的发现他们

都一个个单独的转了一圈,而不是整体的转,然后你整个模型都乱掉了,你丧失了最后的耐心,就要决定放弃了,STOP!千万别,看

看我上面那段里说的,还记得wings3D里有个“combine”命令吧,先把他们整编了再转,发现队形整齐多了吧,然后跟“combine”

对应的还有一个“separate”命令,用这个命令再把整组模型打散后他们位置不会改变,依然情绪稳定的待在那里,因此你又可以长

出一口气了,然后安然并淡定的继续你手边的工作;
11. 基本上你已经解决了大部分新手问题了,然后就是做一些深入的研究了,比如你一直很想做的那个巨无霸陆战猛犸坦克,你脑子

里大概构思了一下,要有四门主火炮,主炮台上要有一门高速中型防御机枪,势大力沉的打击对手的同时还能与杀到身边的小喽罗近

身过招儿,这大块头一定很合你胃口吧,动手做把,然后你就把副武器的炮台理所当然的搭建在了主炮台的背上,然后你杯崔的发现

,由于你的副武器炮台瞄准速度快于主炮台,会先转头去射击,然后主炮台再转过来的时候带动了副武器炮台继续转动,然后灵异就

出现了,副武器的子弹居然折返着去打目标,然后你就又开始怀疑自己的人品blabla…其实问题不难解决,因为你理所当然的认为

3DObuilder里的部件树定义时要把延展的部分作为子部件,这样你很可能这样定义你的模型:base-body-turret1-turret2-barrel2

-flare2,即地平-主体-主炮台-副炮台-副炮管-副武器火光,要删掉重新做吗?不要,工作量太大啦,你脆弱的神经又要崩溃啦,其

实还有救,试着将turret2整体移动到body下,应该是右键单击一下turret2,然后点“移动”命令按钮,移动到body下,让他跟

turret1同级,然后把部件的位置调整回正确的位置上,再导入游戏试试,你会发现副武器炮台不会再因为主武器炮台的转动而转动

过度了,灵异现行消失了,你现在基本上已经可以独立制作一下复杂的东西了,欢呼吧,别急,后面还会遇到很多让你挠墙的问题的

,不过经历上上面那么多事情,你应该已经能学着自己找出问题的所在,或者分析更合理的制作方案,让问题尽可能少的出现了吧,

这个时候你就不是长出一口气,而是更有信心了吧;
12. 最后说一个小问题,如果你重装过系统,或者你把游戏整体拷下来放到另一台电脑去做MOD,脚本器会表示找不到一些

#include”的.h文件,别急,你现在打开脚本器文件夹,会找到一个include文件夹,里面放的就是那几个.h文件,把你要用到的

文件复制到你脚本文件要存储的文件夹里,这样脚本器就又能识别了,当然最简单的方法无外乎重装一般游戏,只是比较耗时而已。

下面的时间留给大家交流吧,如果我能回答的就尽量回答。

刚发现,原来我自己就能编辑帖子内容:dizzy: ,把一些分享的软件放到一楼来:
懒人脚本器(Lazyscripter)
LazyScripter1.rar (82.1 KB)
可以自动生成简单TA炮台脚本的软件,功能非常有限,但能减少大量枯燥的编写工作

文件打包器,用于将制作的文件打包的,打包后可以放到TOTALA文件夹下到游戏中进行测试
hpipack1[1].7.rar (43.3 KB)
似乎之前有帖子中有这个过这个下载了,再放一遍出来

GoldWave金波专业音频编辑软件,功能挺多的,用来自己编辑音频,可以放到游戏中,也是做MOD必备工具
HA_GoldWave558_HZ.rar (2.73 MB)
如果有会用这款软件的朋友,欢迎拿来分享一下经验

TotalRecorder也是一款专业音频编辑软件,最重要的是,它是我目前为止见过的最强大的录音软件,可以把你电脑里发出的任何声音转录成WAV标准声波文件,最适合到外网上对一些需要付费下载的音频实施盗窃(好像要教人学坏似的:lol ),只要网页允许你测试音频,就可以把它录下来,然后再自己编辑一下,就能用了,非常方便。
TotalRecorder_setup.rar (374 KB)
一些网页提供的试听音频加了类似于图片水印的背景杂音,但那些是少数,不过大部分音频都是清晰的,基本上录下来就可以直接用到游戏里了。

悲了,写太着急,一堆错别字。。。。大家将就这看吧,有问题单聊

感谢共享,理解万岁~

LZ文中提到的工具共享一下更好吧 /:^]

其实论坛里曾经有过制作工具的下载,似乎只有lazy scriptor论坛里没见着,不过其实LAZY SCRIPTOR也没什么直接作用,大部分脚本还是要自己写进去,不过还是分享一下吧。

另外又想到一点,那就是当你试图把一个单管火炮改成多管炮试图增加火力时,你会发现如果不修改武器文件的射速,那么他实际上跟单管炮的射速一摸一样,因此要修改武器参数才能真正实现出火力的升级。

刚才忘了把附件传上来了,多给一个文件打包器
LazyScripter1.rar (82.1 KB)
hpipack1[1].7.rar (43.3 KB)

[

哈哈,没错,实际上只是每次换一根炮管来发射罢了。。。
这些都是脚本控制的。

按理说模型的脚本就是在引擎发给他一个信息时做些处理主要是动作,而单位的属性那些则完全是引擎用配置文件处理的。

刚好狐狸来了,问一下,我想做一个同武器类下的多管武器同时发射,脚本应该怎么写合适?我看到一个MOD里,应该是TAESC里的,有个双手同时开枪的“双枪老太婆”,不过我一直没找到这个单位的脚本,上来问一下,我自己做过些尝试,不过倒是无意中做出了一种类似机关枪打完一梭子上子弹再打一梭子的效果。。。

双枪老太婆…原版就有啊,arm的maverick,很猛地机器人

真人游戏|足球篮球|时时㎜彩| 六合投㎜注| 网络赚钱去SO娱㎜乐㎜城:顶级信用㎜提现百分百即时到账SO.CC

原版呀,那我晚上回去看看吧,多谢楼上

居然原版就有,看来我真是不怎么用ARM。。。

[

两种可能的方案:
1.设置武器的burst属性,让一次发射数量为2,然后脚本照旧。(但这个可能不成功,因为脚本里可能对一次burst只调用一次配套函数,而不是burst里每一发都调用一次)
2.设置武器的重新填装时间为极小的值,然后用脚本来控制武器的实际填装时间,这样双枪可以在极小的时间间隔内接连发射出去,然后脚本控制下一轮的两枚子弹在一定时间后才能再次发射。

[

maverick的双枪是一次一枪的吧。。。

LSS,我更倾向于方法二,maverick那个双枪是我前段时间玩的时候用CORE,俘虏了对方ARM的一个工程气垫,然后造了一个玩玩,感觉还不错,我印象中似乎是双枪齐射,难道记错啦?

还有talon族的带护盾的那个气垫,似乎是T2气垫中的最后一个,也是一下齐射数枚火箭弹,我觉得应该是类似的方法实现的

[

没印象。。。如果这些火箭弹都是从一个地方发射出来的话。。。那直接用burst就行了,不用改脚本。

那种连续发射几个炮弹的单位,是由脚本实现的,同时发射应该得占用单位身上的二个武器才能实现。

似乎不是,我提取过那个武器,然后放到别的单位身上,结果变单发的了

[

不是。。。单纯的一次性连续发射几个炮弹只需要武器蓝本里面设置burst即可,不需要脚本参与。

也可能是我有其他问题,所以没成功,回头再去试试看,狐狸,顺便再问你一个问题,比如我想在一个主炮台上设一个副炮台,举个例子,一个KBOT,上身作为一个主炮台,搭载手臂上的武器,但是头部是另外一个副炮台,比如眼睛可以发射致瘫光线之类的武器,如果把头部搭载在上身的下级部件里,那么瞄准时,头部比上身转的快,发射武器时由于上身也在旋转,副炮台会被带动着继续转动,从而出现灵异现象,就是我1楼里面提到的一种情况,我目前的做法是把头部与上身同时设在一个级别上,都与主体相关联,这样才能保证连个部件互不影响,但是我的问题是,如果我想在肩部也搭载一个可以单独移动的副武器,会出现一些灵异问题,由于肩部不在正中间的位置,而是偏左或偏右,如果不让他与上身相连,虽然可以独立转动瞄准、射击,但是当上身转动时,这个肩部的部件不会跟随移动,成了浮空炮了,还是会出现灵异,有什么好的办法可以解决这个问题吗?