更换贴图 I

旧技术更换贴图方法为使用replacetexture语句。 打开单位的anim xml文件,找到gr2模型路径,在其下面添加replacetexture语句,一般情况下,<assetreference type="GrannyModel">的<file>...</file>就是gr2模型的路径。
replacetexture语句:

						 <replacetexture>
							<from>原\贴\图\路\径</from>
							<to>新\贴\图\路\径</to>
						 </replacetexture>

你可以参考格林机枪,格林机枪在葡萄牙改良后Rabauld(皇家管炮)这个升级科技后,格林机枪的枪管会变成金色,就是用replacetexture更改贴图了。

如果用科技更换外观还需要在techtreey.xml那个科技添加下列语句,才能改变外观。
			<Effect type ='Data' amount ='0.00' subtype ='UpdateVisual' unittype ='要改变外观的单位调用名' relativity='Absolute'>
				<Target type ='Player'></Target></Effect>








接下来制作一个像欧洲哨所的升级科技,并且改变塔楼外观的修改:如果只是想修改默认的外观,自己像最上面的截图那样直接把replacetexture语句用在none那里就行了...


先把升级科技制作出来吧

塔楼升级科技:
红色语句很重要,没有红色语句不会改变外观。
techtreey.xml - 记事本
	<Tech name ='ypFrontierOutpost' type ='Normal'>
		<DBID>1154</DBID>
		<DisplayNameID>99001</DisplayNameID>
		<Cost resourcetype ='Wood'>400.0000</Cost>
		<Cost resourcetype ='Gold'>200.0000</Cost>
		<ResearchPoints>60.0000</ResearchPoints>
		<Status>UNOBTAINABLE</Status>
		<Icon>ui\techs\frontier_outpost\frontier_outpost</Icon>
		<RolloverTextID>99003</RolloverTextID>
		<Flag>CountsTowardMilitaryScore</Flag>
		<Prereqs>
			<TechStatus status ='Active'>Fortressize</TechStatus></Prereqs>
		<Effects>
			<Effect type ='SetName' proto ='YPOutpostAsian' culture ='none' newName ='29872'></Effect>
			<Effect type ='Data' action ='RangedAttack' amount ='1.50' subtype ='Damage' relativity ='BasePercent'>
				<Target type ='ProtoUnit'>YPOutpostAsian</Target></Effect>
			<Effect type ='Data' amount ='0.00' subtype ='UpdateVisual' unittype ='YPOutpostAsian' relativity ='Absolute'>
				<Target type ='Player'></Target></Effect>
		</Effects>
	</Tech>
	<Tech name ='ypFortifiedOutpost' type ='Normal'>
		<DBID>1155</DBID>
		<DisplayNameID>99002</DisplayNameID>
		<Cost resourcetype ='Wood'>800.0000</Cost>
		<Cost resourcetype ='Gold'>400.0000</Cost>
		<ResearchPoints>60.0000</ResearchPoints>
		<Status>UNOBTAINABLE</Status>
		<Icon>ui\techs\fortified_outpost\fortified_outpost</Icon>
		<RolloverTextID>99004</RolloverTextID>
		<Flag>CountsTowardMilitaryScore</Flag>
		<Prereqs>
			<TechStatus status ='Active'>ypFrontierOutpost</TechStatus>
			<TechStatus status ='Active'>Industrialize</TechStatus>
		</Prereqs>
		<Effects>
			<Effect type ='Data' amount ='1.50' subtype ='Hitpoints' relativity ='BasePercent'>
				<Target type ='ProtoUnit'>YPOutpostAsian</Target></Effect>
			<Effect type ='SetName' proto ='YPOutpostAsian' culture ='none' newName ='29873'></Effect>
			<Effect type ='Data' action ='CannonAttack' amount ='1.00' subtype ='ActionEnable' relativity ='Absolute'>
				<Target type ='ProtoUnit'>YPOutpostAsian</Target></Effect>
			<Effect type ='Data' action ='AntiShipAttack' amount ='2.00' subtype ='Damage' relativity ='BasePercent'>
				<Target type ='ProtoUnit'>YPOutpostAsian</Target></Effect>
			<Effect type ='Data' amount ='0.00' subtype ='UpdateVisual' unittype ='YPOutpostAsian' relativity ='Absolute'>
				<Target type ='Player'></Target></Effect>
		</Effects>
	</Tech>



