Tutorial: Converting 3D Art from Civ 5/Civ BE to Civ 6

@Deliverator thanks for willing to help :)

i got a red coloured error message in asset Editor :

-----------> " Entity: 'Archer_Japan' has class: 'DecalMaterial', but is bound to parameter: 'Material' which does not accept this class.
Starting error propagation from 'Archer_Japan'
--------------
Geo: Archer_Japan has a mesh 'Material#M' containing a material with no name. THIS IS AN EXPORTER/SOURCE FILE BUG! " -----------<

for the mtl file in "Class Name" i Chosen "Decal Material" but what is the right material class for a unit ?
 
@Deliverator
for the mtl file in "Class Name" i Chosen "Decal Material" but what is the right material class for a unit ?

The correct material class for a unit is called "Unit". You can check this by looking at any of the vanilla *.mtl that are used in Unit .ast files: <m_ClassName text="Unit"/>
 
now the model Show up in asset Editor...Image is attached. :) thats really cool and as you can see it is the Archer Japan from Danrell Civ V Ancient Japan Unit Pack, cause i will try to convert as much as possible of the ancient Units from him :)

now i have to figure out the Animation-part..... :)

thank you so Far Deliverator
 

Attachments

  • Unbenannt.png
    Unbenannt.png
    803.3 KB · Views: 241
ok, got the first Animation Setup ready, and the model still Show up in asset Editor...but now there is something i do not undertstand again :
step 17 where i have to reference the unitsartdef to the unit_binsartdef ?????

by now i have build the mod and everything seems to work fine until.....well....the unit appears ingame.....thats not my model , thats the warrior unit....so something is not correct by now
 
Last edited:
step 17 where i have to reference the unitsartdef to the unit_binsartdef ?????

The units.artdef is where you combine the art components you added to unit_bins.artdef into a unit. So in your unit_bins.artdef you will have located say your "Japanese _Bow" under "Weapons". So then for your unit member in your "UnitMemberTypes" collection of the units.artdef you would reference it like Weapons/Japanese_Bow. Then you reference your new unit member in your "Units" collection. The easiest way to do this is to copy a similar unit, rename it and and add your art to the "Bins".
upload_2017-4-30_15-0-11.png
 
Last edited:
ok, got the first Animation Setup ready, and the model still Show up in asset Editor...but now there is something i do not undertstand again :
step 17 where i have to reference the unitsartdef to the unit_binsartdef ?????

by now i have build the mod and everything seems to work fine until.....well....the unit appears ingame.....thats not my model , thats the warrior unit....so something is not correct by now

This Modbuddy project will show you how everything hangs together.

The Unit_Bins.artdef contains a UnitAttachmentBins Element that looks like this in raw XML:
Code:
<Element>
            <m_CollectionName text="UnitAttachmentBins"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values/>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Groups"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values/>
                            </m_Fields>
                            <m_ChildCollections>
                                <Element>
                                    <m_CollectionName text="Cultures"/>
                                    <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                    <Element>
                                        <m_Fields>
                                            <m_Values>
                                                <Element class="AssetObjects::ArtDefReferenceValue">
                                                    <m_ElementName text=""/>
                                                    <m_RootCollectionName text="UnitTintTypes"/>
                                                    <m_ArtDefPath text=""/>
                                                    <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                                    <m_TemplateName text=""/>
                                                    <m_ParamName text="Tint"/>
                                                </Element>
                                            </m_Values>
                                        </m_Fields>
                                        <m_ChildCollections>
                                            <Element>
                                                <m_CollectionName text="Assets"/>
                                                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                                <Element>
                                                    <m_Fields>
                                                        <m_Values>
                                                            <Element class="AssetObjects::BLPEntryValue">
                                                                <m_EntryName text="T34_Tank"/>   <!-- This refers to your entry name in the .xlp file -->
                                                                <m_XLPClass text="Unit"/>
                                                                <m_XLPPath text="Units.xlp"/>     <!-- This is the name of the .xlp file -->
                                                                <m_BLPPackage text="units/units"/>   <!-- This is the name of the .blp file created by the .xlp file - the .blp won't exist until you build out your mod -->
                                                                <m_LibraryName text="Unit"/>
                                                                <m_ParamName text="Asset"/>
                                                            </Element>
                                                            <Element class="AssetObjects::FloatValue">
                                                                <m_fValue>1.000000</m_fValue>
                                                                <m_ParamName text="Scale"/>
                                                            </Element>
                                                        </m_Values>
                                                    </m_Fields>
                                                    <m_ChildCollections/>
                                                    <m_Name text="T34_Tank"/>
                                                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                                </Element>
                                            </Element>
                                        </m_ChildCollections>
                                        <m_Name text="Any"/>
                                        <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                    </Element>
                                </Element>
                            </m_ChildCollections>
                            <m_Name text="T34_Tank"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="Vehicle"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>

