Guided rigid bodies

I previously discussed replaying user input and in this article I’ll cover a related feature: recording and replaying rigid body motion.

The basics are quite simple: dump transformations of a physics driven actor to a file and then convert that data into a matinee, like before. However simply replaying the motion track with a mover has an inherent problem: impact and slide effects, defined in physical materials, won’t happen because no actual collisions occur. All the special effects (impact dust puff, damage decals, sparks, etc) would need to be placed and timed manually. That would be a bad workflow. Fortunately the solution is rather straightforward:

read more

Multi-pass performance recording and replay

I’ve just finished the first iteration of the performance recording and replay mechanics in Gavit: now user actions can be captured and turned into a matinee using an external application.

Let’s say there is a fire truck which is a “machine” in Gavit. The truck has two main, controllable features: the body which can be driven around and the water cannon which can be aimed and fired. These translate to “machine components” inside the machines: each component monitors one particular input (like x360 left stick or the mouse). In this example the vehicle itself could react to the left stick while the water cannon to the right one.

read more

Effects and UI design side project

I spent the majority of my time working on and with our effect container, the GVEffect class.

GVEffects are abstract entities containing any number of basic building blocks called EffectTypes. We have particle system and decal effect types working, light and sound will be implemented later. A typical setup would look something like this:

read more

Digital input replay

During the past two weeks I spent the majority of my time programming. One of the features I got working (at least on a basic level) was matinee based digital input replay, which means that matinee can now mimic user input for both analog axes and digital buttons in order to drive GVMachines. This replay of captured user performance is a fundamental feature of Gavit’s machinima support.

read more

Gavit Dev Diary #19: Hydra integration

We got the Razer Hydra motion controller working in UDK. There are a few issues left to solve but the basic functionality is up and running so I was able to throw together a very simple game to show off motion controls.

This is Reflection Pong where you must prevent pieces from falling into the pool. (You also have a very heavy hat and can’t look up, so must use the reflection to see where the bits are falling from.)

read more