Art Assets in Civilization 6: A Modding Guide

I'm trying to create a simple new unit using existing 3d assets. I tried to follow this guide but got confused. I started a new project, imported the .ast I wanted to edit (Spearman_ArmorB) and renamed it to "NewSpearman." I then opened it up in the asset preview and set the attachments I want...sooo..now what? I don't see anywhere in the .ast for specifying the new "attachments." I don't think I need the .mtl since I'm not changing the lighting or anything, just what models are attached to the armor (and the tint).

Sorry, I'm super new to anything with art assets..
For units you should go to Units.artdef and Unit_BIns.artdef (hope I remember the artdefs name correctly) and assign entries using these ast models. All attachments should be under each category of the members.
Say in Unit_Bins.artdef under "unitAttachmentBins", body armor should be under Armor (or whatever you name it but remember this for Units.artdef under UnitMemberTypes) using Root joint to anchor. Similarly weapon using InvenRHand joint probably under weapons or spears if you want to specific.
Also check the two artdef files in asset pantry. They can help you understand how it works.
 
Thanks man! I'll get on it now!

EDIT: Removed question, saw the answer.
 
Got it working 100% Thanks a lot for your guides Deliverator and FurionHuang!
 
Last edited:
I've made this diagram to give a rough overview of the entities involved in the Modbuddy asset cooking process:

civ-6-graphical-asset-erd-page-1-png.476216
 
I've made this diagram to give a rough overview of the entities involved in the Modbuddy asset cooking process:

civ-6-graphical-asset-erd-page-1-png.476216
Seeing ParticleEffect, I have one question:
Seems like asset VFX will go through solid geometries and show in the game no matter what. So how can I properly make a headlight for a unit let's say, without seeing the headlight when we are looking at the back of this unit?
 
I imported my .cn6 file into CivNexus6, but I ran into a couple issues.

1) My UV map did not show up. I am guessing I enter in the file name for my UV.tga file for TextureFromFileName under Edit Materials?, but it wont let me type or paste anything in the box.

upload_2017-8-22_19-1-33.png


2) Multiple faces on my model did not show up either.

upload_2017-8-22_19-4-8.png


It should look like this:

upload_2017-8-22_19-11-10.png


Any idea what I did wrong?
 
I imported my .cn6 file into CivNexus6, but I ran into a couple issues.

1) My UV map did not show up. I am guessing I enter in the file name for my UV.tga file for TextureFromFileName under Edit Materials?, but it wont let me type or paste anything in the box.

View attachment 476237

2) Multiple faces on my model did not show up either.

View attachment 476239

It should look like this:

View attachment 476241

Any idea what I did wrong?
You need to triangulate your mesh. Yours now is still a quad mesh.
Don't worry that happens to me a lot. Preview-"snap I need to triangulate it..."-reimport.
 
You need to triangulate your mesh. Yours now is still a quad mesh.
Don't worry that happens to me a lot. Preview-"snap I need to triangulate it..."-reimport.

That's right. In Blender you can add a Triangulate modifier and then apply it. Civ 6 like Civ 5 only deals in triangles not quads.

Textures won't appear in the Civ 6 (.fgx) Viewer. You will need to set up your Asset, Materials and Textures in Modbuddy and then use the Asset Previewer to view your model with textures. CivNexus6 is only used to add/edit/rename the Material Bindings not the Materials or Textures - these are done with the .mtl and .tex files in Modbuddy/Asset Editor.
 
Seeing ParticleEffect, I have one question:
Seems like asset VFX will go through solid geometries and show in the game no matter what. So how can I properly make a headlight for a unit let's say, without seeing the headlight when we are looking at the back of this unit?

I'm not sure that they always go through solid geometries. Have a play with the FX_* Assets using FireTuner - Asset Preview tab - you can use it place any asset into the game. There are some lights in there you could test with e.g. FX_Light_Blinker_Red.ast.
 
I'm not sure that they always go through solid geometries. Have a play with the FX_* Assets using FireTuner - Asset Preview tab - you can use it place any asset into the game. There are some lights in there you could test with e.g. FX_Light_Blinker_Red.ast.
I was using FX_Light_Steady_Red.ast and it is visible from the back. Though I have a pretty thin shell on the back I wonder maybe that's why. Let me try thicken the back shell.
 
Ok, thanks. I'm new to all of this and have a few more questions. Looking at Deliverator's guide and other forms I am trying to get a grasp on the steps for adding 3D art to my project. So I felt that making an outline/cheatsheet of all the steps would help me and possibly others out. So if you guys or anyone else knowledgeable in this stuff could take a look and make corrections/add missing parts it would be appreciated.

Each numbered step is the program that you would complete a certain action in. Then each entry under those is a general action that is done in that specific program, and the resulting file types of that action. And some parts I added a little more detail about the action. The parts I was not sure of or had a question about I put a ?, though there could be other stuff I missed to, maybe. After I can make sure everything is correct and filled out, I will make a more visually friendly version of this.

3D ART ASSET OUTLINE

