3d scene with 2d Images á la Whispered Worlds 2

Hello.
I want to make an adventure game in the visual style of Whispered Worlds 2 or Broken Sword 5 - The Serpent’s Curse.
Both of those games use a 2D scene/image that is transformed into a 3D environment. Whispered Worlds 2 even does this in a more complex way.
I am glad that I found a making of video of Whispered World 2:

You see that this game is also made with unity, but I don’t get what tool is used to create the 3D scene. It looks like they are adding vertices and adding the sprites on the created shapes.
Can somebody tell me how they are doing this?
Also, when I have a sprite can I scale only one side? So let’s say I have a rectangle image, can I move the top right corner up and the bottom right corner down for example? ( I think skewing is the term for that )

You could model this in any 3d modeling software… what’s the mystery?

Oh, the problem was I thought this was modeled in unity.
Another thing however is that the 2D images of the scene had perspective in mind ( it was drawn like a photograph of a scene, with a virtual camera in mind ).
Take a look at this:
https://revolution.co.uk/wp-content/uploads/2014/03/montserrat_cable_car_station_exterior.jpg
The whole scene is painted in 2D, but the characters are 3D and can move around in the 2D scene ( becoming smaller in the back and larger in the front ). If I have the 2D image of the scene and want to slice it and turn it into a 3D scene, then it’s hard to use those already perspective 2D images as textures of 3D objects. For example if I want to texturize a wall, I will probably use a rectangle shaped image/texture. But getting the texture out of the 2D image, it already has a certain perspective. But If this is done in a 3D modeling software, maybe I can figure out how. The uv unwrapping is such a difficult thing, never really got it.
Thanks for your answer.

They appear to be using Cinema 4D, but any modelling tool should be capable of this. They’re projecting the scene from the camera’s point of view with multiple layers separated out into different images and meshes. The mesh UVs are from that initial camera’s projection.

Broken Sword 5 looks like it’s going about this a more traditional 2D way, which is the characters might be real time 3d objects, but they’re being inserted into the scene like sprites manually sorting them against 2d objects in the scene.

1 Like

I think you are right, that Broken Sword 5 does it in a more traditional 2D way. That’s what I was originally going for and I think that it is easier.
Take a look at this scene: http://guides.gamepressure.com/brokenswordtheserpentscurse/gfx/word/75390915.jpg
The character is standing in front of a desk. If I put the (flat) image of the desk in a 3D scene, then I will have a problem when I move the character further to the back of the desk, because the desk would then already be in front of him. If I don’t want to make a 3D model, how do you think I can still achieve that the character can walk around the desk and get behind it and things getting drawing in the right order? Do I have to slice the image of the desk into many parts and put them on different layers? This question has nothing todo with the character being 3D though, since even in a 2D adventure you would have the same problem.

No. One of the old school ways of sorting 2d things (that kind of look like they have perspective), is to manually track one anchor point for each sprite (typically one somewhere near the bottom where it would touch the ground) and then sort them based on vertical screen position. If your scene doesn’t have a weird perspective going on, it should work.

In a 2D game this is all controlled by rendering order. If you want something to appear behind something else, just render it before the object it should be behind. Their position in 3D space is basically irrelevant.

When you start to add 3D objects into the mix a decision has to be made on how you deal with sorting there. Either you need to build some kind of 3D representation of the scene, or you need to treat your characters as if they’re 2D and just use their sorting order. This can be done by rendering each character into their own render texture, and then using the render texture to place them in the scene as a sprite. Alternatively you can render the scene art with ZTest Always to force it to render over previously rendered 3D objects so it still respects the draw order.

You’ll still likely need some kind of 3D representation of the scene, at least for things like walkable areas and handling perspective (size changes when characters move far and close), and handling sorting order. Using 3D meshes might be the easiest way to handle all of this these days.