采集资源


这个教程是给士兵添加采集能力,是否要添加伐木你自己考虑吧,要伐木必须加上标签AbstractVillager,但是加上了,士兵就不能有队列了,而且只能单个训练(除非像俄国那样捆绑训练)。

大概的做法是:
1.先把要修改的单位与村民的tactics文件以及动画xml都提取出来。
2.打开村民的tactics,挑选与采集资源有关的内容,添加进要修改的单位的tactics。(有AutoGatherTrade、Gather、NoWork、CrateGather、Hunting、ChopAttack这几个。我怎样知道的?你对比一下村民的tactics与其他单位的tactics
3.打开村民动画xml,挑选与采集资源有关的动作,添加进要修改的单位的动画xml。(attach有bowl、knife、pickaxe、axe、hoe;动作有GatherChop、GatherMine、GatherFarm、GatherHunt、GatherBush、GatherCrate、GatherFarmWalk、GatherFarmHoe、GatherFarmSow、GatherFarmWeed;这些貌似都是在主程序定义的,从村民那移植主要看修改帝国3的经验。)

怎样照搬就不讲了,上面已经告诉你了。



这是tactics语句:

	<action>
		<name stringid="69149">AutoGatherTrade</name>
		<type>AutoGather</type>
		<donotautogatherunlessgathering>1</donotautogatherunlessgathering>
		<active>0</active>
		<persistent>1</persistent>
	</action>
	<action>
		<name stringid="42178">Gather</name>
		<type>Gather</type>
		<maxrange>0.5</maxrange>
		<rate type="Plantation">1.0</rate>
		<rate type="AbstractMine">1.0</rate>
		<rate type="SPCSpanishShipRuins">1.0</rate>
		<rate type="Farm">1.0</rate>
		<rate type="Mill">1.0</rate>
		<rate type="FirePit">1.0</rate>
		<rate type="BerryBush">1.0</rate>
		<rate type="Tree">1.0</rate>
		<rate type="Herdable">1.0</rate>
		<rate type="Huntable">1.0</rate>
		<rate type="ypBerryBuilding">1.0</rate>
		<rate type="ypGroveBuilding">1.0</rate>
	</action>
	<action>
		<name stringid="69183">NoWork</name>
		<type>NoWork</type>
		<maxrange>10</maxrange>
		<rate type="Herdable">1.0</rate>
		<rate type="Huntable">1.0</rate>
		<typedmaxrange type="Herdable">0</typedmaxrange>
		<typedmaxrange type="AbstractNuggetWater">0</typedmaxrange>
		<typedmaxrange type="Huntable">10</typedmaxrange>
	</action>
	<action>
		<name stringid="69150">CrateGather</name>
		<anim>GatherCrate</anim>
		<type>Gather</type>
		<maxrange>0.5</maxrange>
		<rate type="AbstractResourceCrate">1.0</rate>
	</action>
	<action>
		<name stringid="69151">Hunting</name>
		<type>Hunting</type>
		<maxrange>10</maxrange>
		<rate type="Herdable">1.0</rate>
		<rate type="Huntable">1.0</rate>
		<rate type="Tree">1.0</rate>
		<typedmaxrange type="Herdable">0</typedmaxrange>
		<typedmaxrange type="Huntable">10</typedmaxrange>
		<typedmaxrange type="Tree">0</typedmaxrange>
	</action>
	<action>
		<name stringid="42136">ChopAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<anim>GatherChop</anim>
		<maxrange>2</maxrange>
		<rate type="Tree">1.0 </rate>
	</action>







		<action>AutoGatherTrade</action>
		<action>Gather</action>
		<action>NoWork</action>
		<action>CrateGather</action>
		<action>Hunting</action>


这是单位xml语句:


因为部分动作都采用Bip01 Prop2的骨骼,所以最好在xml顶部加上下面的定义,不然可能会出错(如果原本就有就不用添加)
	<definebone>Bip01 Prop2</definebone>


attach部件:

attachment> bowl <component> bowl <assetreference type="GrannyModel"> <file>units\attachments\bowl_villager</file> </assetreference> </component> <anim> Idle <component>bowl</component> </anim> </attachment> <attachment> knife <component> knife <assetreference type="GrannyModel"> <file>units\attachments\knife_villager</file> </assetreference> </component> <anim> Idle <component>knife</component> </anim> </attachment> <attachment> pickaxe <component> pickaxe <assetreference type="GrannyModel"> <file>units\attachments\pickaxe_villager</file> </assetreference> </component> <anim> Idle <component>pickaxe</component> </anim> </attachment> <attachment> axe <component> axe <assetreference type="GrannyModel"> <file>units\attachments\axe_villager</file> </assetreference> </component> <anim> Idle <component>axe</component> </anim> </attachment> <attachment> hoe <component> hoe <assetreference type="GrannyModel"> <file>units\attachments\hoe_villager</file> </assetreference> </component> <anim> Idle <component>hoe</component> </anim> </attachment>

anim语句:

<anim> GatherChop <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_choptreeside</file> <tag type="Attack">0.66</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherWood">0.68</tag> </assetreference> <component>ModelComp</component> <attach a="axe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim> <anim> GatherMine <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gathermine1</file> <tag type="SpecificSoundSet" checkvisible="1" set="GatherCoin">0.86</tag> </assetreference> <component>ModelComp</component> <attach a="pickaxe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim> <anim> GatherFarm <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_gathefruit</file> <weight>50</weight> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.33</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.57</tag> </assetreference> <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gatherfarmsow</file> <weight>50</weight> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.29</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.46</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.62</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.75</tag> </assetreference> <assetreference type="GrannyAnim"> <file>units\asians\shared\villager\villager_farm1</file> <weight>60</weight> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.03</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.25</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.47</tag> </assetreference> <assetreference type="GrannyAnim"> <file>units\asians\shared\villager\villager_farm2</file> <weight>20</weight> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.30</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.41</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.51</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.80</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.91</tag> </assetreference> <assetreference type="GrannyAnim"> <file>units\asians\shared\villager\villager_farm3</file> <weight>20</weight> </assetreference> <component>ModelComp</component> <attach a="bowl" frombone="" tobone="Bip01 Prop2" syncanims="0"/> </anim> <anim> GatherHunt <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gatherhunt1</file> <tag type="SpecificSoundSet" checkvisible="1" set="GatherMeat">0.46</tag> </assetreference> <component>ModelComp</component> <attach a="knife" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim> <anim> GatherBush <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_gathefruit</file> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.33</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.57</tag> </assetreference> <component>ModelComp</component> <attach a="bowl" frombone="" tobone="Bip01 Prop2" syncanims="0"/> </anim> <anim> GatherCrate <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gathercrate1</file> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.56</tag> </assetreference> <component>ModelComp</component> </anim> <anim> GatherFarmWalk <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gatherfarmwalk</file> <tag type="FootstepLeft" footprinttype="HumanLeft">0.33</tag> <tag type="FootstepRight" footprinttype="HumanRight">0.73</tag> </assetreference> <component>ModelComp</component> <attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim> <anim> GatherFarmHoe <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gatherfarmhoe</file> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.14</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.28</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.39</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.65</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.76</tag> <tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.89</tag> </assetreference> <component>ModelComp</component> <attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim> <anim> GatherFarmSow <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gatherfarmsow</file> </assetreference> <component>ModelComp</component> <attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim> <anim> GatherFarmWeed <assetreference type="GrannyAnim"> <file>animation_library\villager\villager_male_gatherfarmweed</file> </assetreference> <component>ModelComp</component> <attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/> </anim>

不要把下面的黑色背景的语句给复制了。

留意一下那个<component>ModelComp</component>,一般单位都是<component>ModelComp</component>,但在村民等单位为<component>Villager</component>,不排除其他单位还有其他的<component>xxxxx</component>,如果有的话自己复制语句后,直接按Ctrl+H进行全部替换(看上去不指点你是不行的了,将<component>Villager</component>全部替换成<component>ModelComp</component>)。另外,<component>xxxxx</component>就是在调用模型上面的<component>语句下面的名称定义的。 乱七八糟的,直接来看例子(这个是殖民地民兵的语句): <component> ModelComp <logic type="LowPoly"> <normal> <assetreference type="GrannyModel"> <file>units\infantry_ranged\colonial_militia\colonial_militia</file> </assetreference> </normal> <lowpoly> <assetreference type="GrannyModel"> <file>units\infantry_ranged\colonial_militia\lp_colonial_militia</file> </assetreference> </lowpoly> </logic> <decal> <effecttype>default</effecttype> <texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture> <selectedtexture>shadows_selections\selection_circle_32x32</selectedtexture> <width>1.0</width> <height>1.0</height> </decal> <attach a="hat" frombone="bone_hat" tobone="HEAD" syncanims="0"/> </component> 红色的ModelComp语句就是component的定义,在anim里面可以使用<component>ModelComp</component>调用这个ModelComp定义的模型、attach等。

protoy语句:



伐木必须加上标签AbstractVillager,但是加上了,士兵就不能有阵型,而且只能单个训练(除非像俄国那样捆绑训练)

		<UnitType>AbstractVillager</UnitType>








		<ProtoAction>
			<Name>AutoGatherTrade</Name>
			<Type>AutoGather</Type>
			<Rate type ='Trade'>0.030000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>Hunting</Name>
			<Rate type ='Herdable'>1.000000</Rate>
			<Rate type ='Huntable'>1.000000</Rate>
			<Rate type ='Tree'>1.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>ChopAttack</Name>
			<Damage>8.000000</Damage>
			<DamageType>Hand</DamageType>
		</ProtoAction>
		<ProtoAction>
			<Name>CrateGather</Name>
			<Rate type ='AbstractResourceCrate'>8.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>Gather</Name>
			<Rate type ='Tree'>0.500000</Rate>
			<Rate type ='Farm'>0.500000</Rate>
			<Rate type ='Plantation'>0.500000</Rate>
			<Rate type ='Herdable'>2.000000</Rate>
			<Rate type ='Huntable'>0.840000</Rate>
			<Rate type ='AbstractMine'>0.600000</Rate>
			<Rate type ='BerryBush'>0.670000</Rate>
			<Rate type ='FirePit'>0.100000</Rate>
			<Rate type ='Mill'>0.670000</Rate>
			<Rate type ='ypRicePaddy' resource ='Food'>0.500000</Rate>
			<Rate type ='ypRicePaddy' resource ='Gold'>0.340000</Rate>
			<Rate type ='ypBerryBuilding'>0.670000</Rate>
			<Rate type ='ypGroveBuilding'>0.500000</Rate>
		</ProtoAction>






















本教程采用殖民地民兵作为例子。

(纯属娱乐,革命后不仅能打,还能采集资源,简直无话可说。)
1.先把殖民地民兵tactics文件以及动画xml都提取出来。
2.在protoy.xml照格式添加上述的protoy语句,另外你应该把殖民地民兵的tactics修改成独有的tactics,不然在原来的tactics上修改会影响到其他单位。
(村民标签是否添加你自己决定)
  protoy.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id ='764' name ='xpColonialMilitia'>
		<DBID>1148</DBID>
		<DisplayNameID>44372</DisplayNameID>
		<EditorNameID>44373</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Ranged</FormationCategory>
		<MaxVelocity>5.0000</MaxVelocity>
		<MaxRunVelocity>7.0000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>
		<AnimFile>units\infantry_ranged\colonial_militia\colonial_militia.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>ui\units\colonial_militia_icon</Icon>
		<PortraitIcon>ui\units\colonial_militia_portrait</PortraitIcon>
		<RolloverTextID>44371</RolloverTextID>
		<ShortRolloverTextID>44370</ShortRolloverTextID>
		<InitialHitpoints>200.0000</InitialHitpoints>
		<MaxHitpoints>200.0000</MaxHitpoints>
		<LOS>18.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<AutoAttackRange>16.0000</AutoAttackRange>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>30.0000</TrainPoints>
		<Bounty>12.0000</Bounty>
		<BuildBounty>12.0000</BuildBounty>
		<Cost resourcetype ='Food'>100.0000</Cost>
		<CarryCapacity resourcetype ='Food'>1.0000</CarryCapacity>
		<CarryCapacity resourcetype ='Gold'>1.0000</CarryCapacity>
		<AllowedAge>2</AllowedAge>
		<Armor type ='Hand' value ='0.3000'></Armor>
		<UnitType>AbstractVillager</UnitType>
		<UnitType>LogicalTypeHealed</UnitType>
		<UnitType>LogicalTypeValidSharpshoot</UnitType>
		<UnitType>LogicalTypeNeededForVictory</UnitType>
		<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
		<UnitType>LogicalTypeLandMilitary</UnitType>
		<UnitType>LogicalTypeScout</UnitType>
		<UnitType>LogicalTypeValidSPCUnitsDeadCondition</UnitType>
		<UnitType>LogicalTypeGarrisonInShips</UnitType>
		<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
		<UnitType>LogicalTypeVillagersAttack</UnitType>
		<UnitType>LogicalTypeHandUnitsAttack</UnitType>
		<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
		<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
		<UnitType>AbstractHeavyInfantry</UnitType>
		<UnitType>AbstractInfantry</UnitType>
		<UnitType>Unit</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>AbstractGunpowderTrooper</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>ConvertsHerds</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>ApplyHandicapTraining</Flag>
		<Flag>CorpseDecays</Flag>
		<Flag>ShowGarrisonButton</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>ObscuredByUnits</Flag>
		<Flag>Tracked</Flag>
		<Command page ='10' column ='1'>Stop</Command>
		<Command page ='10' column ='0'>Garrison</Command>
		<Command page ='10' column ='2'>Delete</Command>
		<Tactics>ColonialMilitia.tactics</Tactics>
		<ProtoAction>
			<Name>AutoGatherTrade</Name>
			<Type>AutoGather</Type>
			<Rate type ='Trade'>0.030000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>Hunting</Name>
			<Rate type ='Herdable'>1.000000</Rate>
			<Rate type ='Huntable'>1.000000</Rate>
			<Rate type ='Tree'>1.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>ChopAttack</Name>
			<Damage>8.000000</Damage>
			<DamageType>Hand</DamageType>
		</ProtoAction>
		<ProtoAction>
			<Name>CrateGather</Name>
			<Rate type ='AbstractResourceCrate'>8.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>Gather</Name>
			<Rate type ='Tree'>0.500000</Rate>
			<Rate type ='Farm'>0.500000</Rate>
			<Rate type ='Plantation'>0.500000</Rate>
			<Rate type ='Herdable'>2.000000</Rate>
			<Rate type ='Huntable'>0.840000</Rate>
			<Rate type ='AbstractMine'>0.600000</Rate>
			<Rate type ='BerryBush'>0.670000</Rate>
			<Rate type ='FirePit'>0.100000</Rate>
			<Rate type ='Mill'>0.670000</Rate>
			<Rate type ='ypRicePaddy' resource ='Food'>0.500000</Rate>
			<Rate type ='ypRicePaddy' resource ='Gold'>0.340000</Rate>
			<Rate type ='ypBerryBuilding'>0.670000</Rate>
			<Rate type ='ypGroveBuilding'>0.500000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>20.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>12.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendRangedAttack</Name>
			<Damage>24.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>12.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerHandAttack</Name>
			<Damage>12.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerRangedAttack</Name>
			<Damage>24.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyHandAttack</Name>
			<Damage>12.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>24.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
	</Unit>





3.将提取好的殖民地民兵的tactics改名成你新定义的tactics;按照格式添加上述tactics语句
  ColonialMilitia.tactics - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->

<tactics>
	<action>
		<name stringid="69149">AutoGatherTrade</name>
		<type>AutoGather</type>
		<donotautogatherunlessgathering>1</donotautogatherunlessgathering>
		<active>0</active>
		<persistent>1</persistent>
	</action>
	<action>
		<name stringid="42178">Gather</name>
		<type>Gather</type>
		<maxrange>0.5</maxrange>
		<rate type="Plantation">1.0</rate>
		<rate type="AbstractMine">1.0</rate>
		<rate type="SPCSpanishShipRuins">1.0</rate>
		<rate type="Farm">1.0</rate>
		<rate type="Mill">1.0</rate>
		<rate type="FirePit">1.0</rate>
		<rate type="BerryBush">1.0</rate>
		<rate type="Tree">1.0</rate>
		<rate type="Herdable">1.0</rate>
		<rate type="Huntable">1.0</rate>
		<rate type="ypBerryBuilding">1.0</rate>
		<rate type="ypGroveBuilding">1.0</rate>
	</action>
	<action>
		<name stringid="69183">NoWork</name>
		<type>NoWork</type>
		<maxrange>10</maxrange>
		<rate type="Herdable">1.0</rate>
		<rate type="Huntable">1.0</rate>
		<typedmaxrange type="Herdable">0</typedmaxrange>
		<typedmaxrange type="AbstractNuggetWater">0</typedmaxrange>
		<typedmaxrange type="Huntable">10</typedmaxrange>
	</action>
	<action>
		<name stringid="69150">CrateGather</name>
		<anim>GatherCrate</anim>
		<type>Gather</type>
		<maxrange>0.5</maxrange>
		<rate type="AbstractResourceCrate">1.0</rate>
	</action>
	<action>
		<name stringid="69151">Hunting</name>
		<type>Hunting</type>
		<maxrange>10</maxrange>
		<rate type="Herdable">1.0</rate>
		<rate type="Huntable">1.0</rate>
		<rate type="Tree">1.0</rate>
		<typedmaxrange type="Herdable">0</typedmaxrange>
		<typedmaxrange type="Huntable">10</typedmaxrange>
		<typedmaxrange type="Tree">0</typedmaxrange>
	</action>
	<action>
		<name stringid="42136">ChopAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<anim>GatherChop</anim>
		<maxrange>2</maxrange>
		<rate type="Tree">1.0 </rate>
	</action>
	<action>
		<name stringid="38127">VolleyRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<reloadanim>Volley_standing_reload</reloadanim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<maxspread>5</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>12</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<projectile>InvisibleProjectile</projectile>
		<impacteffect>effects\impacts\gun</impacteffect>
		<minrange>2</minrange>
		<rate type="Unit">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="38130">VolleyHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
	</action>
	<action>
		<name stringid="38136">DefendRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<reloadanim>Volley_standing_reload</reloadanim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<maxspread>5</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>12</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<projectile>InvisibleProjectile</projectile>
		<impacteffect>effects\impacts\gun</impacteffect>
		<minrange>2</minrange>
		<rate type="Unit">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="38137">DefendHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
	</action>
	<action>
		<name stringid="38129">StaggerRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<reloadanim>Volley_standing_reload</reloadanim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<maxspread>5</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>12</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<projectile>InvisibleProjectile</projectile>
		<impacteffect>effects\impacts\gun</impacteffect>
		<minrange>2</minrange>
		<rate type="Unit">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="38132">StaggerHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
	</action>
	<action>
		<name stringid="38135">MeleeHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
	</action>
	<action>
		<name stringid="38118">BuildingAttack</name>
		<type>Attack</type>
		<rangedlogic>1</rangedlogic>
		<maxrange>6</maxrange>
		<rate type="LogicalTypeShipsAndBuildings">1.0 </rate>
		<attackaction>1</attackaction>
		<speedboost>1</speedboost>
		<anim>Raze_attack</anim>
		<idleanim>Raze_idle</idleanim>
		<impacteffect>effects\impacts\torch</impacteffect>
		<projectile>TorchProjectile</projectile>
	</action>
	<action>
		<name stringid="69147">Build</name>
		<type>Build</type>
		<anim>Build</anim>
		<active>0</active>
		<maxrange>0.2</maxrange>
		<rate type="WarHut">2.0</rate>
		<rate type="Corral">2.0</rate>
		<rate type="Teepee">2.0</rate>
	</action>
	<tactic>
		Volley
		<action priority="90">VolleyRangedAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">VolleyHandAttack</action>
		<action priority="100">ChopAttack</action>
		<action>Gather</action>
		<action>NoWork</action>
		<action>CrateGather</action>
		<action>Hunting</action>
		<action>Build</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>1</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Volley_standing_idle</idleanim>
		<boredanim>Volley_standing_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Volley_walk</walkanim>
		<joganim>Volley_jog</joganim>
		<runanim>Volley_run</runanim>
	</tactic>
	<tactic>
		Defend
		<action priority="90">DefendRangedAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">DefendHandAttack</action>
		<action priority="100">ChopAttack</action>
		<action>Gather</action>
		<action>NoWork</action>
		<action>CrateGather</action>
		<action>Hunting</action>
		<action>Build</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Defend_idle</idleanim>
		<boredanim>Defend_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Cover_walk</walkanim>
		<joganim>Cover_jog</joganim>
		<runanim>Cover_run</runanim>
	</tactic>
	<tactic>
		Stagger
		<action priority="100">StaggerRangedAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">StaggerHandAttack</action>
		<action priority="90">ChopAttack</action>
		<action>Gather</action>
		<action>NoWork</action>
		<action>CrateGather</action>
		<action>Hunting</action>
		<action>Build</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Cover_ranged_idle</idleanim>
		<boredanim>Cover_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Cover_walk</walkanim>
		<joganim>Cover_jog</joganim>
		<runanim>Cover_run</runanim>
	</tactic>
	<tactic>
		Melee
		<action priority="100">BuildingAttack</action>
		<action priority="25">MeleeHandAttack</action>
		<action priority="90">ChopAttack</action>
		<action>Gather</action>
		<action>NoWork</action>
		<action>CrateGather</action>
		<action>Hunting</action>
		<action>Build</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Charge_idle</idleanim>
		<boredanim>Charge_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Charge_walk</walkanim>
		<joganim>Charge_jog</joganim>
		<runanim>Charge_run</runanim>
	</tactic>
</tactics>







4.在殖民地民兵的动画xml添加attach、anim语句:
  colonial_militia.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->

<animfile>
	<definebone>bone_hat</definebone>
	<definebone>bone_gun</definebone>
	<definebone>bip01 Prop1</definebone>
	<definebone>Bip01 Prop2</definebone>
		<attachment>
			bowl
			<component>
				bowl
				<assetreference type="GrannyModel">
					<file>units\attachments\bowl_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>bowl</component>
			</anim>
		</attachment>
		<attachment>
			knife
			<component>
				knife
				<assetreference type="GrannyModel">
					<file>units\attachments\knife_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>knife</component>
			</anim>
		</attachment>
		<attachment>
			pickaxe
			<component>
				pickaxe
				<assetreference type="GrannyModel">
					<file>units\attachments\pickaxe_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>pickaxe</component>
			</anim>
		</attachment>
		<attachment>
			axe
			<component>
				axe
				<assetreference type="GrannyModel">
					<file>units\attachments\axe_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>axe</component>
			</anim>
		</attachment>
		<attachment>
			hoe
			<component>
				hoe
				<assetreference type="GrannyModel">
					<file>units\attachments\hoe_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>hoe</component>
			</anim>
		</attachment>
	<attachment>
		hat
		<component>
			hat
			<assetreference type="GrannyModel">
				<file>units\infantry_ranged\colonial_militia\colonial_militia_hat</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>hat</component>
		</anim>
	</attachment>
	<attachment>
		torch
		<include>effects\projectiles\torch.xml</include>
	</attachment>
	<attachment>
		gun
		<component>
			gun
			<assetreference type="GrannyModel">
				<file>units\infantry_ranged\colonial_militia\colonial_militia_gun</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>gun</component>
		</anim>
	</attachment>
	<component>
		ModelComp
		<logic type="LowPoly">
			<normal>
				<assetreference type="GrannyModel">
					<file>units\infantry_ranged\colonial_militia\colonial_militia</file>
				</assetreference>
			</normal>
			<lowpoly>
				<assetreference type="GrannyModel">
					<file>units\infantry_ranged\colonial_militia\lp_colonial_militia</file>
				</assetreference>
			</lowpoly>
		</logic>
		<decal>
			<effecttype>default</effecttype>
			<texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture>
			<selectedtexture>shadows_selections\selection_circle_32x32</selectedtexture>
			<width>1.0</width>
			<height>1.0</height>
		</decal>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="hat" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
	</component>
	<anim>
		Death_by_melee
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_B</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.18</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_C</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.72</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Death_by_range
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_B</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.19</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_C</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.72</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Death_by_havoc
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_death</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathD</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Death_havoc_flail
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_flail</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cheer
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_B</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_D</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_E</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Recoil
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_E</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_G</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		HC_openDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorOpen</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		HC_closeDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorClose</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Raze_Idle
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throw_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="torch" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
	</anim>
	<anim>
		Raze_Attack
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throwA</file>
			<tag type="Attack">0.61</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="TorchSwing">0.45</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throwB</file>
			<tag type="Attack">0.56</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="TorchSwing">0.44</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="torch" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
	</anim>
	<anim>
		Cover_ranged_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_idle</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_bored</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.28</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.29</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.76</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_run</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.68</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\idle_rifleman_A</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_fire</file>
			<tag type="Attack">0.37</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="SettlerGunShot">0.36</tag>
			<tag type="Particles" particlename="musketshot">0.36</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_reload
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_reload</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_rifleman_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_rifleman_B</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_rifleman_C</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\walk_crossbow_upper</file>
			<file>animation_library\shared\walk_generic_lower</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.14</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.61</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\jog_rifleman_A</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.04</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.54</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\run_rifleman_A</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.13</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.60</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Defend_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_idle</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Defend_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_boredA</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Charge_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleB</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Charge_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_bored</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Charge_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\cacadore_charge_attackA</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.40</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\cacadore_charge_attackB</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.40</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackA</file>
			<tag type="Attack">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackB</file>
			<tag type="Attack">0.71</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackC</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.40</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Charge_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.65</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.06</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Charge_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.65</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.11</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Charge_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_runA</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.66</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
		<anim>
			GatherChop
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_choptreeside</file>
				<tag type="Attack">0.66</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherWood">0.68</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="axe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherMine
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gathermine1</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherCoin">0.86</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="pickaxe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarm
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_gathefruit</file>
				<weight>50</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.33</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.57</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmsow</file>
				<weight>50</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.29</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.46</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.62</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.75</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>units\asians\shared\villager\villager_farm1</file>
				<weight>60</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.03</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.25</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.47</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>units\asians\shared\villager\villager_farm2</file>
				<weight>20</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.30</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.41</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.51</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.80</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.91</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>units\asians\shared\villager\villager_farm3</file>
				<weight>20</weight>
			</assetreference>
			<component>ModelComp</component>
			<attach a="bowl" frombone="" tobone="Bip01 Prop2" syncanims="0"/>
		</anim>
		<anim>
			GatherHunt
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherhunt1</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherMeat">0.46</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="knife" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherBush
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_gathefruit</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.33</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.57</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="bowl" frombone="" tobone="Bip01 Prop2" syncanims="0"/>
		</anim>
		<anim>
			GatherCrate
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gathercrate1</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.56</tag>
			</assetreference>
			<component>ModelComp</component>
		</anim>
		<anim>
			GatherFarmWalk
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmwalk</file>
				<tag type="FootstepLeft" footprinttype="HumanLeft">0.33</tag>
				<tag type="FootstepRight" footprinttype="HumanRight">0.73</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarmHoe
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmhoe</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.14</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.28</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.39</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.65</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.76</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.89</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarmSow
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmsow</file>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarmWeed
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmweed</file>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
</animfile>



截图中的民兵在工作时带了把枪,在前面的教程已经说过了,这是因为把枪的部件附加在了模型下面,会导致所有动作都会带着枪,解决办法是把模型下面的枪部件删除,然后原有的每一个动作都加上枪部件。








最终修改如下
  colonial_militia.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->

<animfile>
	<definebone>bone_hat</definebone>
	<definebone>bone_gun</definebone>
	<definebone>bip01 Prop1</definebone>
	<definebone>Bip01 Prop2</definebone>
		<attachment>
			bowl
			<component>
				bowl
				<assetreference type="GrannyModel">
					<file>units\attachments\bowl_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>bowl</component>
			</anim>
		</attachment>
		<attachment>
			knife
			<component>
				knife
				<assetreference type="GrannyModel">
					<file>units\attachments\knife_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>knife</component>
			</anim>
		</attachment>
		<attachment>
			pickaxe
			<component>
				pickaxe
				<assetreference type="GrannyModel">
					<file>units\attachments\pickaxe_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>pickaxe</component>
			</anim>
		</attachment>
		<attachment>
			axe
			<component>
				axe
				<assetreference type="GrannyModel">
					<file>units\attachments\axe_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>axe</component>
			</anim>
		</attachment>
		<attachment>
			hoe
			<component>
				hoe
				<assetreference type="GrannyModel">
					<file>units\attachments\hoe_villager</file>
				</assetreference>
			</component>
			<anim>
				Idle
				<component>hoe</component>
			</anim>
		</attachment>
	<attachment>
		hat
		<component>
			hat
			<assetreference type="GrannyModel">
				<file>units\infantry_ranged\colonial_militia\colonial_militia_hat</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>hat</component>
		</anim>
	</attachment>
	<attachment>
		torch
		<include>effects\projectiles\torch.xml</include>
	</attachment>
	<attachment>
		gun
		<component>
			gun
			<assetreference type="GrannyModel">
				<file>units\infantry_ranged\colonial_militia\colonial_militia_gun</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>gun</component>
		</anim>
	</attachment>
	<component>
		ModelComp
		<logic type="LowPoly">
			<normal>
				<assetreference type="GrannyModel">
					<file>units\infantry_ranged\colonial_militia\colonial_militia</file>
				</assetreference>
			</normal>
			<lowpoly>
				<assetreference type="GrannyModel">
					<file>units\infantry_ranged\colonial_militia\lp_colonial_militia</file>
				</assetreference>
			</lowpoly>
		</logic>
		<decal>
			<effecttype>default</effecttype>
			<texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture>
			<selectedtexture>shadows_selections\selection_circle_32x32</selectedtexture>
			<width>1.0</width>
			<height>1.0</height>
		</decal>
<!--		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>	-->
		<attach a="hat" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
	</component>
		<anim>
			GatherChop
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_choptreeside</file>
				<tag type="Attack">0.66</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherWood">0.68</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="axe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherMine
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gathermine1</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherCoin">0.86</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="pickaxe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarm
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_gathefruit</file>
				<weight>50</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.33</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.57</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmsow</file>
				<weight>50</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.29</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.46</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.62</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.75</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>units\asians\shared\villager\villager_farm1</file>
				<weight>60</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.03</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.25</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.47</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>units\asians\shared\villager\villager_farm2</file>
				<weight>20</weight>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.30</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.41</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.51</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.80</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.91</tag>
			</assetreference>
			<assetreference type="GrannyAnim">
				<file>units\asians\shared\villager\villager_farm3</file>
				<weight>20</weight>
			</assetreference>
			<component>ModelComp</component>
			<attach a="bowl" frombone="" tobone="Bip01 Prop2" syncanims="0"/>
		</anim>
		<anim>
			GatherHunt
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherhunt1</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherMeat">0.46</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="knife" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherBush
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_gathefruit</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.33</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.57</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="bowl" frombone="" tobone="Bip01 Prop2" syncanims="0"/>
		</anim>
		<anim>
			GatherCrate
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gathercrate1</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.56</tag>
			</assetreference>
			<component>ModelComp</component>
		</anim>
		<anim>
			GatherFarmWalk
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmwalk</file>
				<tag type="FootstepLeft" footprinttype="HumanLeft">0.33</tag>
				<tag type="FootstepRight" footprinttype="HumanRight">0.73</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarmHoe
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmhoe</file>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.14</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.28</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.39</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.65</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.76</tag>
				<tag type="SpecificSoundSet" checkvisible="1" set="GatherFarm">0.89</tag>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarmSow
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmsow</file>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
		<anim>
			GatherFarmWeed
			<assetreference type="GrannyAnim">
				<file>animation_library\villager\villager_male_gatherfarmweed</file>
			</assetreference>
			<component>ModelComp</component>
			<attach a="hoe" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		</anim>
	<anim>
		Death_by_melee
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_B</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.18</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_C</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.72</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Death_by_range
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_B</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.19</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_C</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.72</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Death_by_havoc
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_death</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathD</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Death_havoc_flail
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_flail</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Cheer
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_B</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_D</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_E</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Recoil
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_E</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_G</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		HC_openDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorOpen</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		HC_closeDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorClose</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Raze_Idle
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throw_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="torch" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Raze_Attack
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throwA</file>
			<tag type="Attack">0.61</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="TorchSwing">0.45</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throwB</file>
			<tag type="Attack">0.56</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="TorchSwing">0.44</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="torch" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Cover_ranged_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Cover_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_bored</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Cover_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.28</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Cover_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.29</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.76</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Cover_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_run</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.68</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Volley_standing_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\idle_rifleman_A</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Volley_standing_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_fire</file>
			<tag type="Attack">0.37</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="SettlerGunShot">0.36</tag>
			<tag type="Particles" particlename="musketshot">0.36</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Volley_standing_reload
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_reload</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Volley_standing_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_rifleman_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_rifleman_B</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_rifleman_C</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/> 
	</anim>
	<anim>
		Volley_walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\walk_crossbow_upper</file>
			<file>animation_library\shared\walk_generic_lower</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.14</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.61</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Volley_jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\jog_rifleman_A</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.04</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.54</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Volley_run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\run_rifleman_A</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.13</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.60</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Defend_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Defend_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_boredA</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleB</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_bored</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\cacadore_charge_attackA</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.40</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\cacadore_charge_attackB</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.40</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackA</file>
			<tag type="Attack">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackB</file>
			<tag type="Attack">0.71</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackC</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.40</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.65</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.06</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.65</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.11</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_runA</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.66</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
</animfile>





最终效果:




不加上村民标签: