模型&动作


关于贴图、动画、模型的修改教程。在学此教程时,请先确认自己已经学会了用AOE3ED提取单位的tactics文件。教程所提到的Ainm XML、动画xml为protoy中的<animfile>xxxx\xxxx.xml</animfile>所调用的xml文件,除MOD的单位可能不需要提取外,亚洲王朝原版的动画xml必须用AOE3ED在Art文件夹的Art5.bar、Art4.bar、Art3.bar、Art2.bar、Art1.bar提取,优先提取Art5.bar,然后是Art4.bar,最后是Art3.bar、Art2.bar、Art1.bar。(注: Art3.bar、Art2.bar、Art1.bar这三个文件没有优先顺序。)





在整个圣典中,我对animfile的研究是最少的,因为这个文件比较复杂,语句也不像protoy、techtreey那样规范,而且数量太多,没法总结所有语句,所以我只是随便整理一下语句,并解释下语句作用,具体的需要你自己去理解,如果你修改几次后应该也懂的差不多了。
拿一般的单位来说,语句结构如下:
<animfile>
	<definebone>xxxxxxx</definebone>
定义骨骼,某些情况下的attach要在此处定义骨骼才能附加到对应骨骼位置处。(我不清楚是自定义还是调用内部数据,又或者两种情况都有可能。)
	<attachment>
附件(武器、枪、剑、背包之类的),利用attach语句附加在模型上
		attachname1
自定义附件名称
		<include>xxxxx\xxxxxx\xxxxxxxx.xml</include>
引用anim xml文件路径(例如你引用一棵树,当成剑使用,那么武器就变成一棵树了)
	</attachment>
	<attachment>
附件,利用attach语句附加在模型上
		attachname2
自定义附件名称
		<component>
部件,(在anim会调用到)
			componentname
自定义部件名称
			<assetreference type="GrannyModel">
调用gr2模型
				<file>xxxxx\xxxxx\xxxxxxxx</file>
被调用的gr2模型路径。注:没有.gr2后缀名。
			</assetreference>
		</component>
		<anim>
anim动作
			Idle
在附件的动作一般为Idle
			<component>componentname</component>
调用部件“componentname”,然后这个动作或调用componentname定义的模型
		</anim>
	</attachment>
	<attachment>
附件,利用attach语句附加在模型上
		attachname3
自定义附件名称
		<component>
部件
			componentname
自定义部件名称
			<assetreference type="ParticleSystem">
调用粒子系统
				<file>xxxxxx\xxxxxxxx\xxxxxxxxx.particle</file>
被调用的粒子文件路径,注:要有后缀名.particle
			</assetreference>
		</component>
		<anim>
anim动作
			Idle
在附件的动作一般为Idle
			<component>componentname</component>
调用部件“componentname”,然后这个动作或调用componentname定义的模型
		</anim>
	</attachment>
	<component>
部件(在anim会调用到)
		componentname
自定义部件名称
		<logic type="xxxxx">
根据不同的设定,设置不同模型,有Civ国家,Culture文化,Tech要求改良科技等,具体点击此处:logic
			<none>
默认模型
				<logic type="LowPoly">
根据游戏画质不同,设置不同模型
					<normal>
低画质以上
						<assetreference type="GrannyModel">
调用gr2模型
							<file>xxx\xxxxx\xxxxxxx</file>
被调用的gr2模型路径
						</assetreference>
						<attach a="attachname1" frombone="xx" tobone="xx" syncanims="1"/>
这里可以附加一个附件,低画质那里不附加,那么只有低画质以上才会有这个附件
					</normal>
					<lowpoly>
低画质
						<assetreference type="GrannyModel">
							<file>xxx\xxxxx\xxxxxxx</file>
						</assetreference>
					</lowpoly>
				</logic>
根据游戏画质不同,设置不同模型--结束标签
			</none>
默认模型--结束标签
			<xxxxxxxxx>
文化、国家、科技等设定
				<logic type="LowPoly">
此处不再解释语句
					<normal>
						<assetreference type="GrannyModel">
							<file>xxx\xxxxx\xxxxxxx</file>
						</assetreference>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>xxx\xxxxx\xxxxxxx</file>
						</assetreference>
					</lowpoly>
				</logic>
			</xxxxxxxxx>
文化、国家、科技等设定--结束标签
		</logic>
根据不同的设定,设置不同模型--结束标签
		<decal>
单位底部的贴图(单位--圆圈、建筑--方形、英雄--五角星)
			<effecttype>default</effecttype>
			<texture isfakeshadow="1">xxxxx\xxxxx</texture>
