Jump to content

Landclass tutorial


LordMustang
 Share

Before I start, huge shoutout to @B0ris_the_blade and @Senshi_Isamu for their great help and tutorials. Senshi already wrote a very comprehensive tutorial on the Location Editor which can be found here.

 

Introduction

What will I tell you about? Landclasses, landclasses and more landclasses. Specifically tank landclasses. As reference I will be using my map avg_hachijojima. So you've built your first map but you want it to have it's own landscape colours and grass. Maybe you even want a tank battlefield. Then this tutorial is for you. I will be telling you how to create a landclass from scratch and place objects like trees and plants on it.

 

Preparation

Create a folder in War Thunder\WarThunderCDK\develop\assets called user_landclasses or something you prefer. Then create a new folder in user_landclasses (or whatever you named it) and give that the name of your map. In my case avg_hachijojima. The path should now look like this: War Thunder\WarThunderCDK\develop\assets\user_landclasses\avg_hachijojima or a bit different depending on how you name it. In this folder you will be putting your landclasses.

 

We can divide landclasses in 2 types: tank landclasses or plane landclasses. Tank landclasses usually feature high quality vegetation and ground deformation, while plane landclasses don't. I will mainly focus on tank landclasses, because those are more complicated. Once you can create tank landclasses, you can also create plane landclasses.

 

Detailed_land

The most important part of a tank landclass is the detailed_land.tga texture. This will be the image displayed on your landclass. It contains the fields and colors. You will be building the other layers around this file. To create your own, simply create a .tga picture with a preffered size of 4096x4096. This is my hachijojima_detailed_land.tga:

Spoiler

CR0Qe4u.jpg

As you can see, it contains an airfield, sea bottom, beaches, fields and forests. Most of the resources come from Google Earth, are exported and then combined into a nice landscape. You have to fiddle around with that for a bit.

 

Creating the land.blk

Every landclasslayer needs its own land.blk. hachijojima_detailed_land.tga requires a .blk named like this: hachijojima_detailed_land.land.blk. Do NOT forget to place the .land syntax before .blk! You can open this .land.blk file with your preffered text editor. I personally use Notepad++, as it has a good interface for working with code. I will now paste the header of my .land.blk file for you to learn from. I'll try to explain every syntax.

 

className:t="landClass" //is for the game to recognize the landclass

detail{
  texture:t="hachijojima_detailed_land" //name of the texture, in this case hachijojima_detailed_land.tga, from which the file extension can be removed
  splattingmap:t="hachijojima_detailed_land_mask" //splattingmap that defines detail textures and ground deformation
  detailRed:t="detail_grass_large_tex_d.tga" //detail texture
  detailGreen:t="detail_grass_small_tex_d.tga" //detail texture
  detailBlue:t="detail_concrete_tex_d.tga" //detail texture
  physMatBlue:t="beton" //ground deformation material
  detailBlack:t="detail_dunes_tex_d.tga" //detail texture
  physMatBlack:t="sand" //ground deformation material
  detailSizeRed:r=9.3 //size of detail texture
  detailSizeGreen:r=12.5 //size of detail texture
  detailSizeBlue:r=7.7 //size of detail texture
  detailSizeBlack:r=11.3 //size of detail texture
  detailSize:r=32 //don't know
  size:p2=4096, 4096 //resolution of base texture, in this case hachijojima_detailed_land
  offset:p2=0, 0 //used to create offset when the texture is placed on the landmesh
}

This is only the header. It specifies what the splattingmap is, which I'll cover now.

 

Splattingmap, terrain deformation and detail textures

The next important step is the splattingmap. This is a texture that defines several characteristics of your detailed landclass. In my case I will name it hachijojima_detailed_land_mask.tga. This texture needs to be of the same resolution as your base texture, which is in my case 4096x4096 (recommended for tankmaps). Copy your base texture into this .tga and save it. Now go back to yourmap_detailed_land.land.blk of your base texture and edit the following line:

 

  splattingmap:t="yourmap_detailed_land_mask" //splattingmap that defines detail textures and ground deformation