The .xlp file is the XML spec for an assets package - when the mod is built out the referenced Assets will be cooked into a .blp file.

The .xlp file looks like this in raw XML:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects::XLP>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>253</build>
        <revision>867</revision>
    </m_Version>
    <m_ClassName text="Unit"/>
    <m_PackageName text="units/units"/>  <!-- controls the name of the resulting .blp package -->
    <m_Entries>
        <Element>
            <m_EntryID text="T34_Tank"/>   <!-- the EntryName referenced from the UnitAttachmentBins entry -->
            <m_ObjectName text="T34_Tank"/>  <!-- the name of the Asset (.ast file) -->
        </Element>
    </m_Entries>
    <m_AllowedPlatforms>
        <Element>WINDOWS</Element>
        <Element>LINUX</Element>
        <Element>MACOS</Element>
        <Element>IOS</Element>
    </m_AllowedPlatforms>
</AssetObjects::XLP>

Also make sure that your Mod.Art.xml has the same entries as in the example.
 
hello....even after hours...my unit doesnt appear in game....there is no unit model ingame now....so i hope someone will look into my files :

Unit_Bins.artdef :

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects:ArtDefSet>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>260</build>
        <revision>754</revision>
    </m_Version>
    <m_TemplateName text="Units"/>
    <m_RootCollections>
        <Element>
            <m_CollectionName text="Units"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitMovementTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitFormationTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="MemberCombat"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitCombat"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="CombatAttack"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitFormationLayoutTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="CombatFormation"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitDomainTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitAttachmentBins"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values/>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Groups"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values/>
                            </m_Fields>
                            <m_ChildCollections>
                                <Element>
                                    <m_CollectionName text="Cultures"/>
                                    <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                    <Element>
                                        <m_Fields>
                                            <m_Values>
                                                <Element class="AssetObjects:ArtDefReferenceValue">
                                                    <m_ElementName text=""/>
                                                    <m_RootCollectionName text="UnitTintTypes"/>
                                                    <m_ArtDefPath text=""/>
                                                    <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                                    <m_TemplateName text=""/>
                                                    <m_ParamName text="Tint"/>
                                                </Element>
                                            </m_Values>
                                        </m_Fields>
                                        <m_ChildCollections>
                                            <Element>
                                                <m_CollectionName text="Assets"/>
                                                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                                <Element>
                                                    <m_Fields>
                                                        <m_Values>
                                                            <Element class="AssetObjects:BLPEntryValue">
                                                                <m_EntryName text="Archer_Japan"/>
                                                                <m_XLPClass text="Unit"/>
                                                                <m_XLPPath text="Archer_Japan.xlp"/>
                                                                <m_BLPPackage text="units/units"/>
                                                                <m_LibraryName text="Unit"/>
                                                                <m_ParamName text="Asset"/>
                                                            </Element>
                                                            <Element class="AssetObjects:FloatValue">
                                                                <m_fValue>1.000000</m_fValue>
                                                                <m_ParamName text="Scale"/>
                                                            </Element>
                                                        </m_Values>
                                                    </m_Fields>
                                                    <m_ChildCollections/>
                                                    <m_Name text="Archer_Japan"/>
                                                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                                </Element>
                                            </Element>
                                        </m_ChildCollections>
                                        <m_Name text="Any"/>
                                        <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                    </Element>
                                </Element>
                            </m_ChildCollections>
                            <m_Name text="Archer_Japan"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                        <Element>
                            <m_Fields>
                                <m_Values/>
                            </m_Fields>
                            <m_ChildCollections>
                                <Element>
                                    <m_CollectionName text="Cultures"/>
                                    <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                </Element>
                            </m_ChildCollections>
                            <m_Name text=""/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text=""/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
        <Element>
            <m_CollectionName text="UnitMemberTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="Archer"/>
                            <m_RootCollectionName text="UnitMovementTypes"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="Movement"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="ArcherCombat"/>
                            <m_RootCollectionName text="MemberCombat"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="Combat"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="DEFAULT"/>
                            <m_RootCollectionName text="MaterialTypes"/>
                            <m_ArtDefPath text="VFX.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="VFX"/>
                            <m_ParamName text="VFXMaterialType"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="DEFAULT"/>
                            <m_RootCollectionName text="MaterialTypes"/>
                            <m_ArtDefPath text="VFX.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="VFX"/>
                            <m_ParamName text="VFXWeaponImpact"/>
                        </Element>
                        <Element class="AssetObjects:FloatValue">
                            <m_fValue>0.000000</m_fValue>
                            <m_ParamName text="ImpactHeightOverride"/>
                        </Element>
                    </m_Values>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Cultures"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values/>
                            </m_Fields>
                            <m_ChildCollections>
                                <Element>
                                    <m_CollectionName text="Variations"/>
                                    <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                    <Element>
                                        <m_Fields>
                                            <m_Values>
                                                <Element class="AssetObjects:FloatValue">
                                                    <m_fValue>1.000000</m_fValue>
                                                    <m_ParamName text="Scale"/>
                                                </Element>
                                                <Element class="AssetObjects:BoolValue">
                                                    <m_bValue>false</m_bValue>
                                                    <m_ParamName text="IsAttachment"/>
                                                </Element>
                                            </m_Values>
                                        </m_Fields>
                                        <m_ChildCollections>
                                            <Element>
                                                <m_CollectionName text="Attachments"/>
                                                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                                <Element>
                                                    <m_Fields>
                                                        <m_Values>
                                                            <Element class="AssetObjects:StringValue">
                                                                <m_Value text=""/>
                                                                <m_ParamName text="Point"/>
                                                            </Element>
                                                            <Element class="AssetObjects:ArtDefReferenceValue">
                                                                <m_ElementName text=""/>
                                                                <m_RootCollectionName text="UnitTintTypes"/>
                                                                <m_ArtDefPath text=""/>
                                                                <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                                                <m_TemplateName text=""/>
                                                                <m_ParamName text="Tint"/>
                                                            </Element>
                                                        </m_Values>
                                                    </m_Fields>
                                                    <m_ChildCollections>
                                                        <Element>
                                                            <m_CollectionName text="Bins"/>
                                                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                                            <Element>
                                                                <m_Fields>
                                                                    <m_Values/>
                                                                </m_Fields>
                                                                <m_ChildCollections/>
                                                                <m_Name text="Archer_Japan"/>
                                                                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                                            </Element>
                                                        </Element>
                                                    </m_ChildCollections>
                                                    <m_Name text="Archer_Japan"/>
                                                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                                </Element>
                                            </Element>
                                        </m_ChildCollections>
                                        <m_Name text="Archer_Japan"/>
                                        <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                    </Element>
                                </Element>
                            </m_ChildCollections>
                            <m_Name text="Any"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="Archer_Japan"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
        <Element>
            <m_CollectionName text="UnitTintTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitGlobals"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
    </m_RootCollections>
