Friday, December 19, 2008

Lights up, claws out!

I was watching a movie recently with some friends. I had really enjoyed the film -- much more than I expected that I would going into it -- and was eager to discuss it with my friends after it was over. The credits rolled, the lights came up, and folks started talking.

Not one single positive comment was made.

To their credit, they weren't being venomous or vicious with their comments, and I agreed with some of what they were saying. Still, I had hoped that someone would mention at least one part that they liked.

Nope. Nothing but criticism.

I swear, it was like someone took a needle and just popped my enthusiasm balloon.

Tuesday, December 02, 2008

Big Idea nearly gone

Randy came up to me today and asked if I knew if Greg Hardin was still at Big Idea. "I think so," I said. "Why?"

"Well, because his status on FaceBook sounds like he may have been let go."


Sure enough, he was gone...along with about two-thirds of the rest of the crew. Big Idea is down to eleven people, with most of them in marketing, and only three on the creative crew.

This brings back unpleasant memories of the layoff that happened right before Christmas of 2002. The studio was already on edge after the round of layoffs that practically coincided with the theatrical release of Jonah: A VeggieTales Movie, and a bunch of folks losing their jobs right before the holidays didn't help. Layoffs at any time of year are a pain, but it tends to feel especially cold if it happens before Christmas. I'm not saying that it's a decision that anyone felt good about, either then or now. It's just really rare for a single company to have to dip into those particularly cold waters twice. My gut says that for those who are left who remember both dips, the lingering chill from the second submersion probably has a bit more bite.

My heart goes out to everyone involved: those who are no longer with the company who have to figure out what to do next, and those few who are still with the company...who also have to figure out what to do next.

Monday, October 27, 2008

Site down

Looks like some clever hackers found a way into my site and planted some oh-so-fun phishing scripts in there. I was contacted earlier today by my host, and informed that they've suspended my site until we can get it worked out. Here's hoping it won't take long.

Wednesday, October 08, 2008

I am voice actor. Hear me flail!

I was asked to provide vocal noises for the guy in the large plastic ball in this DriveTime spot that we produced at work about a month ago. Most of the stuff in the early part of the spot had to be mixed really low under the main voiceover, but you can hear me loud and clear (well, muffled and clear) when the guy goes rolling toward the camera. No pay for this gig, but it was fun all the same.

Monday, October 06, 2008

Python decorators: getting a little closer...

After further searching, I finally ran across a very well-written article that attempts to explain Python decorators from a very basic level. While it hasn't brought to mind any situations in which I would want to use decorators in my code, I at least have a handle on what exactly they are and how they work.

To clarify my earlier post, one of main things that (at first) didn't click for me with regard to decorators was how exactly they allowed the programmer to effectively modify a function after it was written. Sure, I'd learned that you could assign a function to a variable and pass it around like any other piece of data, but even in that context I saw the function itself as essentially static. If I passed a function as an argument, I only expected the target function to call the function I passed as-is. I never thought about the possibility that a target function could actually do something else with/to the function I had passed.

As with other things I've unearthed in the process of learning Python, I have a hunch that this would've been easier to learn if I had a more formal background in computer science, and that's probably the biggest frustration that still crops up as I dig through Python documentation. Bits of programming terminology are often casually thrown around with the assumption that the average reader knows what they mean. One example is the term "first-class objects" that can be found at the head of the article linked above. I've seen that term used in several places, but even though the sentence immediately following the phrase in the above article is related to the phrase's definition, I still had no idea what it meant until I dug it up via a Google search. The way it was phrased in that article, it felt like the status of Python functions as first-class objects was a separate concept from that which immediately followed it, so I was left thinking, " what are first-class objects?"

That's probably not the best example of my frustration, though. I guess the point is that it feels like there's a gap somewhere. At one end there's good introductory material, such as the tutorial by Guido von Rossum that covers a lot of ground-level topics. At the other end there is very nice reference material that covers the individual modules in the standard library, the data types that the language offers, etc. However, between Guido's tutorial and the other reference material there's a bit of a void, because some of the reference material makes reference to programming concepts that aren't explained in Guido's tut. I'm not necessarily implying that they should be covered by Guido's tutorial, but it's a gap all the same, and one that many in the Python community seem to ignore. Perhaps that is an inaccurate observation, and I'd be more than happy to be shown evidence to the contrary. However, from my observations, many experienced Python programmers seem to assume that you're either a newbie learning the basics, or you're a fellow pro. The folks in the middle who aren't totally new but aren't full-on professional programmers seem to get overlooked.