作用不明
			<selectedtexture>xxxxx\xxxxx</selectedtexture>
选取该单位时底部的贴图
			<noncinematictexture>xxxxx\xxxxx</noncinematictexture>
无论是否选取单位都会显示的底部贴图
			<width>1.0</width>
贴图宽度,根据html css瞎说定律,横的为宽度
			<height>1.0</height>
贴图高度,根据html css瞎说定律,竖的为高度
		</decal>
		<attach a="attachname1" frombone="xxxxx" tobone="yyyyy" syncanims="1"/>
在任意位置都可以使用attach附件部件的,这里将附件名为“attachname1”的附件从骨骼“xxxxx”到骨骼“yyyyy”上附加在模型上
	</component>
	<anim>
动作,会被tactics调用到
		animname1
动作名称
		<assetreference type="GrannyAnim">
调用gr2模型(动作)
			<file>xxxxxx\xxxxxxxx\xxxxxxxxxx</file>
被调用gr2模型(动作)文件路径
		</assetreference>
		<component>componentname</component>
调用部件名称为“componentname”的部件,既然被调用了,那么部件的附件也会一起被调用
		<attach a="attachname2" frombone="xxxxxx" tobone="xxxxxx" syncanims="1"/>
附件可以添加在任何地方,添加在anim中就只有这个anim才会出现这个附件,其他anim不会出现
	</anim>
	<anim>
		animname2
动作名称
		<assetreference type="GrannyAnim">
如果连续添加多个gr2模型(动作),执行的时候会随机出现其中一个。例如某些单位死亡的时候会有不同的动作就是这样定义的。
			<file>xxxxxx\xxxxxxxx\xxxxxxxxxx</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>xxxxxx\xxxxxxxx\xxxxxxxxxx</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>xxxxxx\xxxxxxxx\xxxxxxxxxx</file>
		</assetreference>
		<component>componentname</component>
		<attach a="attachname2" frombone="xxxxxx" tobone="xxxxxx" syncanims="1"/>
	</anim>
	<anim>
		animname3
动作名称
		<assetreference type="GrannyAnim">
调用gr2模型(动作)
			<file>xxxxxx\xxxxxxxx\xxxxxxxxxx</file>
被调用gr2模型(动作)文件路径
			<tag type="Attack">X.00</tag>
对指定单位执行一次攻击,造成一次伤害。X.00为延迟时间
			<tag type="SpecificSoundSet" checkvisible="1" set="Soundsetname">X.00</tag>
执行这个anim会调用soundsets.xml、soundsetsx.xml、soundsetsy.xml里面定义的语音,例如开枪声。X.00为延迟时间。
			<tag type="Particles" particlename="XXXXXXXX">X.00</tag>
调用粒子效果,粒子效果必须在art1.bar\effects\particlesets.xml、art4.bar\effects\particlesets_xpack.xml、art5.bar\effects\particlesets_ypack.xml三个文件其中一个定义,否则无法调用及生效。至于这三个xml文件,你打开就懂了,但是打开后,里面调用的粒子文件是怎样构成的,你自己研究,我也没有什么教程。X.00为延迟时间。
		</assetreference>
		<component>componentname</component>
		<attach a="attachname2" frombone="xxxxxx" tobone="xxxxxx" syncanims="1"/>
	</anim>
	<anim>
		animname3
		<assetreference type="GrannyAnim">
			<file>xxxxxx\xxxxxxxx\xxxxxxxxxx</file>
			<tag type="Attack">0.10</tag>
每执行一次anim,每次都合计执行4次攻击,造成4次伤害。(管炮、格林机枪、诸葛弩就是这种)
			<tag type="Attack">0.20</tag>
			<tag type="Attack">0.30</tag>
			<tag type="Attack">0.40</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Soundsetname">0.10</tag>
合计调用两次语音
			<tag type="SpecificSoundSet" checkvisible="1" set="Soundsetname">X.30</tag>
		</assetreference>
		<component>componentname</component>
		<attach a="attachname2" frombone="xxxxxx" tobone="xxxxxx" syncanims="1"/>
	</anim>
</animfile>





上面已经解释过了,attachment是附件,有两种方法可以定义,一种是用include引用其他anim xml文件,理论上可以在那个xml继续用include再引用anim xml(无限引用,一个xml关联了无限个xml。注:关联太多会闪退;像A调用B、B又调用A这种死循环会立刻闪退)
	<attachment>
		attachname
		<include>xxxxx\xxxxxx\xxxxxxxx.xml</include>
	</attachment>