中国起始科技(启用上面两个新增的科技):
techtreey.xml - 记事本
	<Tech name ='YPAge0Chinese' type ='Normal'>
		<DBID>3529</DBID>
		<Status>UNOBTAINABLE</Status>
		<Flag>Shadow</Flag>
		<Effects>
			<Effect type ='TechStatus' status ='obtainable'>ypFrontierOutpost</Effect>
			<Effect type ='TechStatus' status ='obtainable'>ypFortifiedOutpost</Effect>
			<Effect type ='TechStatus' status ='active'>YPAAAsianStartingTechs</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseSpecialTechs</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseTechs</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseConsulate</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseMonks</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseUnits</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseBuildings</Effect>
			<Effect type ='TechStatus' status ='active'>YPAge0ChineseWonders</Effect>
		</Effects>
	</Tech>




塔楼protoy(增加那两个科技的按钮,还有从哨所那里将炮轰攻击的语句复制过来,至于tactics就不用修改了,combatBuilding.tactics原本就有定义炮轰攻击):
protoy.xml - 记事本
	<Unit id ='934' name ='YPOutpostAsian'>
		<DBID>1382</DBID>
		<DisplayNameID>60392</DisplayNameID>
		<EditorNameID>60393</EditorNameID>
		<ObstructionRadiusX>2.0000</ObstructionRadiusX>
		<ObstructionRadiusZ>2.0000</ObstructionRadiusZ>
		<MaxVelocity>0.0000</MaxVelocity>
		<MovementType>land</MovementType>
		<AnimFile>buildings\asian_civs\spc\japanese_outpost\spc_japanese_outpost.xml</AnimFile>
		<DeadReplacement>BuildingRubble2x2</DeadReplacement>
		<DeadReplacementLifespan>15</DeadReplacementLifespan>
		<ImpactType>Wood</ImpactType>
		<PhysicsInfo>house</PhysicsInfo>
		<PlacementFile>buildingsmall.xml</PlacementFile>
		<Icon>buildings\asian_civs\spc\japanese_outpost\asian_outpost_icon</Icon>
		<PortraitIcon>buildings\asian_civs\spc\japanese_outpost\asian_outpost_icon_portrait</PortraitIcon>
		<RolloverTextID>60391</RolloverTextID>
		<ShortRolloverTextID>60390</ShortRolloverTextID>
		<InitialHitpoints>2000.0000</InitialHitpoints>
		<MaxHitpoints>2000.0000</MaxHitpoints>
		<LOS>32.0000</LOS>
		<ProjectileProtoUnit>Arrow</ProjectileProtoUnit>
		<UnitAIType>RangedCombative</UnitAIType>
		<BuildPoints>50.0000</BuildPoints>
		<BuildLimit>7</BuildLimit>
		<Bounty>70.0000</Bounty>
		<BuildBounty>35.0000</BuildBounty>
		<Cost resourcetype ='Wood'>250.0000</Cost>
		<BuildingWorkRate>1.0000</BuildingWorkRate>
		<MaxContained>20</MaxContained>
		<AllowedAge>0</AllowedAge>
		<Armor type ='Siege' value ='0.0000'></Armor>
		<BuilderLimit>4</BuilderLimit>
		<UnitType>LogicalTypeValidSabotage</UnitType>
		<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
		<UnitType>LogicalTypeBuildingsNotWalls</UnitType>
		<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
		<UnitType>LogicalTypeVillagersAttack</UnitType>
		<UnitType>LogicalTypeHandUnitsAttack</UnitType>
		<UnitType>LogicalTypeShipsAndBuildings</UnitType>
		<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
		<UnitType>LogicalTypeBuildingsNotWallsOrGroves</UnitType>
		<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
		<UnitType>MilitaryBuilding</UnitType>
		<UnitType>BuildingClass</UnitType>
		<UnitType>Building</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>AbstractFort</UnitType>
		<UnitType>ConvertsHerds</UnitType>
		<Tech row ='0' page ='1' column ='1'>ypFrontierOutpost</Tech>
		<Tech row ='0' page ='1' column ='1'>ypFortifiedOutpost</Tech>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>StartsAtFullEfficiency</Flag>
		<Flag>Immoveable</Flag>
		<Flag>NoBloodOnDeath</Flag>
		<Flag>ObscuresUnits</Flag>
		<Flag>NonAutoFormedUnit</Flag>
		<Flag>Doppled</Flag>
		<Flag>SelectWithObstruction</Flag>
		<Flag>PaintTextureWhenPlacing</Flag>
		<Flag>FlattenGround</Flag>
		<Flag>HasGatherPoint</Flag>
		<Flag>AllowAutoGarrison</Flag>
		<Flag>Tracked</Flag>
		<Contain>xpMedicineManAztec</Contain>
		<Contain>Priest</Contain>
		<Contain>Surgeon</Contain>
		<Contain>xpMedicineMan</Contain>
		<Contain>Imam</Contain>
		<Contain>NatMedicineMan</Contain>
		<Contain>Missionary</Contain>
		<Contain>AbstractVillager</Contain>
		<Command page ='1' column ='1'>SetUnitAsHomeCityGatherPoint</Command>
		<Command page ='10' column ='3'>Delete</Command>
		<Command page ='10' column ='2'>Eject</Command>
		<Command page ='10' column ='1'>SetGatherPointEconomy</Command>
		<Command page ='10' column ='0'>SetGatherPointMilitary</Command>
		<Command>CancelNativeDance</Command>
		<Command>StartNativeDance</Command>
		<Tactics>combatBuilding.tactics</Tactics>
		<ProtoAction>
			<Name>AntiShipAttack</Name>
			<Damage>100.000000</Damage>
			<DamageType>Siege</DamageType>
			<MinRange>0.000000</MinRange>
			<MaxRange>40.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractSiegeTrooper'>0.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>RangedAttack</Name>
			<Damage>30.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>0.000000</MinRange>
			<MaxRange>24.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractVillager'>0.250000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>1.500000</DamageBonus>
			<DamageBonus type ='AbstractSiegeTrooper'>0.500000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>CannonAttack</Name>
			<Damage>60.000000</Damage>
			<DamageType>Siege</DamageType>
			<MinRange>0.000000</MinRange>
			<MaxRange>24.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageCap>120.000000</DamageCap>
			<DamageBonus type ='AbstractVillager'>0.250000</DamageBonus>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
			<DamageBonus type ='AbstractCavalry'>1.500000</DamageBonus>
			<DamageBonus type ='AbstractSiegeTrooper'>0.500000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>1.500000</DamageBonus>
		</ProtoAction>
	</Unit>