1) Blender
- Create 3D Model (.blend) (must have a bone, must be triangulated)
- Create UV Map (.tga)
- Export 3D Model to .cn6 format
2) Gimp
- Edit UV Map
- UV Map Versions:
> BaseColor (your original colored UV map)
> Normal (4x4 image of RGB 128,128,255)
> Ambient Occlusion (4x4 image of white)
> Metalness (4x4 image of black)
> Glossiness (4x4 image of black)
> TintMask (4x4 image of black)
- Export UV Maps to .dds (Format RGBA8, Uncompressed, With Mipmaps)
3) CivNexus6
- Import .cn6 file
- ? Add/Edit/Rename the Material Bindings (under Edit Materials tab) (One for every UV Map Version) ?*Do I just make sure there is one empty material binding for every UV Map texture?
- Save as .fgx file
- Set Class under Additional Actions tab to: (LandmarkModel for buildings, Unit for units, Leader for leaders)
- ? Create GeometrySet .xml for .ast file (under additional actions tab) (Creates GeomertySet.xml file) ?*Do I need to make this?
- Create Geomerty/Animation (.geo/.anm) File (under Additional Actions tab) (Creates .geo and .anm files) ?*It only created a .geo for me, but I had no animations in my blender project, so I guess if I did it would.?
*So at this point you should have 6 .dds files, 1 .fgx file, 1 .xml file, 1 .geo file, and maybe 1 .anm file if it is a unit or leader.
4) Whatever folder your ModBuddy project is saved in
- Copy and paste your .geo file in to your project folder
- Copy and paste your .anm file in to your project folder
5) AssetEditor in ModBuddy
- Create .tex files/Import .dds files (New => Texture) (creates .tex file and a copy of .dds in your project)
> BaseColor (Class Name: Generic_BaseColor) => (Path: ".dds file name") => (Save)
> Normal (Class Name: Generic_Normal) => (Path: ".dds file name") => (Save)
> Ambient Occlusion (Class Name: Generic_AO) => (Path: ".dds file name") => (Save)
> Metalness (Class Name: Generic_Metalness) => (Path: ".dds file name") => (Save)
> Glossiness (Class Name: Generic_Gloss) => (Path: ".dds file name") => (Save)
> TintMask (Class Name: Generic_TintMask) => (Path: ".dds file name") => (Save)
- Create .mtl file (New => Material) (creates .mtl file in your project)
> For Buildings (Class Name: Landmark) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
> For Units (Class Name: Unit) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
> For Leaders (Class Name: Leader) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
- Create .bhv file (New => Behavior) (creates .bhv file in your project)
> For Units (Class Name: Unit) => (Geometries: Add .geo file) => (Animations: Add .anm file) => (*?) => (Save)
*?Not sure where/how to put in the m_animationBindings, m_timelineBindings, m_timelines files?
- ? Create Lighting ? (New => Analytic Light [.lit]/Environment Light [.env]/Light Rig[.lrg])
*?Have not looked in to these, like where to create the file you import?
- ? Create Particle Effects ? (New => Particle_Effect [.ptl])
*?Have not looked in to this, like where to create the file you import?
- Create .ast file (New => Asset) (creates .ast file in your project)
> For Buildings (Class Name: TileBase) => (Add all files you created above under appropriate tabs) => (Save)
> For Units (Class Name: Unit) => (Add all files you created above under appropriate tabs) => (Save)
> For Leaders (Class Name: Leader) => (Add all files you created above under appropriate tabs) => (Save)
- ArtDefs
> For Buildings (Buildings.artdef, Landmarks.artdef) => (Add your building and assign your .ast file to it) => (Save)
> For Units (Units.artdef) => (Add your unit and assign your .ast file to it) => (Save)
> For Leaders (Leaders.artdef) => (Add your leader and assign your .ast file to it) => (Save)
*So at this point you should have 6 .dds files, 6 .tex files, 1 .geo, 1 .ast, 1 .mtl, 1 or 2 .artdef and maybe 1 .anm, 1 .bhv, 1 .ptl, 1 .lit, 1 .env, and 1 .lrg if it is a unit or leader.
6) ModBuddy
- Create .xlp file with correct coding (Could make in AssetEditor, but the one I made for my icons I made in ModBuddy and just copy/paste basic setup from online example)
- Create/Edit Mod.Art.xml with correct relativeArtDefPaths and libraryDependencies
- Import all art files in to project (From project's Solution Explorer panel)
- Project Properties => In-Game Actions
=> ImportFiles (All your .dds, .tex, .geo, .anm, .mtl, .bhv, .ast, and any other art files you created.)
=> UpdateArt ((Mod Art Dependency File) and any .artdef files)
*You do not need to add .xlp files to Project Properties

?) In regards to [CIVILIZATION 6 GRAPHICAL ASSET ENTITIES USED IN MODBUDDY ASSET COOKING] graph... Files not mentioned above, but in graph? (.blp, .dep, .psb)
- Does .blp and .dep get generated automatically when you build your project?
- Where do you make the .psb file in?

 
Ok, thanks. I'm new to all of this and have a few more questions. Looking at Deliverator's guide and other forms I am trying to get a grasp on the steps for adding 3D art to my project. So I felt that making an outline/cheatsheet of all the steps would help me and possibly others out. So if you guys or anyone else knowledgeable in this stuff could take a look and make corrections/add missing parts it would be appreciated.