</AssetObjects:ArtDefSet>
 
Units.artdef :

Code:
version="1.0" encoding="UTF-8" ?>
<AssetObjects:ArtDefSet>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>260</build>
        <revision>754</revision>
    </m_Version>
    <m_TemplateName text="Units"/>
    <m_RootCollections>
        <Element>
            <m_CollectionName text="Units"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="Archer"/>
                            <m_RootCollectionName text="UnitFormationTypes"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>false</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="Formation"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="Archer"/>
                            <m_RootCollectionName text="UnitCombat"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>false</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="UnitCombat"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="WarriorEscort"/>
                            <m_RootCollectionName text="UnitFormationTypes"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="EscortFormation"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="UNIT_ANCIENTEMBARK"/>
                            <m_RootCollectionName text="Units"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="EmbarkedUnit"/>
                        </Element>
                        <Element class="AssetObjects:BoolValue">
                            <m_bValue>false</m_bValue>
                            <m_ParamName text="DoNotDisplayCharges"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="UnitCulture"/>
                            <m_ArtDefPath text="Cultures.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="Culture"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="Era"/>
                            <m_ArtDefPath text="Eras.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="Era"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="Units"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="ProxyUnit"/>
                        </Element>
                        <Element class="AssetObjects:BoolValue">
                            <m_bValue>false</m_bValue>
                            <m_ParamName text="PlayDeathOnDestroy"/>
                        </Element>
                        <Element class="AssetObjects:IntValue">
                            <m_nValue>0</m_nValue>
                            <m_ParamName text="DisplayLevel"/>
                        </Element>
                    </m_Values>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Members"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects:FloatValue">
                                        <m_fValue>1.000000</m_fValue>
                                        <m_ParamName text="Scale"/>
                                    </Element>
                                    <Element class="AssetObjects:IntValue">
                                        <m_nValue>4</m_nValue>
                                        <m_ParamName text="Count"/>
                                    </Element>
                                    <Element class="AssetObjects:ArtDefReferenceValue">
                                        <m_ElementName text="Archer_Japan"/>
                                        <m_RootCollectionName text="UnitMemberTypes"/>
                                        <m_ArtDefPath text="Units.artdef"/>
                                        <m_CollectionIsLocked>false</m_CollectionIsLocked>
                                        <m_TemplateName text=""/>
                                        <m_ParamName text="Type"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="Archer_Japan"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                    <Element>
                        <m_CollectionName text="Audio"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects:StringValue">
                                        <m_Value text=""/>
                                        <m_ParamName text="XrefName"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="Entry"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects:StringValue">
                                        <m_Value text="Archer"/>
                                        <m_ParamName text="XrefName"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="ARCHER"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="UNIT_ARCHER_JAPAN"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
        <Element>
            <m_CollectionName text="UnitMovementTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitFormationTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="MemberCombat"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitCombat"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="CombatAttack"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitFormationLayoutTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="CombatFormation"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitDomainTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitAttachmentBins"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitMemberTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="Archer"/>
                            <m_RootCollectionName text="UnitMovementTypes"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="Movement"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="ArcherCombat"/>
                            <m_RootCollectionName text="MemberCombat"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="Combat"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="DEFAULT"/>
                            <m_RootCollectionName text="MaterialTypes"/>
                            <m_ArtDefPath text="VFX.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="VFX"/>
                            <m_ParamName text="VFXMaterialType"/>
                        </Element>
                        <Element class="AssetObjects:ArtDefReferenceValue">
                            <m_ElementName text="DEFAULT"/>
                            <m_RootCollectionName text="MaterialTypes"/>
                            <m_ArtDefPath text="VFX.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="VFX"/>
                            <m_ParamName text="VFXWeaponImpact"/>
                        </Element>
                        <Element class="AssetObjects:FloatValue">
                            <m_fValue>0.000000</m_fValue>
                            <m_ParamName text="ImpactHeightOverride"/>
                        </Element>
                    </m_Values>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Cultures"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values/>
                            </m_Fields>
                            <m_ChildCollections>
                                <Element>
                                    <m_CollectionName text="Variations"/>
                                    <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                    <Element>
                                        <m_Fields>
                                            <m_Values>
                                                <Element class="AssetObjects:FloatValue">
                                                    <m_fValue>1.000000</m_fValue>
                                                    <m_ParamName text="Scale"/>
                                                </Element>
                                                <Element class="AssetObjects:BoolValue">
                                                    <m_bValue>false</m_bValue>
                                                    <m_ParamName text="IsAttachment"/>
                                                </Element>
                                            </m_Values>
                                        </m_Fields>
                                        <m_ChildCollections>
                                            <Element>
                                                <m_CollectionName text="Attachments"/>
                                                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                                <Element>
                                                    <m_Fields>
                                                        <m_Values>
                                                            <Element class="AssetObjects:StringValue">
                                                                <m_Value text=""/>
                                                                <m_ParamName text="Point"/>
                                                            </Element>
                                                            <Element class="AssetObjects:ArtDefReferenceValue">
                                                                <m_ElementName text=""/>
                                                                <m_RootCollectionName text="UnitTintTypes"/>
                                                                <m_ArtDefPath text=""/>
                                                                <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                                                <m_TemplateName text=""/>
                                                                <m_ParamName text="Tint"/>
                                                            </Element>
                                                        </m_Values>
                                                    </m_Fields>
                                                    <m_ChildCollections>
                                                        <Element>
                                                            <m_CollectionName text="Bins"/>
                                                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                                            <Element>
                                                                <m_Fields>
                                                                    <m_Values/>
                                                                </m_Fields>
                                                                <m_ChildCollections/>
                                                                <m_Name text="Archer_Japan"/>
                                                                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                                            </Element>
                                                        </Element>
                                                    </m_ChildCollections>
                                                    <m_Name text="Archer_Japan"/>
                                                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                                </Element>
                                            </Element>
                                        </m_ChildCollections>
                                        <m_Name text="Archer_Japan"/>
                                        <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                                    </Element>
                                </Element>
                            </m_ChildCollections>
                            <m_Name text="Any"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="Archer_Japan"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
        <Element>
            <m_CollectionName text="UnitTintTypes"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
        <Element>
            <m_CollectionName text="UnitGlobals"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
        </Element>
    </m_RootCollections>
