Can you bake a normal map with the empty space around the objects transparent?
One possibility is with Workbench render and the built in check_normal+y.exr MatCap. If speed is needed, this should be very fast.

Set the render engine to Workbench.

Set the lighting to MatCap and chose the &quot;check normal&quot; matcap.

Ensure Transparent is enabled under Film.

Make sure Color Management &gt; View Transform is set to Standard. The default of Filmic emulates how a camera sensor shapes dynamic range, but that is definitely not what we want right now.


Use a camera with the Type set to Orthographic, aimed at your object as in your screenshot (it's a bit hard to tell if that one is orthographic already or not).


Render:


PNG images are encoded with a gamma correction with the expectation that they'll likely be displayed on an sRGB screen which will apply the inverse correction. Since that isn't the purpose of normal maps, you might want to be careful of this.
If you're decoding the PNGs yourself/with a library, take note of if it applies the inverse correction or not before exposing the values to your own code (and if it doesn't, either apply the inverse correction yourself or render the PNGs without correction from Blender by setting the View Transform to Raw).

Or if you can, use OpenEXR and ignore the last several paragraphs. Blender saves EXRs in linear space by default and most other software should assume they are in linear space. They also offer full float precision, so if you encounter any banding artifacts, switching to OpenEXR will likely fix those too. They are a bit big, however.