Art Assets in Civilization 6: A Modding Guide

It's going to be fun when the community gets around to implementing their own assets. If you know what you're doing, this engine has the potential to be extremely malleable.

Definitely looks like there's fun to be had here! I'm not sure we'll able to change the actual particle effect models without Fork Particle Studio but reskinning and recoloring particle effects looks like it should be as simple as reskinning units, etc which is a big improvement over Civ 5 where we couldn't edit the bundled visual FX in any way.
 
@Deliverator

I came into several problems when trying to create my own building model:
1. I have no knowledge of Blender (and maybe because of getting old, I have no idea how to pick up new software as before), but I'm an experienced modeler using Maya, mostly static models like objects and buildings. Is there any workflow that I can skip Blender? Reading the official assets I assume the geometries (and animations) were imported from 3DS MAX (which surprised me a little), so there should be a way? Can I create Geometry within AssetEditor, import a source file like .fbx, or even .mb if it allows me to, let it create a fgx file and add to the asset?
2. I've also tried to build up geometries in Maya, export a FBX file and import into Blender, then run the script for Nexus. Then I always receive warnings either says there're unweighted vertices or 0 size of UV mapping. I can probably create a UV set in Maya before exporting, and I should do that for textures. But what are the unweighted vertices? Something to do with Armature? This might be a dumb question, sorry for that.
3. By some mysterious luck I managed exporting the .br2 file once and twice, and opened in Nexus, saved as .fgx and created .geo files. Previewed, showed the geometry but the bounding box or world grid planes, whatever you call it, are RED? Does it mean there's anything wrong? Because it should be black as in your screen-shots, and when I open some official fgx files.
4. In the AssetEditor, I was able to add the Geo that I created in Nexus, gave me the vertex count, mesh name correct, material not set because I didn't do that. But I saw nothing in the preview. Just a default grassland and nothing else. Through same process getting the official model exported and imported again, I was able to see a geometry without materials assigned. So I guess it was related to the RED grid planes for some reason. Any theory why?
5. So when modeling, what should I include? I have polygon mesh geometries out of Maya, I assigned an Armature to it in Blender (where I guess was the problem, because I don't totally understand how it works, as well as vertex groups)(also I believe this can be done in Maya, just didn't look into it), I didn't create a UV set but that can be done easily. What else did I miss?

Sorry that I don't have access to Nexus nor AssetEditor right now so I can't provide any screenshots.

So far. I know that's a lot of questions. It will be great if you can help me out.
Thanks!
 
@FurionHuang i am sure deliverator will help you, in the meantime, i will try to help you a Little..

1. as Far as i Know, there Is No way to Skip Blender, Due to the Import and Export scripts Are only available for Blender by now. Actually i am not a Blender User too, i Prefer to work with 3ds Max, But for Civ modding Blender Is necessary when it comes to Import of Vanilla Models and Export from a 3D software. But of Course you can do the Modeling work in Maya, then Export to obj Or fbx , and then Import it into Blender, and Do Rest of the work in Blender

2. unweighted vertices : That error Show up if you have...well...unweighted vertices.
Then i think you have a Skeleton in your Blender Project, and all Or some of the vertices Are not assigned to the Bones of that Skeleton. Import a Vanilla Game Model that Looks closest to your Model, and Make a weight Transfer from the Vanilla Model.

4. only if you have all necessary steps Done, so Materials and textures Applied then it will Show up in the asset Editor, Never before that.

Hope this helps , But i am sure deliverator Is able to give you a better reply.Just wait patiently
 
@FurionHuang i am sure deliverator will help you, in the meantime, i will try to help you a Little..

1. as Far as i Know, there Is No way to Skip Blender, Due to the Import and Export scripts Are only available for Blender by now. Actually i am not a Blender User too, i Prefer to work with 3ds Max, But for Civ modding Blender Is necessary when it comes to Import of Vanilla Models and Export from a 3D software. But of Course you can do the Modeling work in Maya, then Export to obj Or fbx , and then Import it into Blender, and Do Rest of the work in Blender

2. unweighted vertices : That error Show up if you have...well...unweighted vertices.
Then i think you have a Skeleton in your Blender Project, and all Or some of the vertices Are not assigned to the Bones of that Skeleton. Import a Vanilla Game Model that Looks closest to your Model, and Make a weight Transfer from the Vanilla Model.

4. only if you have all necessary steps Done, so Materials and textures Applied then it will Show up in the asset Editor, Never before that.

