2.5d Isometric Shadows and Dynamic Lighting

Greetings!

With Paper2d, I can successfully apply a TileSet to a TileMap, give it an Isometric Diamond Projection, and display it. I also have several flipbook sprite assets of my test character, also rendered at an isometric projection. The sprite has a normal map, which looks awesome, but the problem i’m hitting is how to do dynamic lighting (specifically shadows) from the sprite on the same plane as the tile map.

Currently any lights that hit the Lit Material sprite project downward, like it was a cardboard sign infront of the background. There are a couple solutions I can see to this problem, but I’m not sure which is the easiest way to go about solving.

Here’s a mockup showing the billboard shadow casting of the default paper2d sprite character.


Here’s a mockup showing an invisible cylinder casting shadows. It’s on the same plane as the lights and tilemap.


1.) I can put the lights all on the same plane as the tilemap (slighting nearer the camera. I can then modify the engine code so that different sprite sheets are used per light (so that the correct stance is cast in the correct direction) and only for shadow casting (invisible, but cast shadows), and that they are rotated perpendicular to the tilemap’s flat surface, but invisible to the player.
Here’s a mockup of that.


2.) I could make a plugin (the documentation seems pretty bare on how I would even start with a plugin to override, extend, or modify core engine behavior) so that for each light that casts shadows I do the same as number 1. This seems like a better approach long term, but I’m new to UE and don’t where to begin.
3.) I’m missing something fundamental and Paper2d supports dynamic sprite shadows for isometric sprites.

Is this a crazy pursuit or is there a better way to go about it?