Art Assets in Civilization 6: A Modding Guide

So should I delete the three loose bones?
I would not if they are in the template unit. From what I have seen it is OK to have bones that have no meshes rigged to them but not the other way around. Also the bones should not matter if you are just overwriting the <civ6_unit>.fgx as it only copies the mesh not the skeleton. If you need to modify bones you should export to .fbx then overwrite with .br2.
And second there is an Armature Modifier not applied, however when I apply it then I can not export to .cn6 anymore, it throws up an error. I didn't apply this modifier for my building and it shows up fine in game, but maybe since we actually need to use these bones for units then maybe we need to apply this?
All the units I have successfully made have had an armature modifier so I believe that they are necessary but @Deliverator would know better. Have you tried to export to .br2 I find that best for units?
 
I tried to make a custom unit with a new model and texture, but the texture does not show up. Please help!

Thanks!
Cool unit. Looks like you have not referenced your new texture in the asset file. Should look something like this with m_GroupName matching your material.

Code:
<m_GeometrySet>
        <m_ModelInstances>
            <Element>
                <m_Name text="point_WORLD"/>
                <m_GeoName text="TABOR"/>
                <m_GroupStates>
                    <Element>
                        <m_Values>
                            <m_Values>
                                <Element class="AssetObjects:ObjectValue">
                                    <m_ObjectName text=""/>
                                    <m_eObjectType>MATERIAL</m_eObjectType>
                                    <m_ParamName text="Material"/>
                                </Element>
                            </m_Values>
                        </m_Values>
                        <m_GroupName text="TABOR"/>
                        <m_MeshName text="ChariotAr00Chariot3"/>
                        <m_StateName text="Default"/>
                    </Element>
                    <Element>
                        <m_Values>
                            <m_Values>
                                <Element class="AssetObjects:ObjectValue">
                                    <m_ObjectName text=""/>
                                    <m_eObjectType>MATERIAL</m_eObjectType>
                                    <m_ParamName text="Material"/>
                                </Element>
                            </m_Values>
                        </m_Values>
                        <m_GroupName text="TABOR"/>
                        <m_MeshName text="ChariotArcher_Archer"/>
                        <m_StateName text="Default"/>
                    </Element>
                    <Element>
                        <m_Values>
                            <m_Values>
                                <Element class="AssetObjects:ObjectValue">
                                    <m_ObjectName text=""/>
                                    <m_eObjectType>MATERIAL</m_eObjectType>
                                    <m_ParamName text="Material"/>
                                </Element>
                            </m_Values>
                        </m_Values>
                        <m_GroupName text="TABOR"/>
                        <m_MeshName text="ChariotAr00Chariot2"/>
                        <m_StateName text="Default"/>
                    </Element>
                    <Element>
                        <m_Values>
                            <m_Values>
                                <Element class="AssetObjects:ObjectValue">
                                    <m_ObjectName text=""/>
                                    <m_eObjectType>MATERIAL</m_eObjectType>
                                    <m_ParamName text="Material"/>
                                </Element>
                            </m_Values>
                        </m_Values>
                        <m_GroupName text="TABOR"/>
                        <m_MeshName text="ChariotArcher_Driver"/>
                        <m_StateName text="Default"/>
                    </Element>
                    <Element>
                        <m_Values>
                            <m_Values>
                                <Element class="AssetObjects:ObjectValue">
                                    <m_ObjectName text=""/>
                                    <m_eObjectType>MATERIAL</m_eObjectType>
                                    <m_ParamName text="Material"/>
                                </Element>
                            </m_Values>
                        </m_Values>
                        <m_GroupName text="TABOR"/>
                        <m_MeshName text="ChariotArcher_Chariot"/>
                        <m_StateName text="Default"/>
                    </Element>
                </m_GroupStates>
            </Element>
        </m_ModelInstances>
    </m_GeometrySet>
 
I would not if they are in the template unit. From what I have seen it is OK to have bones that have no meshes rigged to them but not the other way around. Also the bones should not matter if you are just overwriting the <civ6_unit>.fgx as it only copies the mesh not the skeleton. If you need to modify bones you should export to .fbx then overwrite with .br2.

All the units I have successfully made have had an armature modifier so I believe that they are necessary but @Deliverator would know better. Have you tried to export to .br2 I find that best for units?

Well I got the hands, head, and staff to show up. I did not have to apply the modifier. But, it was because I had some stuff wrong in my Units.artdef with my UnitMemberTypes section. I did not have anything for the "Point" field, which needs to be the name of your Armature.

Got another problem though, for some reason the right arm's sleeve is acting like it is connected to the left arm, or maybe the staff, I don't know, I took a screenshot. But, I went back in to Blender and made sure no vertices over on the right hand/arm was in the left hand's/arm's vertices group, and vise-versa. I also went in to weight paint and made sure the right and left hands/arms were painted properly. So I don't know what else could cause it to act like it is connected to the left hand/arm. And if you look at the other two dudes, when they hold the staff with both hands, the right sleeve follows the left hand/arm.

Spoiler screenshot :

upload_2017-9-15_21-52-18.png

 
Well I got the hands, head, and staff to show up. I did not have to apply the modifier. But, it was because I had some stuff wrong in my Units.artdef with my UnitMemberTypes section. I did not have anything for the "Point" field, which needs to be the name of your Armature.

Got another problem though, for some reason the right arm's sleeve is acting like it is connected to the left arm, or maybe the staff, I don't know, I took a screenshot. But, I went back in to Blender and made sure no vertices over on the right hand/arm was in the left hand's/arm's vertices group, and vise-versa. I also went in to weight paint and made sure the right and left hands/arms were painted properly. So I don't know what else could cause it to act like it is connected to the left hand/arm. And if you look at the other two dudes, when they hold the staff with both hands, the right sleeve follows the left hand/arm.

