After spending a few days exploring visual methods for the Contrast exercise, I decided to look at mesh-based approaches. Rather than creating a visual representation of two shapes union, I'd try generating an actual boolean.
The first part of this was a method of moving meshes while the game was running. The method used was to cast a ray forward from the camera while a button was pressed, and if it hits a valid object updates its location based on the camera location.
Once I had controllable objects I set them up as the meshes used to bool another mesh. Using Unreal's new Geometry Scripts I can affect a mesh's geo during runtime. Blueprint here
So far I've implemented this in a couple of different ways. The first method used On Hit collision detection to apply the boolean operation whenever an acceptable mesh collided, this is useful for projectiles but for a controlled object, this method led to a lot of jitter as physics collisions were affecting the mesh every frame.
The second method applies the boolean every X duration. The lack of collision allows the meshes to smoothly overlap avoiding jitter. By changing the delay between operations we can completely change how the tool feels to use. With a very short delay, .2s, the effect is very fluid and feels like you're 'erasing' mesh. With a delay of 3-5s we found it created a time-based mechanic, counting you down to each boolean.
We tracked in some objects from around the room using a Vicon setup and used this mocap data to control the objects during runtime. This paired with the 3-5s delay created a surprisingly fun, time-pressure-based game. You attempt to carve a desired shape but struggle to position yourself correctly due to the disconnect between yourself in physical space and the digital cube display in front of you.
Comentários