Attachment System for 3D Graphics (Potentially good news for graphical modding)

Deliverator

Graphical Hackificator
Joined
Feb 12, 2008
Messages
4,813
Location
London, UK
From this article:

"The graphics engine is completely new, as an artist that’s my thing! There’s a lot of new technology there, we have a much more realistic shading system so you can simulate all kinds of different materials, the lighting system has been overhauled – we have time of day now. One of my favourite things is we have wonder movies now. In Civ V we had paintings and a lot of people said they missed the timelapse of wonder movies from Civ IV, so we wanted to do that in real time.

Civ V has mod support built-in via Steam workshop, will this functionality come with Civ VI as well?

Absolutely. We’re very aware of the mod community and we’ve taken more strides on Civ VI to make sure that that’s accessible. Everytime we talk about the future we talk about how modders are going to be able to interact with the game. We’re very excited to see what they do, they always come up with very fun ideas.

There’s a lot of things they can do that are simple, for example our cities now have cultural attachments. In Civ V we just added a base drive, we didn’t have a lot of variety other than unique things, like Japan has a samurai, but their swordsman looked the same as everyone else. Now we’ve gone to the effort of making skin tones for everybody, very unique weapons and armour, and we started with a cultural set – we have a European set. We don’t have a French and English set but that’s the kind of stuff that’s really easy for modders to get into. They don’t have to do any new animation because the way the attachment system works, they just need the model to be attached to the basic elements and they’ll play well with what’s already there."

That last bit indicates that modding Civ VI 3D units and (hopefully) leaders will be significantly different to Civ V. My guess is that you will be able to import 3D objects and "attach" them to existing skeletons/animations to create new custom units/leaders. Very interesting.

I can see this working well for replacing armour/weapons for existing units but hopefully more complete unit overhauls/replacements will be possible too.
 
They don’t have to do any new animation because the way the attachment system works, they just need the model to be attached to the basic elements and they’ll play well with what’s already there."

That last bit indicates that modding Civ VI 3D units and (hopefully) leaders will be significantly different to Civ V. My guess is that you will be able to import 3D objects and "attach" them to existing skeletons/animations to create new custom units/leaders. Very interesting.

I hope that this will apply to wonder animations as well.
 
That sounds awesome! The only thing is that it sounds like it pertains only to rigs. What about custom units like dragons? How can you tie them to existing animation sets?

Yeah, it does sound like they have genuinely thought through how to set up better support for 3D graphics modding and lower the barrier to entry. Hopefully it will still be possibly to do full imports of models with animations. My guess is there'll be a First Look next week on Modding and Multiplayer. We shall see!
 
If it's anything like i'm imagining, then this is exactly what i had hoped for. If they actually provide us with a program to attach our models to their models, that'll be perfect.

Rome 2 had a very similiar system, where you just mixed and matched the different pieces of clothing on the units, and so could create new units really easily. To be able to that, and also add our own models would be the perfect solution to all our civ 5 problems.
 
This is absolutely phenomenal if it's true. I hope it's as simple as they imply it will be. I guess we'll find out sooner or later (hopefully sooner)!

I've got a bunch of models ready just in case!
 
It will be particularly great if it eliminates the need for modders to have to request 3D rigs from anyone - they could do it themselves. That way, it will allow the 3D model and animation specialists to focus on custom animations and effects. :)
 
Do you know what applications are used in generally to create unit models for Civ series? I heard Photoshop can be used with special additions.

I really want to put some Enlightenment era and WW1 units in the game (as well as railroads)
 
First test of the attachment system in the game:

slingaz.jpg


Simple XML changes and you can swap armour, hats, hair, bodies, weapons. It looks like you can recolour pretty much anything via XML.

For example, the different colours for the Barbarian horses are just done with two sets of RGB values - one for Brown, one for Black. If you wanted to add White as another variant you just add another set of RGB values in the XML. It's pretty clever how they've set it up.

If you want to experiment here's how I edited Units.artdef:

Code:
Before:
                                                <Element>
                                                    <m_Fields>
                                                        <m_Values>
                                                            <Element class="AssetObjects::StringValue">
                                                                <m_Value text="Hat"/>
                                                                <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"/>
                                                            <Element>
                                                                <m_Fields>
                                                                    <m_Values/>
                                                                </m_Fields>
                                                                <m_ChildCollections/>
                                                                <m_Name text="Hair/Male"/>
                                                            </Element>
                                                            <Element>
                                                                <m_Fields>
                                                                    <m_Values/>
                                                                </m_Fields>
                                                                <m_ChildCollections/>
                                                                <m_Name text="[empty] "/>
                                                            </Element>
                                                        </Element>
                                                    </m_ChildCollections>
                                                    <m_Name text="Hat"/>
                                                </Element>