Spoiler screenshot :
The problem may be with the staff as in part of the vertex group on the right hand may be attached to the staff if that makes sense. I may be just changing your attachment point fixes the issue.
 
The problem may be with the staff as in part of the vertex group on the right hand may be attached to the staff if that makes sense. I may be just changing your attachment point fixes the issue.

I found out it has something to do with the animations. In AssetPreviewer with no attachments, right when I choose any animation it happens. So I guess it is something with the bones and/or vertex groups in my armor then? But I've checked all by bones, and vertex groups, and weight paint. Any ideas?

Spoiler when animated in AssetPreviewer :

upload_2017-9-16_0-57-55.png

 
I found the problem, it was because I had no IK bones. I deleted them when I was trying to fix something else and never put them back, so I just copied the base game IK bones and pasted it back in, re-parented everything and now the right sleeve is not stretching all the way over to the left hand anymore. Now though I notice, in that pose shown in the screenshot, that the right hand is down by the side but the sleeve is up by the stomach. Why is that right sleeve giving me so much trouble! Any ideas?

Spoiler ScreenShot :

upload_2017-9-16_2-32-3.png

 
Maybe post your .blend file and we can take a look. I have seen this before when trying to put a civ5 mesh onto a civ6 skeleton and it was just no rigged properly. But that is probably not your issue if you are just modifying a civ 6 mesh
 
Hm, now no model shows up at all...

I made an "Outline" while making my unit, maybe it will help you:

Edit: Indentions don't seem to show up in spoiler so the indention legend is:
#) level 1
- Level 2
> Level 3
~ Level 4

Spoiler 3D ART ASSET OUTLINE FOR UNITS :

3D ART ASSET OUTLINE FOR UNITS
Special Thanks: FurionHuang, Deliverator, sukritact, lasttry, Wolfdog