</AssetObjects:ArtDefSet>
 
@lasttry Maybe upload you whole Modbuddy project and then we can take a look at it.
 
One of the important tags did not have a name in your unit_bins.artdef file so I just called it Units and updated the reference to be Units/Archer_Japan in the units.artdef.
Looks like your structure was a bit out of wack so I tidied that. Also you had unit member in your unit_bins as well as units files so I removed it from unit_bins.
The Build Actions on your Unit_Bins.arfdef was not set to ArtDef nor you Archer_Japan.xlp set to XLP. The art files that get cooked into blp's can be set to build type none as they don't need to be included with the build.

If you look at the cooker log the civ6 animations will not work with your unit due to the fact that they are bound to Root (and other bones) and will not work with point_WORLD. Deliverator can probably explain this better than I can.

Well done. This artdef part of Civ6 modding is not the easiest thing to figure out. :)

upload_2017-5-1_11-20-15.png
 

Attachments

Last edited:
Awesome :)) thank you, i will Download and Look through the Files later, when i am back on my PC.

Let me ask the following Things :

1 when the animations will not work because of this Root/point world thing, Would it not Be easier and faster to rig Civ v , BE , or Custom Models to existing Civ 6 Skeletons and animations ?

2 Is there a way to Import a Civ 6 Animation into Blender , and Play the animation when i am try to rig a Model to a Skeleton ? Thanks in Advance :)
 