After:

                                                <Element>
                                                    <m_Fields>
                                                        <m_Values>
                                                            <Element class="AssetObjects::StringValue">
                                                                <m_Value text="Hat"/>
                                                                <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"/>
                                                            <Element>
                                                                <m_Fields>
                                                                    <m_Values/>
                                                                </m_Fields>
                                                                <m_ChildCollections/>
                                                                <m_Name text="Hats/Horseman"/>
                                                            </Element>
                                                            <Element>
                                                                <m_Fields>
                                                                    <m_Values/>
                                                                </m_Fields>
                                                                <m_ChildCollections/>
                                                                <m_Name text="Hair/Male"/>
                                                            </Element>
                                                        </Element>
                                                    </m_ChildCollections>
                                                    <m_Name text="Hat"/>
                                                </Element>
 
Sounds (and looks !) great :D

Did you managed to make the change using a mod, or are you working on the original file ?

Because I haven't found how to edit or replace it using a mod yet (I've tried the <ImportFiles> tag in modinfo, it has worked for a new map script, but maybe I'm missing a tag to replace an existing file) which is an absolute pre-requisite for R.E.D (size/formation are in that file too)

there is also a <ModArt> tag that should work there, but without an example it's a bit difficult to guess how...
 
Sounds (and looks !) great :D

Did you managed to make the change using a mod, or are you working on the original file ?

Because I haven't found how to edit or replace it using a mod yet (I've tried the <ImportFiles> tag in modinfo, it has worked for a new map script, but maybe I'm missing a tag to replace an existing file) which is an absolute pre-requisite for R.E.D (size/formation are in that file too)

there is also a <ModArt> tag that should work there, but without an example it's a bit difficult to guess how...

Haven't tried via a mod yet. Just hacking at the Units.artdef directly. I'm guessing adding <ReloadUnitSystem>1</ReloadUnitSystem> to modinfo Properties like in Civ V doesn't do anything? I'd imagine they'll have a similar set up.
 
Some part of the database are familiar, but there are also a lot of differences, it's really not the same engine.

But thanks, I've not thought of trying this tag yet.
 
Last edited:
Oh my goodness. This is fantastic and gives me real hope for the future of CiV modding, particularly if the tools are as friendly!
 
So there will be no alpha-TeamColor for unit textures? Skin colour instead?

Not automatically but this can be achieved by setting up new Color values matching each civilization's colour scheme in Units.artdef. At the moment some (apparently arbitrary) colors are used based on Cultures for e.g. CV_EastAsian is orange. Changing everything use Civ colors by default would be doable with a bit of modding effort. The other issue is that not all the textures have alpha in the first place so they'd need to be replaced first for any background color to come through.
 
What would be kinda awesome is if the attachment system led to modellers creating and releasing individual kit rather then having to put all the work into complete unit art. Then people can just grab what they need for their UU from the download's section. Just search for the weapon, armour, hat, or clothes you want and put it together. Just have a unit kit download section on Civfanatics.

I might be asking a bit of 3D modellers there, but i think that surely that'd save more time for them personally, right?
 
What would be kinda awesome is if the attachment system led to modellers creating and releasing individual kit rather then having to put all the work into complete unit art. Then people can just grab what they need for their UU from the download's section. Just search for the weapon, armour, hat, or clothes you want and put it together. Just have a unit kit download section on Civfanatics.

I might be asking a bit of 3D modellers there, but i think that surely that'd save more time for them personally, right?

Kinda funny that you mention it, I actually was doing something somewhat similar in CiV with my Goblin, Orc, and Dwarf lineups. This certainly takes it to the next level and with greater ease. My worry isn't with rigs, however, but with custom animations. Re-rigging mix-n-match attachment kits may work fine for humanoid models, but units like dragons are an entirely different problem. The ease with which we can import custom animations and effects into Civ VI will determine how far we can go with TC mods in the fantasy/sci-fi genres.
 
Not automatically but this can be achieved by setting up new Color values matching each civilization's colour scheme in Units.artdef. At the moment some (apparently arbitrary) colors are used based on Cultures for e.g. CV_EastAsian is orange. Changing everything use Civ colors by default would be doable with a bit of modding effort. The other issue is that not all the textures have alpha in the first place so they'd need to be replaced first for any background color to come through.
Have you managed to find and extract textures by any chance? I need to have a look at them
 
Back
Top Bottom