The most frustrating part is that I feel like I'm square in that gap. Yeah, I've been scripting/programming since I was about 12, but sadly that doesn't necessarily mean that I have a complete understanding of modern programming terminology and concepts. I've taken very few formal programming courses, and those few took place a long time ago. Everything else I know has been the result of self-study and on-the-job experience. However, the farther I delve into this stuff, the more I feel like self-study (at least what I'm currently doing) isn't cutting it.

So here comes the million-dollar question: do I stick with self-study and see how far it gets me, or do I go back to school? I've been around enough self-taught animators to know that it's possible to get to the very top of that game without formal instruction, but I don't know if the same holds true for the world of programming.

Wednesday, September 17, 2008

Still can't figure out decorators

After a couple months (roughly) of Python programming, I'm very happy with how far I've come and what I'm able to accomplish. When all this started my biggest struggle was the basic object-oriented programming mindset. After further study and a good bit of trial and error, though, I feel I've got a pretty good handle on it. I'm not a whiz by any stretch, but I'm a lot more comfortable with it now than I was when this all began.

That leads me to the next programming concept I'd like to grok: decorators.

I just stumbled across a blog post in which the author claims that Python's decorators are "radically simple." I'm sorry, but I've read a good number of explanations behind decorators -- including the Wikipedia article on the subject, which includes a pseudo-example in Python -- and this "radically simple" outline (i.e. the slides that Mr. Diederich used in his PyCon UK talk) hasn't made the concept any clearer for me.

Does anyone know where I can find a truly clear description of Python decorators? Perhaps this is something that could be more easily understood if I had a solid computer science background instead of an animator-who-fell-in-love-with-programming-on-the-side background.


Saturday, September 13, 2008

iPod Touch vs. the clock

I noticed recently that my iPod Touch wasn't syncing its date and time properly with the computer. At first I thought it might be a glitch in the Touch software, so I experimented by syncing several times in a row to see if I could find a pattern. The only pattern I noticed was it gave me a different time (and I assume a different data) with each sync: 1:24 AM, 4:11 PM, 9:18 AM, etc.

A quick Google search led me to a thread that outlined the true source of the issue: iTunes. If you put your computer to sleep with iTunes open, and then try to sync the iPod Touch after waking it up, iTunes appears to invent a random date and time to send to the device. To avoid this, simply close and re-open iTunes before syncing.

Friday, September 12, 2008

Python and list copies

While working on a tool at Reel FX, I couldn't figure out why the data lists across several different class instances were all returning the same information. Normally working with lists in Python is tons-o'-fun (especially when compared to the gymnastics required to do similar operations in MEL), but that fun can come to a screeching halt if you forget one little important detail: copying a list doesn't necessarily copy the list.

For example, say there's a list assigned as follows:
   data = ["apples","oranges","pears"]
Some time later you want stuff to be a copy of data:
   stuff = data
If you've come to Python with some previous programming/scripting experience, you might assume (as I've done more than once) that this would do the trick. However, that just tells stuff to reference the list assigned to data. If you end up changing data later on, and then look at stuff, you'll notice that it shows the same changes. That's because they're both pointing to the same list in memory.

So how does one get around this little annoyance? Pretty simply, actually:
   stuff = data[:]
That bit on the end tells Python to make stuff equal to the entire contents of data, instead of making it just another pointer. To be more accurate, it duplicates the list to which data is pointing, and then points stuff to that new list.

Dictionaries also exhibit this same point-instead-of-copy behavior, but the syntax is different if you want to make a true copy:
   newdict = olddict.copy()
(Pardon the crazy formatting. I've never tried to insert code blocks into a blog post, and getting it to look decent with the controls available in the Blogger editor is driving me nuts. Methinks it's time to consider an alternative blogging system...)

Saturday, September 06, 2008

Open Season 2 trailer

Pop on over to the Reel FX web site to take a look at the first trailer for Open Season 2. I think it was a little over a year ago when we animated the test for Sony, we started working on cycles in October, and primary animation ran from early November through June/July of this year. Even with the initial animation stress mentioned in an earlier post, the overall project went very smoothly, with very little overtime, and everyone did an outstanding job. From what I understand, it'll hit shelves around January of '09.