randommapstringsy.xml - 记事本
<?xml version="1.0" encoding="utf-8"?>

<StringTable version="130">
	<Language name="English">
		<String _locID="130015">Ozarks</String>
		<String _locID="130016">Ozarks: Dense thickets filled with wildlife dot this rolling terrain.</String>
		<String _locID="130017">Hilltop trading posts sit beside a trade route that crosses the map from East to West. Teams are split across the trade route.</String>
		<String _locID="130018">Plymouth</String>
		<String _locID="130019">Plymouth: A bountiful land of natural treasures and grateful Pilgrims.</String>
		<String _locID="130020">Each colony can use intrepid Pilgrims and Scout Turkeys to explore the bountiful wilderness for Native Settlements and unique treasures.</String>
		<String _locID="99001">坚固塔楼</String>
		<String _locID="99002">强化塔楼</String>
		<String _locID="99003">增加塔楼的攻击力。</String>
		<String _locID="99004">塔楼可发射炮弹攻击敌人,而且还有更高的耐久度。</String>
		<!-- 输入双引号与单引号都是可行的 -->
	</Language>
</StringTable>




升级科技制作完成,下面制作升级后会改变外观



这句话是给想什么都不会,又不肯从头学起,想一步登天的萌新看的:anim xml是protoy.xml的<AnimFile>xxxxxxx</AnimFile>定义的,塔楼的anim xml路径为buildings\asian_civs\spc\japanese_outpost\spc_japanese_outpost.xml。自己往上面搜索一下,看一下上面的protoy.xml例子是不是有<AnimFile>buildings\asian_civs\spc\japanese_outpost\spc_japanese_outpost.xml</AnimFile>这句。