另一种方法是将另一个anim xml的内容直接写在了attachment里面,相信你在上面也看见某个attachment的结构与整个xml结构大部分都是相同的。


attachment定义的附件要用attach语句附加在gr2模型下面或者component部件中。
 		<attach a="attachname" frombone="xxxxxx" tobone="xxxxxx" syncanims="1"/>
		<attach a="你在attachment定义的附件名称" frombone="从某个骨骼" tobone="到某个骨骼" syncanims="1"/>


在component部件内附加的任何附件都会在每一个anim动作附加上这个附件,因为每一个anim都会调用一个component部件,那些附加在部件的附件自然会附加在anim里面。
比如后面的教程会讲到给殖民地民兵添加采集资源后,无论是打猎,还是砍树,或是挖矿都会带着一把枪,这就是每一个anim都会调用一个component部件所造成的——————那把枪附加在了component部件里面。具体请看:8-7 殖民地民兵采集资源

至于attach两个bone,我也不太清楚是从哪里定义的,有可能是内部主程序定义,也有可能是从gr2文件(3dsmax的骨骼名称)定义,你想引用某些骨骼就必须在xml顶部用<definebone>xxxxxxx</definebone>定义这个骨骼。不过也有例外,像ATTACHPOINT就不需要在<definebone>xxxxxxx</definebone>定义,所以我真的是无法理解这里,只能说如果你attach后,附件没有出现在正常的位置,检查语句有没有任何错误,那么就要去考虑是不是没有在<definebone>xxxxxxx</definebone>定义的那个骨骼的问题了。
比如英国探险家attach了一个帽子,法国探险家attach了一个背包
	<definebone>Bip01_AttachLt</definebone>
	<definebone>Bip01_AttachRt</definebone>
	<definebone>bip01 Prop1</definebone>
	<definebone>bip01 Prop2</definebone>
	<definebone>bone_hat</definebone>
	<definebone>Bip01 Head</definebone>
	<definebone>bone_backpack</definebone>
	<definebone>bone_fur</definebone>
	<definebone>bone_gun</definebone>
	<!--  省略其他语句 -->
	<attachment>
		british_hat
		<component>
			british_hat
			<assetreference type="GrannyModel">
				<file>units\explorers\b_explorer_hat</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>british_hat</component>
		</anim>
	</attachment>
	<attachment>
		french_backpack
		<component>
			french_backpack
			<assetreference type="GrannyModel">
				<file>units\explorers\f_explorer_backpack</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>french_backpack</component>
		</anim>
	</attachment>
	<component>
		ModelComp
		<logic type="Civ">
			<british>
				<logic type="LowPoly">
					<normal>
						<assetreference type="GrannyModel">
							<file>units\explorers\b_explorer</file>
						</assetreference>
						<attach a="british_hat" frombone="bone_hat" tobone="Bip01 Head" syncanims="0"/>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>units\explorers\lp_b_explorer</file>
						</assetreference>
					</lowpoly>
				</logic>
			</british>
			<french>
				<logic type="LowPoly">
					<normal>
						<assetreference type="GrannyModel">
							<file>units\explorers\f_explorer</file>
						</assetreference>
						<attach a="french_backpack" frombone="bone_backpack" tobone="SPINE1" syncanims="0"/>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>units\explorers\lp_f_explorer</file>
						</assetreference>
					</lowpoly>
				</logic>
			</french>
		</logic>
	<!--  省略其他语句 -->
	</component>
当我把
	<definebone>bone_hat</definebone>
	<definebone>Bip01 Head</definebone>
	<definebone>bone_backpack</definebone>
删掉后,如下图所示:

可以看见帽子与背包都错位了,这就是没有在顶部定义<definebone>xxxxx</definebone>的原因,不过你也看见了,法国探险家的背包有个tobone="SPINE1",整个xml文件并没有定义这个,但是法国探险家的背包位置正确,也就是说不一定需要用definebone定义,当出现attach错位后可以去考虑是不是没有在definebone定义的原因。



对于初学者我还是建议你去复制原有的anim语句,例如给村民制作移植一个背包之类的,然后再理解语句,再接着是创新。











************************************************************************************************************************




	<logic type="LowPoly">低画质设定(我不知道是着色器还是高多边形模型,你有兴趣的话自己试一下。帝国时代3是2005年的游戏,有低画质设定很正常,但现在已经没必要再去考虑低画质了。)
		<normal>低画质以上画质显示的模型
			<assetreference type="GrannyModel">
				<file>调用gr2模型文件</file>
			</assetreference>
		</normal>
		<lowpoly>低画质显示的模型
			<assetreference type="GrannyModel">
				<file>调用gr2模型文件</file>
			</assetreference>
		</lowpoly>
	</logic>