Hope this helps , But i am sure deliverator Is able to give you a better reply.Just wait patiently
Thanks lasttry that helps a lot. Yea I guess the unweighted vertices are because I created vertex group without properly associating with skeleton. Though question is why should I have skeleton if it's just a building model?
 
Good question...actually buildings Are Static Models that Do not Need any Skeleton

What Type of Building Is it ? Wonder ?
 
Last edited:
@FurionHuang i am sure deliverator will help you, in the meantime, i will try to help you a Little..

1. as Far as i Know, there Is No way to Skip Blender, Due to the Import and Export scripts Are only available for Blender by now. Actually i am not a Blender User too, i Prefer to work with 3ds Max, But for Civ modding Blender Is necessary when it comes to Import of Vanilla Models and Export from a 3D software. But of Course you can do the Modeling work in Maya, then Export to obj Or fbx , and then Import it into Blender, and Do Rest of the work in Blender

2. unweighted vertices : That error Show up if you have...well...unweighted vertices.
Then i think you have a Skeleton in your Blender Project, and all Or some of the vertices Are not assigned to the Bones of that Skeleton. Import a Vanilla Game Model that Looks closest to your Model, and Make a weight Transfer from the Vanilla Model.

4. only if you have all necessary steps Done, so Materials and textures Applied then it will Show up in the asset Editor, Never before that.

Hope this helps , But i am sure deliverator Is able to give you a better reply.Just wait patiently
Still NO LUCK with seeing a preview in AssetEditor. I've made texture and material and assign to the geometry.
upload_2017-5-16_1-51-31.png

I tried transfer the vertices weight and ran the blender script without any problem.But what worries me a lot is this preview:
upload_2017-5-16_1-53-21.png

The RED planes don't look right to me, and I don't know why the polygon looks soft, it shouldn't be. Here's what I see in Maya:
upload_2017-5-16_1-57-40.png

And a render preview out of Vray looks just great:
upload_2017-5-16_1-55-32.png

I'm totally lost now. Is it the scope of the geometry, means is there a model space limit? Soft/hard edge (I don't think it matters though)? Normals (I checked in Maya and set rendering material one-sided, so I should discover any flipped face)? Or something else?
 
@Deliverator

I came into several problems when trying to create my own building model:
1. I have no knowledge of Blender (and maybe because of getting old, I have no idea how to pick up new software as before), but I'm an experienced modeler using Maya, mostly static models like objects and buildings. Is there any workflow that I can skip Blender? Reading the official assets I assume the geometries (and animations) were imported from 3DS MAX (which surprised me a little), so there should be a way? Can I create Geometry within AssetEditor, import a source file like .fbx, or even .mb if it allows me to, let it create a fgx file and add to the asset?
2. I've also tried to build up geometries in Maya, export a FBX file and import into Blender, then run the script for Nexus. Then I always receive warnings either says there're unweighted vertices or 0 size of UV mapping. I can probably create a UV set in Maya before exporting, and I should do that for textures. But what are the unweighted vertices? Something to do with Armature? This might be a dumb question, sorry for that.
3. By some mysterious luck I managed exporting the .br2 file once and twice, and opened in Nexus, saved as .fgx and created .geo files. Previewed, showed the geometry but the bounding box or world grid planes, whatever you call it, are RED? Does it mean there's anything wrong? Because it should be black as in your screen-shots, and when I open some official fgx files.
4. In the AssetEditor, I was able to add the Geo that I created in Nexus, gave me the vertex count, mesh name correct, material not set because I didn't do that. But I saw nothing in the preview. Just a default grassland and nothing else. Through same process getting the official model exported and imported again, I was able to see a geometry without materials assigned. So I guess it was related to the RED grid planes for some reason. Any theory why?
5. So when modeling, what should I include? I have polygon mesh geometries out of Maya, I assigned an Armature to it in Blender (where I guess was the problem, because I don't totally understand how it works, as well as vertex groups)(also I believe this can be done in Maya, just didn't look into it), I didn't create a UV set but that can be done easily. What else did I miss?

Sorry that I don't have access to Nexus nor AssetEditor right now so I can't provide any screenshots.

So far. I know that's a lot of questions. It will be great if you can help me out.
Thanks!

1. The reason why I developed the scripts for Blender is because it's free tool and powerful enough to do pretty much everything that is needed for Civ 4/5/6 modding. The Asset Editor technically provides the facility for FBX import but it's not very good - the mesh results are quite blocky which is ugly and I've had various other problems with it. If you want to give it a go I have hooked up the same FBX import code that the Asset Editor uses in CivNexus6. You need to enter the name of your mesh in the Node text box beneath Open FBX and then use the Open FBX button - all on the Additional Actions tab of CivNexus6. Really the answer is that there is no way around Blender if you want to import models in good quality, but you're welcome to play around with it.

