Making 2.5D game: Isometric camera in editor?

TLDR: Is there a way to have an isometric (orthographic at an angle) camera in the editor?

I’m trying to do a remake of a simple old school turn-based isometric game and it’s a lot harder than I expected.

First I found out that dynamic shadows don’t work with orthographic camera. So I spent a lot of time trying to fine tune shadows for a very distant 5° fow camera. They looked either too blurry or too hard. Finally I gave up and tried using prerendered sprites on 2D planes with true orthographic camera.
Then I had to fake shadows for movable characters with scene capture and figure out how to blur them. (I still wonder why is there no gaussian blur node for materials) Then Niagara particles were not visible in orthographic for some reason, until a random tweak (double sided sprite material) fixed it.

Now when trying to compose a level with sprites I’m having a hard time in editor, seeing the tilted sprites in perspective camera. It would help me a lot to have an option of custom orthographic angle (or just isometric) for the editor. Is it possible without building my own forked version?


Now I found out even point lights don’t work with orthographic camera. :frowning: I guess my project is dead then.

custom depth pass doesn’t seem to work either

I found that I can “pilot” a camera actor, to get a custom viewport view… but of course it’s not working well with orthographic camera, controls don’t work, so it’s static.

So I have reworked rotations of everything to use editor top view… and found out that it has different lighting (in Lit mode) from perspective view, it doesn’t apply post-processing.
I feel like everything I try I end up finding some bug.

How about putting the camera pitch to 45 degrees and setting the camera fov to something low like 30 or even lower

That’s the first thing I tried, but the shadows over that distance were really crappy. Also there was a problem with composing map objects, since moving that low FOV camera in editor is a pain. But I solved that already, like I posted. It just took me almost two weeks to figure out a workable setup.

Finally figured it out.
The editor camera can be accessed via C++, which can be exposed to blueprints. Here’s the basics:

	UFUNCTION(BlueprintCallable, meta = (DisplayName = "Move Camera", Keywords = "Move Camera"), Category = "Editor Camera")
		static void MoveCamera(FVector newLocation, FRotator newRotation, float newFoV);


void MyBPLib::MoveCamera(FVector newLocation, FRotator newRotation, float newFoV) {
	FEditorViewportClient* client = (FEditorViewportClient*)(GEditor->GetActiveViewport()->GetClient());
	client->ViewFOV = newFoV;
1 Like