Make sure that the name corresponds to the new .tga file you just created.

 

Detail texture

The game uses a system called "detail texture" to create diversity in landscapes when you're close to them (when flying low or driving). Detail textures can be found in the Asset Viewer, I don't know if you can create them yourself. Gaijin has lots of them though, so choosing shouldn't be too difficult. The different detail textures can be found in this folder path with the Asset Viewer: Root\#gameRes\landscape_extra\. You can have up to 4 different detail textures on your landclass: R, G, B and black. Now we need to open our splattingmap yourmap_detailed_land_mask.tga. Now you need to give each part of a detail texture it's own color. The game will look for RGB and black values and place textures accordingly. This is how my splattingmap looks like:

Spoiler

fNhdC9A.jpg

I made green correspond to grass, red is forest, black is sea bottom and beach (dunes) and blue is concrete. After having created this RGB splattingmap, you need to assign the proper detail textures to each of these colors. This is done in the yourmap_detailed_land.land.blk of your base texture.

 

detail{
  texture:t="yourmap_detailed_land"
  splattingmap:t="yourmap_detailed_land_mask" //your splattingmask
  detailRed:t="detail_grass_large_tex_d.tga" //here you can see that red color corresponds to a grass detail texture placed in the forest, found in the Asset Viewer.
  detailGreen:t="detail_grass_small_tex_d.tga" //green corresponds to a grass_small texture, found on the grass fields and plains
  detailBlue:t="detail_concrete_tex_d.tga" //blue is the runway which I gave a concrete detail texture
  physMatBlue:t="beton"
  detailBlack:t="detail_dunes_tex_d.tga" //black is the beach and sea bottom, which has a dunes detail texture
  physMatBlack:t="sand"
  detailSizeRed:r=9.3 //here are the different sizes of the detail textures.
  detailSizeGreen:r=12.5
  detailSizeBlue:r=7.7
  detailSizeBlack:r=11.3
  detailSize:r=32 //I still don't know what this does

Now you have connected detail textures to the colors on the splattingmask, nice! Now we move on to the terrain deformation.

 

Terrain deformation

An important aspect in tank maps is terrain deformation. Tracks will leave ditches in the ground, depending on what kind of material they're driving on. Terrain deformation is also done with help of the splattingmask. It's defined in yourmap_detailed_land.land.blk. 

 

detail{
  texture:t="yourmap_detailed_land"
  splattingmap:t="yourmap_detailed_land_mask" //your splattingmask
  detailRed:t="detail_grass_large_tex_d.tga" 
  detailGreen:t="detail_grass_small_tex_d.tga"
  detailBlue:t="detail_concrete_tex_d.tga"
  physMatBlue:t="beton" // this is the material for the blue color, in my case the runway. I assigned "beton to it."
  detailBlack:t="detail_dunes_tex_d.tga"
  physMatBlack:t="sand" // this is the material for black, the beaches. I gave it "sand" sand as material
  detailSizeRed:r=9.3
  detailSizeGreen:r=12.5
  detailSizeBlue:r=7.7
  detailSizeBlack:r=11.3
  detailSize:r=32

When you've mapped your colors to materials, terrain deformation should be done. Let's move on.

 

Scatter mask

The scatter mask will be the mask that defines where what type of grass grows. It is painted in the same way as the splattingmask, but now for grass. However, the properties of grass aren't stored in your yourmap_detailed_land.land.blk. Grass properties are stored in the .blk of your entire map, which you'll have to create in: War Thunder\content\pkg_local\levels. Your exported level will also be placed here. For more info on this .blk, be sure to the Location Editor guides published on the official WarThunder Youtube channel. For now, I'll work from my own .blk called avg_hachijojima.blk. This is how my scatter mask looks like:

Spoiler

wXL6EoN.jpg

 

This is the grass block for avg_hachijojima.blk:

randomGrass{
  density:r=4.0 //defines the amount of grass
  maxRadius:r=300.0
  sowPerlinFreq:r=0.1
  fadeDelta:r=100.0
  lodFadeDelta:r=30.0
  minLodDensity:r=0.18
  blendToLandDelta:r=100.0
  texSize:i=1024
  noise_first_rnd:r=23.1407
  noise_first_val_mul:r=1.0
  noise_first_val_add:r=0.0
  noise_second_rnd:r=0.05
  noise_second_val_mul:r=1.0
  noise_second_val_add:r=0.0
  directWindMul:r=1.0
  noiseWindMul:r=1.0
  windPerlinFreq:r=50000.0
  directWindFreq:r=1.0
  directWindModulationFreq:r=1.0
  windWaveLength:r=100.0
  windToColor:r=0.2
  helicopterHorMul:r=2.0
  helicopterVerMul:r=1.0
  helicopterToDirectWindMul:r=2.0
  helicopterFalloff:r=0.001
  
  hachijojima_detailed_land:t="hachijojima_detailed_land_scatter_mask" //landclass on which the grass has to be placed with the scatter mask name behind it
  hachijojima_jungle_a:t="hachijojima_jungle_a_tex_m" //landclass on which the grass has to be placed with the scatter mask name behind it
  hachijojima_jungle_b:t="hachijojima_jungle_b_tex_m" //landclass on which the grass has to be placed with the scatter mask name behind it

  layer{
    maskChannel:p4=0.0, 0.0, 0.0, 1.0 //defines on which color the grass is to be drawn. This syntax means on all colors
    res:t="grass_fill_a" //grass type
    density:r=4.0 //density of this particular grass type
    horScale:r=1.2 //width
    horMinScale:r=0.5 //minimal width
    verScale:r=1.2 //height
    verMinScale:r=0.5 //minimal height
    windMul:r=0.05
    color_mask_r_from:c=67, 173, 28, 255 //colors, I don't really know how they work. Lead Designer Kirill Stupin told me they color the grass tips
    color_mask_r_to:c=89, 148, 40, 255
    color_mask_b_from:c=204, 180, 82, 255
    color_mask_b_to:c=158, 92, 35, 255
    color_mask_g_from:c=51, 37, 33, 255
    color_mask_g_to:c=247, 242, 186, 255
  }

  layer{
    maskChannel:p4=0.0, 0.0, 0.0, 0.0 //this layer is drawn nowhere (lol)
    res:t="grass_reed_a"
    density:r=0.5
    horScale:r=1.2
    horMinScale:r=0.9
    verScale:r=1.2
    verMinScale:r=0.9
    windMul:r=0.05
    radiusMul:r=0.5
    color_mask_r_from:c=230, 208, 135, 255
    color_mask_r_to:c=191, 163, 119, 255
    color_mask_b_from:c=141, 179, 86, 255
    color_mask_b_to:c=168, 165, 72, 255
    color_mask_g_from:c=51, 37, 33, 255
    color_mask_g_to:c=247, 242, 186, 255
  }

  layer{
    maskChannel:p4=0.0, 0.0, 1.0, 0.0 //only drawn on color blue (R, G, B and All)
    res:t="grass_daisies_a"
    density:r=1.0
    horScale:r=1.2
    horMinScale:r=0.9
    verScale:r=1.2
    verMinScale:r=0.9
    windMul:r=0.05
    radiusMul:r=0.4
    color_mask_r_from:c=216, 236, 242, 255
    color_mask_r_to:c=167, 195, 204, 255
    color_mask_b_from:c=252, 177, 48, 255
    color_mask_b_to:c=237, 157, 71, 255
    color_mask_g_from:c=51, 37, 33, 255
    color_mask_g_to:c=247, 242, 186, 255
  }

  layer{
    maskChannel:p4=0.0, 0.0, 1.0, 0.0 //Only drawn on blue
    res:t="grass_heather_a"
    density:r=2.0
    horScale:r=1.2
    horMinScale:r=0.5
    verScale:r=1.2
    verMinScale:r=0.5
    windMul:r=0.05
    radiusMul:r=0.4
    color_mask_r_from:c=168, 45, 88, 255
    color_mask_r_to:c=132, 78, 158, 255
    color_mask_b_from:c=80, 104, 55, 255
    color_mask_b_to:c=75, 90, 18, 255
    color_mask_g_from:c=51, 37, 33, 255
    color_mask_g_to:c=247, 242, 186, 255
  }

  layer{
    maskChannel:p4=1.0, 1.0, 1.0, 0.0 //drawn on all colors, but not on All
    res:t="grass_sedge_a"
    density:r=7.0
    horScale:r=1.2
    horMinScale:r=0.9
    verScale:r=1.0
    verMinScale:r=0.5
    windMul:r=0.05
    radiusMul:r=0.6
    color_mask_r_from:c=157, 162, 2, 127
    color_mask_r_to:c=31, 75, 10, 127
    color_mask_b_from:c=16, 97, 14, 127
    color_mask_b_to:c=3, 20, 3, 127
    color_mask_g_from:c=51, 37, 33, 255
    color_mask_g_to:c=247, 242, 186, 255
  }

  layer{
    maskChannel:p4=0.0, 0.0, 0.0, 1.0 //Drawn everywhere
    res:t="grass_simple_a"
    density:r=3.0
    horScale:r=1.2
    horMinScale:r=0.9
    verScale:r=1.0
    verMinScale:r=0.5
    windMul:r=0.05
    radiusMul:r=0.7
    color_mask_r_from:c=157, 162, 2, 127
    color_mask_r_to:c=31, 75, 10, 127
    color_mask_b_from:c=16, 97, 14, 127
    color_mask_b_to:c=3, 20, 3, 127
    color_mask_g_from:c=51, 37, 33, 255
    color_mask_g_to:c=247, 242, 186, 255
  }
}

This is just an example. You need to tweak and try alot for the best result.

 

Generating vegetation

Vegetation is generated with .tif masks. .tif is a file format that stores images with only 2 definitions: on or off. It contains no colours, just black and white. White means On, Black means Off.

 

To create a tif, simply open Photoshop (or any other image editing program) and create a new file. Set the mode to Bitmap, because that's what .tif uses. The .tif should have the same resolution as the base texture. I'll begin with a forest mask. The .tif is named yourmap_detailed_forest.tif. The best way to create a forest mask is to select all the forest on your base texture and paint those areas white on your bitmap. This is how my forest mask looks like:

Spoiler

pi4O4CB.png

 

Now open yourmap_detailed_land.land.blk of your base texture and implement the plant generation blocks. These are the ones I used:

obj_plant_generate{
  place_on_collision:b=yes
  density:r=1 //Defines how many trees
  intersection:r=2
  rseed:i=27614 //random seed that places stuff, I'd keep it at this
  colorFrom:c=105, 115, 110, 160 //color of the leafs
  colorTo:c=115, 140, 125, 190 //color of the leafs
  placeAboveHt:r=1000 //I don't know
  densityMap:t="hachijojima_detailed_forest" //this is the .tif mask you created, defining where the vegetation will be placed
  mapSize:p2=4096, 4096 //resolution of the .tif map, which should be the same as the base texture

  object{
    orientation:t="world"
    name:t="tree_populus_larger_a" //type of tree, can be found in Asset Viewer in: Root\#gameRes\vegetation
    weight:r=0.02 //defines how much this tree appears compared to the other trees
    scale:p2=0.9, 0.2 //size
    yScale:p2=1, 0.2 //size
  }

  object{
    orientation:t="world"
    name:t="tree_populus_larger_b"
    weight:r=0.02
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_populus_large_a"
    weight:r=1
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_populus_large_b"
    weight:r=1
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_populus_medium_a"
    weight:r=5
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_populus_medium_b"
    weight:r=5
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_oak_larger_a"
    weight:r=0.1
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_oak_larger_b"
    weight:r=0.1
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_oak_large_a"
    weight:r=0.5
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_oak_large_b"
    weight:r=0.5
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_oak_medium_a"
    weight:r=0.5
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_oak_medium_b"
    weight:r=0.5
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_birch_larger_a"
    weight:r=0.2
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_birch_larger_b"
    weight:r=0.2
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_birch_large_a"
    weight:r=0.7
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_birch_large_b"
    weight:r=0.7
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_birch_medium_a"
    weight:r=0.7
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_birch_medium_b"
    weight:r=0.7
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_poplar_medium_a"
    weight:r=0.2
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_poplar_medium_b"
    weight:r=0.2
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }
}

Implementing a secondary layer for bushes

In my map I created a secondary vegetation layer for bushes. This layer will require a .tif mask (of course) and will need a new .blk. You CANNOT! use yourmap_detailed_land.land.blk to place a new secondary layer in. Just create a new .land.blk. Call it something like yourmap_detailed_bushes.land.blk. This is my secondary layer:

className:t="landClass"
secondaryLayer:b=yes //Defines that this is just a secondary layer, placed on top of the base texture

detail{
  texture:t="hachijojima_detailed_land" //base texture
  size:p2=4096, 4096
  offset:p2=0, 0
  detailSize:r=32
}

obj_plant_generate{
  place_on_collision:b=yes
  density:r=10
  intersection:r=2
  rseed:i=71399
  placeAboveHt:r=1000
  colorFrom:c=115, 140, 125, 110
  colorTo:c=115, 140, 125, 140
  densityMap:t="hachijojima_detailed_bushes" //.tif mask for bushes, you can also use the same mask as you used for the forest.
  mapSize:p2=4096, 4096

  object{
    orientation:t="world"
    name:t="dracena_bush_small_a"
    weight:r=2
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="dracena_bush_small_b"
    weight:r=2
    scale:p2=0.9, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tropical_fern_a"
    weight:r=10
    scale:p2=1.5, 0.1
    yScale:p2=1.5, 0.1
  }

  object{
    orientation:t="world"
    name:t="tropical_fern_all"
    weight:r=10
    scale:p2=1.5, 0.1
    yScale:p2=1.5, 0.1
  }

  object{
    orientation:t="world"
    name:t="tropical_fern_b"
    weight:r=10
    scale:p2=1.5, 0.1
    yScale:p2=1.5, 0.1
  }

  object{
    orientation:t="world"
    name:t="tropical_fern_c"
    weight:r=10
    scale:p2=1.5, 0.1
    yScale:p2=1.5, 0.1
  }
}

obj_plant_generate{
  place_on_collision:b=yes
  density:r=0.2
  intersection:r=2
  rseed:i=17621
  colorFrom:c=105, 115, 110, 160
  colorTo:c=115, 140, 125, 190
  placeAboveHt:r=1000
  densityMap:t="hachijojima_detailed_bushes"
  mapSize:p2=4096, 4096

  object{
    orientation:t="world"
    name:t="tree_lush_bush_a"
    weight:r=1
    rot_x:p2=0, 5
    rot_y:p2=0, 180
    rot_z:p2=0, 5
    scale:p2=0.6, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_lush_bush_b"
    weight:r=1
    rot_x:p2=0, 5
    rot_y:p2=0, 180
    rot_z:p2=0, 5
    scale:p2=0.6, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_poplar_bush_large_a"
    weight:r=1
    rot_x:p2=0, 5
    rot_y:p2=0, 180
    rot_z:p2=0, 5
    scale:p2=0.6, 0.2
    yScale:p2=1, 0.2
  }

  object{
    orientation:t="world"
    name:t="tree_poplar_bush_large_b"
    weight:r=1
    rot_x:p2=0, 5
    rot_y:p2=0, 180
    rot_z:p2=0, 5
    scale:p2=0.6, 0.2
    yScale:p2=1, 0.2
  }
}

Secondary layers can be placed in land#2 in the Location Editor, on top of the base texture. Make sure to allow it to draw.

 

Exporting

You should now have the following stuff in your landclass folder:

 

  • yourmap_detailed_land.tga -base texture
  • yourmap_detailed_land.land.blk -properties file containing all info regarding terrain deformation, detail textures etc.
  • yourmap_detailed_land_mask.tga -mask that defines where what type of material and detail texture is placed
  • yourmap_detailed_land_scatter_mask.tga -mask that defines where what type of grass grows
  • yourmap_detailed_forest.tif -mask that defines forest vegetation
  • (if used) yourmap_detailed_bushed.land.blk -defines a secondary vegetation layer
  • (if used) yourmap_detailed_bushes.tif -mask for secondary vegetation layer

 

If you have the ones you need, you're done! Now open Asset Viewer and look up your user_landclasses folder. Right mouseclick on it and "export all with subfolders". You should now be able to find your landclasses in the Location Editor!

 

I hope this tutorial was somewhat useful. The Location Editor community is pretty non-existent and I mainly had to figure everything out for myself with great support from guys like Boris, Sensei Ishamu and Kirill Stupin. I now pass my knowledge on to you. If you have any questions, feel free to post them here!

 

LordMustang

Edited by LordMustang
  • Like 1
  • Thanks 4
  • Upvote 7

Share this post


Link to post
Share on other sites

Thanks a lot man, that's awesome, that explain the 2 things I was looking for : Detail Texture and Grass Mask. Since you said that we can have 4 different detail textures, I think I can do a hangar map with my 3 different geographical zone on it : Sahara, Artic and Jungle. But so far is not possible anymore to have a different location by nation in the "myhangar.blk, Maybe it will be fixed soon. Sadly my Artic and Jungle map are already done, combinates the two in the same map will be hard because the altitudes are not the same, and copying object at the exact same position will be a real challenge. For chance the cell size is identical.

medal medal

Share this post


Link to post
Share on other sites

8 hours ago, Petranera said:

Thanks a lot man, that's awesome, that explain the 2 things I was looking for : Detail Texture and Grass Mask. Since you said that we can have 4 different detail textures, I think I can do a hangar map with my 3 different geographical zone on it : Sahara, Artic and Jungle. But so far is not possible anymore to have a different location by nation in the "myhangar.blk, Maybe it will be fixed soon. Sadly my Artic and Jungle map are already done, combinates the two in the same map will be hard because the altitudes are not the same, and copying object at the exact same position will be a real challenge. For chance the cell size is identical.

Yeah, for me the different zones for types of vehicles don't work either. I hope it's a bug.

Share this post


Link to post
Share on other sites

  • 2 months later...
  • LordMustang changed the title to Landclass tutorial
  • 1 year later...
  • 2 months later...
On 27/10/2016 at 19:39, LordMustang said:

The different detail textures can be found in this folder path with the Asset Viewer: Root\#gameRes\landscape_extra\.

Thanks for doing this @LordMustang, but I can't seem to find this folder path in Asset Viewer. All I have to chose from in my Asset Viewer is Root\assets\landclasses or Root\assets\splines_n_lands & neither contain "landscape_extra" within them.

Just wondering if they've been moved to a new location or renamed etc?

Cheers :DD

asset_viewer-directory01.jpg

medal medal

Share this post


Link to post
Share on other sites

On 01/08/2020 at 02:52, DevoStevo said:

Thanks for doing this @LordMustang, but I can't seem to find this folder path in Asset Viewer. All I have to chose from in my Asset Viewer is Root\assets\landclasses or Root\assets\splines_n_lands & neither contain "landscape_extra" within them.

Just wondering if they've been moved to a new location or renamed etc?

Cheers :DD

@DevoStevo In the bottom left corner you have spline selected. Click on it and select everything again, so you can see all the assets again.

medal

Share this post


Link to post
Share on other sites

So, long story short, @Off_The_Ricta & myself from ReCoil Squadron have made a Darwin map for the bombing of Darwin by the Japanese in 1942.

So we've made a location map in Location Editor & a mission in Mission Editor that works in WT User Missions, so I thought it would be good to try making some custom textures for it using what's available in CDK.

So....I've created my folder called "avn_darwin" in "...WarThunderCDK\develop\assets\user_landclasses\".

And created the following .blk/ .tga / .tif images & placed in the above folder:

  • darwin_detailed_land.land.blk
  • darwin_detailed_land.tga
  • darwin_detailed_land_mask.tga
  • darwin_detailed_land_scatter_mask.tga
  • darwin_detailed_forest.tif

I was hoping I got everything right, but when I open Asset Viewer I get "failed to load BLK".

All the .tga files seem to work alright (show in Asset Viewer) but can't get my detailed_forest.tif mask to work.

Weird how the .tga file icons have a little cross in the corner of them but show ok, whereas my .tif file doesn't have the cross but doesn't show in Asset Viewer.

I used Gimp 2.10 to create the .bmp version from my darwin_detailed_land file then exported it as a 16 bit .tif so could be because of that.

 

I don't have Photoshop but I'll try some other programs (e.g. ImageJ) to see if they can export as .tiff that works.

Otherwise I can share what I've done so far because wouldn't be surprised if something else is causing the issue, first attempt & all.

Cheers.

 

medal medal

Share this post


Link to post
Share on other sites

OK, I've managed to get my avn_darwin landclass textures exported from Asset Viewer

I had to change my darwin_detailed_forest.tif from 16 bit to 8 bit & that seemed to fix it so could export from Asset Viewer. Being a air battle I made it 2048 x 2048.

So now they are available in Location Editor under the Textures Property Bar (assets\user_landclasses\avn_darwin) but not in the Script Parameters

I don't remember seeing any of this covered in the WT cdk location editor YouTube tutorials so any help from here on it would be much appreciated.

First of all I was curious to know do I need a Detailed Heightmap area in my map? I don't currently have one.

 

 

Cheers.

avn_darwin_locationEditor_200807.jpg

medal medal

Share this post


Link to post
Share on other sites

6 hours ago, DevoStevo said:

As you can see, not a lot of topographical relief around Darwin.....lol. Also, anyone know if there's a crocodile in cdk? Or maybe a big muddy would do....:crab:that's a mud crab if your wondering...lol.

No animals in the files, the only way would be to create a model and import it into the game using the cdk.

medal medal

Share this post


Link to post
Share on other sites

Thanks Cyril, but if I don't have 3dsMax & not sure about getting the Blender plugin to work. Be good if someone could. I'd probably make some Eucalyptus trees to put in it too.

Although, I wasn't actually serious about putting in some crocs/muddies, I'm flat out just getting my custom user_landclass textures to work.

medal medal

Share this post


Link to post
Share on other sites

On 08/08/2020 at 21:04, Cyril_BartonVC said:

I managed to get the blender plugin to create a compatible model but not with a material/any textures so 3DSMax seems to be the only way forward there.

What version of Blender do you use the plugin with?

medal medal

Share this post


Link to post
Share on other sites

29 minutes ago, DevoStevo said:

What version of Blender do you use the plugin with?

I've uninstalled it and haven't redownloaded the CDK but think it was 2.7ish. Definitely had to get an older version as 2.8 isn't compatible.

medal medal

Share this post


Link to post
Share on other sites

I just got the Blender plugin to export a .dag test box model too, but couldn't get the textures to work if in cycles mode. I can't remember how you apply materials in Blender Render but if you can it might export ok, or maybe you can texture it in CDK if you have baked out a .tga texture image.

Blender 2.71 is the version I installed it to, but I started using Blender at 2.73 & have used Blender cycles (nodes) for applying textures/materials, so not sure how to do it in Blender Render.

We need some Aussie models for our Darwin map. Some sheds made from corrugated iron with verandahs all the way around & a massive salt water crocodile that attacks tanks....lol.

Edited by DevoStevo
spelling mistake
medal medal

Share this post


Link to post
Share on other sites

@Cyril_BartonVCthanks. I just checked out https://wiki.warthunder.com/3D_models_for_aircraft

Looks like Blender is a waste of time then, no dagormat or other dagor tools available for it. I guess 3dsMax is it for making War Thunder models. Shame about that.

Be good if you could use Houdini to model them in. Fully procedural modelling beats the hell out of destructive modelling & having to make copies all the time.

medal medal

Share this post


Link to post
Share on other sites

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...