2. A weighted vertex is a mesh vertex that is assign to at least one bone in order for the bone to influence the mesh vertex at a given weight. So an unweighted vertex is simply a vertex that isn't assigned weight to any bone (i.e. not rigged). I appreciate that Buildings, Improvements and anything static doesn't need to be rigging to a skeleton via vertex groups (bone bindings). I'm actually working on an improved system for import/export of Civ 6 FGX that should allow you to import static models without doing any rigging. At least one UV map is needed for your model to textured.

3. The red box suggests that there might be a problem, yes, but I can't be sure without looking at the files myself.

4. You have to create and assign a Material to your Mesh and the names of the material needs to be the same in your .geo and .ast files Geometry section. That's why I provide the ability to auto-generate these files in CivNexus6. Once you have created and assigned your Material in CivNexus6 you can just generate them and then add them into to your Modbuddy project. If nothing is appearing it could well be down the Materials data not being right.

5. Until the new system is released you'll need a mesh with a single uv layer with everything assign to a vertex group with the same name as the root bone - this is how bone assignment works in Blender.
 
Sukritact has got a custom district model in his Siam mod, the Floating Market. If you get the files for that by subscribing in Steam and then download the remaining asset files that aren't included in the mod from this post.

Copying what he has done might help you. I think the approach he took was to import one of the existing districts into Blender via .nb2 format and then he rigged his new Floating Market model to that.

Also the set up for Districts is quite complicated. Maybe try doing a simpler Tile Improvement first like the vanilla Chateau Improvement? Once you get that displaying you can move onto to implementing it as a District or District Building.

For bringing in meshes from Maya to Blender maybe try Wavefront .obj instead of .fbx. FBX is a horribly over-engineered format in my opinion and prone to all kinds of weirdness.
 
If you are really stuck then maybe upload your .blend file and your complete Modbuddy project and we can try and figure out the problem.
 
Sukritact has got a custom district model in his Siam mod, the Floating Market. If you get the files for that by subscribing in Steam and then download the remaining asset files that aren't included in the mod from this post.

Copying what he has done might help you. I think the approach he took was to import one of the existing districts into Blender via .nb2 format and then he rigged his new Floating Market model to that.

Also the set up for Districts is quite complicated. Maybe try doing a simpler Tile Improvement first like the vanilla Chateau Improvement? Once you get that displaying you can move onto to implementing it as a District or District Building.

For bringing in meshes from Maya to Blender maybe try Wavefront .obj instead of .fbx. FBX is a horribly over-engineered format in my opinion and prone to all kinds of weirdness.
.Obj sounds good to me. Didn't really try a different export format, hopefully it will make in blender better. Let me test another round and if I still have problem I will post my Maya scene, Blender scene and the AST file. Modbuddy project is so incomplete now IDK if it's worth looking at.
And I second the complication of District Buildings. I'm still wondering for such buildings like Watermill in City Center tile, how to tell it to be oriented next to river? Feels like typical District Building like Market is actually a little easier at least it's always located in the same spot.

Some coding question: is it possible to restrict a city center building only be able to build if the city center is coastal? I tried looking at Australia traits, and compared with Watermill river adjacency requirement. Seems Australia trait is driven by modifiers while river adjacency req is just a requirement item when declaring the building type. So I went to look at Beach Resort improvement codes and found a "coast = true" which I assume is the coastal requirement. Not sure if this could apply on buildings.
Work around is to make the requirement more strict: the plot tile should be adjacent to Harbor District, so the tile should be coastal (not really, lake Harbor can do the trick). This should work but I don't like it too much. My intention is to unlock this UB at Sailing Tech, if the requirement is Harbor, we need to wait until Celestial Navigation and building the freakin Harbor first, TERRIBLE.
Any way, any idea on this?

Thank you so much!
 
Some coding question: is it possible to restrict a city center building only be able to build if the city center is coastal? I tried looking at Australia traits, and compared with Watermill river adjacency requirement. Seems Australia trait is driven by modifiers while river adjacency req is just a requirement item when declaring the building type. So I went to look at Beach Resort improvement codes and found a "coast = true" which I assume is the coastal requirement. Not sure if this could apply on buildings.
Work around is to make the requirement more strict: the plot tile should be adjacent to Harbor District, so the tile should be coastal (not really, lake Harbor can do the trick). This should work but I don't like it too much. My intention is to unlock this UB at Sailing Tech, if the requirement is Harbor, we need to wait until Celestial Navigation and building the freakin Harbor first, TERRIBLE.
Any way, any idea on this?