Tuesday, September 02, 2008

RIP Don LaFontaine

The man known by many in the voiceover industry as "the voice of God" has returned to the one who lent the voice. Don LaFontaine died on September 1st at the age of 68, following a rocky battle with a collapsed lung and subsequent complications. I never had the privilege of meeting Don, but those who have speak of him as the most humble of men and a willing mentor, despite his place at the pinnacle of the voiceover industry.

Rest in peace, Don.

Saturday, August 30, 2008

The "joys" of technology

Oh yes, technology can be so "fun" at times, it just makes my mouth hurt to smile to much.........NOT!!

Okay, here's the condensed version of the problem and what I found to be the solution in my case. I'm posting this here in case anyone else runs into a similar issue, but I can't promise that the same solution will work for you.

I had to re-install Windows a few weeks ago (long story behind THAT bit of "fun"), and for the most part things were humming along just fine as I gradually re-installed stuff. However, somewhere in the past week -- maybe a little more -- I noticed that the system performance would occasionally take a big hit...and stay hit. Looking at the Windows Task Manager, I saw that the CPU usage meter was hovering up around 75% or so, even though the main view showed that the System Idle process was the one supposedly taking up 99% of the CPU. In short, there was clearly something very un-idle cranking away, but Task Manager wouldn't show it to me.

After a number of Google searches, I came across a site that recommended using a little-known program called Windows Process Explorer to take a deeper look at system processes. The moment I ran it, I immediately saw the problem. Apparently that 75% of the CPU time was being taken up by hardware interrupts. More Googling led me to a number of possible solutions to that particular problem, but most of them didn't help. However, I finally stumbled across a comment in an NVIDIA forum thread about NVIDIA IDE drivers sometimes causing problems (apparently they're optional drivers, and sometimes have a hard time operating properly when the computer comes out of sleep mode, which I use a LOT as an alternative to fully shutting down). I dug into the Device Manager and found an entry under IDE ATA/ATAPI controllers named "NVIDIA MCP51 Serial ATA Controller". I right-clicked on it, chose "Disable," and immediately the CPU meter in Windows Task Manager dropped to near zero. Woohoo!

Saturday, August 23, 2008

"Animate a Face" available once again!

Just added a "Buy Now" link to the info page for my "Animate a Face" CD-ROM set. There are only 12 sets remaining from the original production run that Anzovin Studio made. Once those are gone....well, we'll see.

I also added a "Donate" button to the tweenMachine info page. No, I'm not gonna do any major begging or anything like that. Not even minor begging. It's all up to you. If you feel inclined to toss a few coins in the pot, bless you. If not, bless you anyway. Either way you look at it, you're blessed. Not bad, eh?

Thursday, August 21, 2008

Here there be Pythons!

I recall first hearing about Python when it was added many years ago to Blender, a cool little 3D app that I used for a stretch near the end of my days at the Art Institute. However, its inclusion in Blender was largely meant (from what I can remember, anyway) as a means to assist in the development of interactive 3D applications...namely, games. I wasn't interested in doing games, so I ignored it. I discovered Animation:Master not long before graduation, so Blender went bye-bye, and so did any thoughts of Python.

The next time I recall hearing about Python was some time in the last year or so, when I heard that we use it at Reel FX. It's becoming very popular to embed Python support into 2D and 3D production software, and number of the tools that we use are apparently making the shift to Python from their own proprietary scripting languages. I noticed its inclusion in recent versions of Maya, but didn't dig into it right away for some unknown reason. I think that part of my hesitancy was because I heard that Python was an object-oriented language, and the few times I had tried to wrap my head around object-oriented programming, something just wasn't clicking.

One of the things that was discussed in my annual review was broadening my knowledge base in the area of programming/scripting languages. It was recommended that I start with Python, so after we wrapped animation on Open Season 2 and things settled down a bit, I started digging into it. I've only been working with it for a short stretch -- less than a month, I think -- but I feel it's pretty safe to say that I've become a Python junkie.

