Building – Arundel Gate

A rough breakdown of how I’m developing my Sheffield game in Blender and Unreal.

Photos

Arundel Gate, Sheffield – © Stanley Walker
Above Arundel Gate is a forecourt for the O2 Academy, Odeon Cinema and the Tank nighclub
Old photo of Arundel Gate – this shows Berlins Bar and the Gossips nightclub; as with the bridge,these are no longer here.
Modern day photo of the three buildings how they look today.

Transcript

Today we’re going over to Arundel Gate; more specifically, the NCP car park.
So let’s fly over there now.

The car park is an important building, because the streets parallel to it are at very different heights.
Here we’re looking at Arundel Gate from the opposite direction of where we usually start the game – the car park would be around where the bus is on the left.

If we look at it from above, we’ll see that a lot of the rooftop area is a pedestrian walkway – there’s even the Tank nightclub that sits between the two buildings.

As a pedestrian, there are a series of stairs and walkways which take you to the lower level of Pond Street.

I’ll have a picture of that next, but I want to point out to you beyond the stairs in this old photo. [todo]
This looks very different to how it does now; this used to be two nightclubs underneath the car park: Berlins Bar and Gossips, and the bridge at the forefront is no longer there.

Modern day, we clearly see the O2 Academy and how it is placed on top of the NCP car park.

Now, let’s have a look at the Sheffield map in Blender at the same area – the selected object is the Odeon cinema, which I now realise is out of proportion to the O2 Academy. In reality – the cinema is much smaller.

This video will be about modelling the NCP car park, and the roof area so that the buildings aren’t hovering – and aligning Arundel Gate and Pond Street to their respective ground levels. We can see it better in Unreal.

[interlude]


After some very rudimentary blockout, I want to load this in Unreal to see how this very basic shape looks.

In Blender, I select the NCP Car Park building, and FileExport – and I’m going to choose .fbx → Save it.
Oh, yeah it crashed. I think it’s because the scene is too big; so what I’ll do this time is reload the project, select the building, and set the geometry to the object.
Ctrl C to copy, and Ctrl N for New.
And then paste it in with Ctrl V.
Press NumPad dot(.) to jump to it to make sure it’s there.
And then export to .fbx again.

Find the file you’ve just exported in its’ folder, and drag it into your Unreal scene.
I have a folder specifically for buildings, so I’ll put it in there.
From Unreal, drag from your Content Browser into your scene, and set the Location on the X,Y,Z to 0,0,0 so it snaps to the right place.

Have a look around, and change what you like; either by modelling in Unreal, or changing the file and re-exporting your model and reloading it into Unreal like we’ve done here.

Hope this helps someone, thanks for watching!

Blender – Simple Asset Manager

Asset management is a big deal with Blender at the moment, there’s some great addons, like Blender Cloud and Chocofur to name a couple, but if I were to include that in my blend file, would I get into trouble?