Each numbered step is the program that you would complete a certain action in. Then each entry under those is a general action that is done in that specific program, and the resulting file types of that action. And some parts I added a little more detail about the action. The parts I was not sure of or had a question about I put a ?, though there could be other stuff I missed to, maybe. After I can make sure everything is correct and filled out, I will make a more visually friendly version of this.

3D ART ASSET OUTLINE

1) Blender
- Create 3D Model (.blend) (must have a bone, must be triangulated)
- Create UV Map (.tga)
- Export 3D Model to .cn6 format
2) Gimp
- Edit UV Map
- UV Map Versions:
> BaseColor (your original colored UV map)
> Normal (4x4 image of RGB 128,128,255)
> Ambient Occlusion (4x4 image of white)
> Metalness (4x4 image of black)
> Glossiness (4x4 image of black)
> TintMask (4x4 image of black)
- Export UV Maps to .dds (Format RGBA8, Uncompressed, With Mipmaps)
3) CivNexus6
- Import .cn6 file
- ? Add/Edit/Rename the Material Bindings (under Edit Materials tab) (One for every UV Map Version) ?*Do I just make sure there is one empty material binding for every UV Map texture?
- Save as .fgx file
- Set Class under Additional Actions tab to: (LandmarkModel for buildings, Unit for units, Leader for leaders)
- ? Create GeometrySet .xml for .ast file (under additional actions tab) (Creates GeomertySet.xml file) ?*Do I need to make this?
- Create Geomerty/Animation (.geo/.anm) File (under Additional Actions tab) (Creates .geo and .anm files) ?*It only created a .geo for me, but I had no animations in my blender project, so I guess if I did it would.?
*So at this point you should have 6 .dds files, 1 .fgx file, 1 .xml file, 1 .geo file, and maybe 1 .anm file if it is a unit or leader.
4) Whatever folder your ModBuddy project is saved in
- Copy and paste your .geo file in to your project folder
- Copy and paste your .anm file in to your project folder
5) AssetEditor in ModBuddy
- Create .tex files/Import .dds files (New => Texture) (creates .tex file and a copy of .dds in your project)
> BaseColor (Class Name: Generic_BaseColor) => (Path: ".dds file name") => (Save)
> Normal (Class Name: Generic_Normal) => (Path: ".dds file name") => (Save)
> Ambient Occlusion (Class Name: Generic_AO) => (Path: ".dds file name") => (Save)
> Metalness (Class Name: Generic_Metalness) => (Path: ".dds file name") => (Save)
> Glossiness (Class Name: Generic_Gloss) => (Path: ".dds file name") => (Save)
> TintMask (Class Name: Generic_TintMask) => (Path: ".dds file name") => (Save)
- Create .mtl file (New => Material) (creates .mtl file in your project)
> For Buildings (Class Name: Landmark) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
> For Units (Class Name: Unit) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
> For Leaders (Class Name: Leader) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
- Create .bhv file (New => Behavior) (creates .bhv file in your project)
> For Units (Class Name: Unit) => (Geometries: Add .geo file) => (Animations: Add .anm file) => (*?) => (Save)
*?Not sure where/how to put in the m_animationBindings, m_timelineBindings, m_timelines files?
- ? Create Lighting ? (New => Analytic Light [.lit]/Environment Light [.env]/Light Rig[.lrg])
*?Have not looked in to these, like where to create the file you import?
- ? Create Particle Effects ? (New => Particle_Effect [.ptl])
*?Have not looked in to this, like where to create the file you import?
- Create .ast file (New => Asset) (creates .ast file in your project)
> For Buildings (Class Name: TileBase) => (Add all files you created above under appropriate tabs) => (Save)
> For Units (Class Name: Unit) => (Add all files you created above under appropriate tabs) => (Save)
> For Leaders (Class Name: Leader) => (Add all files you created above under appropriate tabs) => (Save)
- ArtDefs
> For Buildings (Buildings.artdef, Landmarks.artdef) => (Add your building and assign your .ast file to it) => (Save)
> For Units (Units.artdef) => (Add your unit and assign your .ast file to it) => (Save)
> For Leaders (Leaders.artdef) => (Add your leader and assign your .ast file to it) => (Save)
*So at this point you should have 6 .dds files, 6 .tex files, 1 .geo, 1 .ast, 1 .mtl, 1 or 2 .artdef and maybe 1 .anm, 1 .bhv, 1 .ptl, 1 .lit, 1 .env, and 1 .lrg if it is a unit or leader.
6) ModBuddy
- Create .xlp file with correct coding (Could make in AssetEditor, but the one I made for my icons I made in ModBuddy and just copy/paste basic setup from online example)
- Create/Edit Mod.Art.xml with correct relativeArtDefPaths and libraryDependencies
- Import all art files in to project (From project's Solution Explorer panel)
- Project Properties => In-Game Actions
=> ImportFiles (All your .dds, .tex, .geo, .anm, .mtl, .bhv, .ast, and any other art files you created.)
=> UpdateArt ((Mod Art Dependency File) and any .artdef files)
*You do not need to add .xlp files to Project Properties

?) In regards to [CIVILIZATION 6 GRAPHICAL ASSET ENTITIES USED IN MODBUDDY ASSET COOKING] graph... Files not mentioned above, but in graph? (.blp, .dep, .psb)
- Does .blp and .dep get generated automatically when you build your project?
- Where do you make the .psb file in?
That's quite a long question list. But to some of your questions:
AO, Metalness and Glossiness texture maps are not necessarily 4x4 white or black. Doing so is actually the same effect of not having these tex linked to your material. What I do is render-baking textures of my model with 'diffuse color', 'raw GI', 'reflection', 'reflection glossiness', 'normals', 'bump normals', 'self illuminance' and 'transparency' channels using VRAY for MAYA. Saved all these channels as images I post-process them in Photoshop, like adding details to diffuse color image, tweaking brightness of reflection for metalness and reflection glossiness for glossiness, etc. Then save these files as dds using the settings you've mentioned, and use AssetEditor to create .text files.
 