1) Windows File Explorer
- Go to (Sid Meier's Civilization VI SDK Assets/pantry) and copy/paste the .fgx file of any items you would like to use as a base to make your 3D Model or animation on your desktop or something.
- For 3D Models look under Geometries for the .fgx files, for animations look under the Animations folder for the .fgx files.
- For a human type unit you need to get a geometry file for the armor and another for the weapon. Example: Missionary_ArmorA.fgx for the clothing model, and GreatProphet_Staff.fgx for a weapon model
2) CivNexus6
- For Geometries: Click Open and select the .fgx file you copied of a geometry, under Additional Actions tab (make sure Import/Export Filetype is set to .cn6), click the Export Models (All Models) button.
- For Animations: Click Open and select the .fgx file you copied of a geometry, under Additional Actions tab click Export Animation to NA2, select the .fgx file you copied of an animation and click open.
3) Blender (Using Cyles Render)
- Change Units settings: in the Properties Menu, under Scene, then under Units, set Length to Metric and Unit Scale to 0.01, then in the 3D View's Properties Menu, under View, under Clip, set End to 100m.
- If you did the steps above: Click File => Import => CivNexus6 (.cn6), and select the .cn6 file you exported from CivNexus6 (.na2 for animations).
- Create 3D Model, and name your mesh (must be triangulated)
- Mark Seams (Ctrl + E => "Mark Seam")
> * Note: Not Required. (this allows you to tell Blender how to unwrap your mesh, it fixes UV island that has overlapping parts, as well as island proportion issues)
- Add a Bone (Add => Armature => Single Bone)
> If you loaded base game geometries in to Blender you it will already have bones so you won't need to add any.
- Add Vertex Group (In Edit mode for your 3D Model, select entire 3D Model, in the Properties Menu, under Object Data, then under Vertex Groups, add new vertex group and click Assign)
> Or if there is already a vertex group called Bone under Vertex Groups, just make sure your whole mesh is selected in edit mode and click Assign.
- Assign Bone to your 3D Model (In Object mode select 3D Model, then hold shift and select bone, then press Ctrl + P and select "With Automatic Weights")
> If you loaded base game geometries in to Blender you will need to unparent (Alt + P => Clear Parent) the bones, then parent them back to the mesh as described above.
- Add Inverse Kinematics (IK) to some of your bones ( in Pose Mode with a bone selected click Pose => Inverse Kinematics => Add IK to Bone => Without Targets)
> You only have to do this if you did not load base game geometries in to Blender, since the base game armature will already have IK bones
- Create a Material for each type of materials you will have on your 3D Model
> If you loaded base game geometries in to Blender there will already be a material there, just delete it
- Assign each Material to the corresponding faces of your 3D Model
- Create UV Map (In edit mode press U = > Unwrap)
- Pack Islands (In UV Map Editor press Ctrl + P)
> *Note: Not Required. (it just rearranges your islands so they fit better)
* Cycles Baking: (*Note: you do not have to use cycles baking, you could just save your UV map and edit it in a photo editor like Gimp)
- Get or Create PBR textures (PBR stands for Physically-Based Rendering)
> You will need an Albedo, bare minimum, but the more you use the better it will look (You can just use a 4x4 texture of RGB 255,128,128 for a completely flat normal map)
> Get PBR textures from the internet (Just google search free PBR textures. Examples: <www.textures.com> & <www.poliigon.com>)
> Create PBR textures
- Assign PBR textures to Materials using Nodes
- Fix any scaling/position issues with textures (Note that I use Generated Texture Coordinate and Mapping Nodes for this)
- Create a "New Blank Image" in UV Map Editor
- Create an unattached Texture Image Node in the Node Editor of each material with the "New Blank Image" as the texture file, and with this node as only selected node
- Bake your textures to your UV map
> Albedo = Diffuse (Color)
~ Unattached Texture Image Node with Color Space: Color
~ *Note: a dark grey background on the button means it is active. So the Color button should have a dark grey background, and Direct and Indirect should have a light grey background.
> Ambient Occlusion = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
> Glossiness = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
> Normal Map = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
> Metalness = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
- Delete all Materials, Create one Material, Assign your Baked UV Map Textures to the Material using Nodes
* Cycles Baking END
- Export Blender project to .cn6 format
4) Gimp (or Paint.NET)
- Export all of your Baked UV Map Textures to .dds format
> Gimp: Format RGBA8, Uncompressed, With Mipmaps
> Paint.NET: Format B8G8R8A8, Uncompressed, With Fant Mipmaps
5) CivNexus6
- Import the .cn6 file you exported from Blender
- Set Class under Additional Actions tab to: (LandmarkModel for buildings, Unit for units, Leader for leaders)
- Click Save (it will save it as a .fgx)
- Under Additional Actions tab, click [Create GeometrySet .xml for .ast file] (Creates GeomertySet.xml file)
- Under Additional Actions tab, click [Create Geomerty/Animation (.geo/.anm) File] (Creates .geo if the open .fgx file is a 3D Model, or a .anm if the open .fgx file is an Animation.)
6) Windows File Explorer
- Copy and paste all the files you just made in CivNexus6 in to the Geometries folder in your ModBuddy Project (normally all to the same folder )
> You should have a .geo, .fxg, and a .xml file at least. You may also have some .anm files to if you made animations.
- Go to (Sid Meier's Civilization VI SDK Assets/pantry/Assets) folder, copy and paste a simlar type assets in to the Asset folder in your ModBuddy Project and rename it the same name as your .fgx file.
> You may need to copy more than one .ast file type
> Example for a human type unit: Missionary_ArmorA.ast for the clothing model, and GreatProphet_Staff.ast for a weapon model
> Example for a vehicle type unit: TankA.ast
> You can open the .ast files in AssetEditor in ModBuddy to see what they look like to help you pick the right one.
7) AssetEditor in ModBuddy
- Create Texture files, click New, then Texture (creates .tex file and a copy of the .dds in your project folder)
> Albedo (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)
- Create Material file, click New, then Material (creates .mtl file in your project folder) (you will make one for every Material you had in Blender)
> Name: "whatever you named your material in blender"
> Class Name: (Unit)
> Under Cook Parameters, then under Value, for each entry click Add Existing, and Add correct .tex files you created to corresponding Value
> Save
- Create Unit ArtDefs (Units.artdef and Unit_Bins.artdef)
> Click New, then ArtDef, then for Art Definition Template choose "Units" (this will become the Units.artdef)
~ On Units, right click, select Add Element (Name: "Your unit's name from ModBuddy") (Formation: "choose one similar to your unit type") (EmbarkedUnit: "choose one similar to your unit type")
~ On UnitMemberTypes, right click, select Add Element (Name: "A short-hand version of your unit's name from ModBuddy"), On Cultures, right click, Add Element (Name: Any), On Variations, right click, Add Element (Name: A) (Scale: 1.1), On Attachments, right click, Add 5 Elements: (1) Name: Armor, Point: Root, Tint: CV_Any; (2) Name: Body, Point: Root; (3) Name: Boots, Point: Root; (4) Name: Head, Point: Root; (5) Name: Weapon, Point: WeaponPrimary, then for each of the Bins of the 5 elements, right click, Add Element, then for the Name field reference the assets that are defined under UnitAttachmentBins in the Unit_Bins.artdef in the format "first level group nane/asset name on third level" , so for example the Bins for each of the 5 elements could be: (1) Name: Armor/Missionary; (2) Name: Bodies/Male_MediumBody_Hands; (3) Name: Boots/Missionary; (4) Name: Heads/Male; (5) Name: Staffs/Missionary. Then go back up On Cultures, right click, Add Element and do the exact sane thing 7 more times, once for each ethnicity (Name: East/Asian, Mediterranean, Mughal, NorthAfrica, NorthernEuropean, SouthAfrican, SouthAmerican) ... And when you get to the (1) Armor element in each one, the Tint would be specific for each ethnicity (Tint: CV_EastAsian, CV_Mediterranean, CV_Mughal, CV_NorthAfrica, CV_NorthernEuropean, CV_SouthAfrican, CV_SouthAmerican).
* Note, if you made a brand new armature then instead of Point: Root it would be Point: "What you named your armature in Blender"
~ On Members, right click, Add Element (Scale: 1) (Count: 4) (Type: "The Name field you created in UnitMemberTypes")
~ On Audio, right click, Add Element (Name: "choose one similar to your unit type") (XrefName: "choose one similar to your unit type")
~ Save
> Click New, then ArtDef, then for Art Definition Template choose "Units", then click File, then Save As, and type in "Unit_Bins" for the file name (this will become the Unit_Bins.artdef)
~ On UnitAttachmentBins, right click, Add Element (Name: Armor), On Groups, right click, Add Element (Name: "The Name field you created in UnitMemberTypes"), On Cultures, right click, Add Element (Name: Any), On Assets, right click, Add Element (Name: "the name of your .ast file") (Asset: "choose random base game asset for now, but remember what you chose")
~ On UnitAttachmentBins, right click, Add Element (Name: "Choose Weapon Type: Bows, Crossbows, Muskets, Pistols, Rifles, Shields, Spears, Staffs, Swords, or Special), On Groups, right click, Add Element (Name: "The Name field you created in UnitMemberTypes"), On Cultures, right click, Add Element (Name: Any), On Assets, right click, Add Element (Name: "the name of your .ast file") (Asset: "choose random base game asset for now, but remember what you chose")
~ Save
8) ModBuddy
- From project's Solution Explorer panel, right click, Add => Existing Item, add all of the files that are in the Geometries, Assets, Materials, Textures, and ArtDefs folders
> You are adding all the files you have created up until now
- Open your model's .ast file, do a Find and Replace for all of the following (enter file names without file extentions)
> Change m_Name field near the end to what you renamed the .ast file , leave the first one as "Root"
> Change m_GeoName field to the name of your .geo file
> Change m_ObjectName field under AssetObjects::ObjectValue element to the name of your .mtl file
> Change m_GroupName field to whatever you named your material in Blender/CivNexus6
> Change m_MeshName to whatever you named your mesh in Blender/CivNexus6
- Open your Unit_Bins.artdef file
> Search for the random base game asset you put under the Armor group of UnitAttachmentBins for the Asset entry when you created the ArtDef, replace with your armor's .ast file name.
> Search for the random base game asset you put under "the weapon type you used " group of UnitAttachmentBins for the Asset entry when you created the ArtDef, replace with your weaopn's .ast file name.
- Create .xlp files with "correct coding"
> A Units.xlp
> With your armor's .ast file and your weapon's .ast file names listed (without file extentions)
- Create and/or Edit Mod.Art.xml with correct relativeArtDefPaths and libraryDependencies
> You will need to add elements under consumerName Units and libraryName Unit
- 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 created)
- Click File => Save All => Click Build => Build Project
- *You do not need to add .xlp files, or the GeometrySet.xml to the Project Properties In-Game Actions
- *Your .blp files are auto generated from your .xlp files, and your .dep file is also auto generated from your Mod.Art.xml at build time.
9) Troubleshoot (Asset Editor/Blender/ModBuddy)
- Open your model's .ast file, make sure your model is displaying properly in the Asset PreViewer panel
- If you can't see your model in Asset PreViewer, then there could be something wrong with your .ast file or any other file associated with it
- If you see it, but it is not the correct size or in the correct position, then its back to Blender to scale/rotate/repostion
> Then export to .cn6, do the same steps in CivNexus6, and copy/paste/replace the .fgx, .geo, and .xml to your Geometries folder in your ModBuddy Project
- Then open back up in Asset Editor to see if it is now correct
- If it is the start game up and see if it displays properly in game, if not, then there could be something wrong with your .xlp files, or Mod.Art.xml file, or .artdef files, or Project Properties
- Troubleshoot
 