用AOE3ED提取塔楼的anim xml文件(spc_japanese_outpost.xml),将xmb转换成xml格式后再打开,先拉到最底下把升级科技与模型先定义了,塔楼外观与顶部说到的格林机枪例子不一样,<logic type="Tech">写在了最下方,你改其他的时候,自己判断吧,这里与上面是两个不同的例子了。

区别:格林机枪只有一个<submodel></submodel>,或者没有<submodel></submodel>;而塔楼则有多个<submodel></submodel>。

一个<submodel></submodel>是一个模型的内容。使用<submodelref ref="xxxx"/>调用




往上面搜索Outpost lvl1,从<submodel>复制到末尾的</submodel>,注意不要把其他模型的也复制了,然后粘贴两次(因为我们需要制作坚固塔楼与强化塔楼两个不同的外观)。
蓝色背景是要复制的语句,红色字是粘贴的语句,红色字中的蓝色字是粘贴后并修改的语句。绿色字是上面那张真·截图的内容。
要复制的语句
第一个等级:坚固塔楼模型定义
第一个等级:坚固塔楼模型replacetexture
第二个等级:强化塔楼模型定义
第二个等级:强化塔楼模型replacetexture
多submodel调用定义
spc_japanese_outpost.xml - 记事本
<?xml version="1.0" encoding="utf-8"?>

<animfile>
	<definebone>bone_Launchpoint03</definebone>
	<definebone>bone_Launchpoint02</definebone>
	<definebone>bone_Launchpoint01</definebone>
	<definebone>bone_Launchpoint00</definebone>
	<definebone>bone_debris_1A</definebone>
	<definebone>bone_debris_1B</definebone>
	<definebone>bone_debris_1C</definebone>
	<definebone>bone_debris_1D</definebone>
	<definebone>bone_debris_1E</definebone>
	<definebone>bone_debris_1F</definebone>
	<definebone>bone_debris_1G</definebone>
	<definebone>bone_debris_1h</definebone>
	<definebone>bone_debris_1i</definebone>
	<definebone>bone_debris_1j</definebone>
	<definebone>bone_debris_2A</definebone>
	<definebone>bone_debris_2B</definebone>
	<definebone>bone_debris_2C</definebone>
	<definebone>bone_debris_2D</definebone>
	<definebone>bone_debris_2E</definebone>
	<definebone>bone_debris_2F</definebone>
	<definebone>bone_debris_2G</definebone>
	<definebone>bone_debris_2H</definebone>
	<definebone>bone_debris_2I</definebone>
	<definebone>bone_debris_2J</definebone>
	<definebone>bone_debris_2k</definebone>
	<definebone>bone_debris_2l</definebone>
	<definebone>bone_debris_2m</definebone>
	<definebone>bone_debris_3A</definebone>
	<definebone>bone_debris_3B</definebone>
	<definebone>bone_debris_3C</definebone>
	<definebone>bone_debris_3D</definebone>
	<definebone>bone_debris_3E</definebone>
	<definebone>bone_debris_3F</definebone>
	<definebone>bone_debris_4A</definebone>
	<definebone>bone_debris_4B</definebone>
	<definebone>bone_debris_4C</definebone>
	<definebone>bone_debris_4D</definebone>
	<definebone>bone_debris_4E</definebone>
	<definebone>bone_debris_4F</definebone>
	<definebone>bone_debris_4G</definebone>
	<definebone>bone_debris_4H</definebone>
	<definebone>bone_debris_5A</definebone>
	<definebone>bone_debris_5B</definebone>
	<definebone>bone_debris_5C</definebone>
	<definebone>bone_debris_5D</definebone>
	<definebone>bone_debris_5E</definebone>
	<definebone>bone_debris_5F</definebone>
	<definebone>bone_debris_5G</definebone>
	<definebone>bone_debris_5H</definebone>
	<definebone>bone_debris_5I</definebone>
	<definebone>bone_debris_5J</definebone>
	<definebone>bone_debris_6A</definebone>
	<definebone>bone_debris_6B</definebone>
	<definebone>bone_debris_6C</definebone>
	<definebone>bone_debris_6D</definebone>
	<definebone>bone_debris_6E</definebone>
	<definebone>bone_debris_6F</definebone>
	<definebone>bone_debris_6G</definebone>
	<definebone>bone_debris_6H</definebone>
	<definebone>bone_smoke</definebone>
	<definebone>bone_civ_flag</definebone>
