Friday Flashback #43


When I interviewed at Softimage back in 94, they gave me a media packet. I finally found dug up that packet recently, and found that it included a set of slides!

I guess I could have borrowed my parent’s slide projector, but instead I borrowed a scanner and transferred them to my computer.

MGM Lion – Boss Film Studio

Fruity Pebbles – Topix C Graphics Anim

Asterix in America – 94 Les Ed. A. Rene – Goscinny/Uderzo

Rain Forest – Zival, Houdek &Kurek

ICE attributes: user-defined versus built-in


ICE attributes are categorized as built-in or user-defined, so you would assume you could easily find your own custom attributes by checking the AttributeCategory property. However, try this: create an empty point cloud and run this script:

si = Application
attrs = si.Selection(0).ActivePrimitive.Geometry.ICEAttributes;

# There's also a "unknown" category but I'll ignore that here
for attr in attrs:
	si.LogMessage( "Attribute: %s, IsDefined: %s, AttributeCategory: %s" % (attr.Name, attr.IsDefined, "Built-in" if attr.AttributeCategory == 1 else "User-defined" ) )

You’ll see that while some attributes, like NbPoints, PointPostion, and PointVelocity are “built-in” as you would expect, most of the attributes are in the “user-defined” category.

For example, size and shape are listed as user-defined attributes. Why’s that?

I think it is because those attributes are dynamic attributes added by [factory-default] ICE compounds. Until you plug in those compounds, the compounds don’t exist and aren’t initialized (in other words, they are not defined yet). They’re not really built into the system (and the attribute explorer is hard-coded to show them as a convenience).

Built-in attributes like PointPosition are intrinsic attributes.

Consider this ICE tree on my empty point cloud. The Size attribute is just like my own custom Xxx attribute, whereas the built-in PointPosition attribute resolves nicely.

If you want to distinguish your own attributes, I’d use a prefix for the attribute names. For example, I sometimes use a “ps” (for Product Support) prefix or a “sisupp” prefix.

Setting workgroups at startup


Here’s a simple, low-tech way to connect to specific workgroups at startup:

Instead of xsibatch -w or xsi -w, you could modify setenv.bat to create another .xsipref file in %XSI_USERHOME%\Data\Preferences. Whatever is in that file will override what is in default.xsipref.

So, for example, you could do this:

echo data_management.workgroup_appl_path	= C:\Users\blairs\MyWorkgroup >  %XSI_USERHOME%\Data\Preferences\workgroups.xsipref

or you could use an environment variable:

echo data_management.workgroup_appl_path	= %MY_XSI_WORKGROUPS%  >  %XSI_USERHOME%\Data\Preferences\workgroups.xsipref

This does require you to edit setenv.bat, which isn’t so useful if you have a lot of seats. In that case, if you use a network deployment, you could deploy a %XSI_BINDIR%\SiteDeploy.bat file and use that to echo out the workgroup preference.

Accumulating values in a weightmap


Courtesy of Vladimir Jankijevic on the XSI mailing list, here’s how to accumulate values in a weightmap:

The nice thing about his tree is how it sets things into per-point context so nicely. My own attempt seems crude in comparison:

The thing about setting weight map values is that you can’t do it like this:

ICE will evaluate this tree just once, even if it is in the Simulation stack. Perhaps this is a case of mistaken optimization? (branch is a scalar constant, so no need to reeval?)

If you replace the scalar node with any of these branches, then the weightmap values will change as your play through the timeline.

Friday Flashback #42


After last Friday’s flashback post, Len Krenzler posted a link to the Def Leppard “Let’s get rocked” video, which was done in 1992 with Softimage|3D:

Came across this old Def Leppard piece, it was on the Softimage3D demo
reel the first time I saw it. Modeling has come a long way since then
but it was quite impressive at the time.

http://www.youtube.com/watch?v=v2Jch_a1o5M

Luc-Eric pointed out that at 1:14 of the vid, you can see Softimage Eddie (click through the screenshot below to see an animated gif of a node connection operation):

At other points in the video, you can see Softimage|3D:

Googling “def leppard” and “softimage” quickly led me to the Reboot series from MainFrame, where I found this bit of info:

Ian Pearson flew out to Los Angeles, spending the next year sleeping on Chris Brough’s couch during which time Pearson, assisted by a couple of demo animators from Softimage, put together the Def Leppard promo ‘Let’s Get Rocked’. Not only did the video serve as a test of the new Softimage animation software and SGI hardware but the kid in the promo served as a prototype for Enzo.

There’s also a few interesting mentions of Softimage in the history of the Reboot series:

In bringing the series to life technical issues dogged them every step of the way. Although the systems were sound, a combination of Silicon Graphics, Onyx and Indigo hardware, the software was not. Despite being open-ended, allowing them to add to existing programs and write their own programs in-house, the main package Softimage was tempermental and not designed to handle the information being thrown at it, unpredicably crashing at random intervals. During the first year of production ReBoot animators were hit with over 15,000 software bugs, sometimes losing entire profiles or erasing over three weeks’ worth of rendering.

“We made every mistake possible,” says Dan Didio, who at the time was a programming executive for ABC and later, ReBoot’s story editor. “That’s the only way you’re going to learn, and we wound up thriving for it. We were charting new territory, which made it kind of fun. We didn’t understand the production problems at the time. ‘ReBoot Inc.’ were pushing programs further than ever before. We became pretty much a beta test site for computer software that was applied later on down the line.”

“When we started out, nobody had done what we were doing so there was nobody else’s lessons to learn from.”, says former Director of Communications Mairi Welman, “We were inventing the wheel. We made our mistakes, people worked obscene 18 hours days and slept under desks.” Some even slept in front of their workstations in sleeping bags to maximize time, “While things were rendering, they you would wake up, animate a little more, sleep some more.” Blair recalls.

At the same time they had to keep their ABC liason sweet, “I started at ABC Childrens Television and the first show that I was assigned was ReBoot,” says Didio, “Nobody knows what’s going on, nobody knows how it’s been done. I remember stepping in on the first day, seeing the tests and how incredible it was and getting swept up in a lot of what happened.” Gavin Blair now freely admits that for the most part, “We were making it up as we went along.”

Offsetting ICE simulations


In this video, I take a look at how to offset ICE simulations, and I look into the role of the Simulation Environment.

  • Use the Limit by Time Range node to control when a simulation (emission) is active.
  • When you create a simulated ICE tree, it is added to the current simulation environment.
  • Models don’t include the simulation environment.
  • Merged scenes usually bring in their own simulation environment, which doesn’t always match the number of frames in the current scene.

http://vimeo.com/31542410