I was using FX_Light_Steady_Red.ast and it is visible from the back. Though I have a pretty thin shell on the back I wonder maybe that's why. Let me try thicken the back shell.

Is your mesh double-sided? That might affect it too.
 
1) Blender
- Create 3D Model (.blend) (must have a bone, must be triangulated)
- Create UV Map (.tga)
- Export 3D Model to .cn6 format

Your mesh obviously needs to be UV unwrapped too.

I would also advise that you create, name and assign your Materials to vertices in Blender then you won't need to do anything with Materials in CivNexus6 later.

2) Gimp
- Edit UV Map
- UV Map Versions:
> BaseColor (your original colored UV map)
> Normal (4x4 image of RGB 128,128,255)
> Ambient Occlusion (4x4 image of white)
> Metalness (4x4 image of black)
> Glossiness (4x4 image of black)
> TintMask (4x4 image of black)
- Export UV Maps to .dds (Format RGBA8, Uncompressed, With Mipmaps)

This setup effectively "stubs out" all the textures other than the BaseColor. All these textures can be used to affect how your model appears in game - see here for the base game Redcoat textures. However, in a lot of cases just using BaseColor and ignoring the other texture types can look pretty good. It is worth reading over Sukritact's tutorial.

An alternative to Gimp is Paint.NET. Saving .dds textures in B8G8R8A8 with Fant mipmaps works well.

3) CivNexus6
- ? Add/Edit/Rename the Material Bindings (under Edit Materials tab) (One for every UV Map Version) ?*Do I just make sure there is one empty material binding for every UV Map texture?
- Save as .fgx file

Every Triangle Group with every Mesh needs to be assigned to a Material in the .fgx. The name of this Material is the only important part. It becomes the m_GroupName that is used to bind a particular Modbuddy Material file (.mtl) to a part of the model in the Asset file(.ast).

e.g. from the GeometrySet section of the .ast file:
Code:
<Element>
    <m_Values>
        <m_Values>
            <Element class="AssetObjects::ObjectValue">
                <m_ObjectName text="MyLovelyNewTankMaterial"/>    <!- name of my new Material metadata (.mtl file) -->
                <m_eObjectType>MATERIAL</m_eObjectType>
                <m_ParamName text="Material"/>
            </Element>
        </m_Values>
    </m_Values>
    <m_GroupName text="MaterialFBXASC032FBXASC035292"/> <!- name of the Material in the .fgx file - viewable in CivNexus6 -->
    <m_MeshName text="Tank_AShape"/>
    <m_StateName text="Default"/>
</Element>

- ? Create GeometrySet .xml for .ast file (under additional actions tab) (Creates GeomertySet.xml file) ?*Do I need to make this?

Yes, you need to make an .ast file as things stand. I would advise that you do this by:
1) Making a copy of an existing .ast.
2) Change the Name at the bottom to match your new filename (important!).
3) Overwrite the GeometrySet section with the GeometrySet section generated from CivNexus6.

- Create Geomerty/Animation (.geo/.anm) File (under Additional Actions tab) (Creates .geo and .anm files) ?*It only created a .geo for me, but I had no animations in my blender project, so I guess if I did it would.?

That button generates a .geo file if the currently opened .fgx file is a model and an .anm file if the open file is an animation .fgx. If your model is not animated you don't need to worry about creating animations. Also if your model is reusing base game animations (for example, where you have rigged a new model to a base game skeleton) you don't need to create new animations.

*So at this point you should have 6 .dds files, 1 .fgx file, 1 .xml file, 1 .geo file, and maybe 1 .anm file if it is a unit or leader.

If you were animating the model you would have more than one .anm file - you would have one for each different action.

4) Whatever folder your ModBuddy project is saved in
- Copy and paste your .geo file in to your project folder

I normally copy the .geo and .fgx as a pair because the .geo is just metadata for the Geometry .fgx file.

- Copy and paste your .anm file in to your project folder

Likewise if there are animations I would copy the .geo and .anm pairs together.

*?Not sure where/how to put in the m_animationBindings, m_timelineBindings, m_timelines files?

You only need to worry about these if you are animating from scratch or converting from Civ 5. If you are creating an unanimated model or reusing Civ 6 animations you don't need to worry.

- ? Create Lighting ? (New => Analytic Light [.lit]/Environment Light [.env]/Light Rig[.lrg])
*?Have not looked in to these, like where to create the file you import?

You don't need to worry about this. I've never played with it. Optional and not required.

- ? Create Particle Effects ? (New => Particle_Effect [.ptl])
*?Have not looked in to this, like where to create the file you import?

