<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Character TD
Montreal, Canada</description><title>Kieran O'Sullivan</title><generator>Tumblr (3.0; @kieranosullivan)</generator><link>http://www.kizza.com/</link><item><title>“Did I ever tell you the definition of...</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/iaGSSrp49uc?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;“Did I ever tell you the definition of insanity?”&lt;/p&gt;
&lt;p&gt;It’s announced!  Far Cry 3 is the game I have been working on since joining Ubisoft Montreal.  Check out the gameplay demo we showed at E3 2011.&lt;/p&gt;</description><link>http://www.kizza.com/post/6429729617</link><guid>http://www.kizza.com/post/6429729617</guid><pubDate>Sun, 12 Jun 2011 06:55:00 +1000</pubDate></item><item><title>Bonjour from Ubisoft Montreal</title><description>&lt;p&gt;&lt;img alt="Ubisoft" src="http://media.tumblr.com/tumblr_lkug2uVJs21qb2sh4.png" align="right"/&gt;There’s been no updates on my blog for a while.  No surprise because I’m lazy when it comes to blogging.  But also in January I moved to Montreal to work as a Character TD at Ubisoft Montreal.  It’s been an awesome challenge so far.&lt;/p&gt;
&lt;p&gt;Montreal is a beautiful city, especially now it’s moving, reluctantly, into Spring, but my first Winter was exciting.  Probably because I arrived half way through Winter.&lt;/p&gt;
&lt;p&gt;The internet is faster, music is half the price on iTunes, the food is great, the coffee is good, and I can watch the American TV channels on cable.  Overall pretty awesome.&lt;/p&gt;</description><link>http://www.kizza.com/post/5283967160</link><guid>http://www.kizza.com/post/5283967160</guid><pubDate>Sun, 08 May 2011 07:32:11 +1000</pubDate></item><item><title>This is my Technical Artist Showreel. It contains examples of...</title><description>&lt;iframe src="http://player.vimeo.com/video/14520600" width="400" height="225" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is my Technical Artist Showreel.&lt;br/&gt; It contains examples of rigs and tools I have created for a number of  different projects.  There are also some short clips from trailers of  games I have worked on.&lt;br/&gt; On these projects I have been a rigger, tech artist, and/or modeller.&lt;/p&gt;
&lt;p&gt;Shot breakdown available here:&lt;br/&gt;&lt;a target="_blank" href="http://www.kizza.com/showreel"&gt;kizza.com/showreel&lt;/a&gt;&lt;/p&gt;</description><link>http://www.kizza.com/post/1031380222</link><guid>http://www.kizza.com/post/1031380222</guid><pubDate>Mon, 30 Aug 2010 01:22:00 +1000</pubDate></item><item><title>Optional Variables in MEL</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_kzoq6zZijG1qb2sh4.png" align="right"/&gt;   My biggest problem with MEL Script is that once I’ve written a function and released it I can’t add any new variables to it.  This is an issue when you’re writing rig tools that are used across multiple studios and projects, and then an animator asks for a new addition to the rig.&lt;/p&gt;
&lt;p&gt;   So late last year I had this idea.  What if every function I wrote had an extra input variable, a string that could contain any optional flag, which I can use to add extra options to a procedure without breaking existing uses of it?  Inside the function I could specify all my default values, that get replaced if it finds a different value in the string.&lt;/p&gt;
&lt;p&gt;   I decided that I’m not likely to ever use tilde (~) so I’m using it to identify flags. (Maya’s own functions use the minus symbol, but it’s also used for negative numeric values, so I wanted something I’d never use)&lt;/p&gt;
&lt;blockquote&gt;// Create Cube Function has two input strings: name, and optional flags ;&lt;br/&gt;&lt;br/&gt;createCube( “testCube” , “~visible 0 ~scale 2” ) ;&lt;br/&gt;&lt;br/&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;!-- more --&gt;   I figured I couldn’t be the only person to think of using a string to contain multiple optional flags.  After a bit of googling I found a few people talking about the same idea, and I discovered &lt;a title="ZooTools" target="_blank" href="http://www.macaronikazoo.com/"&gt;ZooTools&lt;/a&gt; is doing the same thing, but instead of returning a single string, it returns a string array, which is a bit nicer than the single string because you don’t have to convert it into an array afterwards.  So I added that this afternoon.&lt;/p&gt;
&lt;p&gt;Example code:&lt;/p&gt;
&lt;blockquote&gt;global proc string[] FlagValue ( string $flag , string $string )&lt;br/&gt;{&lt;br/&gt;    string $allFlags[] ;&lt;br/&gt;    // find all flags in string&lt;br/&gt;    int $tokens = `tokenize $string “~” $allFlags` ;&lt;br/&gt;    for( $i = 0 ; $i &lt; $tokens ; $i++ )&lt;br/&gt;    {&lt;br/&gt;        &lt;br/&gt;        // find all values for each flag&lt;br/&gt;        string $buffer[] = {};&lt;br/&gt;        int $num = `tokenize $allFlags[$i] ” ” $buffer` ;&lt;br/&gt;        &lt;br/&gt;        // if found desired flag, spit it into an array&lt;br/&gt;        if( $buffer[0] == $flag )&lt;br/&gt;        {&lt;br/&gt;            string $values[] ;&lt;br/&gt;            &lt;br/&gt;            for( $v = 1 ; $v &lt; $num ; $v++ )&lt;br/&gt;                {&lt;br/&gt;                    $values[ size( $values ) ] = $buffer[$v] ;&lt;br/&gt;                }&lt;br/&gt;            print $values ;&lt;br/&gt;            return $values ;&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;    return {} ;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;global proc createCube ( string $name , string $flags )&lt;br/&gt;{&lt;br/&gt;    //////////////////////&lt;br/&gt;    // Variables&lt;br/&gt;    //////////////////////&lt;br/&gt;    &lt;br/&gt;    // defaults&lt;br/&gt;    int $visible = 1 ;&lt;br/&gt;    float $scale[] = { 1 , 1 , 1 } ;&lt;br/&gt;&lt;br/&gt;    // Search $flags string for a match&lt;br/&gt;    string $temp[] ;&lt;br/&gt;    $temp = FlagValue( “visible” , $flags ) ; if ( size($temp) &gt; 0 ) $visible = (int)$temp[0] ;&lt;br/&gt;    $temp = FlagValue( “scale” , $flags ) ;&lt;br/&gt;    if ( size($temp) &gt; 0 ) $scale = { (float)$temp[0] , (float)$temp[1] , (float)$temp[2] } ;&lt;br/&gt;&lt;br/&gt;    ////////////////////////&lt;br/&gt;    // Create poly Cube&lt;br/&gt;    ////////////////////////&lt;br/&gt;    string $cube[] = `polyCube -name $name` ;&lt;br/&gt;    setAttr ( $cube[0] + “.visibility” ) $visible ;&lt;br/&gt;    scale -r $scale[0] $scale[1] $scale[2] $cube[0] ;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;createCube( “testCube” , “~visible 0 ~scale 2 1 5” ) ;&lt;/blockquote&gt;</description><link>http://www.kizza.com/post/465578357</link><guid>http://www.kizza.com/post/465578357</guid><pubDate>Mon, 22 Mar 2010 22:59:00 +1000</pubDate><category>maya</category><category>mel script</category><category>work</category></item><item><title>"Strive not to be a success, but rather to be of value."</title><description>““Strive not to be a success, but rather to be of value.””&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Albert Einstein&lt;/em&gt;</description><link>http://www.kizza.com/post/441171966</link><guid>http://www.kizza.com/post/441171966</guid><pubDate>Thu, 11 Mar 2010 23:27:22 +1000</pubDate></item><item><title>Stand Up, Sitting Down All Day is Bad For You</title><description>&lt;a href="http://opinionator.blogs.nytimes.com/2010/02/23/stand-up-while-you-read-this/?em"&gt;Stand Up, Sitting Down All Day is Bad For You&lt;/a&gt;: &lt;p&gt;One of my co-workers has started standing up at work, and we all look unproductive by comparison.  Well, after I read this article, via &lt;a title="Exercise or Not, Sitting at a Desk All Day Is Bad for You" href="http://lifehacker.com/5482856/"&gt;Lifehacker&lt;/a&gt;, I decided to give it a shot.  So far I like it.&lt;/p&gt;</description><link>http://www.kizza.com/post/430032695</link><guid>http://www.kizza.com/post/430032695</guid><pubDate>Sat, 06 Mar 2010 20:34:00 +1000</pubDate><category>ergonomics,</category><category>work</category><category>lifehacks</category></item></channel></rss>