<submodel> Outpost lvl1 <attachment> base smoke <component> smoke base <assetreference type="ParticleSystem"> <file>effects\smoke\collapsesmoke01.particle</file> </assetreference> </component> <anim> Idle <component>smoke base</component> </anim> </attachment> <attachment> base smoke2 <component> smoke wave <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave</component> </anim> </attachment> <attachment> base smoke3 <component> smoke wave center <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave02.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave center</component> </anim> </attachment> <attachment> collapse_smoke <component> collapse_smoke <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_a.particle</file> </assetreference> </component> <anim> Idle <component>collapse_smoke</component> </anim> </attachment> <component> Outpost_1 <logic type="LowPoly"> <normal> <logic type="Destruction"> <p1> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</file> </assetreference> </p1> <p99> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </p99> </logic> </normal> <lowpoly> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </lowpoly> </logic> <decal> <effecttype>default</effecttype> <texture>buildings\outpost\Outpost Ground</texture> <selectedtexture>shadows_selections\selection_square_64x64</selectedtexture> <width>8.00</width> <height>8.00</height> </decal> </component> <component> Outpost_1_Death <logic type="LowPoly"> <normal> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathmodel</file> </assetreference> </normal> <lowpoly> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </lowpoly> </logic> </component> <anim> Idle <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> RangedAttack <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="Rifleshot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> Death <assetreference type="GrannyAnim"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathanime</file> </assetreference> <component>Outpost_1_Death</component> <attach a="base smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke2" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke3" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="collapse_smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> </anim> <anim> RangedAttackShip <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="FalconetShoot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> </submodel>
<submodel> Outpost lvl2 <attachment> base smoke <component> smoke base <assetreference type="ParticleSystem"> <file>effects\smoke\collapsesmoke01.particle</file> </assetreference> </component> <anim> Idle <component>smoke base</component> </anim> </attachment> <attachment> base smoke2 <component> smoke wave <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave</component> </anim> </attachment> <attachment> base smoke3 <component> smoke wave center <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave02.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave center</component> </anim> </attachment> <attachment> collapse_smoke <component> collapse_smoke <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_a.particle</file> </assetreference> </component> <anim> Idle <component>collapse_smoke</component> </anim> </attachment> <component> Outpost_1 <logic type="LowPoly"> <normal> <logic type="Destruction"> <p1> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</file> </assetreference> </p1> <p99> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </p99> </logic> </normal> <lowpoly> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </lowpoly> </logic> <decal> <effecttype>default</effecttype> <texture>buildings\outpost\Outpost Ground</texture> <selectedtexture>shadows_selections\selection_square_64x64</selectedtexture> <width>8.00</width> <height>8.00</height> </decal> </component> <component> Outpost_1_Death <logic type="LowPoly"> <normal> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathmodel</file> </assetreference> </normal> <lowpoly> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </lowpoly> </logic> </component> <anim> Idle <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> RangedAttack <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="RifleShot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> Death <assetreference type="GrannyAnim"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathanime</file> </assetreference> <component>Outpost_1_Death</component> <attach a="base smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke2" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke3" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="collapse_smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> </anim> <anim> RangedAttackShip <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="FalconetShoot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> </submodel> <submodel> sub_construction_stage_01 <component> construction_stage_01 <assetreference type="GrannyModel"> <file>buildings\constructions\2x2_stage1</file> </assetreference> <decal> <effecttype>bump</effecttype> <texture>buildings\constructions\2x2_construction_decal</texture> <selectedtexture>shadows_selections\selection_square_128x128</selectedtexture> <bumptexture>shadows_selections\flat_normal_black_spec</bumptexture> <width>7.00</width> <height>7.00</height> </decal> </component> <anim> Idle <component>construction_stage_01</component> </anim> </submodel> <submodel> sub_construction_stage_02 <component> construction_stage_02 <assetreference type="GrannyModel"> <file>buildings\constructions\2x2_stage2</file> </assetreference> </component> <anim> Idle <component>construction_stage_02</component> </anim> </submodel> <submodel> OutpostLV3 <attachment> base smoke <component> smoke base <assetreference type="ParticleSystem"> <file>effects\smoke\collapsesmoke01.particle</file> </assetreference> </component> <anim> Idle <component>smoke base</component> </anim> </attachment> <attachment> base smoke2 <component> smoke wave <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave</component> </anim> </attachment> <attachment> base smoke3 <component> smoke wave center <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave02.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave center</component> </anim> </attachment> <attachment> collapse_smoke <component> collapse_smoke <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_a.particle</file> </assetreference> </component> <anim> Idle <component>collapse_smoke</component> </anim> </attachment> <component> Outpost_1 <logic type="LowPoly"> <normal> <logic type="Destruction"> <p1> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</file> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost_bump</from> <to>mods\Asian_outpost_bump_LV3</to> <replacetexture> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost</from> <to>mods\Asian_outpostLV3</to> <replacetexture> </assetreference> </p1> <p99> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost</from> <to>mods\Asian_outpostLV3</to> <replacetexture> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost_bump</from> <to>mods\Asian_outpost_bump_LV3</to> <replacetexture> </assetreference> </p99> </logic> </normal> <lowpoly> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost</from> <to>mods\Asian_outpostLV3</to> <replacetexture> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost_bump</from> <to>mods\Asian_outpost_bump_LV3</to> <replacetexture> </assetreference> </lowpoly> </logic> <decal> <effecttype>default</effecttype> <texture>buildings\outpost\Outpost Ground</texture> <selectedtexture>shadows_selections\selection_square_64x64</selectedtexture> <width>8.00</width> <height>8.00</height> </decal> </component> <component> Outpost_1_Death <logic type="LowPoly"> <normal> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathmodel</file> </assetreference> </normal> <lowpoly> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </lowpoly> </logic> </component> <anim> Idle <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> RangedAttack <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="Rifleshot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> Death <assetreference type="GrannyAnim"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathanime</file> </assetreference> <component>Outpost_1_Death</component> <attach a="base smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke2" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke3" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="collapse_smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> </anim> <anim> RangedAttackShip <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="FalconetShoot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> </submodel> <submodel> OutpostLV4 <attachment> base smoke <component> smoke base <assetreference type="ParticleSystem"> <file>effects\smoke\collapsesmoke01.particle</file> </assetreference> </component> <anim> Idle <component>smoke base</component> </anim> </attachment> <attachment> base smoke2 <component> smoke wave <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave</component> </anim> </attachment> <attachment> base smoke3 <component> smoke wave center <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_wave02.particle</file> </assetreference> </component> <anim> Idle <component>smoke wave center</component> </anim> </attachment> <attachment> collapse_smoke <component> collapse_smoke <assetreference type="ParticleSystem"> <file>effects\smoke\collapse_smoke_a.particle</file> </assetreference> </component> <anim> Idle <component>collapse_smoke</component> </anim> </attachment> <component> Outpost_1 <logic type="LowPoly"> <normal> <logic type="Destruction"> <p1> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</file> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost</from> <to>mods\Asian_outpostLV4</to> <replacetexture> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost_bump</from> <to>mods\Asian_outpost_bump_LV4</to> <replacetexture> </assetreference> </p1> <p99> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost</from> <to>mods\Asian_outpostLV4</to> <replacetexture> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost_bump</from> <to>mods\Asian_outpost_bump_LV4</to> <replacetexture> </assetreference> </p99> </logic> </normal> <lowpoly> <assetreference type="GrannyModel" shape="asian_outpost"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost</from> <to>mods\Asian_outpostLV4</to> <replacetexture> <replacetexture> <from>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost_bump</from> <to>mods\Asian_outpost_bump_LV4</to> <replacetexture> </assetreference> </lowpoly> </logic> <decal> <effecttype>default</effecttype> <texture>buildings\outpost\Outpost Ground</texture> <selectedtexture>shadows_selections\selection_square_64x64</selectedtexture> <width>8.00</width> <height>8.00</height> </decal> </component> <component> Outpost_1_Death <logic type="LowPoly"> <normal> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathmodel</file> </assetreference> </normal> <lowpoly> <assetreference type="GrannyModel"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost</file> </assetreference> </lowpoly> </logic> </component> <anim> Idle <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> RangedAttack <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="Rifleshot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> <anim> Death <assetreference type="GrannyAnim"> <file>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_deathanime</file> </assetreference> <component>Outpost_1_Death</component> <attach a="base smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke2" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="base smoke3" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> <attach a="collapse_smoke" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> </anim> <anim> RangedAttackShip <assetreference type="GrannyAnim"> <file>animation_library\building\ranged_attack</file> <tag type="Attack">0.45</tag> <tag type="SpecificSoundSet" checkvisible="1" set="FalconetShoot">0.45</tag> </assetreference> <component>Outpost_1</component> <simskeleton> <model>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\asian_outpost_damaged</model> <damagetemplate>buildings\asian_civs\spc\japanese_outpost\Asian_outpost\Asian_outpost.dmg</damagetemplate> </simskeleton> </anim> </submodel> <submodel> Outpost lvl1_con2 <attachment> con <component> scaffolding <assetreference type="GrannyModel"> <file>buildings\outpost\outpost_generic_con</file> </assetreference> </component> <anim> Idle <component>scaffolding</component> </anim> </attachment> <component> Outpost_1 <assetreference type="GrannyModel"> <file>buildings\constructions\2x2_stage3</file> </assetreference> <decal> <effecttype>bump</effecttype> <texture>buildings\constructions\2x2_construction_decal</texture> <selectedtexture>shadows_selections\selection_square_128x128</selectedtexture> <bumptexture>shadows_selections\flat_normal_black_spec</bumptexture> <width>7.00</width> <height>7.00</height> </decal> <attach a="con" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/> </component> <anim> Idle <component>Outpost_1</component> </anim> </submodel> <component> ypoutpostasian <logic type="Tech"> <none> <logic type="BuildingCompletion"> <p0> <submodelref ref="sub_construction_stage_01"/> </p0> <p33> <submodelref ref="sub_construction_stage_02"/> </p33> <p66> <submodelref ref="Outpost lvl1_con2"/> </p66> <p100> <submodelref ref="Outpost lvl1"/> </p100> </logic> </none> <ypFrontierOutpost> <logic type="BuildingCompletion"> <p0> <submodelref ref="sub_construction_stage_01"/> </p0> <p33> <submodelref ref="sub_construction_stage_02"/> </p33> <p66> <submodelref ref="Outpost lvl1_con2"/> </p66> <p100> <submodelref ref="OutpostLV3"/> </p100> </logic> </ypFrontierOutpost> <ypFortifiedOutpost> <logic type="BuildingCompletion"> <p0> <submodelref ref="sub_construction_stage_01"/> </p0> <p33> <submodelref ref="sub_construction_stage_02"/> </p33> <p66> <submodelref ref="Outpost lvl1_con2"/> </p66> <p100> <submodelref ref="OutpostLV4"/> </p100> </logic> </ypFortifiedOutpost> </logic> </component> </animfile>

补充:<submodelref ref="XXXX"/>要与你粘贴的submodel语句开头的调用名相同才会被调用到,你自己往上搜索几次OutpostLV4看看。


制作新贴图




最后改好的xml文件按照原路径,新贴图按照你定义的新路径放回游戏目录。









以上就是replacetexture更换贴图的全部教程,但用replacetexture更换贴图会有一个缺点,游戏运行时间长了就会被系统直接忽略,导致更换贴图失效。有两种办法可以解决:第一种是像天明MOD那样,将多个模型的replacetexture全部集成在一个单位上,然后开局立刻调用,但会导致开局会出现很明显的卡顿,另一种是用工具(Metin2 Texture Changer)修改gr2内置贴图路径,具体请参考8-2 更换贴图II

如何查看gr2文件?
gr2查看器下载:http://www.aoebbs.net/down_213.html
3.7离线版已直接添加到圣典里面,点击右边链接即可直接保存:gr2查看器