Last edited:
I made an "Outline" while making my unit, maybe it will help you:

Edit: Indentions don't seem to show up in spoiler so the indention legend is:
#) level 1
- Level 2
> Level 3
~ Level 4

Spoiler 3D ART ASSET OUTLINE FOR UNITS :

3D ART ASSET OUTLINE FOR UNITS
Special Thanks: FurionHuang, Deliverator, sukritact, lasttry, Wolfdog

1) Windows File Explorer
- Go to (Sid Meier's Civilization VI SDK Assets/pantry) and copy/paste the .fgx file of any items you would like to use as a base to make your 3D Model or animation on your desktop or something.
- For 3D Models look under Geometries for the .fgx files, for animations look under the Animations folder for the .fgx files.
- For a human type unit you need to get a geometry file for the armor and another for the weapon. Example: Missionary_ArmorA.fgx for the clothing model, and GreatProphet_Staff.fgx for a weapon model
2) CivNexus6
- For Geometries: Click Open and select the .fgx file you copied of a geometry, under Additional Actions tab (make sure Import/Export Filetype is set to .cn6), click the Export Models (All Models) button.
- For Animations: Click Open and select the .fgx file you copied of a geometry, under Additional Actions tab click Export Animation to NA2, select the .fgx file you copied of an animation and click open.
3) Blender (Using Cyles Render)
- Change Units settings: in the Properties Menu, under Scene, then under Units, set Length to Metric and Unit Scale to 0.01, then in the 3D View's Properties Menu, under View, under Clip, set End to 100m.
- If you did the steps above: Click File => Import => CivNexus6 (.cn6), and select the .cn6 file you exported from CivNexus6 (.na2 for animations).
- Create 3D Model, and name your mesh (must be triangulated)
- Mark Seams (Ctrl + E => "Mark Seam")
> * Note: Not Required. (this allows you to tell Blender how to unwrap your mesh, it fixes UV island that has overlapping parts, as well as island proportion issues)
- Add a Bone (Add => Armature => Single Bone)
> If you loaded base game geometries in to Blender you it will already have bones so you won't need to add any.
- Add Vertex Group (In Edit mode for your 3D Model, select entire 3D Model, in the Properties Menu, under Object Data, then under Vertex Groups, add new vertex group and click Assign)
> Or if there is already a vertex group called Bone under Vertex Groups, just make sure your whole mesh is selected in edit mode and click Assign.
- Assign Bone to your 3D Model (In Object mode select 3D Model, then hold shift and select bone, then press Ctrl + P and select "With Automatic Weights")
> If you loaded base game geometries in to Blender you will need to unparent (Alt + P => Clear Parent) the bones, then parent them back to the mesh as described above.
- Add Inverse Kinematics (IK) to some of your bones ( in Pose Mode with a bone selected click Pose => Inverse Kinematics => Add IK to Bone => Without Targets)
> You only have to do this if you did not load base game geometries in to Blender, since the base game armature will already have IK bones
- Create a Material for each type of materials you will have on your 3D Model
> If you loaded base game geometries in to Blender there will already be a material there, just delete it
- Assign each Material to the corresponding faces of your 3D Model
- Create UV Map (In edit mode press U = > Unwrap)
- Pack Islands (In UV Map Editor press Ctrl + P)
> *Note: Not Required. (it just rearranges your islands so they fit better)
* Cycles Baking: (*Note: you do not have to use cycles baking, you could just save your UV map and edit it in a photo editor like Gimp)
- Get or Create PBR textures (PBR stands for Physically-Based Rendering)
> You will need an Albedo, bare minimum, but the more you use the better it will look (You can just use a 4x4 texture of RGB 255,128,128 for a completely flat normal map)
> Get PBR textures from the internet (Just google search free PBR textures. Examples: <www.textures.com> & <www.poliigon.com>)
> Create PBR textures
- Assign PBR textures to Materials using Nodes
- Fix any scaling/position issues with textures (Note that I use Generated Texture Coordinate and Mapping Nodes for this)
- Create a "New Blank Image" in UV Map Editor
- Create an unattached Texture Image Node in the Node Editor of each material with the "New Blank Image" as the texture file, and with this node as only selected node
- Bake your textures to your UV map
> Albedo = Diffuse (Color)
~ Unattached Texture Image Node with Color Space: Color
~ *Note: a dark grey background on the button means it is active. So the Color button should have a dark grey background, and Direct and Indirect should have a light grey background.
> Ambient Occlusion = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
> Glossiness = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
> Normal Map = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
> Metalness = Emit (*Requires Special Node Setup through the Emission shader)
~ Unattached Texture Image Node with Color Space: Non-Color Data
- Delete all Materials, Create one Material, Assign your Baked UV Map Textures to the Material using Nodes
* Cycles Baking END
- Export Blender project to .cn6 format
4) Gimp (or Paint.NET)
- Export all of your Baked UV Map Textures to .dds format
> Gimp: Format RGBA8, Uncompressed, With Mipmaps
> Paint.NET: Format B8G8R8A8, Uncompressed, With Fant Mipmaps
5) CivNexus6
- Import the .cn6 file you exported from Blender
- Set Class under Additional Actions tab to: (LandmarkModel for buildings, Unit for units, Leader for leaders)
- Click Save (it will save it as a .fgx)
- Under Additional Actions tab, click [Create GeometrySet .xml for .ast file] (Creates GeomertySet.xml file)
- Under Additional Actions tab, click [Create Geomerty/Animation (.geo/.anm) File] (Creates .geo if the open .fgx file is a 3D Model, or a .anm if the open .fgx file is an Animation.)
6) Windows File Explorer
- Copy and paste all the files you just made in CivNexus6 in to the Geometries folder in your ModBuddy Project (normally all to the same folder )
> You should have a .geo, .fxg, and a .xml file at least. You may also have some .anm files to if you made animations.
- Go to (Sid Meier's Civilization VI SDK Assets/pantry/Assets) folder, copy and paste a simlar type assets in to the Asset folder in your ModBuddy Project and rename it the same name as your .fgx file.
> You may need to copy more than one .ast file type
> Example for a human type unit: Missionary_ArmorA.ast for the clothing model, and GreatProphet_Staff.ast for a weapon model
> Example for a vehicle type unit: TankA.ast
> You can open the .ast files in AssetEditor in ModBuddy to see what they look like to help you pick the right one.
7) AssetEditor in ModBuddy
- Create Texture files, click New, then Texture (creates .tex file and a copy of the .dds in your project folder)
> Albedo (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)
- Create Material file, click New, then Material (creates .mtl file in your project folder) (you will make one for every Material you had in Blender)
> Name: "whatever you named your material in blender"
> Class Name: (Unit)
> Under Cook Parameters, then under Value, for each entry click Add Existing, and Add correct .tex files you created to corresponding Value
> Save
- Create Unit ArtDefs (Units.artdef and Unit_Bins.artdef)
> Click New, then ArtDef, then for Art Definition Template choose "Units" (this will become the Units.artdef)
~ On Units, right click, select Add Element (Name: "Your unit's name from ModBuddy") (Formation: "choose one similar to your unit type") (EmbarkedUnit: "choose one similar to your unit type")
~ On UnitMemberTypes, right click, select Add Element (Name: "A short-hand version of your unit's name from ModBuddy"), On Cultures, right click, Add Element (Name: Any), On Variations, right click, Add Element (Name: A) (Scale: 1.1), On Attachments, right click, Add 5 Elements: (1) Name: Armor, Point: Root, Tint: CV_Any; (2) Name: Body, Point: Root; (3) Name: Boots, Point: Root; (4) Name: Head, Point: Root; (5) Name: Weapon, Point: WeaponPrimary, then for each of the Bins of the 5 elements, right click, Add Element, then for the Name field reference the assets that are defined under UnitAttachmentBins in the Unit_Bins.artdef in the format "first level group nane/asset name on third level" , so for example the Bins for each of the 5 elements could be: (1) Name: Armor/Missionary; (2) Name: Bodies/Male_MediumBody_Hands; (3) Name: Boots/Missionary; (4) Name: Heads/Male; (5) Name: Staffs/Missionary. Then go back up On Cultures, right click, Add Element and do the exact sane thing 7 more times, once for each ethnicity (Name: East/Asian, Mediterranean, Mughal, NorthAfrica, NorthernEuropean, SouthAfrican, SouthAmerican) ... And when you get to the (1) Armor element in each one, the Tint would be specific for each ethnicity (Tint: CV_EastAsian, CV_Mediterranean, CV_Mughal, CV_NorthAfrica, CV_NorthernEuropean, CV_SouthAfrican, CV_SouthAmerican).
* Note, if you made a brand new armature then instead of Point: Root it would be Point: "What you named your armature in Blender"
~ On Members, right click, Add Element (Scale: 1) (Count: 4) (Type: "The Name field you created in UnitMemberTypes")
~ On Audio, right click, Add Element (Name: "choose one similar to your unit type") (XrefName: "choose one similar to your unit type")
~ Save
> Click New, then ArtDef, then for Art Definition Template choose "Units", then click File, then Save As, and type in "Unit_Bins" for the file name (this will become the Unit_Bins.artdef)
~ On UnitAttachmentBins, right click, Add Element (Name: Armor), On Groups, right click, Add Element (Name: "The Name field you created in UnitMemberTypes"), On Cultures, right click, Add Element (Name: Any), On Assets, right click, Add Element (Name: "the name of your .ast file") (Asset: "choose random base game asset for now, but remember what you chose")
~ On UnitAttachmentBins, right click, Add Element (Name: "Choose Weapon Type: Bows, Crossbows, Muskets, Pistols, Rifles, Shields, Spears, Staffs, Swords, or Special), On Groups, right click, Add Element (Name: "The Name field you created in UnitMemberTypes"), On Cultures, right click, Add Element (Name: Any), On Assets, right click, Add Element (Name: "the name of your .ast file") (Asset: "choose random base game asset for now, but remember what you chose")
~ Save
8) ModBuddy
- From project's Solution Explorer panel, right click, Add => Existing Item, add all of the files that are in the Geometries, Assets, Materials, Textures, and ArtDefs folders
> You are adding all the files you have created up until now
- Open your model's .ast file, do a Find and Replace for all of the following (enter file names without file extentions)
> Change m_Name field near the end to what you renamed the .ast file , leave the first one as "Root"
> Change m_GeoName field to the name of your .geo file
> Change m_ObjectName field under AssetObjects::ObjectValue element to the name of your .mtl file
> Change m_GroupName field to whatever you named your material in Blender/CivNexus6
> Change m_MeshName to whatever you named your mesh in Blender/CivNexus6
- Open your Unit_Bins.artdef file
> Search for the random base game asset you put under the Armor group of UnitAttachmentBins for the Asset entry when you created the ArtDef, replace with your armor's .ast file name.
> Search for the random base game asset you put under "the weapon type you used " group of UnitAttachmentBins for the Asset entry when you created the ArtDef, replace with your weaopn's .ast file name.
- Create .xlp files with "correct coding"
> A Units.xlp
> With your armor's .ast file and your weapon's .ast file names listed (without file extentions)
- Create and/or Edit Mod.Art.xml with correct relativeArtDefPaths and libraryDependencies
> You will need to add elements under consumerName Units and libraryName Unit
- 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 created)
- Click File => Save All => Click Build => Build Project
- *You do not need to add .xlp files, or the GeometrySet.xml to the Project Properties In-Game Actions
- *Your .blp files are auto generated from your .xlp files, and your .dep file is also auto generated from your Mod.Art.xml at build time.
9) Troubleshoot (Asset Editor/Blender/ModBuddy)
- Open your model's .ast file, make sure your model is displaying properly in the Asset PreViewer panel
- If you can't see your model in Asset PreViewer, then there could be something wrong with your .ast file or any other file associated with it
- If you see it, but it is not the correct size or in the correct position, then its back to Blender to scale/rotate/repostion
> Then export to .cn6, do the same steps in CivNexus6, and copy/paste/replace the .fgx, .geo, and .xml to your Geometries folder in your ModBuddy Project
- Then open back up in Asset Editor to see if it is now correct
- If it is the start game up and see if it displays properly in game, if not, then there could be something wrong with your .xlp files, or Mod.Art.xml file, or .artdef files, or Project Properties
- Troubleshoot
Well done glad you got it sorted.

