Hello.
I decided to try to create new terrain from scratch, just to see how much time it takes if you don't try too hard.
I'll call it "Quick & Lazy"
I'll go for a tiny, like 600x600meters, meshed terrain because I can't work with any heightmapping tools, but I can work with Blender (although I'm rusty).
And I'll document the steps as I go because I don't really know what I'm doing, so it may end up a good "what not to do" post Also I'd really like to create a step-by-step terrain creation tutorial in Blender, wish me luck!
Step1: pick Blender version. Last time I checked their website, Blender 3.x was still beta. Now, the download page presents you 3.3.1 LTS, so I'm going with it.
step 2. copypasted https://docs.rigsofrods.org/terrain-creation/terrn2-subsystem/#terrain-2-terrn2-file-format and made minor edits. I save it to "Documents\My Games\Rigs of Rods\mods\_projects\quick_and_lazy\quick_and_lazy.terrn2" so that I can later edit and directly reload in game.
step3. Open blender, rename the default cube to Footbal and set size to an average soccer pitch (press N for the side menu, then enter the sizes), https://en.wikipedia.org/wiki/Football_pitch - for a sense of scale. Blender measures in meters. OGRE measures in raw numbers, but ROR's convention is that 1.0 = 1 meter.
step4. create ground plane.
A: Go to top menu Add>>Mesh>>Plane.
B: TAB to edit mode. This is critical! In Blender you can use the same scaling hotkey in ObjectMode, and it looks all the same in the 3DViewport but you're not editing the mesh, just the bounding box! Many people have been baffled why their exported meshes have bad sizes because at some point in time, they scaled in ObjectMode.
C: Use S hotkey to scale
D: TAB to ObjectMode to see the scale. Repeat until it's roughly what you want.
step5. As you can see, the ground plane is clipping in the distance. This was a surprise for me, but quick googling helped: https://blender.stackexchange.com/a/16583
step6. Adjust the resolution of the ground plane. It should be doable with MultiresolutionModifier, but I decided to manually Subdivide. Make sure you're in EditMode and you have the mesh selected (orange outline). If you lost the selection hit A hotkey to select everything. The Subdivide tool only lets you do 10 cuts, so repeat until it's roughly the resolution you want. There's no point in trying to be precise now, the ground-shaping process will move and scale the triangles in all directions.
I wanted one quad to be circa 0.5x0.5 meters, so with ~600x600m ground plane, I made 9 cuts for 60x60m quad, then 2 cuts for 10x10m quads, then 9 for the final precision.
step6. Align the geometry the way game expects it. Game map has origin (XYZ 0,0,0) in one corner and all cords are in the positive space. However, Blender by default adds meshes with origin in the middle. There is a way to set origin position using 3D cursor, but I want the origin to match the colored axes in Blender, so I'll move the terrain mesh.
Note that the "Footbal pitch" mesh won't be exported to the game, it's just an utility mesh in Blender. The terrain will contain a footbal pitch, but I'll remake it clean as part of static geometry mesh.
step7. Let's move the FootbalPitch object (remember, in ObjectMode, we're not moving the Mesh, but the Object!) up a little, so it doesn't visually glitch and stays visible even if accidentally terraforming too close. Hit numpad 5 to toggle between perspective and orthographics mode. Align camera using mouse and middle button. Then hit G for GrabMode and Z to constraint the movement to the Z axis. Then move mouse to position the object.
step7. Enter SculptMode and start shaping the terrain using the tools on the left. Notice that when you go back to EditMode, you can see the quads change shape and position, often in a way you don't like. Learn which tools are safe and which make a mess. Use classic Ctrl+Z to undo.
step 8. To create base shape of your terrain, use Clay tool - it simulates how blobs of clay are added/removed to the base shape. Hold LMB to add clay to the ground. Hold Ctrl+LMB to remove clay from the ground. Hotkey F toggles brush scale mode - just move your mouse to adjust brush size and then click LMB to accept.
The screenshot below shows what I did just with the Clay tool. At this point I started thinking what will the map contain - it will be a very rural landscape, the outskirt of some village. I figured the Blender's grid display is a good indicator for water plane, so I hijacked it that way.
step 9. Another great tool is Crease. It's fantastic for terraforming because it works like erosion does in real life. I set the strenght to roughly 0.5 and I sculpt from tops of hills/mountains down to simulate how water erodes the ground. Or I hold Ctrl and go bottom up to roughen the land as if hard rocks were under the ground.
To be continued in next post.
I decided to try to create new terrain from scratch, just to see how much time it takes if you don't try too hard.
I'll call it "Quick & Lazy"
I'll go for a tiny, like 600x600meters, meshed terrain because I can't work with any heightmapping tools, but I can work with Blender (although I'm rusty).
And I'll document the steps as I go because I don't really know what I'm doing, so it may end up a good "what not to do" post Also I'd really like to create a step-by-step terrain creation tutorial in Blender, wish me luck!
Step1: pick Blender version. Last time I checked their website, Blender 3.x was still beta. Now, the download page presents you 3.3.1 LTS, so I'm going with it.
step 2. copypasted https://docs.rigsofrods.org/terrain-creation/terrn2-subsystem/#terrain-2-terrn2-file-format and made minor edits. I save it to "Documents\My Games\Rigs of Rods\mods\_projects\quick_and_lazy\quick_and_lazy.terrn2" so that I can later edit and directly reload in game.
step3. Open blender, rename the default cube to Footbal and set size to an average soccer pitch (press N for the side menu, then enter the sizes), https://en.wikipedia.org/wiki/Football_pitch - for a sense of scale. Blender measures in meters. OGRE measures in raw numbers, but ROR's convention is that 1.0 = 1 meter.
step4. create ground plane.
A: Go to top menu Add>>Mesh>>Plane.
B: TAB to edit mode. This is critical! In Blender you can use the same scaling hotkey in ObjectMode, and it looks all the same in the 3DViewport but you're not editing the mesh, just the bounding box! Many people have been baffled why their exported meshes have bad sizes because at some point in time, they scaled in ObjectMode.
C: Use S hotkey to scale
D: TAB to ObjectMode to see the scale. Repeat until it's roughly what you want.
step5. As you can see, the ground plane is clipping in the distance. This was a surprise for me, but quick googling helped: https://blender.stackexchange.com/a/16583
step6. Adjust the resolution of the ground plane. It should be doable with MultiresolutionModifier, but I decided to manually Subdivide. Make sure you're in EditMode and you have the mesh selected (orange outline). If you lost the selection hit A hotkey to select everything. The Subdivide tool only lets you do 10 cuts, so repeat until it's roughly the resolution you want. There's no point in trying to be precise now, the ground-shaping process will move and scale the triangles in all directions.
I wanted one quad to be circa 0.5x0.5 meters, so with ~600x600m ground plane, I made 9 cuts for 60x60m quad, then 2 cuts for 10x10m quads, then 9 for the final precision.
step6. Align the geometry the way game expects it. Game map has origin (XYZ 0,0,0) in one corner and all cords are in the positive space. However, Blender by default adds meshes with origin in the middle. There is a way to set origin position using 3D cursor, but I want the origin to match the colored axes in Blender, so I'll move the terrain mesh.
Note that the "Footbal pitch" mesh won't be exported to the game, it's just an utility mesh in Blender. The terrain will contain a footbal pitch, but I'll remake it clean as part of static geometry mesh.
step7. Let's move the FootbalPitch object (remember, in ObjectMode, we're not moving the Mesh, but the Object!) up a little, so it doesn't visually glitch and stays visible even if accidentally terraforming too close. Hit numpad 5 to toggle between perspective and orthographics mode. Align camera using mouse and middle button. Then hit G for GrabMode and Z to constraint the movement to the Z axis. Then move mouse to position the object.
step7. Enter SculptMode and start shaping the terrain using the tools on the left. Notice that when you go back to EditMode, you can see the quads change shape and position, often in a way you don't like. Learn which tools are safe and which make a mess. Use classic Ctrl+Z to undo.
step 8. To create base shape of your terrain, use Clay tool - it simulates how blobs of clay are added/removed to the base shape. Hold LMB to add clay to the ground. Hold Ctrl+LMB to remove clay from the ground. Hotkey F toggles brush scale mode - just move your mouse to adjust brush size and then click LMB to accept.
The screenshot below shows what I did just with the Clay tool. At this point I started thinking what will the map contain - it will be a very rural landscape, the outskirt of some village. I figured the Blender's grid display is a good indicator for water plane, so I hijacked it that way.
step 9. Another great tool is Crease. It's fantastic for terraforming because it works like erosion does in real life. I set the strenght to roughly 0.5 and I sculpt from tops of hills/mountains down to simulate how water erodes the ground. Or I hold Ctrl and go bottom up to roughen the land as if hard rocks were under the ground.
To be continued in next post.