Bullet Time with Phoenix FD


By Hammer Chen

Have you ever wondered how to create a bullet-time effect for liquids with Phoenix FD? Especially when working with rigid body simulation? The answer is surprisingly simple: animate the Phoenix FD's "Time Scale" parameter. In this article, I am going to show you the workflow.

1. Scene Setup
We have two wine glasses in the scene  and a sphere flying from right to left, that hits and breaks the glasses. You can use any package to simulate the rigid body dynamics, for example,  PFlow mParticles or RayFire. In this case, I use thinkingParticles.

2. Sim the RigidBody with constant speed
Before we start the fluid simulation, we have to simulate the rigid body first. See the constant speed video example, where there is no change of speed through out the animation. Note, that I do slow down the overall simulation for aesthetic reasons (around 70% of real-life speed), but overall it is the same rate.

3. Bullet-time the rigid body simulation
Next, based on the previous setup, we add a bullet-time effect for rigid-body simulation. The various speed of the overall animation can be easily done by using the “Freeze Operator” in thinkingParticles. In case you're not using thinkingParticles; with Rayfire - you can baking the rigidbody animation and then retiming by using 3dsMax's "Retime Tool".

By increasing the value of the Freezing% parameter, the rigid body will slow down, and eventually fully stop when it reaches a value of 100%. So, we animate this value to change the dynamics speed as desired.
Frame
Freezing %
0
0
29
0
37
95
55
95
61
30
90
30
The animation is slowed down to 95% from frame 37, then it sustains the same speed for few more frames until frame 55. And then it speeds up up to 30% of the regular speed from frame 61.

The above image shows the curve of the Freezing% parameter’s values to visualize how the animation is changing its speed over time.

Rigid body animation with Bullet-time

4. Align Phoenix FD's Time Scale to Rigidbody
Because Phoenix FD allows us to animate the “Time Scale” parameter directly, so all we have to do now is to align the “Time Scale” to the “Freezing% parameter temporally.
Frame
Time Scale
0
1
29
1
37
0.1
55
0.1
61
0.7
90
0.7
Note how the “Time Scale” values’ curve is kind of a reversed Freezing% one. For example, in frame 61, Freezing% is 30% and Time Scale is set to 0.7.

6. Liquid Simulation
Now, thanks to the artist friendly design of Phoenix FD, we press the Start button and simulate the liquid motion. The results will be just what we want - animated liquid with bullet-time effect that perfectly aligns with the rigid body animation temporally. The fluid can collide with the rigid body in the right place and at the right time. No post-simulation re-timing is required, no flickering artifact is present because of the post-simulation retiming. Enjoy~

Final animation

Share:

1 comments

  1. Hi thanks for the tut. :)
    Can you give details for the lighting abd the materials of the scene? I liked a lot.

    ReplyDelete