1 when the animations will not work because of this Root/point world thing, Would it not Be easier and faster to rig Civ v , BE , or Custom Models to existing Civ 6 Skeletons and animations ?

Civ 5 animations work with Civ 5 models & skeletons and Civ 6 animations work with Civ 6 models & skeletons. You can't mix and match.

Yes, rigging to Civ 6 skeletons and animations is going to give smoother and better results and will be quicker and simpler. I would generally only import a complete Civ 5 unit including animations if there wasn't an equivalent appropriate animation set in Civ 6.

Also with the way that Civ 6 is more granular - the Armor, Body, Hats, Weapons are done separately so if you want your new unit to fit with the Civ 6 art style it might be better just to bring in parts of models and adapt/reskin Civ 6 models for the rest.

2 Is there a way to Import a Civ 6 Animation into Blender , and Play the animation when i am try to rig a Model to a Skeleton ? Thanks in Advance :)

Yes, there is. You can export the model to .nb2 format and the animations to .na2 format using CivNexus6 and the Blender scripts.

See Hoplite_ArmorA animated here:
 
That Is cool :) Seems like i have a lot of work to Do...i want more cultural diversity so that a japanese Archer Looks like a japanese Archer and not like a greek Archer...only one example Is that. So i will Start tomorrow with my First Unit and Hope that if i have Trouble again, i could ask you two guys another Time for help :)