Likewise, you don't need to worry about this unless you are trying to modify a Particle Effect in some way. If you are just reusing existing VFX you don't need to worry about creating any new Particle Effect assets. The .ptl metadata can be edited but the paired .psb fil

?) In regards to [CIVILIZATION 6 GRAPHICAL ASSET ENTITIES USED IN MODBUDDY ASSET COOKING] graph... Files not mentioned above, but in graph? (.blp, .dep, .psb)
- Does .blp and .dep get generated automatically when you build your project?
- Where do you make the .psb file in?

Yes, .blp files are generated from you .xlp files and the .dep file will be generated from your Mod.Art.xml at build time.

.psb files can only be made using the commercial product Fork Particle Studio which no modder including myself is likely to have access to. This means we are stuck reusing the existing .psb files. At the moment I am unsure if we can even reskin particle effects although I know we can resize them and I believe we can used replace projectiles with other models.

Keep the questions coming if anything is unclear!
 
k, thanks. I'm new to all of this and have a few more questions. Looking at Deliverator's guide and other forms I am trying to get a grasp on the steps for adding 3D art to my project. So I felt that making an outline/cheatsheet of all the steps would help me and possibly others out. So if you guys or anyone else knowledgeable in this stuff could take a look and make corrections/add missing parts it would be appreciated.

Each numbered step is the program that you would complete a certain action in. Then each entry under those is a general action that is done in that specific program, and the resulting file types of that action. And some parts I added a little more detail about the action. The parts I was not sure of or had a question about I put a ?, though there could be other stuff I missed to, maybe. After I can make sure everything is correct and filled out, I will make a more visually friendly version of this.

3D ART ASSET OUTLINE

1) Blender
- Create 3D Model (.blend) (must have a bone, must be triangulated)
- Create UV Map (.tga)
- Export 3D Model to .cn6 format
2) Gimp
- Edit UV Map
- UV Map Versions:
> BaseColor (your original colored UV map)
> Normal (4x4 image of RGB 128,128,255)
> Ambient Occlusion (4x4 image of white)
> Metalness (4x4 image of black)
> Glossiness (4x4 image of black)
> TintMask (4x4 image of black)
- Export UV Maps to .dds (Format RGBA8, Uncompressed, With Mipmaps)
3) CivNexus6
- Import .cn6 file
- ? Add/Edit/Rename the Material Bindings (under Edit Materials tab) (One for every UV Map Version) ?*Do I just make sure there is one empty material binding for every UV Map texture?
- Save as .fgx file
- Set Class under Additional Actions tab to: (LandmarkModel for buildings, Unit for units, Leader for leaders)
- ? Create GeometrySet .xml for .ast file (under additional actions tab) (Creates GeomertySet.xml file) ?*Do I need to make this?
- Create Geomerty/Animation (.geo/.anm) File (under Additional Actions tab) (Creates .geo and .anm files) ?*It only created a .geo for me, but I had no animations in my blender project, so I guess if I did it would.?
*So at this point you should have 6 .dds files, 1 .fgx file, 1 .xml file, 1 .geo file, and maybe 1 .anm file if it is a unit or leader.
4) Whatever folder your ModBuddy project is saved in
- Copy and paste your .geo file in to your project folder
- Copy and paste your .anm file in to your project folder
5) AssetEditor in ModBuddy
- Create .tex files/Import .dds files (New => Texture) (creates .tex file and a copy of .dds in your project)
> BaseColor (Class Name: Generic_BaseColor) => (Path: ".dds file name") => (Save)
> Normal (Class Name: Generic_Normal) => (Path: ".dds file name") => (Save)
> Ambient Occlusion (Class Name: Generic_AO) => (Path: ".dds file name") => (Save)
> Metalness (Class Name: Generic_Metalness) => (Path: ".dds file name") => (Save)
> Glossiness (Class Name: Generic_Gloss) => (Path: ".dds file name") => (Save)
> TintMask (Class Name: Generic_TintMask) => (Path: ".dds file name") => (Save)
- Create .mtl file (New => Material) (creates .mtl file in your project)
> For Buildings (Class Name: Landmark) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
> For Units (Class Name: Unit) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
> For Leaders (Class Name: Leader) => (Cook Parameters: Add correct .tex files you created to corresponding Value) => (Save)
- Create .bhv file (New => Behavior) (creates .bhv file in your project)
> For Units (Class Name: Unit) => (Geometries: Add .geo file) => (Animations: Add .anm file) => (*?) => (Save)
*?Not sure where/how to put in the m_animationBindings, m_timelineBindings, m_timelines files?
- ? Create Lighting ? (New => Analytic Light [.lit]/Environment Light [.env]/Light Rig[.lrg])
*?Have not looked in to these, like where to create the file you import?
- ? Create Particle Effects ? (New => Particle_Effect [.ptl])
*?Have not looked in to this, like where to create the file you import?
- Create .ast file (New => Asset) (creates .ast file in your project)
> For Buildings (Class Name: TileBase) => (Add all files you created above under appropriate tabs) => (Save)
> For Units (Class Name: Unit) => (Add all files you created above under appropriate tabs) => (Save)
> For Leaders (Class Name: Leader) => (Add all files you created above under appropriate tabs) => (Save)
- ArtDefs
> For Buildings (Buildings.artdef, Landmarks.artdef) => (Add your building and assign your .ast file to it) => (Save)
> For Units (Units.artdef) => (Add your unit and assign your .ast file to it) => (Save)
> For Leaders (Leaders.artdef) => (Add your leader and assign your .ast file to it) => (Save)
*So at this point you should have 6 .dds files, 6 .tex files, 1 .geo, 1 .ast, 1 .mtl, 1 or 2 .artdef and maybe 1 .anm, 1 .bhv, 1 .ptl, 1 .lit, 1 .env, and 1 .lrg if it is a unit or leader.
6) ModBuddy
- Create .xlp file with correct coding (Could make in AssetEditor, but the one I made for my icons I made in ModBuddy and just copy/paste basic setup from online example)
- Create/Edit Mod.Art.xml with correct relativeArtDefPaths and libraryDependencies
- Import all art files in to project (From project's Solution Explorer panel)
- Project Properties => In-Game Actions
=> ImportFiles (All your .dds, .tex, .geo, .anm, .mtl, .bhv, .ast, and any other art files you created.)
=> UpdateArt ((Mod Art Dependency File) and any .artdef files)
*You do not need to add .xlp files to Project Properties

?) In regards to [CIVILIZATION 6 GRAPHICAL ASSET ENTITIES USED IN MODBUDDY ASSET COOKING] graph... Files not mentioned above, but in graph? (.blp, .dep, .psb)
- Does .blp and .dep get generated automatically when you build your project?
- Where do you make the .psb file in?
Well thank you! I was wondering how to do this, I guess someone has already taken the very very long time required to map all of this out!
 
