SamuZai
t3ssel8r
t3ssel8r

patreon


Thoughts on 3D->2D Cameras

There is a germ of a video idea here which has been difficult to distill into an actual script that's reasonably producible.

One of the struggles of making a "top-down" 3D action adventure game in the style of the prototypical 2D entries in the genre is that the camera orientation is not well-defined in 2D games. For example, a tile-based game will often employ a top-down perspective for the ground due to the square shape of tiles, but show walls of buildings and characters from a frontal perspective.

In 3D, we usually have to compromise and point the camera with an elevation angle somewhere between 0 degrees (front view) and 90 degrees (top view). Typical angles include 30 degrees ("pixel art isometric"), 35.264 degrees ("true isometric"), 45 degrees, and so on.

There are some tradeoffs incurred when picking these angles: The more shallow angles provide better viewing angles for structures and better silhouettes for characters, but can run into camera clipping issues for tall structures, and the effect of foreshortening can make movement feel non-uniform, or sluggish in the forward/back direction compared to the left/right direction. This can also make it difficult to judge distances in combat, which is especially important for games with orthographic cameras, where size cannot be used as a depth cue.

Different games combat these problems in different ways. Famously, in A Link Between Worlds, the camera elevation is a top-down 90 degrees, but some objects and characters are authored to be skewed or rotated to face the camera.

In a similar but distinctly different fashion, Eastward, which is an apparently 2D game built in a 3D engine, the camera elevation is a front-on 0 degrees, but the world is heavily skewed in the depth direction so as to make the floor visible.

https://www.youtube.com/watch?v=Wu_E4MDr71Q

Taking a more straightforward approach, Tunic simply allows the player to switch between a 35 degree elevation during navigation, and 55 degree elevation during combat, balancing out some of these clashing criteria.

https://youtu.be/A5A7uoJAOvY?t=280

Another approach that can be taken to make combat appear more reliable to the player is by extending attack hitboxes in the camera depth direction, such that attacks that appear to make contact, do make contact, regardless of whether a true physical overlap occurred. This idea has been presented in an GDC talk about Kirby and the Forgotten Land.

https://youtu.be/cWdt07ncRxU?t=934

A central idea I considered as a video subject is the mixing of perspectives: having a game world at a 45-55 degree camera elevation, while presenting character models at a 30-40 degree elevation perspective, allowing for better silhouetting. Naively, this can be done simply by tilting the character model 15 degrees away from the camera, but this leads to issues such as character feet clipping through the floor, the character body clipping through walls, or producing unnatural-looking shadows.

One possible solution I presented on twitter was to tilt the model away from the camera, then skew the top toward the camera until it was straight again, which for an orthographic camera produces the exact same projected geometry.

This is not a bad approach, but it does leave the problem of feet clipping through the floor, especially on wider stances.

A better approach is to tilt the character away from the camera, then skew all points toward/away from the camera until the model becomes straight again. In effect, this amounts to stretching the model vertically and squashing the model horizontally.

This preserves both the straightness of the character model (no wall intersections) and the height of the feet (no floor intersections), and is the method I'm currently using to display my character models.

There's some simple trigonometry involved in computing how much stretching and squashing is required for which camera angles, and the limitations of this method that prevent it from working at extreme angles because the squashing factor goes  negative, and this all seems like it could fit into a video about the subject, but all in all, the problem seems a bit esoteric and I wonder if I can find a suitable context that can grab the viewer's attention, and maintain that attention without getting lost in the little important details, which this problem has many of.

So until I find a way to write a script that can pare down this idea into something self-contained and coherent, it remains on the shelf as a "maybe".

Thoughts on 3D->2D Cameras

Comments

It's been my impression that UE5 is a bit more strongly optimized for a particular "look" than other game engines, although I'm not familiar enough with it to say anything concrete. At least for me, being true to my creative vision is more important for now

I ran into similar problems in UE5 btw. The engine will stop drawing shadows at a certain distance, and certain asset packs have aggressive FOV settings that all need to be turned off and adjusted. I was never able to fully fix a lot of the issues I was having due to time constraints, but the initial effect with baked lighting using UE5’s ray tracing was stunning.

omgwot

I’ve been able to create an true-isometric feel for my game in UE5 for my top down game by changing the FOV to a very low number, zooming the camera out by 3000 units and then tilting it on a 45 deg angle (or 35 deg true isometric, don’t remember the exact number) while still using perspective mode. This allows me to keep all of the lighting benefits of UE5 while making it seem like an isometric game. After playtesting I got a lot of feedback that my over the shoulder prototype was more impressive, so I stopped using that top down camera. I’m kind of sad about it, I may just go back to it.

omgwot


More Creators