I just can't get enough of it! I don't think I've ever found a language that was so powerful, and yet so easy to learn. While I spent a good bit of time reading about it before I sat down to start actually using it, I found that I was able to jump into real, usable programs very quickly because the core syntax is so intuitive and easy to learn, and because there are so many things you can do with the collection of modules that come packaged with it. After using it for only a couple days, I was able to start writing some fairly in-depth tools for work, and in some cases it's the kind of stuff that would be literally impossible to do with MEL (the Maya Embedded Language). The majority of what I've done with it so far has been organized in a very "structured" way, similar to how I would build a MEL script. However, I'm starting to explore classes and objects as I work on porting our existing MEL-based pose library tool into a Python-based animation library tool, and it's coming along really well.

I certainly wouldn't call myself a "Pythonista" at this point, but I'm very pleased with what I've been able to do with it so far, and I'm super excited about all the possibilities that it opens up. In addition to using it at work, I plan on using Python for a number of personal projects. One idea I'm toying with is rewriting some (or possibly all) of my tweenMachine tool in Python, which I hope would speed up some of its operation, and also would make it easier to add some of the new features that I've had in the back of my mind for a while. I also plan on using Python for a personal web project that was originally going to be driven by PHP, and might convert some existing PHP-based web stuff to Python as well.

Yeah, I now...I can see some folks making the hammer/nail comparison when I talk about it like that (i.e. when a guy gets a new hammer, all the world becomes a nail). However, Python isn't just a hammer. It's an entire toolbox, and that's what I think I like about it the most. As the Python community likes to say, it comes with "batteries included," and I'm eager to put those batteries to use!

P.S. Yes, this is one of the reasons why I haven't yet posted a link for purchasing the last few Animate a Face sets. I do hope to get that up soon, though, and I appreciate those who have written so far to express interest in it. Watch for an announcement here in the hopefully-not-too-distant future! :)

Thursday, July 10, 2008

Looking back on the year

Yeah, I know most folks do this kind of thing in December, but considering that I just had my annual performance review at Reel FX (they always do it in the summer...don't ask me why), I thought it would be appropriate to toss some stuff out here.

It's definitely been an interesting year since my review last summer, with the most significant change being the switch from animator to TD that happened about halfway through. If you'd told me last July that in six months I'd be stepping away from animation, I probably would not have believed it. It might have sounded like an interesting hypothetical situation, but I still don't know that I would have accepted the reality of it it too readily. Even when I knew that I absolutely had to step away from animation, it was difficult bringing myself to actually believe it. After thinking about this for a while, I feel that part of that reluctance was due to recollections of a special church blessing I received many years ago. In this blessing, there's a phrase that's always stuck out to me. From what I recall, it says, "Don't get stuck in a rut in jobs you don't like."

It sounds pretty straightforward when you first look at it. For me, though, I never imagined that animation would become the rut. I always saw it as the thing that was keeping me out of the rut, and up until the point when the stress really started settling in, the mental picture of my career path was full of nothing but animation. I also remember hearing in high school about how the average person has several "careers" over the course of their lifetime, and recall thinking to myself, "That's ridiculous. Why go through all that? Just find something you like and stick with it. Why is that so hard?" And again, once I landed upon animation, I always felt that would be my job for the rest of my life. Why go through the hassle of switching when I've found something I love?

Well, apparently that love wasn't as deep as I initially believed. I'm still picking through the pieces and trying to find the one that is/was the key to the crash. Even if I don't find that piece, though, I'm at peace knowing that I've successfully made the transition to something that I truly believe I love more. Now don't get me wrong, I still have a strong love for the broad spectrum of animation. It's something about the process of animating that isn't exactly my cup o' cocoa.

It's interesting, though...several people have made the comment, "Once an animator, always an animator," and initially I was quick to dismiss that thought. I figured that once it's gone, it's gone. However, after further thought, it's probably not a good idea to be so quick to
toss it out. Perhaps something will arise down the road that will call me back to do a personal animated project. I can almost guarantee, though, that I won't return to full-time animation. But you know what? I'm all right with that.

Getting back to my annual review, one of the concerns that was expressed by my supervisors back in January when I initially made the transition was related to my salary. They told me that they would find it difficult to justify paying a TD the salary of a senior animator, and that if I wanted to have any chance of keeping what I had, the expectations would be very high. To make a long story short, I worked my tail off and was pleasantly surprised to receive a raise. More importantly, though, I enjoyed every day of work since the change was made.

I'd say this year is coming along quite nicely so far. :)

Tuesday, June 17, 2008

News regarding "Animate a Face"

Back in August of 2004, Anzovin Studio began selling "Animate a Face," a dual-CDROM set of facial animation video tutorials that I'd produced in partnership with them. Part of our agreement was that if they decided to stop selling it, they would turn all rights back over to me. Sounded like a good deal, so I agreed.

Fast-forward to the end of May, 2008, when I received a note from Anzovin Studio that they were going to cease sales of all their Animation:Master tutorials and plugins. I've since received the final paperwork returning all rights for "Animate a Face" back to me, plus the few remaining units they had in stock. Looking back at the sales records I'd kept for my own purposes, it has sold somewhere in the neighborhood of 300 copies in nearly four years. Not stellar by any stretch, but not too bad, either.

I've been debating whether or not to open my own online store to sell the stuff, but sales through the Anzovin store had already dropped very low, so it probably wouldn't do much. It's more likely that I'll just sell the remaining units at a bargain price and let it go, although I did find an interesting site today that would make it easy for folks to grab a copy whenever they want, and I wouldn't have to worry about keeping stock or anything like that. Anyway, keep an eye here and on my main site for the final decision, which will probably come down in the next few weeks.

Tuesday, May 27, 2008

Patricia's Gift

My animator buddy Dimos Vrysellas has a niece (the aforementioned Patricia) who is trying to raise money to help kids with cancer. She's also going to be donating a substantial sum of her own hair to the cancer society to help make wigs for young cancer victims. And the coolest thing: she's doing all this to celebrate her 7th birthday coming up on June 1st!!! How cool is that!?! :)