How do you find using cycles in blender? I had a bit off a go setting up a PBR node in cycles and it seemed to work pretty good but it was a lot of work (the maths was beyond me too). Also it did not seem very good at baking normals.
 
Well done glad you got it sorted.

How do you find using cycles in blender? I had a bit off a go setting up a PBR node in cycles and it seemed to work pretty good but it was a lot of work (the maths was beyond me too). Also it did not seem very good at baking normals.

I'm not sure what version you were using, but I got Blender 2.79-rc2 which has a new node called the Principled Shader which is very useful. It is an all-in-one shader based on the Disney principled model also known as the ”PBR” shader. Pretty much you just plug up your PBR textures in to it and there you go. Baking it though you need to setup your nodes a bit different. Albedo you just bake as is with Diffuse Color, but AO, Gloss, and Metal you have to run just that texture through a Color Ramp node and an Emission node with the Emit bake. For Normals, you run it through an addon node group you download called Normal to Map, then through an Emission node with the Emit bake.

Normal to Map Node Group Download: http://digicreatures.net/articles/cycles-normal-baking.html

Spoiler Baking Node Setup Screen Shots :

Albedo:
upload_2017-9-17_0-15-16.png


AO:
upload_2017-9-17_0-15-40.png


Normal:
upload_2017-9-17_0-15-59.png