This setup effectively "stubs out" all the textures other than the BaseColor.

That's quite a long question list. But to some of your questions:
AO, Metalness and Glossiness texture maps are not necessarily 4x4 white or black. Doing so is actually the same effect of not having these tex linked to your material. What I do is render-baking textures of my model with 'diffuse color', 'raw GI', 'reflection', 'reflection glossiness', 'normals', 'bump normals', 'self illuminance' and 'transparency' channels using VRAY for MAYA. Saved all these channels as images I post-process them in Photoshop, like adding details to diffuse color image, tweaking brightness of reflection for metalness and reflection glossiness for glossiness, etc. Then save these files as dds using the settings you've mentioned, and use AssetEditor to create .text files.

Focusing on texture maps first:

So to make all 6 types of the texture maps properly I would need to do something like Bake in Blender, and not just adding Filters in Gimp? So some thing like this?...


1) Blender
- Create 3D Model (must have a bone, must be triangulated, must have a material) (blender projects are saved as .blend)
- Create UV Map (mark seams, unwrap)
- Export UV Layout (.png format)
2) Gimp/Paint.NET
- Load/Edit UV Layout (create your UV texture image)
- Save the UV texture image you just created ("Overwrite")
3) Blender
- Open your UV texture image in the UV Editor
- Create a new blank Image (you will end up making 5, one for each UV image versions)
- Bake Images (Using Cycles Render) (With the blank image selected in UV Editor and an Image Texture node with your UV texture image in Node Editor)
> BaseColor/Albedo (Bake Type: Diffuse [Color])
> Normal (Bake Type: Normal)
> Ambient Occlusion (Bake Type: Ambient Occlusion)
> Metalness (Bake Type: ?Combined?)
> Glossiness (Bake Type: Glossy)
> TintMask (Bake Type: Shadow)
- Export UV Layout for each of your 5 baked images (.png format)
- Export Blender project to .cn6 format
4) Gimp/Paint.NET
- Load/Edit your 5 baked images (tweak images)
- Load/Export all 6 of your UV images to .dds (Gimp: Format RGBA8, Uncompressed, With Mipmaps) (Paint.NET: Format B8G8R8A8, Uncompressed, With Fant Mipmaps)

And, using the default cube as an example, would these be correct?...

Spoiler BaseColor/Albedo (Bake Type: Diffuse [Color]) :

upload_2017-8-24_22-57-49.png



Spoiler Normal (Bake Type: Normal) :

upload_2017-8-24_22-58-42.png



Spoiler Ambient Occlusion (Bake Type: Ambient Occlusion) :

upload_2017-8-24_22-59-28.png



Spoiler Glossiness (Bake Type: Glossy) :

upload_2017-8-24_23-3-51.png



Spoiler TintMask (Bake Type: Shadow) :

upload_2017-8-24_23-4-44.png



Spoiler Metalness (Bake Type: ?Combined?) :

upload_2017-8-24_23-6-26.png



Spoiler All Other Bake Type Options :

upload_2017-8-24_23-8-3.png

upload_2017-8-24_23-8-35.png

upload_2017-8-24_23-8-56.png

upload_2017-8-24_23-9-11.png

 
Focusing on texture maps first:
So to make all 6 types of the texture maps properly I would need to do something like Bake in Blender, and not just adding Filters in Gimp? So some thing like this?...

You don't *need* to bake them. This is just one technique for creating the different types of PBR map. As I said, stubbing them out with the plain 4x4 is a good place to start. Start with that and get an imported model appearing in the Asset Previewer because you don't want to get so bogged down in creating them "properly" that you never add a model.