随机选择(模型组理论上无数量上限。)
	<logic type="Variation">
		<v0>
		</v0>
		<v1>
		</v1>
	</logic>
破坏过程(数字小的一组为破坏时的外貌,大的一组为正常状态。)
	<logic type="Destruction">
		<p1>
		</p1>
		<p99>
		</p99>
	</logic>
建造进程(可根据情况增减过程。)
	<logic type="BuildingCompletion">
		<p0>
		</p0>
		<p33>
		</p33>
		<p66>
		</p66>
		<p100>
		</p100>
	</logic>








根据文化不同,设定不同模型:none指默认,例如下面的文化只设定了none与Chinese,那么除了easterneurope、Chinese是另外设定;其他国家都是none。文化调用名请参考10-7 cultures
	<logic type="Culture">
		<none>
		</none>
		<easterneurope>
		</easterneurope>
		<Chinese>
		</Chinese>
	</logic>


根据国家不同,定义不同的模型:none指默认,例如下面的国家只设定了none、Chinese与french,那么除了Chinese与french是另外设定,其他国家都是none。文化调用名请参考4-0 civs.xml
	<logic type="civ">
		<none>
		</none>
		<Chinese>
		</Chinese>
		<french>
		</french>
	</logic>


改良科技后,变成不同的的模型:none依然是默认,未改良某科技都是none,改良xxxxxxxxx后变成另一个模型。
	<logic type="Tech">
		<none>
		</none>
		<xxxxxxxxx>
		</xxxxxxxxx>
	</logic>

几个logic可以任意嵌套:

	<logic type="Culture">
		<none>
			<logic type="Tech">
				<none>
					<logic type="civ">
						<none>
						</none>
						<Chinese>
						</Chinese>
						<french>
						</french>
					</logic>
				</none>
				<xxxxxxxxx>
					<logic type="Variation">
						<v0>
						</v0>
						<v1>
						</v1>
					</logic>
				</xxxxxxxxx>
			</logic>
		</none>
		<Chinese>
			<logic type="Tech">
				<none>
				</none>
				<xxxxxxxxx>
				</xxxxxxxxx>
			</logic>
		</Chinese>
	</logic>
************************************************************************************************************************




下面的动作来自林墓怪人整理的资料:
快给我向林墓怪人大佬表示感谢。


步兵死亡动作
		<assetreference type="GrannyAnim">
			<file>animation_library\villager\villager_male_death1</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.46</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\villager\villager_female_death1</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.46</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_kneeling_deathbyrangedB</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.40</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_death</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.80</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">1.10</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_kneeling_deathbyrangedA</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.30</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_kneeling_deathbyrangedB</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.40</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_kneeling_deathbyrangedC</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.60</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">1.20</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_sword_death_a</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.87</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_death_generic_a</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">1.20</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_death_shot_back_a</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.85</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_death_shot_front_a</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.56</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\mercs\samurai\samurai_death_sword</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.26</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\mercs\samurai\samurai_death_musket</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.58</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>units\asians\indians\urumi\urumi_rangeDeath00</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.59</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>units\asians\indians\urumi\urumi_rangeDeath01</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.82</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\Knockout</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.62</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.31</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_kneeling_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.50</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">1.60</tag>
		</assetreference>
		<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>
骑兵死亡动作
		<assetreference type="GrannyAnim">
			<file>animation_library\cavalry\sword_deathA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\cavalry\sword_deathB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\cavalry\sword_deathC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\cavalry\oprichnik_deathA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\cavalry\oprichnik_deathB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\cavalry\oprichnik_deathC</file>
		</assetreference>
————————————————————————————————————————————————————
————————————————————————————————————————————————————
射击动作
		<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>
半蹲射击
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_kneeling_fire</file>
			<tag type="Attack">0.46</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RifleShot">0.46</tag>
			<tag type="Particles" particlename="musketshot">0.46</tag>
		</assetreference>
————————————————————————————————————————————————————
————————————————————————————————————————————————————
一般动作
齐射模式
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_idle</file>
		</assetreference>
半蹲动作
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_kneeling_reload</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_idle</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_boredA</file>
		</assetreference>
火枪兵无聊动作
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_boredA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_boredA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_bored</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_bored</file>
		</assetreference>
散兵无聊动作
		<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>
掷弹兵无聊动作
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_grenadier_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\bored_grenadier_B</file>
		</assetreference>
弩兵无聊动作
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_crossbow_bored_a</file>
		</assetreference>
