让单位可以采集宝藏




这个教程是给普通单位添加探险家采集宝藏的动作,使其能捡宝藏。与以往教程不同,这次不只是让你直接复制语句了,而是告诉你怎样复制游戏原有的内容。
例如我要给火枪手添加采集宝藏,那么有有哪些已有的单位能采集宝藏?探险家、村民都可以。那我就提取探险家的动画xml与tactics,然后复制里面语句到火枪手里面。


1. 先把火枪手的tactics文件以及动画xml提取出来。(探险家的就随意吧,我就不提取了,我直接在AOE3ED里面复制。)
2.在tactics寻找探险家采集宝藏的定义,很明显第一个就是了,然后将语句复制进火枪手的tactics。我是怎么知道是第一个?作为大佬就是这么6的,从看英文来看是"发现",但是我就是觉得这个是捡宝藏。另外,Discover旁边不是有个69148,你自己去stringtabley.xml搜索一下。



(为了不影响其他单位,所以我在protoy.xml将火枪手的tactics修改成Musketeer.tactics了。)
  Musketeer.tactics - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->
<tactics>
<action>
<name stringid="69148">Discover</name>
<type>Discover</type>
<anim>Pickup</anim>
<maxrange>0.2</maxrange>
<rate type="AbstractNuggetLand">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>
<targetspeedboost>1</targetspeedboost>
</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>
<targetspeedboost>1</targetspeedboost>
</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>
<targetspeedboost>1</targetspeedboost>
</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>
<targetspeedboost>1</targetspeedboost>
</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="Barracks">2.0</rate>
<rate type="Stable">2.0</rate>
<rate type="ArtilleryDepot">2.0</rate>
<rate type="Warhut">2.0</rate>
<rate type="Corral">2.0</rate>
<rate type="FortFrontier">2.0</rate>
<rate type="ypBarracksIndian">2.0</rate>
<rate type="ypCaravanserai">2.0</rate>
<rate type="ypCastle">2.0</rate>
</action>
<tactic>
Volley
<action priority="100">VolleyRangedAttack</action>
<action priority="75">BuildingAttack</action>
<action priority="25">VolleyHandAttack</action>
<action>Build</action>
<action>Discover</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="100">DefendRangedAttack</action>
<action priority="75">BuildingAttack</action>
<action priority="25">DefendHandAttack</action>
<action>Build</action>
<action>Discover</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>Build</action>
<action>Discover</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="75">MeleeHandAttack</action>
<action>Build</action>
<action>Discover</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>

要记得在所有tactic那里添加<action>Discover</action>开启捡宝藏的设定。




3. 根据tactics所写的Pickup到探险家的动画xml寻找这个动画。然后复制,按照格式粘贴到火枪手的动画xml。



传送门
  musketeer.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->
