- Home /
How would you build a custom Bullet time effect?
I am curious of how you would build a smooth bullet time effect in a racing game. I want the player to "enter bullet time" but he will not be affected by it. The AI cars and other gameobjects (crates, particles) will run in slowmotion but the player uses regular speed (timescale?). Is it possible to render timescale individual per game object?
Any idas?
Answer by StephanK · Feb 15, 2011 at 10:02 AM
I guess this is really complicated to achieve if you are using the physx engine. As the engine has to consider all objects to simulate correct behaviour setting different time scales for different objects seems to be impossible to achieve unless you accept some side-effects that may lead to physical incorrect behaviour.
I haven't tried this, but I would try to do "Physics-Buffering". By that I mean instead of letting the Physics engine do its thing each FixedUpdate save the whole physics state (rigidbody) of an object to a buffer. Then modify the real values by interpolating between buffered values. So for example to run everything on half speed: On the first frame take a snapshot. On the second frame again save the state to your buffer and do something like rigidbody = Lerp(states[0], state[1], 0.5).
This is only an idea and might not work at all. In any case it will be a lot of work as you'll have to write the interpolation thing yourself and there might be a lot of variables that you will have to deal with (position, rotation, velocity, etc.)