Friday Flashback #213


From the Softimage Customer Stories, volume 1, issue 1, a 2001 customer story on Aldis Animation
click to read the full story (PDF) or scroll down
customer_story_the_aldis_ascension_2001_page1

THE ALDIS ASCENSION: SOFTIMAGE|XSI Helps Aldis Animation Keep Moving On Up
by Michael Abraham

When last we visited with Kim Aldis, founder and co-owner of London’s Aldis Animation Company, he and his crew were busy putting the beta version of SOFTIMAGE|XSI v.1 (codename Sumatra) through its paces.

Roughly a year after our first conversation, I reconnected with Aldis at his home number. I’d called the Aldis Animation offices the previous day, but the sound of holidays celebrations in the background suggested it wasn’t a very good time to talk. Damn the holidays anyway; they play hell on the work schedule of irredeemable procrastinators such as myself. But I digress.

Speaking with Aldis the morning after the night before, he sounded surprisingly upbeat. It’s been a good year for the company. So good, in fact, that everybody was feeling a little fried as the Christmas season approached. A party was definitely in order.

“We’ve had a pretty good year,” Aldis admits, with typical understatement. “We branded all the UEFA Cup pieces for Ford and did a whole bunch of stuff for the CITV network here in the UK. More recently, we created some titles for the British television game show Blankety-Blank (the British version of the old celebrity game show The Match Game). We also created backgrounds using SOFTIMAGE|XSI v.1.5 in conjunction with Avid|DS for a very challenging pop video promo. That project was really an interesting one.”

“Interesting” in this instance apparently means intensity of the mind-bending variety. As it turns out, the Hatiras video (entitled “Spaced Invader” and featuring the talents of nefarious MC/Rapper, Slarta John) was shot entirely on bluescreen, leaving Aldis to create all the backgrounds using SOFTIMAGE|XSI v.1.5. That is a lot of work in and of itself, but after careful consideration, Aldis felt he was up to it. That was before the Defected Records and Vigilante Productions realized that the video should be out before Christmas, which significantly compressed the timeframe.

Even with the original deadline compressed to a fortnight, Aldis isn’t one to complain. Adhering to his philosophy that there is always a solution within Softimage, he prepared to put his beta version of SOFTIMAGE|XSI v.1.5 under some of the most intense pressure the system has ever seen.

spaced002

spaced004

spaced003

spaced001

spaced006

spaced005

“Basically, they shot all the footage of Slarta John against a bluescreen,” explains Aldis. “About the same time they were shooting, I started working on the graphics. By the end of the first week, the footage had been offlined. We took that footage into Avid|DS together with the graphics I had managed to create by the start of the second week. Aries Brooker did a great job on the compositing, editing and effects using the Avid|DS system. I carried on working on the remaining graphics in the meantime, so it was all quite efficient. What was most encouraging in the midst of all the chaos though, was how well the new version of SOFTIMAGE|XSI performed. I’ve always really liked and relied on the system in the past, of course, but we’ve never put it under pressure quite this intense. We rendered an enormous number of frames. We did a lot of rotoscoping and matching of backgrounds. And, of course, there was all that bluescreen footage to deal with. I can quite honestly say that I wouldn’t have been able to get it done without version 1.5.”

Despite the stress and hard work, however, Aldis insists that the project was a thoroughly enjoyable one. Much of the credit for that goes to co-directors Ben Hume-Paton and Steve Lowe.

“Anytime you can work with directors with whom you can get on, you know that you’ve got a good thing going,” says Aldis knowingly. “It was the first time I’d worked with Ben, and we seemed to share the same vision of things. It was a pleasure, in spite of all the problems and even though we had to work so hard.”

Aldis also gives considerable credit to the latest version of SOFTIMAGE|XSI, both the success of the project and the positive experience it ultimately produced.

“It was great to see XSI working so well,” he says happily. “I really hope that people will sit up and take notice of the vast improvements in version 1.5. I love it: it goes from strength to strength. My favorite parts are the Render Tree and the scripting capabilities, which have both come a long, long way since the first version. The much-improved rotoscoping was key to this project. We had backgrounds that would refresh completely and consistently in real time. That means you can rotoscope, then play it back right away. That is an invaluable feature you could never do before. I also used scripts to set up my camera constraints. A single scene in the pop video might require 20 to 30 constraining objects for a single camera. I was able to script the constraints, then drop them into the timeline of the Animation Mixer. At that point, the timing is set up, and all I have to do is scroll through, position the camera on each shot and bang, I’m away!”