For the gameplay side it's better to ask a question in the Mod Creation Help subforum. The gameplay side is not my speciality and there are people there who can help out.
 
Could I somehow do this without mod buddy? I've tried on PC emulators, but the asset editor doesn't work there either. Would I have to have someone else do it?
 
If you are really stuck then maybe upload your .blend file and your complete Modbuddy project and we can try and figure out the problem.
Made it in!
upload_2017-5-17_13-52-6.png

So what really happened was: because of some weird Maya-Blender importing, and the script to .br2, the scale of the model wasn't right, or specifically, TOO huge. Although the model shows the right size in Blender, in the transformation tab it's scaled 0.01. So what I did was to apply the transformations (freeze transformation for Maya users) and ran the script again. In Nexus it gave me a good preview:
upload_2017-5-17_13-55-21.png

then everything works since then.

One more question: seems my AO map shows all black in AssetEditor, while it should be like this:
upload_2017-5-17_13-56-36.png

I've attached the .dds file, please check if that looks right.

Thanks!
 

Attachments

  • CT_AO.zip
    874.7 KB · Views: 442
Made it in!

So what really happened was: because of some weird Maya-Blender importing, and the script to .br2, the scale of the model wasn't right, or specifically, TOO huge. Although the model shows the right size in Blender, in the transformation tab it's scaled 0.01. So what I did was to apply the transformations (freeze transformation for Maya users) and ran the script again. In Nexus it gave me a good preview then everything works since then.

Great! With Blender, sometimes if you are bringing in meshes from elsewhere, you will need to perform Ctrl-A Apply the visual transformation (Location, Rotation, Scale) to the mesh permanently before exporting. This is a common gotcha.

One more question: seems my AO map shows all black in AssetEditor, while it should be like this.

This is most probably to do with your .DDS export format.

The options are:

Photoshop: then use this .DDS plugin and export your .DDS Uncompressed with Mipmaps - I personally have been using the Kaiser algorithm.

Gimp 2: the use this .DDS plugin and .DDS with Compression set to None with Mipmaps generated.

Using Paint.NET is not advised as the resulting .DDS gets quite horribly compressed by the Asset Editor import.
 
Could I somehow do this without mod buddy? I've tried on PC emulators, but the asset editor doesn't work there either. Would I have to have someone else do it?

No, is the simple answer. Without Modbuddy you cannot cook your Assets into a .blp. You'll need someone with a PC to do it.
 
Hi.
Struggling a fair bit with this , I am completely lost as to how assigning materials is achieved. For some reason CivNexus6 won't open any of the br2 files created any more and I keep getting "Index out of range exception" with the new 1.2.0 build. Even ones that worked before in previous 1.0.1 build.

This is a .fgx file created from previous build. The materials I want are there listed but the type field for them is not right and can't be changed. The generated .geo file only has 1 material and without knowing the Prim (triangle) index range I can't edit it in manually. This is why I have the new setup shown in the top image with separate mesh's for the material groups

I know jack sh## about Blender so maybe the vertex grouping is set up is completely wrong, but I also know jack sh## about how you do the material set up in Nexus so maybe that. Or maybe its right and some other thing causing the the new index out of range error on import.

Sorry for the trouble "/
 
Last edited:
@Fred_Bear Have you switched the import toggle on the Additional Actions tab to BR2? Other wise you could move the new CN6 Export script and use the new .cn6 format.
 
Thanks Deliverator, yep that was it for that error. I was using the "All files" option in the import popup and the old scripts.
Unfortunately I have a new problem now, something to do with uv's

On the topic of uv's. If I'm creating a leader then I must have only 1 uv layer yes? and that I do for this attempt, which is just of the single mesh skin part, 1 material 1 set of uv's in default 0 to 1 U and V space.
But lets say I want his whole head, with skin, eyes and hair, which will be needed for the whole finished model with cloth's and glasses etc. These different mesh components or vertex groups of a single mesh object each have their own uv's, Originally with their own UDIM's (patch, tile or texture set) which can exist as 1 uv layer. Can different UDIM's be used or do they have to be separated by materials (vertex groups) in the same 0 to 1 U and V default space (stacked)?.
 
Top Bottom