Convert Roughness to Gloss Bake:
upload_2017-9-17_0-17-28.png



And I actually made a text document of all my node setups if your interested, I will have to warn you though it is not visually friendly.

Spoiler Node Setups and Cycles Baking with PBR Textures :

NODE SETUPS AND CYCLES BAKING WITH PBR TEXTURES:

PBR Map Types:
- Color Map: Albedo/Base Color/Diffuse Map (different terms used) [The base color image of your texture]
- Ambient Occlusion Map: AO Map (different terms used) [Gives your texture shadows]
- Bump Map: Normal Map or Height Map/Displacement Map (usually one of the other, sometimes both) (Height Map/Displacement Map same thing) [Gives your texture depth and features]
- Glossiness: Gloss Map or Roughness Map (same, just inverted) [Gives your texture reflection]
> Specular Map: not needed for the Principled shader, used with a specular work flow [Tells the amount of light reflected]
> Reflection Map: not needed for the Principled shader, used with a specular work flow [Tells which parts of your texture has reflection]
- Metalness: Metallic Map (only used if your material is a metal) [Gives your texture a metallic look]


Node Editor Setup (Cycles Blender)
*LEGEND: (INPUT) NODE NAME [IMAGE TYPE] <NODE OPTIONS CHANGE> (OUTPUT)
*Albedo:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Color Map] <Color Space: Color> <Method to Project: Box> (Color) => (Color 1) MixRGB <Multiply> (Color) => (Base Color) Principled BSDF
> Texture Coordinate node under Input
> Mapping node under Vector
> Image Texture node under Texture
> MixRGB node under Color
> Principled BSDF node under Shader (Metallic: 0 for dielectric (non-metals), 1 for metals)
> Alternate setup change color of your Color Map
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Color Map] <Color Space: Color> <Method to Project: Box> (Color) => (Color 1) MixRGB <Mix> (Color) => (Color1) MixRGB <Multiply> (Color) => (Base Color) Principled BSDF
- Set (Color2) to color you want to make it
- Try swaping Mix for Multiply, Color, or Burn for different color shades
- Set Color Space to Non-Color Data in the Image Texture node if you want to remove all color from original albedo image
*Ambient Occlusion:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Ambient Occlusion Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color 2) MixRGB <Multiply>
*Bump Map: Normal Map or Height Map/Displacement Map:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Principled BSDF
> Normal Map node under Vector
> Alternate setup using a Height Map/Displacement Map
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Displacement Map/Height Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Height) Bump (Normal) => (Normal) Principled BSDF
> Alternate setup using both a Normal Map and a Displacement Map/Height Map:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Bump (Normal) => (Normal) Principled BSDF
- Bump node under Vector
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Displacement Map/Height Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Height) Bump
> Alternate setup using 2 Normal Maps:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Base) Normal Map Mixer (Color) => (Color) Normal Map (Normal) => (Normal) Principled BSDF
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Detail) Normal Map Mixer
- Normal Map Mixer (Custom Node Group), go to File then click Append, find file then Append from Library, then look under Group
> Download Normal Map Mixer at <https://drive.google.com/open?id=0B8PFSrI9B3iwc3kybTAtMVpKMTA>
*Glossiness:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Gloss Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Invert (Roughness) => (Roughness) Principled BSDF
> Invert node under Color
> Alternate setup using a Roughness Map:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Roughness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Roughness) Principled BSDF
> Alternate setup using both a Gloss Map and Roughness Map:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Gloss Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Invert (Roughness) => (Color 1) MixRGB <Screen> (Color) => (Roughness) Principled BSDF
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Roughness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color 2) MixRGB <Screen>
*Metalness:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Metalness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Metallic) Principled BSDF <Metallic Slider: 0 for Dielectric/Non-metals, 1 for Metals>
- Principled BSDF (BDSF) => (Surface) Material Output
*Special Setup to Bake Normal UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Bump (Normal) => (Normal) Normal to Map (sRGB Color) => (Color) Emission (Emission) => (Surface) Material Output
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Displacement Map/Height Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Height) Bump
- Normal to Map node is an addon and must be downloaded and Appended, then you can find it under Group. <http://digicreatures.net/articles/cycles-normal-baking.html>
- Emission node under Shader
- Alternate Setup:
> Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Normal to Map (sRGB Color) => (Color) Emission (Emission) => (Surface) Material Output
*Special Setup to Bake Ambient Occlusion UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Ambient Occlusion Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output
*Special Setup to Bake Glossiness/Roughness Map UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Gloss Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output
- For roughness we convert to gloss map by adding Invert Node
> Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Roughness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Invert (Roughness) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output
*Special Setup to Bake Metalness UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Metalness] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output