If you do want to progress to creating bespoke maps for AO, Normal, Metalness, Gloss and Tint Mask then there are few options:

* Paint them "by hand" in Photoshop, Gimp, Paint.NET.
* Create them (via Bake or other techniques) in a 3D package like Blender.
* Use a package like Substance Painter (that's what Sukritact uses I believe).
 
Last edited:
Best method is to use a combo of baking and painting actually, you bake the maps which are "mathematical" so to speak, and paint the rest. Normally AO and Normal maps are baked. Gloss, Metal, and Base color are painted.

AO and Normals should be baked (I do this in Blender, although it is possible to use Substance for this as well): this is because the information they contain is mathematically based off the models they are baked from and is mostly unrelated to the surface properties of the materials you are assigning the model (it doesn't matter if you are creating a wood or gold statue, the normals of the surface will face the same way, the nooks and crannies will receive the same amount of ambient light).

@esosorcdc you should be baking a TANGENT space normal, not object space. But for most cases in Civ 6, you should be able to get away with a map is is a solid 128,128,255 in color (representing a completely flat surface).

Conversely, Base color, Metalness and Glossiness are directly linked to material properties. Trying to bake gloss or metalness maps in Blender will likely result in sub-optimal results. Neither Blender Internal or Cycles operate with PBR textures. If you want to use Photoshop do as follows:

As an example, texturing Ramkhamhaeng (I personally used substance, but if I had used Photoshop...):


Do the base colors first: Export your UV layout from whatever 3D software you're using, and based off that layout, paint in the colors of your model.

kHMIbPO.png


Metalness: Select the bits which are metallic (in my case the gold and the gems, which are sorta weird, but they look better that way) and make them pure or almost white. Make everything else black or almost black.

Again if it's metal, make it white, if it's not make it black. I have a lot more detail in mine, but a black and white map (not grayscale, just binary black and white) is perfectly fine.

image.png


Gloss: this defines how smooth the surface of a material is: the whiter the smoother. In my case, again, gemstones and gold are really smooth. Silk on the other hand has lots of fibers so it's rough. There's a nice chart you can look at for reference here (gloss is equivalent to microsurface).

image.png


Alternatively, just use Substance or Quixel and you will simultaneously paint all three of these maps as you work, and you also get a really nice preview as you work. See my guide here to learn what the heck all these maps actually mean: https://forums.civfanatics.com/threads/a-quick-intro-to-pbr-civ-6-textures.612055/
 
Last edited:
You don't *need* to bake them. This is just one technique for creating the different types of PBR map. As I said, stubbing them out with the plain 4x4 is a good place to start. Start with that and get an imported model appearing in the Asset Previewer because you don't want to get so bogged down in creating them "properly" that you never add a model.

If you do want to progress to creating bespoke maps for AO, Normal, Metalness, Gloss and Tint Mask then there are few options:

* Paint them "by hand" in Photoshop, Gimp, Paint.NET.
* Create them (via Bake or other techniques) in a 3D package like Blender.
* Use a package like Substance Painter (that's what Sukritact uses I believe).

Best method is to use a combo of baking and painting actually, you bake the maps which are "mathematical" so to speak, and paint the rest. Normally AO and Normal maps are baked. Gloss, Metal, and Base color are painted.

AO and Normals should be baked (I do this in Blender, although it is possible to use Substance for this as well): this is because the information they contain is mathematically based off the models they are baked from and is mostly unrelated to the surface properties of the materials you are assigning the model (it doesn't matter if you are creating a wood or gold statue, the normals of the surface will face the same way, the nooks and crannies will receive the same amount of ambient light).

@esosorcdc you should be baking a TANGENT space normal, not object space. But for most cases in Civ 6, you should be able to get away with a map is is a solid 128,128,255 in color (representing a completely flat surface).

Conversely, Base color, Metalness and Glossiness are directly linked to material properties. Trying to bake gloss or metalness maps in Blender will likely result in sub-optimal results. Neither Blender Internal or Cycles operate with PBR textures. If you want to use Photoshop do as follows:

As an example, texturing Ramkhamhaeng (I personally used substance, but if I had used Photoshop...):


Do the base colors first: Export your UV layout from whatever 3D software you're using, and based off that layout, paint in the colors of your model.

kHMIbPO.png


Metalness: Select the bits which are metallic (in my case the gold and the gems, which are sorta weird, but they look better that way) and make them pure or almost white. Make everything else black or almost black.

Again if it's metal, make it white, if it's not make it black. I have a lot more detail in mine, but a black and white map (not grayscale, just binary black and white) is perfectly fine.

image.png


Gloss: this defines how smooth the surface of a material is: the whiter the smoother. In my case, again, gemstones and gold are really smooth. Silk on the other hand has lots of fibers so it's rough. There's a nice chart you can look at for reference here (gloss is equivalent to microsurface).

image.png


Alternatively, just use Substance or Quixel and you will simultaneously paint all three of these maps as you work, and you also get a really nice preview as you work. See my guide here to learn what the heck all these maps actually mean: https://forums.civfanatics.com/threads/a-quick-intro-to-pbr-civ-6-textures.612055/

Ok, I think I am starting to understand. Based on your replys and youtube videos on how to do this stuff, I think I've mostly figured out one of the many ways to do this. I was not sure about which Influence settings Metal, Gloss, and Tint should have in blender though, so I check marked the most logical choices. Also, my result in material view does not look as good as the youtube video I watched. His bricks "pop out" more, mine seems more flat, why is this?

Spoiler How About This For The Outline: :

1) Blender (Using Blender Render)
- Create Model (Mesh) without minor details (must have a bone, must be triangulated) (blender projects are saved as .blend)
- Create UV Map (mark seams, unwrap, check if correct with UV Grid)
- Assign Materials to faces of your Model (Mesh), and assign textures to your materials (after this step your model should look basically like you want it to, excluding minor details)
> Get PBR Substance Materials from the internet. (www.textures.com) (Get at least an Albedo, a Normal, and an Ambient Occlusion version of each texture)
> Assign your Albedo, Normal, and Ambient Occlusion versions of a texture to the same material (Mapping => Coordinat => UV)
*(Albedo: Influence => Diffuse => Color / Normal: Influence => Geomerty => Normal / Ambient Occlusion => Shadow => Ambient)
- Add another UV Map and Unwrap (With the new UV Map selected in blue and with the old UV map's render icon active)
> You may need to go back and add more seams and unwrap again
> Your UV Map will be jumbled up so you will need to straighten everything up in UV Editor
- Create a new blank Image for your new UV map and Bake (With the new UV Map selected in blue and with the old UV map's render icon active, and with your Model (Mesh) selected)
> Bake Mode: Textures (gives you your Albedo UV Texture Map) => After Bake, Save As Image (.png)
> Bake Mode: Normals (gives you your Normal UV Texture Map) => After Bake, Save As Image (.png)
> Bake Mode: Ambient Occlusion (gives you your Ambient Occlusion UV Texture Map) => After Bake, Save As Image (.png)
- Delete all your materials and the old UV map, and create new material with 3 textures, assign your 3 baked UV Texture Map images to each texture
> Albedo UV Texture Map: Influence => Diffuse => Color / Normal UV Texture Map: Influence => Geomerty => Normal / Ambient Occlusion UV Texture Map => Influence => Shadow => Ambient
- Add minor details (Optional)
> Add minor details to your Model (Mesh) (Duplicate your Model (Mesh), grab (move on x or y) and move numeric value, then add in all your minor details to your model (mesh))
> Grab your Duplicate Model (Mesh) with all your details, and do the reverse move you did earlier (models (meshes) will be exactly on-top of each other again), keep it selected
> Create a new blank Image and Bake => Select To Active: Checked => Bake Mode: Normals (gives you a Normal UV Texture Map with all your minor details) => After Bake, Save As Image (.png)
> You will use this as your Normal UV Texture Map now
> Delete your Duplicate Model (Mesh) with all your details. So now you should only have your Model (Mesh) without minor details
2) Gimp/Paint.NET
- Load your Albedo UV Texture Map, copy and paste to new project (Also, make a copy of your original file just in case)
- Add details to your Albedo UV Texture Map and Save "Overwrite"
- Create your Metalness, Glossiness, and TintMask
> In the new project you made with the copy of the Albedo UV Texture Map => Desaturate (Colors Tab)
> Metalness: Copy and paste desaturated UV map to new project => Make metal parts pure or almost white, and everything else black or almost black => Export As .png (Metalness UV Texture Map)
> Glossiness: Copy and paste desaturated UV map to new project => Make smooth parts whiter, and rough parts darker (The smoother the whiter, the rougher the darker) => Export As .png (Glossiness UV Texture Map)
> TintMask: Just go back to the desaturated UV map project => Adjust Brightness/Contrast (Colors Tab) => Export As .png (TintMask UV Texture Map)
3) Blender (Using Blender Render)
- Check out your Model (Mesh) with all it's textures (if something is wrong with, or if you want to add another detail to, just edit the texture in Gimp again)
> Reload your Albedo UV Texture Map if you didn't close Blender
> Add 3 more textures to your Material and assign the 3 new textures you made in Gimp to each texture
> Metalness: Influence => Specular => Intensity&Hardness / Glossiness: Influence => Specular => Intensity / TintMask UV Texture Map: Influence => Specular => Color&Hardness
- Export Blender project to .cn6 format
4) Gimp/Paint.NET
- Load/Export all 6 of your UV Texture Maps to .dds (Gimp: Format RGBA8, Uncompressed, With Mipmaps) (Paint.NET: Format B8G8R8A8, Uncompressed, With Fant Mipmaps)


Spoiler Which Is How I Made These UV Map Textures: :

upload_2017-8-25_22-19-5.png



Spoiler With This As The Result In Material View :

upload_2017-8-25_22-20-31.png



Spoiler A Youtube Video I Watched :

He goes in to texturing at 33:40


Spoiler Website I Got My Substance Textures From :

www.textures.com
(*Note that CGTextures.com is now Textures.com)
 
That's because Blender isn't designed for PBR (yet, there should be a realtime PBR rendering engine coming in with version 2.9 I think). You won't be able to get a truly accurate representation of what the material looks like in game, best way to see what things look like is to just a stuff it into the Asset Editor.

tl;dr the Blender Cycles renderer's basic shaders DON'T have inputs that correlate properly to metalness + glossiness.
 
Back
Top Bottom