Thank you very much @Deliverator and @Wolfdog :)
 
hmm....i got a question regarding the polycount....i browsed in vanilla ast files in the asset Editor to see the vertex Count of several armorparts. but for the archer there is , when i Combine the Count of Archer_Armor_A , Archer_Helmet_A and Archer_Bow a lower vertex Count as a result than in Archer_Preview.ast .....

Archer_Armor_A 2570
Archer_Helmet_A 195
Archer_Bow 428

but the whole preview archer : 8999 ( !!!!! )

please, could you give me an idea on how high i can go with vertex Count or what is the max Limit you for one usually use ? thanks in advance :)
 
hmm....i got a question regarding the polycount....i browsed in vanilla ast files in the asset Editor to see the vertex Count of several armorparts. but for the archer there is , when i Combine the Count of Archer_Armor_A , Archer_Helmet_A and Archer_Bow a lower vertex Count as a result than in Archer_Preview.ast .....

Archer_Armor_A 2570
Archer_Helmet_A 195
Archer_Bow 428

but the whole preview archer : 8999 ( !!!!! )

Archer_Preview isn't actually used in the game I don't think. There are quite a few .ast and other files in the SDK Assets pantry that aren't actually used in game, but are just from Firaxis' own development and testing. The Archer that is used in the game is assembly in the Units.artdef UnitMember data. That's where the different assets Armor, Hat, Bow, Head, Body and Arrow are put together.

please, could you give me an idea on how high i can go with vertex Count or what is the max Limit you for one usually use ? thanks in advance :)

I don't think you need to worry too much provided your vertex counts are in a similar ballpark as the vanilla ones. For units the Quadrireme is possibly the most complex with a vertex count of 7789. If you're going way past 10,000 vertices that is probably too complex for a unit, but I think on modern systems even 20,000 wouldn't cause too many issues. The consideration is performance - if you have lots of complex units on the screen at one time it is going to start slowing down the performance of the game.
 
Solved. For anyone got the Same Problem , take a Look Here : https://forums.civfanatics.com/thre...blender-and-re-import-to-civ-v-civ-be.564873/

so now i took a completely new custom Archer Model, and did the pose editing, and did the weight Transfer. now i wanted to Import a civ 6 Animation to see how it works...but now i see that i cannot Import .na2 Animation files to blender directly. could you tell me what i have to do to Import a Animation ?
 
Last edited:
Solved. For anyone got the Same Problem , take a Look Here : https://forums.civfanatics.com/thre...blender-and-re-import-to-civ-v-civ-be.564873/

so now i took a completely new custom Archer Model, and did the pose editing, and did the weight Transfer. now i wanted to Import a civ 6 Animation to see how it works...but now i see that i cannot Import .na2 Animation files to blender directly. could you tell me what i have to do to Import a Animation ?

Glad you managed to figure things out. Very few people get as far as you have so well done. I might look to convert the .na2 import script to Blender 2.7+ at some point seeing as 2.7+ FBX import for animation seems to be reliable AFAIK.
 
Thanks, But i still have a lot to learn. I think i will Need help again soon . Yes that Would Be cool if you Would convert the .na2 Import Script to Blender 2.7 in the Future :) , we will See :)
 
And Here Is already a question i have : i remember in Civ v it was possible to have Different meshes for one Model. And Different meshes had Different texture. So Archer Japan could had for example mesh 1 with texture diffuse 1 and mesh 2 with texture diffuse 2 , mesh 3 with diffuse 3 and so on...

So if i want in Civ 6 for example the new Archer armor a , Based on for example three Different meshes , all of them have their Own diffuse and normal and gloss map textures, Is that possible ? Or i have to Split one Model into three Different Models and then combine and Reference them in the Ast file Or the Artdef Files ?

I have Samurai Models and Building Models with a lot of Different meshes and several textures for one Model...do not want to make a new uv map with a Place for all texture Parts
 
Back
Top Bottom