<animfile>
<definebone>bone_hat</definebone>
<definebone>Bip01_AttachRt</definebone>
<definebone>Bip01_AttachLt</definebone>
<definebone>bone_sword</definebone>
<definebone>bone_gun</definebone>
<definebone>Bip01 Prop1</definebone>
<definebone>Bip01 Prop2</definebone>
<attachment>
gun
<include>units\infantry_ranged\musketeer\musketeer_guns.xml</include>
</attachment>
<attachment>
hats
<include>units\infantry_ranged\musketeer\musketeer_hats.xml</include>
</attachment>
<attachment>
sword
<include>units\attachments\sword.xml</include>
</attachment>
<attachment>
torch
<include>effects\projectiles\torch.xml</include>
</attachment>
<component>
ModelComp
<logic type="Tech">
<none>
<logic type="LowPoly">
<normal>
<assetreference type="GrannyModel">
<file>units\infantry_ranged\musketeer\musketeer_2age</file>
</assetreference>
<attach a="hats" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
</normal>
<lowpoly>
<assetreference type="GrannyModel">
<file>units\infantry_ranged\musketeer\lp_musketeer_2age</file>
</assetreference>
</lowpoly>
</logic>
</none>
<veteranmusketeers>
<logic type="LowPoly">
<normal>
<assetreference type="GrannyModel">
<file>units\infantry_ranged\musketeer\musketeer_3age</file>
</assetreference>
<attach a="hats" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
</normal>
<lowpoly>
<assetreference type="GrannyModel">
<file>units\infantry_ranged\musketeer\lp_musketeer_3age</file>
</assetreference>
</lowpoly>
</logic>
</veteranmusketeers>
<guardmusketeers>
<logic type="LowPoly">
<normal>
<assetreference type="GrannyModel">
<file>units\infantry_ranged\musketeer\musketeer_4age</file>
</assetreference>
<attach a="hats" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
</normal>
<lowpoly>
<assetreference type="GrannyModel">
<file>units\infantry_ranged\musketeer\lp_musketeer_4age</file>
</assetreference>
</lowpoly>
</logic>
</guardmusketeers>
</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>
</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.51</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.73</tag>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
Death_by_range
<assetreference type="GrannyAnim">
<file>animation_library\shared\death_by_rangeA</file>
<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.50</tag>
</assetreference>
<assetreference type="GrannyAnim">
<file>animation_library\shared\death_by_rangeB</file>
<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.55</tag>
</assetreference>
<assetreference type="GrannyAnim">
<file>animation_library\shared\death_by_rangeC</file>
<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.45</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>
Death_havoc_spin
<assetreference type="GrannyAnim">
<file>animation_library\range\havoc_spin</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>
OpenDoor
<assetreference type="GrannyAnim">
<file>animation_library\shared\doorOpen</file>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
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.52</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\volley\volley_standing_idle</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.48</tag>
<tag type="SpecificSoundSet" checkvisible="1" set="MusketShot">0.48</tag>
<tag type="Particles" particlename="musketshot">0.48</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\volley\volley_standing_boredA</file>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
Volley_walk
<assetreference type="GrannyAnim">
<file>animation_library\range\march_rifleman</file>
<tag type="FootstepLeft" footprinttype="HumanLeft">0.62</tag>
<tag type="FootstepRight" footprinttype="HumanRight">0.08</tag>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
Volley_jog
<assetreference type="GrannyAnim">
<file>animation_library\range\march_rifleman_run</file>
<tag type="FootstepLeft" footprinttype="HumanLeft">0.58</tag>
<tag type="FootstepRight" footprinttype="HumanRight">0.11</tag>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
Volley_run
<assetreference type="GrannyAnim">
<file>animation_library\range\march_rifleman_run</file>
<tag type="FootstepLeft" footprinttype="HumanLeft">0.58</tag>
<tag type="FootstepRight" footprinttype="HumanRight">0.11</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.53</tag>
<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.42</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.38</tag>
</assetreference>
<assetreference type="GrannyAnim">
<file>animation_library\range\charge\charge_attackA</file>
<tag type="Attack">0.53</tag>
</assetreference>
<assetreference type="GrannyAnim">
<file>animation_library\range\charge\charge_attackB</file>
<tag type="Attack">0.69</tag>
</assetreference>
<assetreference type="GrannyAnim">
<file>animation_library\range\charge\charge_attackC</file>
<tag type="Attack">0.50</tag>
<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.42</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>
IGC_Pointing
<assetreference type="GrannyAnim">
<file>animation_library\range\pointing_rifleman_A</file>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
NuggetPirate1_Idle
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_diga</file>
<weight>90</weight>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_dig_boreda</file>
<weight>10</weight>
</assetreference>
<component>ModelComp</component>
<attach a="shovel" frombone="Bip01 Prop2" tobone="bip01 Prop2" syncanims="0"/>
</anim>
<anim>
NuggetPirate2_Idle
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_idleA</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_idleB</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_idleC</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_idleD</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_idleE</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_idleF</file>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
NuggetPirate3_Idle
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate3_idleA</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate3_idleb</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate3_idlec</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate3_idled</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate3_idleE</file>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
NuggetPirate1_Exit
<assetreference type="GrannyAnim">
<file>nuggets\pirates\pirate_draw_gun</file>
</assetreference>
<component>ModelComp</component>
<attach a="shovel" frombone="Bip01 Prop2" tobone="bip01 Prop2" syncanims="0"/>
</anim>
<anim>
NuggetPirate2_Exit
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_exit</file>
</assetreference>
<component>ModelComp</component>
</anim>
<anim>
kidnap_outlawA_idle
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleA</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleB</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleC</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleD</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleE</file>
</assetreference>
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleF</file>
</assetreference>
<component>ModelComp</component>
<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
</anim>
<anim>
kidnap_outlawA_exit
<assetreference type="GrannyAnim">
<file>nuggets\outlaw_kidnap\kidnap_outlawA_exit</file>
</assetreference>
<component>ModelComp</component>
<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
</anim> <anim>
Pickup
<assetreference type="GrannyAnim">
<file>animation_library\explorer\pickup_explorer_A</file>
<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.33</tag>
</assetreference>
<component>ModelComp</component>
<attach a="muskets" frombone="Bip01_AttachRt" tobone="bip01 Prop1" syncanims="0"/>
</anim>
</animfile>








PS:protoy.xml的单位类型改成air后将无法采集宝藏。