Her goal was to raise $500 to donate along with her hair, but people have already blown that number away and she currently has $2500 in donations. I think it would be AWESOME to make that number skyrocket even higher! If you're able to help, please visit her personal page and make a donation. Even if you can't make a donation, please spread the word. Thanks!

Tuesday, May 13, 2008

Voices for "Boom Blox" commercial

I'm occasionally called upon to provide scratch voices for spots produced at Reel FX, and did a quick session at the end of March for a commercial we produced for EA's Boom Blox. In addition to the announcer, there were five small character parts, and we decided to record that stuff first. I love doing character voices, and even though it was only supposed to be a scratch track, I approached it like a paying session and tried to make the characters distinctive and fun.

It took maybe 15-20 minutes to get through all five, and when the time came to switch to the announcer lines, the producer suggested that it might be best to get someone else in for that part in order to provide a bit more separation from the characters. I was cool with that, and left the booth with the usual "You never know...the client might decide to use you after all" ringing in my ears like so many scratch sessions before.

I didn't think much more about it until a couple weeks ago when the producer on the project came to my desk and said, "The client wants to use your voices, so it looks like we've got some money for you. How does [insert attention-getting amount of money here] sound?" Now, I didn't have any way of knowing if it was a fair offer or not, but my gut told me that it was more than reasonable for a 20-minute session that produced 10 words and a handful of animal noises and yells. After returning my jaw and eyes to their normal states, I agreed to the offer.

I confirmed earlier today that the spot has begun airing, so it is with great pleasure that I present my national television voiceover debut. This is a HUGE step in my efforts to pursue voiceover work, and I'm looking forward to assembling a character demo one of these days.

Friday, May 09, 2008

A new direction, part 2

Well, I'm a little over three months into the "new job" (see the last post for details), and it's going very well. And just to clarify a point that might have been confusing in the last post, my new work isn't a mix of animation and TD tasks. It's all TD, all the time. No animation at all. None. So far, that's turning out to be a very good thing. I still haven't quite figured out how all this is going to play out in the long term, but the immediate impact of the change has been very positive, even though the hours I'm spending at work tend to be a little more than what I spent as an animator. I'm providing technical support and tool development for somewhere in the neighborhood of 90 animators at the moment, about 70-80% of whom are working on Open Season 2. (Thankfully they don't all need help at once, or I'd have had a breakdown in the first week.) It's interesting work to say the least, and it definitely keeps me on my toes.

What's really going to have an impact on the future of this role for me, though, is our annual review, which just started this week. I've got to have my personal evaluation turned in on Monday, and with three-quarters of the past year's efforts going toward animation, it's going to be an interesting review. The process won't wrap 'til June or July, so I won't know until then how the switcharoo will impact my income. Here's hoping nothing changes...

