Hi everyone, I was a little ill last week so I only had a couple of days to work on the plugin.
I have spent that time investigating possible options to fully integrate Box2D for ‘real’ 2D physics support. I can see in the engine source that Paper2D made some headway on this, but has also hit a few issues due to the differences between how box2d works and what is required for the Unreal physics interface. Reading around the forums a little has highlighted that box2d will also need some extension work itself to fully fill out the Unreal physics interface requirements and that I would need to do all this via pull requests to continue that integration further.
This lead to me making a quick prototype to see if we could just have Box2D running as a completely separate 2D physics world, with its own set of custom components. This way I can fully expose everything box2d has to offer without having to shoehorn it into the current Unreal physics interface.
Here I have setup some Actors that each have a ScissorSprite, ScissorPhysicsBody and ScissorPhysicsPolygon components. Like the renderer side, you have to add a ScissorPhysicsWorld to your level that the components can register and set themselves up with.
As a quick test this approach does seem like a promising direction, but the downside will be any other system outside of Scissor land will not have access to the physics as it expects. This means that things like the character controller etc will not work out of the box. But it is my intention to include a more platformer orientated controller that can take advantage of everything Scissor2D has to offer anyway, so it may be fine.
I have one final area I want to explore before I start to go back and work on everything property and that is what we can do to make the viewport better for 2D work. Ideally I would like a real 2D mode that can support perspective cameras properly while having a good interface to move the world around and edit things in view.
Investigations ahoy!