Simple Asset Manager (https://gitlab.com/tibicen/simple-ass…) will allow you to create repositories of assets in a directory, that you can kitbash into your scenes.

All I’ll say is that this is an experimental attempt at a tutorial…



Music is all from the YouTube Audio Library –

Otis McDonald – Lagos 2030 A.D
Nate Blaze – Quiet Nights
Asher Fulero – Nocturne

Time Passing By by Audionautix is licensed under a Creative Commons Attribution 4.0 licence. https://creativecommons.org/licenses/…
Artist: http://audionautix.com/

Importing geographic data into Blender

A look at some of the ways you can import geographically accurate map data from OpenStreetMap into Blender for your 3D projects.
This is a little section of Hillsborough, Sheffield.

The tools used are:

OSM2World (http://osm2world.org/)
Blender-osm by prochitecture (https://gumroad.com/l/blender-osm) BlenderGIS by domlysz – (https://github.com/domlysz/BlenderGIS)
Blender (https://www.blender.org)

Music

we are be. – lofi hip hop mix | royalty free | 2018

[Assetto Corsa] Irungattukottai, Chennai

I need to bear in mind this is the first sentence people see when this link gets shared.
Anyway, I’ve gotten quite stuck into modding Assetto Corsa over the past week, the workflow I’m using for the Sheffield map is similar to that of AC: using reference data from satellite imagery and streetmap data, and importing it into 3D.

Cadwell

The Cadwell track, after a curious search to see if there is one available was placed on a ‘someones done this already, and done a fantastic job of it – so I don’t need to (yet!)’ list.
Despite being a list with a very long name, it’s a very short list so far.

I recorded a little race around it, added some music to the replay and uploaded it.

I decided to look for a track that I couldn’t find, something new – and that’s where two of the creative projects I’m working on coalesced.

I’d set out to use free and open source software to build a playable track in Blender – and while I didn’t complete that with Cadwell, it did put me on the right track to actually making usable race circuits.
That’s what this post is about.

India ??

I went on a deep-dive of Indian motor racing circuits, and aside from the world-famous Buddh, I could find very little. This was the niche I was looking for.

I’ve started with the first other major circuit I could find, Madras Motor Race Track (Irungattukottai, Chennai) – and is one of a few circuits I have earmarked for a small India track and car mod pack.

The playlist (currently) has 4 videos of developing and testing Irungattukottai in Blender, and are mostly set to ambient music.

For your benefit, I’ve written this with hindsight – so I hope it saves you some time!

The first part we see is after I’ve downloaded the .osm (OpenStreetMap file) from where I’ve selected the region of the track.
I’ve used blender-osm to import the map data, and I’m now trying to figure out how to get it to run.

Once you have it imported, first thing I do is press 7 on the numpad in Blender to jump to Top view, and select the objects until you find the racetrack, and name it 1ROAD. Anything you name it after that (with no spaces) is entirely up to you. This is the track you will drive on.

I export the 3D file to .fbx and import it with ksEditor, part of the Assetto Corsa SDK, From here, allowing that my map is compliant, export it to the tracks folder in your Assetto Corsa directory.
If you are using Steam, it’ll be in:
C:\Program Files (x86)\Steam\steamapps\common\assettocorsa\content\tracks

A quick way to do this is to find the folder of any track you like, copy it and paste it into a new folder with the name of your track, and change everything in your new folder to suit your level.
Once you’ve exported your map to the .kn5 file format, drop it in this folder and make sure the file has the same name as the folder, and any textures you’ve used are in the tracks textures folder.

More to come

What I learnt

  • Everything needs a texture.
    If it doesn’t have one, it’s going to crash ksEditor
  • .dds (DirectDraw Surfaces) do not support layers.
    You can have transparency, but you can’t have multiple layers.
  • It’s best if your road is low resoultion mesh, high resolution imagery.
  • You will need Blender 2.7x
    Yes, going back to it feels like writing with your left hand, but the .kn5 exporter tool really is the best way of exporting your mesh.
    I found that using 2.9x and exporting to ksEditor only caused problems. Revert, revert to 2.7x, open the example track, and you’re on the way to a playable track.
  • Scale your UVs correctly
    I’d not scaled my grass textures correctly from high-res source photos, and the perspective it gave was that I was driving a car, but the size of an ant – each grass blade was the size of my car!
  • Make your track flat
    When I’d imported my track from my 2.8x experimentation with ksEditor, I’d solidifed the track so that it was 3D and had depth.
    I found though, when importing into 2.7x, hitting the side of the meshes depth sent the car into an uncontrollable spasm.
    The track has to be flat. 1 pixel (to the chefs amongst us, that’s one layer of onion skin).
  • If you use the example file from the Blender KN5 Exporter, use it as an example file, and then delete it
    When you playthrough, the intersection between the example racetrack, and your imported racetrack – it causes glitches will cause you to spin out, and fall into invisible potholes.
    It took me until Part 4 to realise this.
  • Use a UV grid. Google images ‘UV Grid’.
    Find a high resolution version, and apply it to everything.
    It makes a great placeholder image, and you can see exactly where to edit when you want to colour the texture.


Car skinning

No such luck, synapses are firing on all cylinders,
I’ve cancelled an important VLC update for the sake of a screenshot, and now when I try to open anything with it, its only use is a strobe light.

When I run the game, I start at a 2:00 angle, which leads me to beleive that the empty to represent AC_PIT_0 is at a strange (or unsupported) angle.

While playing the lap from the OSM import, I’d timed that I was completing the laps in around 45 seconds, which is obviously ridiculously fast – so I scaled the track to be twice the size, and it now seems to work – and would probably make a good Drift track.

I’ve not completed a full track yet, because:
– there’s no kerbs
– the start position is on the grass
– I’m quite sure that since I doubled the size of the track, the timer markers are in the wrong place.

For now, I’m stuck in the pit, I can see the wall above me that I’d just made – and I can’t move, because I haven’t given the pit floor mesh a pit texture.


So this area here is the pit-lane, and behind this would be the stadium area where spectators are sitting.

Madras Motor Race Track Plans To Host Night Races - carandbike
One iconic landmark of the track that absolutely will not be excluded is the MRF Tyres tyre arch, the start line and multi-storey viewing platforms.

Continuing on from the Pitlane after this tyre ends is a wall with a glass divider, like the ones in the picture above.

This is the wireframe of where the pitlane re-joins the racetrack.
Madras Motor Race Track - Wikiwand
The end of this is actually where the Tyre is, and it reaches from one side of the track, behind a barrier to the outermost point of the pitlane.

By this point, the car would have re-joined the circuit, and the track above is part of the maintance route, which the Ligier Maintenance Vehicle from the video(s) above would drive on.
Both barriers are solid walls with viewing windows above them.

MRF Towers

I don’t know if that’s their real name, but they’re a prominent and majestic outlook onto the track. I clearly know which companies logo to find a hi-resolution image of, and aim towards something like this.
Interestingly, the tyre is not where I would expect it to be from the screenshot above; which is odd, since the tyre bears the MRF logo.

My point for this is the two MRF towers just past the start-line, they’re 1x and 1.5x the size of each other, and the top floor is an actual viewing platform – so it’s a great place to put a camera (or two!).
If you’re feeling creative, you could create a camera, and put a sofa scene infront of it to show people watching from their couch inside of their hotel room!

MMRT upgraded facilities revealed as owners eye Asian-level races

While it is possible to complete a track, the kerbs and run-offs are not in place to help with corners (and I ran most of the racetrack backwards, and was not penalised).
This is next.

Assetto Corsa track modding

I’d been looking for a way to revamp the Sheffield map. ~~
Previously, my primary focus had been an FPS – but now I’m thinking about making it as racetracks for the beautiful Assetto Corsa.

I looked for some videos on the level editor, and there is Race Track Builder (currently £44.99, even amidst the Steam Summer Sale)
Race Track Builder is interesting, because it uses map and terrain data from Google Maps, and you edit in the shape of the track using splines and curves, and export it to FBX format so that ksEditor can read the file and convert it to a map file usable ingame.

This is the video that piqued my interest, and especially towards the end confirmed that what I’m looking to do is possible.

I took my Sheffield map (‘Here’s one I prepared earlier…’) – this was created by using the blender-osm plugin.
I exported it the mesh to a .fbx file (a widely supported 3d model format) so that I could import it into ksEditor.

You click OK, and the application force closes.
But it’s right, the fitness store Decathlon doesn’t have a texture assigned to it because I haven’t worked on it yet.

We at least know that ksEditor is at least reading the file structure of the FBX, and it appears to be compliant.
Only thing is, this is a large map with a lot of buildings without textures.
I need to start smaller, and I want to find a way to do it cheaply; we are after all a shoestring budget studio.

blender-osm

You’ll see a lot of content on this page which is produced with the blender-osm tool with the Sheffield map.
I’m going to start smaller, but use the same process – I’m going to replicate a track I remember from my childhood days, family outings to Cadwell Park near Louth with my dad.

Cadwell Park Track Guide | Cadwell Park Circuit Layout
These are great for reference and in-game layout previews, but I’ll also need to consider heightmap and terrain data on the actual map

Day 2

Not the chronological next day, but the second day where I can sit down and make progress: this project has been in my mind since I started thinking about it, so pieces of the jigsaw have popped into my mind.

Using blender-osm, I zoomed right in to the track and imported the data from its Latitude and Longitude.
I’ve previously imported the terrain data and satellite overlay, and the dark grey is where the road has been imported as 3D data
I’ve imported the file above into the Assetto Corsa level editor to export it to the game, but there are no textures.
As a test, I’ve applied a basic Asphalt texture to the track.
And found the elements in ksEditor that pertain to the actual parts of the track.

I’ve gone around the objects and given anything that doesn’t have a texture in the map (aside from the road and ground) a UV grid texture, as a placeholder so that everything in the level is assigned one.

While I have the mesh in place, the game is not told where the actual track is: Assetto Corsa recognises that there’s a Cadwell track in its game directory, and gets as far as trying to start the game with it: this is good, something is working here.

I need to tell it where the track is, and also race information like where the pit stops, starting line, crash pads, timing sectors, marshall positions and cameras are.
The bottom two are rectifiable quite easily, they’re just pictures.
The top two, though – I will need to explore the files of other, working tracks to see what information I’ll need to supply.

The missing files

ui_track.json
This is various specific details you’re asked about the location of the track.
This is the information that’s populated in the bottom left corner of the preview image below.

Map (Map.png)
An outline of your map with a transparent background


Preview
This is any image you’d like to use as the track preview.
One way of generating this is to click the error message, and run the map – if it’s playable, you can press F8 to capture a screenshot and use that as your map preview.
Since my track doesn’t run yet – I made a quick render in Blender of the track to use as a placeholder for now: you can now see it behind the layout.



Skywatcher Music [screencast/video]

Some of you may remember that some time ago, I made a vow to produce a music video for one of Sheffield composer, Skywatcher Music‘s tracks.
Here’s a couple of little progress videos I’ve made centered around the orange Broadstadium3D models from 3D Warehouse.

Today, I finally completed the first, and actually had enough screencast footage for a second video, so why not?

Skywatcher Music – Chrysippus Allegedly Died Of Laughter

The second video is all screencast, and starts with me completely breaking Adsetts Building (though I didn’t realise that’s what I was doing at the time) – in the preview image above, you can see that it’s too big and floating off the ground.

Skywatcher – Platysma

Workflow

I want to share with you a bit about my process of how I work through the means of screenshots and explaining them:

Map overlays

Here I’m using an OpenStreetMap overlay of the area UV mapped to my Terrain object: to the top right, I have a UV image editor window and four faces selected on the mesh in front of the cathedral (orange).
The Terrain while in this state is not curved and has no elevation, it’s completely flat.

To quickly navigate to any point in the map, I can select a single face from the 3D viewport, hover over to the map, press a to select all faces in the UV editor and NumPad . to jump to that point on the map, it also works vice versa, and the top right corner I can search for buildings by name.

From a lower view, having the building and street names on the ground is useful. Having a building levitate 15ft in the air, not so much.

There are some buildings you might not have seen yet, they’ve been imported and adapted from the Broadstadium3D libraries on 3D Warehouse: these will need retopologising and UV mapping with my own textures.

Video editing

Here I’m finalising a composite of progress videos, backed to a Skywatcher Music track. Although the cut is slightly rough, I do hope to release this by the end of the night.

The bottom layer with the waveform is the audio for the video, the blue is video file, purple represents image sequences and the pink strips are speed modifiers, to speed up or slow down segments.
This area can get very complicated.

Asset: 'Sheffield 3D' [3D Warehouse]

These are amazing!
There’s a library of 3D models of Sheffield buildings, uploaded by the user ‘broadstadium3d.co.uk.
Here is a screenshot of the library, for those of us who do not want to go offsite:

KMZ from Sketchup

This will download a zip file, open and extract it.
It’ll look like this:

Look in this folder called model.dae

The textures don’t quite work….


…and then sometimes they do:

Using layouts from KMZ files is finickity in Blender.
I’m only interested in the mesh itself, its shape, and I’ll completely retexture this myself. One reason being that .kmz files use textures from Google Street View, which, as an open-source project, I can’t (and don’t want to use Google imagery)

Fortunately, as you can see from this (largely upscaled) example of one of the image textures, there’s enough detail to paint over to produce my own textures.