For the in-game overworld map I decided to create a maglev station. This would be a nice and simple location to create some nice animations in!

The maglev station experience – first pass

The idea would be that you could enter a train station at any of the key locations, and in there, choose the next location you would like to go to. Like an overworld map, but cooler!

AI image generation

For this, I wanted an image that shows some tracks and a cool a-f train. As Midjourney V5 is now out, this was a good spot to try that one out as well.

I got some really nice generations right out of the gate.

Midjourney V4

cyberpunk dirty maglev train station, wide angle, hdr masterpiece adventure game –ar 5:3

Midjourney V5

cyberpunk dirty maglev train station, wide angle, hdr masterpiece adventure game –ar 5:3 –v 4 –v 5
cyberpunk dirty maglev train station, wide angle, hdr masterpiece adventure game –ar 5:3 –v 4 –v 5

I again went with pretty simple prompts. Not trying too much. I just wrote a simple description and let Midjourney surprise me.

The chosen image

I chose this image because it had some play area on the left and the train looked extremely cool. Many of the trains looked cool, but I especially liked this one. The image was generated by Midjourney V5 and would be the first of it’s kind in the project.

Paiting out the train

As I would be animating the train, I needed it gone. I decided to go to Leonardo.ai to remove the train. This was very easy! I just masked out the train in Leonardo’s canvas and generated an empity train station in its stead block by block.

empty train station moody futuristic

This did not turn out absolutely perfect, but as this background would only be seen very briefly it did not have to be. For this purpose, it would be absolutely fine!

Overpainting in Photoshop

I still needed to use photoshop for some touch up. I replaced som areas the AI had gotten way off and touched up some light values here and there. I also used content aware fill to get rid of the person on the platform. This was a very quick and dirty step that I really did not put too much effort in.

Background touched up in Photoshop

I also had to mask out the train in order to have it separate on top of the background. This would also help with the mesh silhouette, as the alpha edge would introduce more detail than I would model into the train.

The maglev train masked in Photoshop

I did not use any fancy AI edge detection for this. Just plain old hand painted masking. I did not even use the lasso tool.

3D scene creation

Now I was ready to create the 3D scene from these. As always, this would require me to fire up the good old fSpy and reverse engineer the camera data.

In blender, this scene was by far the most complex one for the game yet. That does not mean much as I really want to keep the scenes simple so it will never get too much work for me to pump these out.

The final scene in blender

The only thing I had to keep in mind was to make the train straight, so it was not angled at all and to keep it as a separate mesh. I think it took me around 2 hours to get this thing completed. After the model was done I projected the UVs and exported as FBX and sent the file to Unity.

Unity scene

In unity I did a quick setup for the scene as always. This time, I would not have any realtime shadows on the location, so I did not need to set up the shadow material. But I still used it for the location, as distance fog does not affect this material. I then applied an unlit material on the train, so when it would travel from the distance it could appear from the fog.

The location in unity

Even though the animation of the train is very simple. It is still a good idea to create a rig for it. Even if it would be an amazingly simple one.

The rig I created for this train is just 2 empty objects: TrainMaster + TrainLev.

TrainMaster would be only used to move the train along the tracks and TrainLev would be used to lift the train up and down and animate it’s rotation while it is doing that.

In order to add length and honestly to make the train-end look better than what the original generation could offer in the distance. I just duplicated, flipped and pushed it into itself to create a longer train unit. I then duplicated this a couple of times.

The horrible elongated train

It again is far from perfect, but at the high speeds and engulfed in particles you can not really tell..

Talking about the particles: I also added a TON of particle smoke into the scene. Even though steam power is a thing of the past and a maglev train would be perfect visual effect-less, I still wanted it to have this feeling of an old railway station with steam billowing everywhere.

I also added a cushion of steam for the train when it lands and lifts off. For when the train arrives at the station and when it departs I added a surface dust of sorts that would simulate all this dust and degree that would be shaken off from the surface of the train and affected by the airflow that the train generates.

The particles were controlled in the same animation file as the train motion.

In-game experience

The way the player would use the maglev train is simple: you just enter the location from the world.

Then once in the station, you can see a transit map, when used it will allow you to choose from all of the locations you have discovered this far.

I have not yet added the map into the game, but I am using a simple multi option dialogue selection as a placeholder. Eventually the player will see a closeup of a map and choose their destination from the image directly. The rest of the experience will stay about the same.

4 responses to “Maglev train – an animated location”

  1. Avatar
    haoEcho

    Hello Jussi, you made sth awesome!
    The implement of ai tech in creation is really inspired.
    And I got a question, i’m new to blender, how you map the flat texture to a curvy mesh(the station and the train)? can you explain it to me swiftly? Or is there any possibility to make a new tuto about this part?

    1. Jussi Kemppainen

      The process is called projection mapping. I have talked about it more detail in other blog posts, especially the couple of first ones, but not in tutorial format. Google is your friend here I am sure! (It will be a lot faster than waiting for me to get around to an usable tutorial!)

  2. […] I covered the creation of the station in this post. […]

  3. […] I covered the creation of the station in this post. […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Posts


Archive


Social Links