日本武士无聊动作
		<assetreference type="GrannyAnim">
			<file>animation_library\mercs\samurai\samurai_bored</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\mercs\samurai\samurai_boredB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\mercs\samurai\samurai_defend_bored</file>
		</assetreference>
枪兵无聊动作
		<assetreference type="GrannyAnim">
			<file>animation_library\infantry\Cover\pikemen_cover_bored</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\infantry\Defend\pikemen_defend_bored</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\infantry\Defend\pikemen_defend_boredB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\infantry\Charge\pikemen_charge_bored</file>
		</assetreference>
弓兵无聊动作
		<assetreference type="GrannyAnim">
			<file>units\asians\japanese\monk\volley_standing_boredA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>units\asians\japanese\monk\volley_standing_boredB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\longbow_defend_combat_idle</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\longbow_volley_standing_boredA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\longbow_volley_standing_boredB</file>
		</assetreference>



*************************************************************************************************













~~~~~~~~~~~~~~我是华丽丽的分割线~~~~~~~~~~~~~~

















单位模型之类的修改很困难
如果你想什么都问人你还是放弃吧。(适当问大佬还是可以的)

先弄懂什么是模型文件>>>>>>>>>>模型文件的格式是gr2

我们目前能使用3dsmax8.0导出gr2模型。3dsmax8.0下载:https://www.aoebbs.net/down_191.html

win10使用3dsmax打开或保存文件时候卡死怎么办?>>>>>>>>>>可怜的孩子,重做吧,3dsmax8.0是XP系统的软件,能在win10运行已经很不错了,记住这个教训,不要再点这个会卡死的地方(打开、保存时顶部的路径不能点,点了就卡死,你可以使用返回上一级的按钮寻找你要保存的位置。另外保存的时候,不要在保存对话框内对文件按右键,否则后果自负)。

win10打不开3dsmax8.0怎么办?>>>>>>>>>>安装虚拟机,虚拟机安装XP系统。

怎样使用3dsmax8.0?>>>>>>>>>>我不会,我只能告诉你导出gr2文件,你可以自己根据互联网上的3dsmax教程进行学习。

导出gr2文件怎样使用?>>>>>>>>>>单位动画xml有个file就是调用gr2模型的路径。

xml调用gr2模型
主要模型是omponent的file调用的gr2模型
次要模型是attachment(利用attach附加在主要模型上面)
attachment可以直接调用gr2模型,也可以调用另一个xml(由另一个xml调用gr2模型)
3dsmax是软件
3dsmax8.0导出gr2模型

gr2绑定骨骼(蒙皮);我这里有max模型,没有任何教程,你只能仿照这个模型进行蒙皮,具体需要你自己体会。

如果发现单位的anim xml里面没有附加物件,例如abus的炮,连枷骑兵的连枷,那么这些物件就是在gr2模型里面了;到现在我们还没有办法去修改,除非你重做整个单位,重新绑骨骼。当然,只把武器提取出来给其他单位使用也是可以的。




有一点要强调:请适量伸手,不要有问题就问,在问问题之前,我先问你一句,你实践过了吗?没有?那你只是想伸手而已。
拒绝伸手党。

曾经有个SB,问怎样将俄罗斯散兵的武器改成鄂图曼炮兵那个炮,那个SB什么都不会,连AOE3ED都不会使用;我把圣典链接给他,一步一步截图教他,然后我发现鄂图曼炮兵的炮是绑定在模型上的,但能找到一个单独炮模型,但不能在俄罗斯散兵正常使用,我就录了一个视频,提取gr2模型以及重新导出gr2模型,将max、gr2、视频文件全都发过去了。后面那个SB说他不会,能不能帮他修改,我当时也没空理他,结果几个小时或骂了我一顿。从此之后,我一律无视任何QQ私聊。







gr2查看器下载: http://www.aoebbs.net/down_213.html
3.7离线版已直接添加到圣典里面,点击右边链接即可直接保存:gr2查看器
gr2查看器的作用是什么,顾名思义,用来查看gr2文件。

为什么我的gr2查看器打开gr2显示的是空白?之前打开其他gr2文件没有贴图但是有模型,是我的电脑出现问题了吗?

这种问题该说什么好呢?在大佬看来看不见就是看不见,为什么一定要有模型图像才行?萌新总是喜欢问这种没意义的问题。 事实上能给你打开gr2文件已经很不错了,你还想怎样呢,难道那个图像能给你编辑?因为这种无意义的问题出现的次数实在是太多了,心态都被整崩溃了。像第二个问题,正确的做法不是第一时间去伸手,去问人,而是再次打开之前的gr2文件,检查是否存在模型。