MapNuke now allows you to add your own custom art styles. The sprites and materials used by the map generator are dictated by the art style. Here's a step by step guide for adding your own.
⚠ Only Unity 2019.2.11f1 is compatible with this project! Using any other version will cause issues. ⚠
⚠ Make sure your sprites have the "Art" packing tag in their import settings or they will have rendering issues! If you aren't sure about something, just copy the settings used in one of the default sprites. ⚠
⚠ Do not use a perfectly white color (ie. a color with 100% red, green, and blue) in your sprite. It will cause issues. Dominions 5 uses that color to track province positions. If you need to use white in your sprite, make it an off-white. ⚠
It's a bit complex so i'll try to describe what the values for each terrain type do:
Cull Chance - A value between 0 and 1. Higher values will result in less sprite density on the province. Try generating a map using a value of 0 and then with a value of 0.99 if you want to see the difference it makes.
Province Edge Threshold - How close to the edge of the province can sprites be? This helps stop sprites from overlapping over borders into other provinces.
Each sprite has several parameters:
Sprite - The sprite to use in summer. Use transparent_pixel.png for your summer sprite if you don't want anything to render in summer.
Winter Sprite - The sprite to use in winter. Use transparent_pixel.png for your winter sprite if you don't want anything to render in winter.
Size - How large the sprite is. This value is used to determine if it's too close to the edge of the province or overlaps another sprite.
Culling Radius - This value is used to remove potential sprite placement positions near the sprite. This helps with reducing overlap between sprites.
Cull Sprite Positions - This boolean value determines whether a sprite should ever cull nearby sprite positions.
Spawn Chance - Value between 0 and 1, 0 being nonexistent and 1 being very common.
Can Flip - Can the sprite be flipped on the X axis? If so, there is a 50% chance it will randomly flip a given sprite. Mostly used with grass sprites.
Can Flip Winter - Same as above but in winter.
Is Centerpiece - Some province types (ie. caves, mountains) have a large central sprite. These are centerpieces. Only one centerpiece is used and it's selected based on the size. Examine the cave province centerpieces in the default art style to understand this better.
Place At Least One - If this is enabled, each province will have at least one of these sprites present. Disable this option if you want to make certain sprites more rare.
Valid Colors - List of valid colors to tint the sprite with. Just use white with 100% alpha if you don't want the sprite to be tintable.
Valid Colors Winter - Same as above for winter.
Valid Terrain - What type of terrain flag is required for this sprite to get used? Certain provinces (ie. wasteland) use this to specify special sprites for hotter/colder province modifiers. Examine the default art style to understand this better.
Custom art styles can specify which materials each province type uses. There are several custom shaders included with MapNuke you can make use of in your custom materials.
The perlin noise shaders create a randomized set of colorful blobs. Perlin3 lets you choose 3 colors, Perlin4 is for 4 colors and Perlin5 is for 5 colors.
There are some special perlin noise shaders used in niche cases:
These use stencil buffers to create a shoreline effect in bodies of water (and rivers). The materials for sea provinces would use the Perlin5write shader and the shorelines would use the Perlin5read shader.
These shaders are useful for just basic textures. In many cases it's probably preferable to use this shader since handmade textures are always nicer than basic perlin noise. The size of your texture needs to match the shader, ie. Custom/Texture2048 should be used with a texture that is 2048x2048 pixels.
I recommend using 2048x2048 as your texture resolution. 1024x1024 is a bit low and 4096x4096 is a bit overkill.
There are some special texture shaders used in niche cases:
These use stencil buffers to create a shoreline effect in bodies of water (and rivers). The materials for sea provinces and rivers would use the TextureXXXXwrite shader and the shorelines would use the Texture1024read shader.
Your texture import settings should look something like:
Use point filtering if you want crisp pixel art and bilinear/trilinear filtering if you want antialiasing.
These shaders combine perlin noise with textures. Could be useful for some niche cases.