In your civs.xml or civmods.xml you will find an entry for the civilization’s Culture. This is what determines the looks for the majority of buildings and sometimes units like wagons. Some buildings like the Church and Tavern require individual civilizations to be entered or else they use whatever the default look is.
The animfile or animation file that is coded in the protoy/protomods is indeed where the unit’s animations and models are defined. Some units like the Explorer may use civlogic like the Church does where each civilization can define what that unit would look like, but most use techlogic with their upgrades (which means if you make custom unit upgrades you’ll want to make a custom animfile that adds your new techs or else their appearance won’t change).
In ArtUnits.bar, extract and convert the villager.xml. Within it you’re going to see Submodels where animations, attachments, and the GrannyModel are defined, and at the end of the file a Component section which uses Culture logic to determine which submodels are used for each culture.
<component>Villager
<logic type="Culture">
<westerneurope>
<logic type="Variation">
<data>
<submodelref ref="we_Villager"/>
</data>
<data>
<submodelref ref="we_Villager_Female"/>
</data>
<data>
<submodelref ref="we_Villager_Black"/>
</data>
<data>
<submodelref ref="we_Villager_Female_Black"/>
</data>
</logic>
</westerneurope>
<easterneurope>
<logic type="Variation">
<data>
<submodelref ref="ee_Villager"/>
</data>
<data>
<submodelref ref="ee_Villager_Female"/>
</data>
<data>
<submodelref ref="ee_Villager_Black"/>
</data>
<data>
<submodelref ref="ee_Villager_Female_Black"/>
</data>
</logic>
</easterneurope>
<mediterranean>
<logic type="Variation">
<data>
<submodelref ref="med_Villager"/>
</data>
<data>
<submodelref ref="med_Villager_Female"/>
</data>
<data>
<submodelref ref="med_Villager_Black"/>
</data>
<data>
<submodelref ref="med_Villager_Female_Black"/>
</data>
</logic>
</mediterranean>
<aztec>
<logic type="Variation">
<data>
<submodelref ref="Az_Villager"/>
</data>
<data>
<submodelref ref="Az_Villager_Female"/>
</data>
</logic>
</aztec>
<iroquois>
<logic type="Variation">
<data>
<submodelref ref="Nat_Villager"/>
</data>
<data>
<submodelref ref="Nat_Villager_Female"/>
</data>
</logic>
</iroquois>
<sioux>
<logic type="Variation">
<data>
<submodelref ref="Nat_Villager"/>
</data>
<data>
<submodelref ref="Nat_Villager_Female"/>
</data>
</logic>
</sioux>
<inca>
<logic type="Variation">
<data>
<submodelref ref="Nat_Villager"/>
</data>
<data>
<submodelref ref="Nat_Villager_Female"/>
</data>
</logic>
</inca>
<chinese>
<logic type="Variation">
<data>
<submodelref ref="Chn_Villager"/>
</data>
<data>
<submodelref ref="Chn_Villager_Female"/>
</data>
</logic>
</chinese>
<japanese>
<logic type="Variation">
<data>
<submodelref ref="Jpn_Villager"/>
</data>
<data>
<submodelref ref="Jpn_Villager_Female"/>
</data>
</logic>
</japanese>
<indian>
<logic type="Variation">
<data>
<submodelref ref="Ind_Villager"/>
</data>
<data>
<submodelref ref="Ind_Villager_Female"/>
</data>
</logic>
</indian>
<africaeast>
<logic type="Variation">
<data>
<submodelref ref="Eth_Villager"/>
</data>
<data>
<submodelref ref="Eth_Villager_Female"/>
</data>
</logic>
</africaeast>
<africawest>
<logic type="Variation">
<data>
<submodelref ref="Hau_Villager"/>
</data>
<data>
<submodelref ref="Hau_Villager_Female"/>
</data>
</logic>
</africawest>
</logic>
<watersplash>
<texture>effects\projectiles\cannonball_splash</texture>
<width>1.5</width>
<height>1.5</height>
</watersplash>
</component>
Since you already made a new villager entry, you can rename the extracted villager file to advvillager.xml or whatever, put it in your mod’s Art/Units folder and enter the location for your new villager’s animfile on protomods. If you just want to use a different culture’s villager model then in your advvillager.xml you’d find which culture you are using and replace the submodel references with whichever alternate you want to use.
A little more complex method would be changing the model, let’s say making your villagers look like Amelia Black. Within each submodel entry of the villager.xml you’ll find a Component entry where the models are defined and any attachments such as a hat (which for villager.xml is its own file defined at units\villagers\villager_hat.xml.). If you replace a male villager entry that has a hat you’d want to remove the hat attachment since Amelia has a built-in hat.
<component>Villager<assetreference type="GrannyModel">
<file>units\villagers\med_villager_female</file>
</assetreference>
<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>
<selectionextrawidth>1.0</selectionextrawidth>
<selectionextraheight>1.0</selectionextraheight>
</decal>
</component>
Now we track down Amelia’s file at Art\Units\spc\amelia_black\spc_amelia_black.xml and her file doesn’t use submodels so we would look for the ModelComp component.
<component>ModelComp<assetreference type="GrannyModel">
<file>units\spc\amelia_black\amelia_black_spc</file>
</assetreference>
<decal>
<effecttype>default</effecttype>
<texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture>
<selectedtexture>shadows_selections\selection_hero_64x64</selectedtexture>
<noncinematictexture>shadows_selections\shadow_hero_64x64</noncinematictexture>
<width>1.50</width>
<height>1.50</height>
</decal>
<attach a="shotgun"
frombone="MASTER"
tobone="Bip01 Prop1"
syncanims="0"/>
</component>
We grab the GrannyModel assetreference (units\spc\amelia_black\amelia_black_spc) and put that into a villager submodel on the modded villager.xml, and then make sure our civ’s culture is using that submodel down in the component section. As long as the model you’re swapping in is rigged to use all the villager animations you’re good to go.
<component>Villager<assetreference type="GrannyModel">
<file>units\spc\amelia_black\amelia_black_spc</file>
</assetreference>
<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>
<selectionextrawidth>1.0</selectionextrawidth>
<selectionextraheight>1.0</selectionextraheight>
</decal>
</component>
Expect shell shock when initially looking at animfiles, but once you get a grasp on them you can add your own submodels, add Tech logic so that WesternEurope culture looks like this unless you are age0newciv in which case it looks like that instead, etc. Using a program like Notepad++ to pretty print the animfiles can make it much easier to understand it.
The native_villager.xml may be a bit easier to comprehend as it’s only got two submodels in it. Not all models will have been rigged for all animations, so if you try to use one and it shows up invisible in-game then either the animations aren’t supported or you made a copy-paste or other formatting error.