1. We have added the ability to collapse/expand forum categories and widgets on forum home.
    Dismiss Notice
  2. All Civ avatars are brought back and available for selection in the Avatar Gallery! There are 945 avatars total.
    Dismiss Notice
  3. To make the site more secure, we have installed SSL certificates and enabled HTTPS for both the main site and forums.
    Dismiss Notice
  4. Civ6 is released! Order now! (Amazon US | Amazon UK | Amazon CA | Amazon DE | Amazon FR)
    Dismiss Notice
  5. Dismiss Notice
  6. Forum account upgrades are available for ad-free browsing.
    Dismiss Notice

Winter Patch: Adding Icons and ArtDefs

Discussion in 'Civ6 - Modding Tutorials & Reference' started by PlotinusRedux, Dec 21, 2016.

  1. Magil

    Magil Monarch

    Joined:
    Sep 26, 2010
    Messages:
    1,371
    That's really cool.
     
  2. Horem

    Horem Chieftain

    Joined:
    Apr 1, 2010
    Messages:
    1,707
    Location:
    Wales, UK
    Was that a simple copy and replace? (pre summer patch it caused the buildings to be invisible). Also was it the same size building and have you tried different size buildings on the plots? (I thought the wrong size building for the plot size is what caused the buildings to be invisible)
     
  3. Magil

    Magil Monarch

    Joined:
    Sep 26, 2010
    Messages:
    1,371
    I tried a few combinations, and it "works". I was able to make a Palace building appear in an Acropolis district, and it just clipped through the center structure. I'm guessing you need to use a building that goes in the same place as another building in the district would go for it to work properly.
     
  4. CivilizationAce

    CivilizationAce Chieftain

    Joined:
    Jan 17, 2017
    Messages:
    234
    Gender:
    Male
    So there's no sign of an offset for the location of the buildings?
     
  5. Magil

    Magil Monarch

    Joined:
    Sep 26, 2010
    Messages:
    1,371
    I'm not certain. My testing was somewhat quick and limited.
     
  6. CivilizationAce

    CivilizationAce Chieftain

    Joined:
    Jan 17, 2017
    Messages:
    234
    Gender:
    Male
    I've followed all the instructions above to import a new icon for the my new civilization but it doesn't work, but I think I know why. My original .dds files are all .dds A8R8G8B8 (without Mip Map) with an alpha channel, white and transparent. When I've used Asset Editor to import them as class UserInterface the transparent background has become black.

    I'll experiment, but I'm unsure how to proceed.

    Please help.
     
    Last edited: Mar 22, 2017
  7. CivilizationAce

    CivilizationAce Chieftain

    Joined:
    Jan 17, 2017
    Messages:
    234
    Gender:
    Male
    So I've tried editing the black background files (my theory being that at least they're in the right format) using Gimp 2:
    1. Drag a file into Gimp 2 to open it.
    2. Use the color picker to select the black.
    3. Hit delete.
      • At this point the black disappears and I seem to have successfully created the image I need, white with a transparent background.
    4. From the File menu I use "Overwrite…"
    5. Rinse and repeat for all the other sized files, 22, 30, 36, 44, 45, 48, 50, 64, 80, 200, 256.
    6. Finally I use Add\Existing Item… in ModBuddy to pick up all the .dds and .tex files (which were already in the right place thanks to Asset Editor).
    When I open Civ and click Create a game my new civilization icon still does not appear.

    I wonder if the file format was changed when I overwrote it, but I don't know how to tell the format.

    It might be easier if I knew how to save directly into the correct format from Gimp 2 or Paint.net — Anyone know how to do that please?
     
  8. The googles do nothing

    The googles do nothing Chieftain

    Joined:
    Feb 5, 2017
    Messages:
    25
    Gender:
    Male
    I've been able to get a new improvement to appear. The Strategic View doesn't work though.

    .dep file:

    Code:
        <SystemDependencies>
            <Element>
                <!-- The type of thing you are adding -->
                <ConsumerName text="Improvements"/>
                <ArtDefDependencyPaths>
                    <!-- The name of the file you are adding,
                         seems to have to be the same as a base
                         file name -->
                    <Element text="Improvements.artdef"/>
                    <Element text="Landmarks.artdef"/>
                    <Element text="StrategicView.artdef"/>
                </ArtDefDependencyPaths>
                <LibraryDependencies/>
                <LoadsLibraries>true</LoadsLibraries>
            </Element>
    Improvements.artdef:

    Code:
    <?xml version="1.0" encoding="UTF-8" ?>
    <AssetObjects::ArtDefSet>
        <m_Version>
            <major>4</major>
            <minor>0</minor>
            <build>243</build>
            <revision>870</revision>
        </m_Version>
        <m_TemplateName text="Improvements"/>
        <m_RootCollections>
            <Element>
                <m_CollectionName text="Improvement"/>
                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                <Element>
                    <m_Fields>
                        <m_Values/>
                    </m_Fields>
                    <m_ChildCollections>
                        <Element>
                            <m_CollectionName text="Audio"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        </Element>
                        <Element>
                            <m_CollectionName text="StrategicView"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                            <Element>
                                <m_Fields>
                                    <m_Values>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="StaveChurch"/>
                                            <m_RootCollectionName text="Buildings"/>
                                            <m_ArtDefPath text="StrategicView.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text="StrategicView"/>
                                            <m_ParamName text="XrefName"/>
                                        </Element>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="Completed"/>
                                            <m_RootCollectionName text="BuildStates"/>
                                            <m_ArtDefPath text="Buildings.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text="Buildings"/>
                                            <m_ParamName text="State"/>
                                        </Element>
                                    </m_Values>
                                </m_Fields>
                                <m_ChildCollections/>
                                <m_Name text="StrategicView"/>
                                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                            </Element>
                            <Element>
                                <m_Fields>
                                    <m_Values>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="StaveChurch_Pillaged"/>
                                            <m_RootCollectionName text="Improvements"/>
                                            <m_ArtDefPath text="StrategicView.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text="StrategicView"/>
                                            <m_ParamName text="XrefName"/>
                                        </Element>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="Pillaged"/>
                                            <m_RootCollectionName text="BuildStates"/>
                                            <m_ArtDefPath text="Buildings.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text="Buildings"/>
                                            <m_ParamName text="State"/>
                                        </Element>
                                    </m_Values>
                                </m_Fields>
                                <m_ChildCollections/>
                                <m_Name text="StrategicView001"/>
                                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                            </Element>
                        </Element>
                        <Element>
                            <m_CollectionName text="Clutter"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        </Element>
                        <Element>
                            <m_CollectionName text="Landmark"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                            <Element>
                                <m_Fields>
                                    <m_Values>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="LM_STAVE_CHURCH"/>
                                            <m_RootCollectionName text="Landmarks"/>
                                            <m_ArtDefPath text="Landmarks.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text="Landmarks"/>
                                            <m_ParamName text="Xref"/>
                                        </Element>
                                        <Element class="AssetObjects::BoolValue">
                                            <m_bValue>true</m_bValue>
                                            <m_ParamName text="SuppressResource"/>
                                        </Element>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="ANYTHING"/>
                                            <m_RootCollectionName text=""/>
                                            <m_ArtDefPath text=""/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text=""/>
                                            <m_ParamName text="WhenAdjacentTo"/>
                                        </Element>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="AncientWallSet"/>
                                            <m_RootCollectionName text="WallSet"/>
                                            <m_ArtDefPath text="Walls.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text="DynamicGeo"/>
                                            <m_ParamName text="Fence"/>
                                        </Element>
                                    </m_Values>
                                </m_Fields>
                                <m_ChildCollections>
                                    <Element>
                                        <m_CollectionName text="WhenAffectedBy"/>
                                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                                    </Element>
                                </m_ChildCollections>
                                <m_Name text="Landmark1"/>
                                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                            </Element>
                        </Element>
                        <Element>
                            <m_CollectionName text="ClutterVariants"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        </Element>
                        <Element>
                            <m_CollectionName text="Lighting"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        </Element>
                        <Element>
                            <m_CollectionName text="Activity"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        </Element>
                        <Element>
                            <m_CollectionName text="GreatWall"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        </Element>
                    </m_ChildCollections>
                    <m_Name text="IMPROVEMENT_STAVE_CHURCH"/>
                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                </Element>
            </Element>
            <Element>
                <m_CollectionName text="BuildStates"/>
                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            </Element>
        </m_RootCollections>
    </AssetObjects::ArtDefSet>
    
    Landmarks.artdef
    Code:
    <?xml version="1.0" encoding="UTF-8" ?>
    <AssetObjects::ArtDefSet>
        <m_Version>
            <major>4</major>
            <minor>0</minor>
            <build>245</build>
            <revision>187</revision>
        </m_Version>
        <m_TemplateName text="Landmarks"/>
        <m_RootCollections>
            <Element>
                <m_CollectionName text="Landmarks"/>
                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                <Element>
                    <m_Fields>
                        <m_Values>
                            <Element class="AssetObjects::BoolValue">
                                <m_bValue>true</m_bValue>
                                <m_ParamName text="FlattenTerrain"/>
                            </Element>
                            <Element class="AssetObjects::StringValue">
                                <m_Value text="ONLY_FIRST_60"/>
                                <m_ParamName text="RotationType"/>
                            </Element>
                        </m_Values>
                    </m_Fields>
                    <m_ChildCollections>
                        <Element>
                            <m_CollectionName text="Eras"/>
                            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                            <Element>
                                <m_Fields>
                                    <m_Values>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="DEFAULT"/>
                                            <m_RootCollectionName text="ArtEra"/>
                                            <m_ArtDefPath text="Eras.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text=""/>
                                            <m_ParamName text="Tag_Era"/>
                                        </Element>
                                        <Element class="AssetObjects::BLPEntryValue">
                                            <m_EntryName text="DIS_REL_StaveChurch"/>
                                            <m_XLPClass text="TileBase"/>
                                            <m_XLPPath text="hero_buildings.xlp"/>
                                            <m_BLPPackage text="landmarks/hero_buildings"/>
                                            <m_LibraryName text="TileBase"/>
                                            <m_ParamName text="Asset"/>
                                        </Element>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="DEFAULT"/>
                                            <m_RootCollectionName text="Culture"/>
                                            <m_ArtDefPath text="Cultures.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text=""/>
                                            <m_ParamName text="Tag_Culture"/>
                                        </Element>
                                        <Element class="AssetObjects::ArtDefReferenceValue">
                                            <m_ElementName text="ANY"/>
                                            <m_RootCollectionName text="AppealTags"/>
                                            <m_ArtDefPath text="Appeal.artdef"/>
                                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                            <m_TemplateName text=""/>
                                            <m_ParamName text="Tag_Appeal"/>
                                        </Element>
                                    </m_Values>
                                </m_Fields>
                                <m_ChildCollections/>
                                <m_Name text="Eras001"/>
                                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                            </Element>
                        </Element>
                    </m_ChildCollections>
                    <m_Name text="LM_STAVE_CHURCH"/>
                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                </Element>
            </Element>
    
        </m_RootCollections>
    </AssetObjects::ArtDefSet>
    
     
  9. FurionHuang

    FurionHuang Chieftain

    Joined:
    Apr 27, 2017
    Messages:
    23
    Gender:
    Male
    I'm trying to understand it, at least most part of it looks comprehensive to me. But it's not quite clear to me what is the use of Index value under IconDefinitions. Could you explain a little?
    Thanks!
     
  10. FurionHuang

    FurionHuang Chieftain

    Joined:
    Apr 27, 2017
    Messages:
    23
    Gender:
    Male
    I have a same issue, and more weird I got Alexander appeared as my leader icon! Me and my "modbuddies" are now joking that Alexander is practicing "To Mods end"...
     
  11. FurionHuang

    FurionHuang Chieftain

    Joined:
    Apr 27, 2017
    Messages:
    23
    Gender:
    Male
    By the way, does anyone know why my Leader Profile shows BLUE in the setup screen? When I preview it in Photoshop the color looks normal. So to this question, what's the best export format for DDS out of Photoshop? I was using 8.8.8.8 ARGB 32bit. Could it be some other format that's actually required?

    Cheers.
     
  12. sukritact

    sukritact Artist and Modder

    Joined:
    Sep 21, 2010
    Messages:
    2,742
    Location:
    Bangkok
    A bit late, but based off my work for the Rock-Hewn Church, the building is offset within the model itself (So the temple isn't located at 0,0,0 of the model for example).
     
  13. FurionHuang

    FurionHuang Chieftain

    Joined:
    Apr 27, 2017
    Messages:
    23
    Gender:
    Male
    When setting up the building artdefs I found some building base parameters, I bet that's where we tell the game to locate the building in a tile. I wonder what if we tell it to locate a building next to river/mountain while there's no such adjacent feature?
     

Share This Page