Civ5: True Pikeman

Is there anything you can do to help me get this into my mod?
I have added lots of units made by others but I can't seem to get this one to work. I've imported the 4 files from the download into the VRS. I've taken the art defines file for the pikeman and changed the ArtDefine_UnitInfos type, ArtDefine_UnitMemberInfos type, and the model reference. I then updated the pikeman unit to use this artdefine rather than the default, but when I create one in game I just get an invisible unit with a unit flag over it. Any ideas?
 
Is there anything you can do to help me get this into my mod?
I have added lots of units made by others but I can't seem to get this one to work. I've imported the 4 files from the download into the VRS. I've taken the art defines file for the pikeman and changed the ArtDefine_UnitInfos type, ArtDefine_UnitMemberInfos type, and the model reference. I then updated the pikeman unit to use this artdefine rather than the default, but when I create one in game I just get an invisible unit with a unit flag over it. Any ideas?

Please use the full path of the fxsxml file (for example: <Model>art/units/true_pikeman.fxsxml</Model>) rather than just <Model>true_pikeman.fxsxml</Model> in the <ArtDefine_UnitMemberInfos>
 
I've tried updating my graphics with this, however it creates an invisible unit which then crashes the game.

This is what I've done:

Code:
<ArtDefine_UnitMemberInfos>
	<Update>
		<Where Type="ART_DEF_UNIT_MEMBER_PIKEMAN"/>
		<Set>
			<Model>true_pikeman.fxsxml</Model>
		</Set>
	</Update>
</ArtDefine_UnitMemberInfos>

I did notice that in the true_pikeman.fxsxml file it referenced the following texture files:

Code:
<Texture file="Pikeman_SREF.dds"/>
<Texture file="Unit_Environment_Dull.dds"/>
<Texture file="Unit_Environment_Sharp.dds"/>
<Texture file="Unit_Irradiance.dds"/>
<Texture file="Pikeman_DIFF.dds"/>

As there is a true_pikeman_diff.dds and a true_pikeman_sref.dds I tried updating the fxsxml file to

Code:
<Texture file="true_pikeman_sref.dds"/>
<Texture file="Unit_Environment_Dull.dds"/>
<Texture file="Unit_Environment_Sharp.dds"/>
<Texture file="Unit_Irradiance.dds"/>
<Texture file="true_pikeman_diff.dds"/>

but that also created an invisible unit which crashed the game.

What am I doing wrong?
 
The .fxsxml would have worked as-is since the true reference to the .dds files is in the .gr2 model.

Did you set the .fxsxml, .gr2, and the two .dds to VFS=True? Did you check Reload Unit System?
 
The .fxsxml would have worked as-is since the true reference to the .dds files is in the .gr2 model.

Did you set the .fxsxml, .gr2, and the two .dds to VFS=True? Did you check Reload Unit System?

Yes, I was able to figure it out. Apparently I had to create a separate folder to stick it in and CREATE a full path for it. The issue I had was in a test mod where I just had the models and the database files in the same path. Very strange.
 
It's not specifically where you put the files. This filename apparently conflicts somehow, I guess because the last 16 characters (in this case) are the same as a file from the base game. The way Firaxis implemented the VFS is a little hokey in some respects. I'm not sure what the magic number of characters that must be different at the end of the filename is--perhaps as few as 8? Alternatively you could rename these files to pikeman_true.* (instead of true_pikeman.*) and change the dds references in the .gr2 using Nexus Buddy.

But designating the path is an easy fix.
 
I'm trying to use the unit in my mod, and I think I found the source of the problems. When using

Code:
<Model>true_pikeman.fxsxml</Model>

It becomes '1' in the database. So it seems the game interprets it as 'true' and converts to 1 (as SQLite doesn't have boolean values). So to solve this problem, you need to rename the .fxsxml file, or use SQL (using the full path should work too).
 
Top Bottom