Addon: Normal To Map Node <http://digicreatures.net/articles/cycles-normal-baking.html>
Addon: Sure UVW Map Addon for Blender <https://developer.blender.org/F18724>
 
I'm not sure what version you were using, but I got Blender 2.79-rc2 which has a new node called the Principled Shader which is very useful. It is an all-in-one shader based on the Disney principled model also known as the ”PBR” shader. Pretty much you just plug up your PBR textures in to it and there you go. Baking it though you need to setup your nodes a bit different. Albedo you just bake as is with Diffuse Color, but AO, Gloss, and Metal you have to run just that texture through a Color Ramp node and an Emission node with the Emit bake. For Normals, you run it through an addon node group you download called Normal to Map, then through an Emission node with the Emit bake.

Normal to Map Node Group Download: http://digicreatures.net/articles/cycles-normal-baking.html

Spoiler Baking Node Setup Screen Shots :


And I actually made a text document of all my node setups if your interested, I will have to warn you though it is not visually friendly.

Spoiler Node Setups and Cycles Baking with PBR Textures :

NODE SETUPS AND CYCLES BAKING WITH PBR TEXTURES:

PBR Map Types:
- Color Map: Albedo/Base Color/Diffuse Map (different terms used) [The base color image of your texture]
- Ambient Occlusion Map: AO Map (different terms used) [Gives your texture shadows]
- Bump Map: Normal Map or Height Map/Displacement Map (usually one of the other, sometimes both) (Height Map/Displacement Map same thing) [Gives your texture depth and features]
- Glossiness: Gloss Map or Roughness Map (same, just inverted) [Gives your texture reflection]
> Specular Map: not needed for the Principled shader, used with a specular work flow [Tells the amount of light reflected]
> Reflection Map: not needed for the Principled shader, used with a specular work flow [Tells which parts of your texture has reflection]
- Metalness: Metallic Map (only used if your material is a metal) [Gives your texture a metallic look]


