教你如何设计出掷弹热气球?
<br/><br/>准备工具:ArchiveViewer,FileConverter(修改党必备工具,没有的可以去下载aoe3edit工具)<br/>第一步:打开ArchiveViewer,选择file---然后open,在出现的界面里选中帝国3安装目录下的art文件夹,选择Art5.bar打开<br/>第二步,在ArchiveViewer底下的输入栏里输入units\balloons\advanced_balloon.xml,会出现一个units\balloons\advanced_balloon.xml.xmb的文件(这个是高级热气球调用的外型资料),点击选中<br/>第三步,选择extract中的selected files,将目录选为你的帝国3安装目录,比如你的游戏安在d:\aoe3里,你就选择d盘下的aoe3文件夹,点击确定<br/>第四步,回到游戏安装目录下的art文件夹,发现多出来了一个units文件夹,打开找到advanced_balloon.xml.xmb文件,用FileConverter打开这个xmb文件<br/>第五步,将新生成的units\balloons\advanced_balloon.xml文件用记事本打开,我来解释一下具体内容,从<component>到</component>之间我们看到的是ModelComp,是高等热气球的模型设定,再往下会看到有并列的几个anim,这里是高等热气球的显示和动作设定,有Idle,Walk,Death,Bored,前面不解释,我就说一下Bored,从字面上大致可以理解成无聊时的动作显示,就是当这个单位长时间没有执行命令时会做出的相应动作 勿插楼,继续,谢谢合作 我们可以看到高等热气球是没有任何攻击动作的,添加新的动作很困难,但是我们可以对其原有动作重新定义,或者排列组合。在游戏中,高等热气球的Bored动作显示为气球中的士兵左右移动,有双手的来回晃动,这就好办了 <anim><br/>RangedAttack<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_bored</file><br/><tag type="Attack">0.50</tag><br/><tag type="SpecificSoundSet" checkvisible="1" set="GrenadeLight">0.19</tag><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/>这样,我们就给热气球添加了一个远距攻击动作,可以看到调用的仍然是Bored时的动作,下面的设定是起手时间和攻击时发出的声音,设定为掷弹的声音效果 这样就会产生一个问题,热气球在攻击时士兵一直移动,但是掷弹这个动作会跟不上节奏,不协调啊? 我们可以再给它加上一个动作<br/><anim><br/>Ranged_reload<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_idle</file><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/>调用的是Idle下的原有资料,那么这个reload到底什么意思呢?举个例子,鄂图曼炮兵AbusGun,在游戏中我们可以看到,他在攻击时发射之后会有一个装填炮弹的动作然后再发射,再装填,再发射......现在明白什么意思了吧?加上这个动作之后,热气球攻击时的画面就能协调了 还没完,我们继续对热气球做些创新,游戏中我们知道有手榴弹、迫击炮弹、加农炮弹、火箭弹......等等,但你有注意过炸药包的存在吗?没错,我们就是要让他扔炸药包! 这个需要改发射物,后面会讲到。我们先来完善其动作显示<br/><attachment><br/>dynamite<br/><component><br/>dynamite<br/><assetreference type="GrannyModel"><br/><file>effects\projectiles\dynamite</file><br/></assetreference><br/></component><br/><anim><br/>Idle<br/><component>dynamite</component><br/></anim><br/><anim><br/>RangedAttack<br/><assetreference type="GrannyAnim"><br/><file>units\spc\miner\dynamite_attack</file><br/></assetreference><br/><component>dynamite</component><br/></anim><br/></attachment><br/>这是添加的附属物——炸药包 这些attachment可以添加到最上方,但要在<animfile>之内 继续添加<br/><attachment><br/>fusesmoke<br/><component><br/>fusesmoke<br/><assetreference type="ParticleSystem"><br/><file>effects\spc\fusesmoke.particle</file><br/></assetreference><br/></component><br/><anim><br/>None<br/><component>fusesmoke</component><br/></anim><br/></attachment><br/>这个是对炸药包烟雾效果的设定 添加了附属物之后,我们要对其攻击动作重新设定一下,回到RangedAttack<br/><anim><br/>RangedAttack<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_bored</file><br/><tag type="Attack">0.50</tag><br/><tag type="SpecificSoundSet" checkvisible="1" set="GrenadeLight">0.19</tag><br/></assetreference><br/><component>ModelComp</component><br/><attach a="dynamite" frombone="bone_fuse" tobone="bone_fuse" syncanims="1"/><br/><attach a="fusesparks" frombone="bone_fuse" tobone="bone_fuse" syncanims="0"/><br/><attach a="fusesmoke" frombone="bone_fuse" tobone="bone_fuse" syncanims="0"/><br/></anim><br/>下面的三项是附加内容 这样,高等热气球的模型就被重新定义成了掷弹热气球,要想热气球在游戏中能够攻击作战,还要建立相应的tactics文件,修改党应该明白tactics文件是对单位攻击动作的调取和战术模式的定义 高等热气球本来是没有对应tactics文件的,我们需要新建一个 第一步:打开ArchiveViewer,选择file---然后open,在出现的界面里选中帝国3安装目录下的data文件夹,选择Data3.bar打开<br>第二步,在ArchiveViewer底下的输入栏里输入archer.tactics,会出现一个Data\tactics\archer.tactics.xmb的文件(这个是弓兵调用的tactics,我们只是借用,你也可以选择其他的),点击选中<br>第三步,选择extract中的selected files,将目录选为你的帝国3安装目录,比如你的游戏安在d:\aoe3里,你就选择d盘下的aoe3文件夹,点击确定<br>第四步,回到游戏安装目录下的data文件夹,发现多出来了一个tactics文件夹,打开找到archer.tactics.xmb文件,用FileConverter打开这个xmb文件<br>第五步,将新生成的archer.tactics文件重命名为GrenadierBalloon.tactics,也可以自己命名,但不要与原有的tactics文件重复。用记事本打开,删除里面所有内容 可以看到,GrenadeAttack这项动作下<br/><projectile≫Dynamite</projectile≫<br/><impacteffect≫effects\impacts\dynamite</impacteffect≫<br/>发射物为Dynamite(炸药)<br/><impactforcemin≫550.0</impactforcemin≫<br/><impactforcemax≫750.0</impactforcemax≫<br/><impactlaunchangle≫50.0</impactlaunchangle≫<br/><areasortmode≫Radial</areasortmode≫<br/><areasortmode≫Radial</areasortmode≫<br/><targetground≫1</targetground≫<br/><basedamagecap≫1</basedamagecap≫<br/>攻击动作下,这些设定是干嘛的呢?注意这个单词Radial,没错,是对辐射效果的设定,到游戏中就可以看到震撼的爆炸效果 在xml和tactics这两个文件完成之后,我们要打开data文件夹下的protoy文件,做最后一步的设定,这项对修改党来说是最基本的了 用记事本打开protoy.xml,在protoy中点击编辑——查找,在查找内容中输入xpAdvancedBalloon,点击查找下一个,就会找到<Unit id ='859' name ='xpAdvancedBalloon'>这样的内容,这行向下就是高等热气球调用的各项资料 居然不是坟 真乃大神也 <?xml version="1.0" encoding="utf-8"?><br/><br/><br/><tactics><br/><action><br/><name stringid="38133">GrenadeAttack</name><br/><type>Attack</type><br/><attackaction>1</attackaction><br/><rangedlogic>1</rangedlogic><br/><reloadanim>Ranged_reload</reloadanim><br/><anim>RangedAttack</anim><br/><accuracy>0.9</accuracy><br/><accuracyreductionfactor>2</accuracyreductionfactor><br/><aimbonus>0</aimbonus><br/><maxspread>5</maxspread><br/><spreadfactor>0.25</spreadfactor><br/><trackrating>12</trackrating><br/><unintentionaldamagemultiplier>1.0</unintentionaldamagemultiplier><br/><projectile>Dynamite</projectile><br/><impacteffect>effects\impacts\dynamite</impacteffect><br/><minrange>0</minrange><br/><rate type="Unit">1.0 </rate><br/><throw>1</throw><br/><impactforcemin>550.0</impactforcemin><br/><impactforcemax>750.0</impactforcemax><br/><impactlaunchangle>50.0</impactlaunchangle><br/><areasortmode>Radial</areasortmode><br/><areasortmode>Radial</areasortmode><br/><targetground>1</targetground><br/><basedamagecap>1</basedamagecap><br/></action><br/><action><br/><name stringid="38118">BuildingAttack</name><br/><type>Attack</type><br/><attackaction>1</attackaction><br/><rangedlogic>1</rangedlogic><br/><reloadanim>Ranged_reload</reloadanim><br/><anim>RangedAttack</anim><br/><accuracy>0.9</accuracy><br/><accuracyreductionfactor>2</accuracyreductionfactor><br/><aimbonus>0</aimbonus><br/><maxspread>5</maxspread><br/><spreadfactor>0.25</spreadfactor><br/><trackrating>12</trackrating><br/><unintentionaldamagemultiplier>1.0</unintentionaldamagemultiplier><br/><projectile>Dynamite</projectile><br/><impacteffect>effects\impacts\dynamite</impacteffect><br/><rate type="LogicalTypeShipsAndBuildings">1.0 </rate><br/><throw>1</throw><br/><impactforcemin>550.0</impactforcemin><br/><impactforcemax>750.0</impactforcemax><br/><impactlaunchangle>50.0</impactlaunchangle><br/><areasortmode>Radial</areasortmode><br/><areasortmode>Radial</areasortmode><br/><targetground>1</targetground><br/><basedamagecap>1</basedamagecap><br/></action><br/><tactic><br/>Volley<br/><action priority="100">GrenadeAttack</action><br/><action priority="75">BuildingAttack</action><br/><attacktype>LogicalTypeRangedUnitsAttack</attacktype><br/><autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype><br/><attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype><br/><runaway>0</runaway><br/><autoretarget>1</autoretarget><br/><idleanim>Idle</idleanim><br/><boredanim>Bored</boredanim><br/><deathanim>Death</deathanim><br/><walkanim>Walk</walkanim><br/></tactic><br/><tactic><br/>Stagger<br/><action priority="100">GrenadeAttack</action><br/><action priority="75">BuildingAttack</action><br/><attacktype>LogicalTypeRangedUnitsAttack</attacktype><br/><autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype><br/><attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype><br/><runaway>0</runaway><br/><autoretarget>1</autoretarget><br/><idleanim>Idle</idleanim><br/><boredanim>Bored</boredanim><br/><deathanim>Death</deathanim><br/><walkanim>Walk</walkanim><br/></tactic><br/><tactic><br/>Defend<br/><action priority="100">GrenadeAttack</action><br/><action priority="75">BuildingAttack</action><br/><attacktype>LogicalTypeRangedUnitsAttack</attacktype><br/><autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype><br/><attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype><br/><runaway>1</runaway><br/><autoretarget>1</autoretarget><br/><idleanim>Idle</idleanim><br/><boredanim>Bored</boredanim><br/><deathanim>Death</deathanim><br/><walkanim>Walk</walkanim><br/></tactic><br/></tactics><br/>这个是tactics文件内容,漏楼,这里补充 <?xml version="1.0" encoding="utf-8"?><br/><br/><br/><animfile><br/><definebone>Bip01 Prop1</definebone><br/><definebone>bone_dynamite</definebone><br/><definebone>Bip01 Prop2</definebone><br/><definebone>bone_fuse</definebone><br/><attachment><br/>dynamite<br/><component><br/>dynamite<br/><assetreference type="GrannyModel"><br/><file>effects\projectiles\dynamite</file><br/></assetreference><br/></component><br/><anim><br/>Idle<br/><component>dynamite</component><br/></anim><br/><anim><br/>RangedAttack<br/><assetreference type="GrannyAnim"><br/><file>units\spc\miner\dynamite_attack</file><br/></assetreference><br/><component>dynamite</component><br/></anim><br/></attachment><br/><attachment><br/>fusesparks<br/><component><br/>fusesparks<br/><assetreference type="ParticleSystem"><br/><file>effects\spc\fusesparks.particle</file><br/></assetreference><br/></component><br/><anim><br/>None<br/><component>fusesparks</component><br/></anim><br/></attachment><br/><attachment><br/>fusesmoke<br/><component><br/>fusesmoke<br/><assetreference type="ParticleSystem"><br/><file>effects\spc\fusesmoke.particle</file><br/></assetreference><br/></component><br/><anim><br/>None<br/><component>fusesmoke</component><br/></anim><br/></attachment><br/><component><br/>ModelComp<br/><assetreference type="GrannyModel"><br/><file>units\balloons\balloon_advanced</file><br/></assetreference><br/><decal><br/><effecttype>default</effecttype><br/><texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture><br/><selectedtexture>shadows_selections\selection_circle_64x64</selectedtexture><br/><width>5.00</width><br/><height>5.00</height><br/></decal><br/></component><br/><anim><br/>Idle<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_idle</file><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/><anim><br/>Walk<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_idle</file><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/><anim><br/>Death<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_death</file><br/><tag type="SpecificSoundSet" checkvisible="1" set="CannonImpactFlesh">0.52</tag><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/><anim><br/>Bored<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_idle</file><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/> <anim><br/>Ranged_reload<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_idle</file><br/></assetreference><br/><component>ModelComp</component><br/></anim><br/><anim><br/>RangedAttack<br/><assetreference type="GrannyAnim"><br/><file>units\balloons\balloon_bored</file><br/><tag type="Attack">0.50</tag><br/><tag type="SpecificSoundSet" checkvisible="1" set="GrenadeLight">0.19</tag><br/></assetreference><br/><component>ModelComp</component><br/><attach a="dynamite" frombone="bone_fuse" tobone="bone_fuse" syncanims="1"/><br/><attach a="fusesparks" frombone="bone_fuse" tobone="bone_fuse" syncanims="0"/><br/><attach a="fusesmoke" frombone="bone_fuse" tobone="bone_fuse" syncanims="0"/><br/></anim><br/></animfile><br/>这个是xml文件内容,漏楼,这里补充 <Unit id ='859' name ='xpAdvancedBalloon'><br/><br/><DBID>1265</DBID><br/><br/><DisplayNameID>46799</DisplayNameID><br/><ObstructionRadiusX>2.0000</ObstructionRadiusX><br/><ObstructionRadiusZ>2.0000</ObstructionRadiusZ><br/><MaxVelocity>2.0000</MaxVelocity><br/><MaxRunVelocity>3.5000</MaxRunVelocity><br/><MovementType>air</MovementType><br/><TurnRate>8.0000</TurnRate><br/><AnimFile>units\balloons\advanced_balloon.xml</AnimFile><br/><ImpactType>Wood</ImpactType><br/><Icon>units\balloons\hot_air_balloon</Icon><br/><PortraitIcon>units\balloons\hot_air_balloon_portrait</PortraitIcon><br/><RolloverTextID>46798</RolloverTextID><br/><ShortRolloverTextID>46797</ShortRolloverTextID><br/><InitialHitpoints>240.0000</InitialHitpoints><br/><MaxHitpoints>240.0000</MaxHitpoints><br/><LOS>30.0000</LOS><br/><ProjectileProtoUnit>Dynamite</ProjectileProtoUnit><br/><AutoAttackRange>16.0000</AutoAttackRange><br/><UnitAIType>RangedCombative</UnitAIType><br/><AllowedAge>0</AllowedAge><br/><br/><Armor type ='Ranged' value ='0.1000'></Armor><br/><UnitType>LogicalTypeMinimapFilterMilitary</UnitType><br/><UnitType>LogicalTypeEasySelectAvoid</UnitType><br/><UnitType>LogicalTypeHealed</UnitType><br/><UnitType>LogicalTypeScout</UnitType><br/><UnitType>LogicalTypeValidSPCUnitsDeadCondition</UnitType><br/><br/><UnitType>LogicalTypeValidSharpshoot</UnitType><br/><br/><UnitType>LogicalTypeNeededForVictory</UnitType><br/><UnitType>LogicalTypeHandUnitsAutoAttack</UnitType><br/><UnitType>LogicalTypeGarrisonInShips</UnitType><br/><br/><UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType><br/><br/><UnitType>LogicalTypeVillagersAttack</UnitType><br/><UnitType>LogicalTypeHandUnitsAttack</UnitType><br/><UnitType>LogicalTypeRangedUnitsAttack</UnitType><br/><UnitType>Unit</UnitType><br/><br/><UnitType>UnitClass</UnitType><br/><UnitType>Military</UnitType><br/><UnitType>Ranged</UnitType><br/><UnitType>HasBountyValue</UnitType><br/><UnitType>CountsTowardMilitaryScore</UnitType><br/><br/><UnitType>ConvertsHerds</UnitType><br/><Flag>CollidesWithProjectiles</Flag><br/><br/><Flag>ApplyHandicapTraining</Flag><br/><Flag>CorpseDecays</Flag><br/><Flag>ShowGarrisonButton</Flag><br/><Flag>DontRotateObstruction</Flag><br/><Flag>ObscuredByUnits</Flag><br/><Flag>Tracked</Flag><br/><Flag>VisibleUnderFogIfGaia</Flag><br/><br/><Command page ='10' column ='1'>Stop</Command><br/><br/><Command page ='10' column ='0'>Garrison</Command><br/><Command page ='10' column ='2'>Delete</Command><br/><Tactics>GrenadierBalloon.tactics</Tactics><br/><ProtoAction><br/><br/><Name>BuildingAttack</Name><br/><Damage>30.000000</Damage><br/><DamageType>Siege</DamageType><br/><MaxRange>16.000000</MaxRange><br/><ROF>6.000000</ROF><br/></ProtoAction><br/><ProtoAction><br/><br/><Name>GrenadeAttack</Name><br/><Damage>50.000000</Damage><br/><DamageType>Siege</DamageType><br/><MaxRange>16.000000</MaxRange><br/><ROF>6.000000</ROF><br/><DamageCap>120.000000</DamageCap><br/><DamageArea>5.000000</DamageArea><br/><DamageFlags>GAIAEnemy</DamageFlags><br/></ProtoAction><br/>这个是protoy中对掷弹热气球的属性和参数设定,也可以自己适当改动 跪了 这是极好的,真乃大神也。 此大神也 西怎么出热气球<br>——来自 爱贴吧 Windows Phone 客户端 来看
页:
[1]