Saturday, January 26, 2008

A new direction

If you had asked me about a year ago if there was anything I would rather be doing besides animation, I would have quickly said, "No." From the time I learned that people could actually animate for a living, it was all I ever imagined myself doing. It seemed to be the perfect mix of my interests in computer graphics and acting, and I pursued it with a passion. I ate, drank, slept, and breathed it all through my time at the Art Institute of Seattle. I had the stereotypical grand vision of one day working as an animator at Pixar, and stereotypically sent them my reel once I graduated from AIS. Naturally I landed somewhere else for my first job, but that first job thrilled me all the same. And despite some rocky spots here and there, that thrill has stayed pretty strong for the majority of the past six-plus years. Going to work wasn't work. It was fun!

But then something changed. I'm still trying to figure out what exactly initiated that change. I have a handful of ideas what it might be, but despite the cause, the change happened. In short, there came a point where it wasn't fun any more. The joy of bringing characters to life was gone. It had become work. Not only that, but it had become quite stressful. If it was just tedious, I think I could have pushed through it, and there were several times that I tried. But there was more to it than just tedium. Something about the process of sitting down and doing the work just stressed me out. It wasn't until recently that I ran across this quote, but it seems to sum up my feelings at that time pretty well:
"Nothing is really work unless you would rather be doing something else."
James M. Barrie

In the middle of some of this stressful, confusing time, we had a break before ramping up for Open Season 2. While most of the rest of the animation team worked on rig and blendshape testing for the characters, I was asked to spend about a month doing MEL scripting. It was a mix of writing new tools that the animators had requested, and revamping some of our existing animation tools to clean them up, add new features, etc. While I was doing all that heavy left-brained stuff, I was nearly in heaven. The time just flew by like it hadn't in ages. It hardly seemed like a month when it was all over. To top it off, it nearly filled me with fear as I looked at what the rest of the crew was doing and thought about going back to animation. When I finally did get my first assignments for OS2, I tried my best to plug away anyhow, and I got off to an okay start. However, the frustration and anxiety were all there, and I definitely felt like I would rather be doing something else.

I had a series of long talks about this with my supervisors, and to make a long story short, they were gracious enough to let me shift gears. A little over a week ago, I made the official change from Animator to Animation TD. While there are a lot of things I still need to learn to truly fill that role effectively, I do know this: the joy is back. It's back despite the fact that I'm running more directions in a given day than I have in a long time. It's back despite the increased demand outside of "normal" work hours. Some might call this stress, but compared to how I felt the last time I sat down to animate a shot, it's bliss.

That said, I haven't totally given up on the world of animation. I still love talking about it. I still love analyzing it. I still love helping the students I work with at Animation Mentor push themselves and learn and grow as animators. I'm working with Class 6 this term, and it's so much fun to help them take their short stories to the next level. I'm also doing some of the weekend makeup Q&A sessions, and it really feels good to do a demo or answer someone's question and see comments come back that what I did or said helped them to understand a certain concept more clearly. It's just frustrating that the act of doing it myself has become so....well, frustrating. However, I'm thoroughly enjoying the more technical work I'm doing now, and feel that my time as an animator will only help me be a better animation TD.

So that leads to the next question, which I probably won't answer until a later blog post because I'm still figuring it out myself:

What's to become of ""?

Wednesday, January 16, 2008

About blogging, about change

I'm evaluating a multi-media course on blogging from the folks at Simpleology. For a while, they're letting you snag it for free if you post about it on your blog.

It covers:

  • The best blogging techniques.
  • How to get traffic to your blog.
  • How to turn your blog into money.

I'll let you know what I think once I've had a chance to check it out. Meanwhile, go grab yours while it's still free.

In other news, there's likely to be some change a-happening around here. And by "here", I'm mostly talking about my main site,, but to some extent it will likely affect this other "here" as well. Confused yet? Join the club...

At any rate, things are a-shifting at work. In a way, it's scary and confusing and I never thought it would ever happen. But in another way, it's taking me to a place where I feel at peace, so there's gotta be some good in it, right? Anyway, we just started making the transition today, but it's not totally final and not totally announced, so I'm keeping hush-hush about it for now...except for really annoying teaser posts like this, of course. More later...