After the very short respite over Christmas, Kim and his team at Aldis Animation are preparing for a number of challenging projects. They are currently in negotiations to create special effects for a popular television series, and they have just signed an agreement with two character designers to create their own animated series.

“Suffice it to say that the character designers are very well thought of,” says Aldis mysteriously. “This is a new direction for us, but one that we’re all very eager to take. In fact, I’ll be working on some characterizations over the holidays, with the idea of getting a trailer out early in the New Year. We’ll also be setting up a subsidiary company to handle the in-house productions we’re planning on doing in the coming months and years, so these are exciting times.”

With 2001 now upon us, it’s fair to say that one good year deserves another at Aldis Animation.

Using ICE to do UV remapping on instances


I was playing around with Softimage, trying to set up a puzzle:
uvremap_puzzle
At first, I was using actual geometry and snapping to put together the puzzle, but then (after watching a Cinema4D tutorial that used the Cloner to assemble the pieces) I decided to use ICE to position the puzzle pieces. Halfway through that, I realized that the texturing was going to be a problem. There doesn’t seem to be an easy way to apply a texture to multiple ICE instances, and then make the texture stick when the instances fly away.

After trying a bunch of stuff (and crashing a lot), I took a look at the UV Remap parameters on the Image node:
uvremap_example

Then I created a 8×8 grid of 64 instances, and put all the possible min/max values in an array:
uvremap_show_values
If you look at the point IDs, and the array, the pattern is pretty obvious, and it allows you to use modulo and integer division to index into the array and get the right min/max values for each instance.

Here it is in ICE:
uvremap_ice_tree

Finally, the shader tree that gets the UV remap values and plugs them into the Image node:
uvremap_shader_tree

Installing PyQtForSoftimage in Softimage 2015


I use the Python 2.7.3 that comes with Softimage 2015 SP1, but I do also have Python 2.7 installed on my system.

  1. Download and install PyQt.
  2. Set the PYTHONPATH environment variable to point to the location of PyQt4. You could do this in setenv.bat, or in the System environment variables. In my case, I set it in setenv.bat to point to C:\Python27\Lib\site-packages, which is where I installed PyQt.
  3. Download and install the PyQtForSoftimage addon.
  4. Check that everything is working. Open the Plug-in Manager, find PyQtForSoftimage, and run some of the examples.

[ICE] Converting integers to strings


Thanks to Mootzoid emTools, it’s easy to convert an integer to a string:
int2str_emtools
Note that you get padding too, so it’s easy to do things like generating replacements for the [Frame] token.
int2str_emtools_ntoa
The emTools string compounds are convenience compounds:
int2str_emtools_ntoa

For fun, I tried to create my own integer-to-string converter using the stock nodes. I did by dividing by 10 until the quotient (the result) was zero; with each division, I take the remainder and stick it at the front of the string. And by setting Max Repeat to 4, I get padding on my strings (so for integer 45 I get “0045”).
int2str_intdiv
Note the use of Delay Set Data. The integer division compound uses Modulo and Division by Scalar. The 2char compound simply uses a Select Case to map a single digit to a string:
int2str_2char

It did occur to me that I could do it all with a single Select Case :)
int2str_selectcase
The catch is that the Select Case node has ten thousand cases.
int2str_selectcase_ppg
That’s really slow when you create that node in an ICE tree (for example, by importing a compound that uses it). It also takes a long time to create ten thousand cases, even with a script.

case_node = Application.AddICENode("$XSI_DSPRESETS\\ICENodes\\SelectCaseNode.Preset", "pointcloud1.pointcloud.ICETree")
string_node = Application.AddICENode("$XSI_DSPRESETS\\ICENodes\\StringNode.Preset", "pointcloud1.pointcloud.ICETree")

Application.ConnectICENodes("{0}.case0".format( case_node.FullName ), "{0}.result".format( string_node.FullName ) )
Application.DeleteObj( string_node.FullName )
Application.SetValue("{0}.case{1}_string".format( case_node.FullName, 0), "{0:0>4}".format(0), "")
Application.SetValue("{0}.default_string".format( case_node.FullName, "9999", "")

for i in range(1,10000):
	Application.AddPortToICENode("{0}.case{1}".format( case_node.FullName, i-1), "siNodePortDataInsertionLocationAfter")
	Application.SetValue("{0}.case{1}_string".format( case_node.FullName, i), "{0:0>4}".format(i), "")