ICE

Build your own Shockwave deformer using ICE

The wave function
The shockwave will be constructed by two sets of waves – a somewhat smaller, condensed part followed by the larger more intense pulse. Even though a shockwave is an ideal candidate for simulation, it has a slight drawback – namely that it is simulated. Whenever you want to change a value or reposition the shockwave, you have to rewind and run the simulation again. An alternative approach is to do a bit of high school math.

Read more →

Future of the blog and completely unrelated cloud R&D

I haven’t been very active on the blog lately, which some of you may have noticed. I’ve got a just-about-finished tutorial describing how to create a ripple deformer in ICE with a “simple” equation. So, no simulation a fancy stuff like that. Just a couple of well-placed nodes. I also have a half-finished piece about creating a weightmap brush, with dispersion, decay etc, which I might finish if anyone asks for it.  In the meantime I’ll post some wip from a few projects I’ve been working on lately.

Read more →

Automatic weightmaps for the left and right side of a head using ICE

Start by downloading and opening the scene ICE_Weightmaps.scn from: https://dl.dropboxusercontent.com/u/3834689/CaffeineAbuse/LeftAndRight_Weightmap.zip

Before you can assign any weights use ICE you need an actual weightmap to assign them to. Select the Head object and from the Get > Property menu choose Weight Map. In the PPG, click the Rename button and rename it to Weight_Map_Left. Create a second WeightMap and rename it Weight_Map_Right. With the head still selected, press [Alt] + 9 to open an ICE Tree and from the Create menu choose ICE Tree. Get a Get Data node and enter self.PointPosition as the reference. To assign the proper weights to the weightmap you need to find where along the x-axis each of the points is located. If it’s higher a certain value (zero in this case) it’s part of the left side of the head, and if it’s lower (a negative number in this case) it’s part of the right side.

Read more →

Creating strands between two different objects

Once completed the following steps you’ve effectively generated strands between the objects, though they won’t show up in a rendered image as you haven’t  defined any size or shape yet. To do this simply get a Set Data node, right click on the Value Port of the node and choose Add Port After two times so you have three values. Open the PPG, enter self.Size as Reference and set the size to 0.1 or so. Enter self.Shape as Reference1 and choose Cylinder. To loft the shape along the strand rather than using individual shapes you’ll need to add one last attribute. Enter self.StrandDeform as Reference2, press enter and check the self.StrandDeform checkbox. Finally connect the Execute output of the Set Data node to the Port2 of the ICETree node.

Read more →

Using an animated map to define particle goals in Softimage

There’s a slight difference depending on what map you’re using. A texture map is essentially an image file connected to an object, and as such you need to tell ICE what to do with this information before you can make use of it. First you need to convert the RGB color of the image to a scalar value and store this information as a custom attribute. Weightmaps on the other hand are already stored as scalar values, and as such you can skip the first step and use its Weights attribute directly in step 2. Start by opening the scene Goal_using_TextureMap.scn. 

Read more →

Wall of lights – How to set up a wall of animated light bulbs

Nine out of ten times you’re overegging the pudding by adding actual light source to the setup as you most likely could get away with a using really bright material on the object. But there is that one time you do need it, and this apparently is it.

Start by opening the scene Light_Wall.scn from this issues CD. There are several ways you can animate the lights switching on and off, but the perhaps most intuitive is by using an image sequence. Select the Wall object and from the Get > Property > Texture Map menu choose Texture Map. In the Clip section of the PPG, click the New button  and choose New From File. In the Browser, select the LightSwitch.pic sequence from the Pictures folder and click OK. Select the Texture_Projection in the UV Property section and then close the PPG.

Read more →

Shape blending in ICE using an image sequence

Since you’ll be using ICE to control the blend of the shape keys, make sure there aren’t any shape tracks added to the Animation Mixer and delete the Cluster Shape Combiner operator in the Shape Modeling stack of the object.

Open the scene Blend_Shape_Using_TextureMap.scn. Select the Can object  and from the Get > Property > Texture Map menu choose Texture Map. In the Clip section of the PPG, click the New button and choose New From file from the popup menu. Select the Gradient_Mask.jpg sequence and click OK to load the images. Select the Texture_Projection in the UV Property.

Read more →

Turbulize the position of a locator with ICE kinematics

Controlling the scale, transformation or rotation (SRT) of an object with ICE isn’t any different from doing the same when dealing with point or “particles”. The thing you need to keep in mind though is how you set the data. While you can read any of the SRT properties of an object you can’t set the individual X,Y or Z transforms directly nor their local transform values. In order to set any of the transform values you need to set the whole global transform matrix. Note that this is merely a structural thing and does not affect what you can and cannot do with an object’s SRT. 
Read more →

Particle sprites using ICE

Sprites are images or sequences of images which you map onto a surface, usually with an alpha channel, to create the illusion of a three-dimensional object or volume. Typical use of sprites includes populating trees with thousands of leafs or creating fire and smoke effects, as this is much more cost effective than rendering  instances of the actual objects or using volume clouds. And in most situations you wouldn’t be able to spot the difference anyway.
Read more →