Node Editor Setup (Cycles Blender)
*LEGEND: (INPUT) NODE NAME [IMAGE TYPE] <NODE OPTIONS CHANGE> (OUTPUT)
*Albedo:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Color Map] <Color Space: Color> <Method to Project: Box> (Color) => (Color 1) MixRGB <Multiply> (Color) => (Base Color) Principled BSDF
> Texture Coordinate node under Input
> Mapping node under Vector
> Image Texture node under Texture
> MixRGB node under Color
> Principled BSDF node under Shader (Metallic: 0 for dielectric (non-metals), 1 for metals)
> Alternate setup change color of your Color Map
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Color Map] <Color Space: Color> <Method to Project: Box> (Color) => (Color 1) MixRGB <Mix> (Color) => (Color1) MixRGB <Multiply> (Color) => (Base Color) Principled BSDF
- Set (Color2) to color you want to make it
- Try swaping Mix for Multiply, Color, or Burn for different color shades
- Set Color Space to Non-Color Data in the Image Texture node if you want to remove all color from original albedo image
*Ambient Occlusion:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Ambient Occlusion Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color 2) MixRGB <Multiply>
*Bump Map: Normal Map or Height Map/Displacement Map:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Principled BSDF
> Normal Map node under Vector
> Alternate setup using a Height Map/Displacement Map
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Displacement Map/Height Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Height) Bump (Normal) => (Normal) Principled BSDF
> Alternate setup using both a Normal Map and a Displacement Map/Height Map:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Bump (Normal) => (Normal) Principled BSDF
- Bump node under Vector
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Displacement Map/Height Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Height) Bump
> Alternate setup using 2 Normal Maps:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Base) Normal Map Mixer (Color) => (Color) Normal Map (Normal) => (Normal) Principled BSDF
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Detail) Normal Map Mixer
- Normal Map Mixer (Custom Node Group), go to File then click Append, find file then Append from Library, then look under Group
> Download Normal Map Mixer at <https://drive.google.com/open?id=0B8PFSrI9B3iwc3kybTAtMVpKMTA>
*Glossiness:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Gloss Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Invert (Roughness) => (Roughness) Principled BSDF
> Invert node under Color
> Alternate setup using a Roughness Map:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Roughness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Roughness) Principled BSDF
> Alternate setup using both a Gloss Map and Roughness Map:
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Gloss Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Invert (Roughness) => (Color 1) MixRGB <Screen> (Color) => (Roughness) Principled BSDF
~ Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Roughness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color 2) MixRGB <Screen>
*Metalness:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Metalness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Metallic) Principled BSDF <Metallic Slider: 0 for Dielectric/Non-metals, 1 for Metals>
- Principled BSDF (BDSF) => (Surface) Material Output
*Special Setup to Bake Normal UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Bump (Normal) => (Normal) Normal to Map (sRGB Color) => (Color) Emission (Emission) => (Surface) Material Output
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Displacement Map/Height Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Height) Bump
- Normal to Map node is an addon and must be downloaded and Appended, then you can find it under Group. <http://digicreatures.net/articles/cycles-normal-baking.html>
- Emission node under Shader
- Alternate Setup:
> Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Bump Map (Normal Map)] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Normal Map (Normal) => (Normal) Normal to Map (sRGB Color) => (Color) Emission (Emission) => (Surface) Material Output
*Special Setup to Bake Ambient Occlusion UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Ambient Occlusion Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output
*Special Setup to Bake Glossiness/Roughness Map UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Gloss Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output
- For roughness we convert to gloss map by adding Invert Node
> Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Roughness Map] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Color) Invert (Roughness) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output
*Special Setup to Bake Metalness UV Maps from PBR Textures:
- Texture Coordinate (Generated) => (Vector) Mapping (Vector) = > (Vector) Image Texture [Metalness] <Color Space: Non-Color Data> <Method to Project: Box> (Color) => (Fac) ColorRamp (Color) => (Color) Emission (Emission) => (Surface) Material Output

Addon: Normal To Map Node <http://digicreatures.net/articles/cycles-normal-baking.html>
Addon: Sure UVW Map Addon for Blender <https://developer.blender.org/F18724>
Thanks I will give that a go.I need to have another go at trying to learn it again especially baking them in blender. At the moment the PBR maps I previously made (generated by GIMP insane map or awesome bump) look really really dull and unrealistic so I don't even waste my time with them anymore. For a lot of my units I will just use the diff as the base colour and generic 4x4 maps for the rest and they look heaps better than with the PBR maps.
 
Thanks I will give that a go.I need to have another go at trying to learn it again especially baking them in blender. At the moment the PBR maps I previously made (generated by GIMP insane map or awesome bump) look really really dull and unrealistic so I don't even waste my time with them anymore. For a lot of my units I will just use the diff as the base colour and generic 4x4 maps for the rest and they look heaps better than with the PBR maps.

Yea, but since everything is so small in Civ 6 I bake my textures on default res 1024 x 1024 image size for the whole UV map. Look at my staff (not rendered) I made for my sorcerer in Blender versus in game. Also I went ahead and included the node screen shots for it to.

Spoiler ScreenShots :

upload_2017-9-17_2-4-43.png


upload_2017-9-17_2-5-13.png


upload_2017-9-17_2-5-34.png


upload_2017-9-17_2-5-55.png

 
I really am not experienced at all in 3D modeling, and I have no idea what most of the things in the outline mean. If someone could help me out here and make this, it would be greatly appreciated. Thank you!
 
I really am not experienced at all in 3D modeling, and I have no idea what most of the things in the outline mean. If someone could help me out here and make this, it would be greatly appreciated. Thank you!

Yea, the Outline is not a Tutorial, it is just my personal notes I took while learning this stuff, where each line is more like a header for multiple smaller steps. I do, however, plan to make it in to an in-depth tutorial. Right after I figure out how to put those line breaks in my Mod Info Description, then my project will be done and I will make it. One for Units and one for Buildings, I have not done Leaders yet, I plan to create a new Civ in my next project.
 
I really am not experienced at all in 3D modeling, and I have no idea what most of the things in the outline mean. If someone could help me out here and make this, it would be greatly appreciated. Thank you!
All you should need to do to get your model showing up is open the .fgx in CivNexus6 go to the Material tab, delete existing material, add new material named TABOR. Then go to the Edit Model tab and assign your material to each mesh. Save and create .geo file. Copy .fgx and .geo file over current ones.
 
Top Bottom