Creating smooth loops with Particle Illusion and Vue Infinite
I was recently talking with Alan @ wontertouch support about some animation loops I am creating and he asked if I could post some information here. First I'll start off with a bit of an introduction. I am primarily a Macintosh shareware developer and I recently had an idea which involves the need to create smooth 3D animated loops of nature scenes. Small file sizes = fast downloading. I came across Vue Infinite from E-ON Software: http://www.e-onsoftware.com/
It is a really nice application for creating natural looking 3D scenes, however, it didn't quite meet my needs for this project. It has no built-in particle system and doesn't inherently support making smooth 3D animation loops. With the help of members of the Cornucopia 3D forum (run by E-ON) and some help from E-ON tech support I finally found a way to smoothly loop water with a custom seamless tile pattern used as a texture map (the tile was created in Photoshop CS with some help from Alien Skin Eye Candy 4000). But I still had a problem, I wanted to add smooth animations of nature effects like rain, falling snow, and more. Vue has a way to play animations in alpha planes put directly into a 3D model, but I had no idea how I would go about getting the effects I needed.
One of the Cornucopia 3D forum members suggested Particle Illusion :)
The first issue that came up with Particle Illusion was... how do I create smooth loops? The answer to this came in the form of a wonderful tutorial on the WonderTouch site:
I've slowly found that I needed to adapt this slightly. My goal is to create short... 3 sec loops at 15 fps that could download quickly. I also noticed that when I create a 3 sec animation in Vue, it uses 46 frames (not 45). The easiest way I have found to create the loops I need in PI is very similar to the tutorial, except I set the animation bounds in PI to 100 - 145. After placing the effect I open it up and set the visibility so that it starts at 0%, and goes up to 100% for around frame 123, and then back to 0% for the end. By starting at frame 100, it gives some of the PI effects that have a starting point, time to get going so when I fade in the effect is already full blown. After creating the first PI animation, I pull in the .mov file as background animations using the 2 layers (as the tutorial does -- substituting frame 1 for 100, and the mid-point value as 123. In this way I end up with a cross fading effect... the mid-point of the first animation (100% visible) starts off and slowly fades out. As that happens, Particle Illusion is slowly fading in the new particle effect on top of that heading toward the mid-point of frame 123. At 123, the background animation is playing the start of the first animation (0% visible) and starts to fade in... as it is doing this, the new particle effect on top of that is fading out. This results in a nice smooth loop. I have found that I sometimes have to start the second background layer a bit layer to prevent a repeat of frame (pausing the loop briefly)... sometimes starting the background at 124 or 125.
Once the loop is rendered out as a .mov. I put it in the "Animations" folder in Vue (in the Bitmaps folder). In Vue, I create an alpha plane and bring up the Vue selection dialog for the image. In the resulting dialog, my PI produced animation shows up. I can then click on a little clapperboard icon and this brings up a dialog where I can tell Vue I want it to play out at 15 fps. Most of the effects I have been rendering in PI are B&W... Waterfall, Snow, Rain, etc. So, in Vue, I click on the "Mask" section of the alpha plane dialog and select the same animation I selected for the image. I also follow the same steps to set it to play at 15 fps. Vue has a little button next to the preview in the Mask section which can Invert the mask animation (this is very important). There is also a "Billboard" option that can be checked to ensure that the alpha plane is always directly facing the virtual camera in the 3D scene.
After following these steps I now have a flat plane in my Vue scene which I can position anywhere that will play the animation when I render out a 3 sec animation at 15 fps in Vue. But I'm not quite done yet... Vue has a few tools which help out. There is a preview of the "material" applied to the alpha plane (the animation), and a double click on that preview brings up a material editor. There options can be found to set the diffusion, ambient light, and luminosity that the PI animation will have in the scene... and there is also an option where a Mask color can be set (which is also important -- for example, if you render some snow in PI against a black background... you might notice when you render out the animation in Vue, there will be a sort of black glow around each flake). By setting the Mask color to white in Vue, you now get a slight white glow around each flake which looks correct. There are also options to set if the alpha plane will cast shadows or receive shadows. In most cases, it is probably best to turn that off (speeds render time), but in some cases leaving it on can be used to good effect as well.
Here are some of the smooth 3D loop renderings I have created which use Particle Illusion. In all except 1 case, the effects are created in ParticleIllusion and put directly into the 3D model as alpha planes to position them in the scene. The rendering does take longer that way (especially compared to PI's near real-time rendering), but by including the effects in this way, reflections and other things to make the effects seem like they are really in the scene (not just added on top of it) are possible.
The loop that required the direct PI work is animation4.html which needed the "heat shimmer" effect which isn't something that can be done as an alpha plane effect in Vue. (There are some other animations you'll notice missing in the number sequence above... this are scenes that only rely on Vue effects (no PI work)... but feel free to check them out as well.
There was one more effect I wanted to add to the scene in animation 13 & 14 which was giving me trouble because the effect is in color (not mostlyl b&w like the others) and as a result, simply inverting the animation was resulting in a mask that was too transparent in Vue. I soon found that it is not possible using the alpha channel option to create a loop using the animation loop method (the background animations won't show up). Alan promptly answered my question about that by pointing out that I could use the tint color parameter to set a full white tint color and strength of 100% to simulate a B&W alpha effect. This worked perfectly (thanks again Alan).
Armed with my colorful animation loop and a B&W mask loop animation I was then able using the same techniques mentioned above to create the following with Vue:
I hope this info is helpful to others. If anything above isn't clear or if you have any questions about it, I'll be happy to try to clarify or answer them.
This may be the longest post ever in this forum. It is definitely the longest first post -- most first posts are something about the "orbing" effect in "Charmed". =)
I just wanted to point out that Mike (in the auroroa example) was trying to render out the alpha channel that pIllusion was generating in the visible (RGB) channels. He did this by viewing the alpha channel using Alt-A (Cmd-A on Mac). The problem as he pointed out is that pIllusion only creates an alpha channel for the particles, even if the background footage has an alpha channel, so the bg footage disappears. The looping process requires the bg footage to be visible, hence Mike's problem.
The solution was to use a Tint Strength of 100% and a Tint Color of white instead of viewing the alpha channel. You may need to make all particle types "intense" for this to work too, but possibly not.
Good to see a fellow Vue user here too - and it's great to see how you've put together these excellent looped examples!
The use of animated textures is something that relatively few Vue users seem to have embraced so far, but PI3 is a fantastic way to get the most out of this feature, as you have clearly demonstrated!
(Thanks Alan for mentioning the 100% Tint solution too)
Look forward to seeing even more great examples!
All the best
Well, here we go... here's the latest rendering using smooth animation loops in Vue alpha planes which were created with Particle Illusion 3.0.3. I'm pretty happy with how this one turned out. Not just for the cool Particle Illusion effects, but the way the rain is actually in the 3D scene and lit when the lightning flashes (accomplished with a couple well timed lights).
Oh, there was a minor issue putting the lightning loop together. I have been creating the loops at 15 fps (helps to keep file sizes low) and keeps me in sync with a 15 fps output from Vue, but for some reason the lightning effect in the emitters 03_10 library won't display anything at 15 fps in Particle Illusion 3.0.3. To get around this issue I doubled the number of frames 180 instead of 90, and set the output to 30 fps (PI had no problem with 30). After the animation was saved out, I used settings in QuickTime Pro to save that animation out with only 15 fps which did the trick.
I haven't noticed this issue with any of the other effect loops I have tried to put together. Does this just have to do with the way the particular effect was designed (seems to affect the entire lightning section in the 03_10 library) or is this a bug of some sort?
Some emitters only look "right" at 30 fps or so. In most cases emitters look pretty similar at most framerates, but the "problem" is in the way that the number of particles needed at each frame is calculated. I'm not sure if it would be called a bug or just the way that it was implemented, but your workaround is the best way to do it.
I seem to remember somebody (maybe Aharon?) posting the reason for this at one time in the past, but I can't seem to remember the explanation. I'd have to dig into the code to see why this is, and it's possible I might be able to fix it in the future.
I see what you mean about some emitters just not looking right at low frame rates. I went to create a waterfall sheet loop to use as an alpha plane animation in a Vue 5 Infinite scene and it just didn't look "right" (had these horizontal bands running through the waterfall). So I created it at 30 fps (no problem) and then dropped it down to 15 fps in QuickTime... much better :-)
Here's how the animation turned out: