IPO open letter.

I have been thinking about writing my thoughts down on the IPO editor for a long time. Please keep in mind though, I may have missed some of its functionality so may in fact rent about something that exists and I haven’t found it yet.

I have been animating for over 20 years starting as a Cel animator, moving to Amigas till today where I have used (or played with) just about every piece of animation software written. I work in Melbourne, Australia in Film and TV.
I work here…
and my site is here…
I also made this…

I’m a huge blender zealot. I love it. I show it ad-nauseum to anyone within earshot and the one thing that always brings my little demonstrations unstuck is the IPO editor.

I understand the paradigm of object mode (tab) edit mode then selecting keys is the mirror workflow of objects in the 3d view with object mode(tab) edit mode then selecting verts, but to anyone using Blender for the first time, the IPO looks
A) frozen, as everyone’s first instinct is to grab a key and move it about, and
B) un filterable (if that’s a word)
What I don’t understand is , if Blender wants to cut through and be taken seriously as a production ready package, it doesn’t follow the paradigms set in just about every other package on the market. Even my copies of Digital Fusion and Vue-Infinite which are a compositing package and terrain generation software respectively, use the same editing methods. It’s not 3d app specific and VERY widely used.
Secondly, as an animator, I can’t believe that I can’t see the IPO curves of more than one object at a time. If I animate two cubes, there isn’t a package on the market that doesn’t let me see the curves of those two objects against each other. (that I know of :))
Thirdly, filtering. Why do I have to see all those blank channels all the time? Why can’t I just see LOC ROT and SCALE or filter to what I want? I constantly see too much info.
I’d like to be able to border select keys without accidentally selecting a tangent of another key and dragging it around too.
And time increments should default to frames.
I’d love some icons for tangent types with additions like plateau keys (if they’re not there already). The trouble is (and this could be levelled at much of Blender’s workflow) that what is there is hidden so to access things, you have to be a hotkey-Zen-master. The point of software is to facilitate ease of use, not to obfuscate the application leaving people to hunt and pick.
I applaud big buck bunny. I think there is some really to notch animation in it. I’m very proud of it even though I had no hand in it. You know what it’s like to feel part of the Blender family. That said, I’m amazed at the work given the tools the guys had to work with.
To sum up, Blender’s IPO is good, but could be great. They don’t lend themselves to a fluid workflow IMOHO and I think that next time there is some SOC money to be had, a real overhaul, looking closely at what works in other apps like XSI or Maya (not max :)) would be well worth your time.
Please understand that I absolutely love this thing and only write this as I believe strongly that Blender can be a player on the world stage.

There are workarounds for some of your issues.

If you have two IPO windows set up, you can select an object, and both windows will show the IPO curves for that object. You have the option of freezing one of the windows (the push pin icon) and then selecting another object or bone. The unpinned window will show the curves for the new bone, the pinned window will show curves for the first one.
Unfortunately, the scale doesn’t automatically match. The work around on this is to use the cross hair icon to outline an area to view – with a little practice (all right, a lot of practice) you can get the scales in the windows to match fairly well. Numeric input for the scale would be nice, or a “match scales to this window” button. Clunky, but it works.

The IPO window shows frames, the timeline can show frames or seconds, and you can set up the one you want and save defaults.

Filtering - if you click on the name of the channel, only that channel’s IPO curve will be displayed. Shift click for more than one channel. The channel names, however, don’t go away. It would be nice if there were an option to not show locked channels. When I rig, animation controls are generally locked for channels that don’t (or shouldn’t) move anything.

I actually like the hotkey zen master thing, although I must admit it is reassuring to see so many of the hot key functions duplicated in menus. What would be nice is to see icons in the menus as well as hot keys. Right now, I can refresh my memory as to hot keys by using the menus, but if a function is accessed by an icon, the menu won’t tell me which icon it is.

Border select is a problem. I don’t know a work around for that one. It is annoying to painstakingly select each key or handle by shift clicking on it.

That said, the workarounds are just that - workarounds. It would be nice if I would only see channels I’d set keys on in the IPO window, or if I had an option to not show locked channels, or if I could show two (or more) objects in the same window, so I’d know they were at exactly the same scale (or some way to synchronize scale between windows that doesn’t involve eyeballing crosshairs.)

If anyone has some other work arounds, or, better still, work-flow suggestions, I’d appreciate hearing about them.

I still do not like the click sleection/manipulation in the IPO window. The overall way it works.

I’ll just say it again. It should work like after effects.

That means when I left-click on a point, it should auto-grab the point and let me freely move it around and when I let go of the mouse button it should drop the point where I moved it to. It drives me frickin’ crazy that I have to right-click to pickup a point, then move it and then left-click to let go. Soo many times I will right-click to select a point and move to the new location and let go of the button thinking that will drop it (because it is natural way of working with the mouse) only to have moved the mouse a little in the process and now my drag is off and the point is still stuck to my mouse. So I left click and I end up with my point in the wrong place.

I try to do as most animation as possible using the I-Key to insert and the NLA to reposition key frames. Mainly because the IPO drives me crazy.

I agree with you the specifics of the lack of functionalities in the IPO editor, but as with all such observations, it always boils down to is there a developer out there willing to code it (hope Algorith reads this - hint, hint) ?

Blender’s animation system has gone through quite a lot of changes in the past few years, but from what I have seen in the “culture” of Blender animators, they (from the ED and BBB production files) tend to use the Action and NLA editors and not the IPO editor . This I would guess has to do with the fact that the armature system in Blender is quaternion and not Euler based like it is in most other packages . This makes editing the rotation IPO curves manually almost impossible . So nobody does it . So no screaming call from Blender animators for improvements in the IPO editor .

There was an aborted attempt to convert/give you the option of having Euler based armature system a while ago, but I am not so sure that would have been such a good idea … Rigging in Blender is so much easier then in Euler based armatures … though if they had done it I guess maybe the sometimes quirky behavior of the IK constraint would be fixed … Personally I think they should just extend all the constraints only available to the armature to all objects . Or allow you to convert an object based hierarchy to act as an armature . That way you would have the option of building Euler based armatures if you wanted to . And then you can happily follow one of those Animation Mentor tutorials using the IPO curve editor . And maybe more calls to improve the IPO curve editor’s functionality …

That said, the quaternion armature system is easy to setup and plays well in the GE (the fact Blender has a GE attached to it is most likely the reason the armature is quaternion based, almost all GEs use quaternions) . So as with most aspects of our quirky beloved Blender any change as always needs a developer to do it, but there also needs to be a need that is required . Any robust change in the IPO editor (multiple object selection, etc.) will only come with the option of Euler based armatures and a culture of animation editing using the IPO . Right now the Action and NLA seems adequate enough for most Blender animators …

Hotkey-Zen-master … funny … :stuck_out_tongue:

Here’s where I hit a bit of a brick wall. I don’t understand quaternion Vs euler at all. You mentioned that the armatures are quaternion, but is everything else euler?

And Atom, I’m with you. it drives me crazy. In today’s 3D culture, many people like myself use multiple packages to get a job done and having to shift your head space between packages can be frustrating. I think that’s why there is so much continuing backlash over UI’s like Zbrush. Blender should follow it’s own path for sure, but in matters of UI should make itself user friendly and follow a few norms.


I have taken the first step and I am trying to set up my system so I can complie blender.

I think digging into the code is inevitable…

FWIW, I agree with these concerns entirely. The IPO editor is something I’ve learmed to live with, but have always hoped would improve.

Interesting. Keep us posted.

I agree pretty much with everything said here. When I animate, I mostly stick with the Action Editor, using additional keys and poses to adjust my timing, as opposed to pulling the handles, etc., in the Ipo editor. Could that be because the Ipo editor sux rocks? It could.

I’ll take a look in the code at my next opportunity to see the feasibility of at least being able to view a reference Ipo of another object as a background. I know that someone just added an option to see the original state of the curves while you are editing them, so the structure is there. Blender’s data/screen model makes just throwing an unlimited number of objects into a single Ipo editor window difficult, though.

Does anyone know how to adjust bone rotation keys when they are quaternions?The only way I see how to do a continuous rotation like a rolling wheel, is to manually animate the keys. Is there an easier way? Or should the IPO curve editor be rewritten like you all are discussing. (I totally think it should.)

I wouldn’t mind having two (or more) IPO windows open, with different objects in each one. The main problem with that is that the curve scales don’t line up, and getting them to do so by hand is a pain. Might it be possible to add a “Synchronize timeline in all IPO windows to this one” button in the header?

Yes every other object uses Eulers except for the armature system . You can build a purely Euler based rig in Blender from scratch except that it wouldn’t have most of the constraints available to the armature, especially IK (though I suppose you could write a script to do this), nor would you have an easy modifier like effect on a mesh … you’d have to use hooks for that … But like said this gets into the territory of rigging in Max or Maya … You can slap a rig together in a half hour (if that) in Blender and never worry about gimble lock or other such problems …

But the biggest problem of a Euler rig from scratch is that you don’t have a major basic functionality available in an armature bone … a defined length . Armature bones are basically vectors of a defined length . This is how you can calculate IK especially in an armature . Though you can workaround this too with scripts …

Quaternions are so called 3 dimensional numbers (mathematicians know 1 and 3 dimensional numbers but not 2D, if you discover 2D numbers you’ll get the Nobel for sure) usually represented W(X,Y,Z) where X,Y,Z are imaginary … because they have four variables they work well in matrices and can be calculated very efficiently (that’s why most GEs use them) … If you want a more comprehensive explanation then my half ass attempt go here : http://www.euclideanspace.com/maths/geometry/rotations/axisAngle/index.htm

Yes, I agree . When I first got interested in Blender a big part was the open source nature, and I tried following the SVN somewhat, and well, while I understand how to write patches, the rat’s nest of uncommmented code just confused me … I am just waiting for the port to 2.5 architecture before I try again …

Do you think the data/screen model will be available for changes in 2.5 ?

@Nathanael :

You just have to have at 2 keys (more if you want to refine it) on the bone and in the IPO editor select the axis curve you want it to rotate on (Quat X/Y/Z) and the Quat W curve . Then in the header Curve -> Extend mode -> Cyclic … for a smooth rotation you usually need four …

This is why using the IPO to adjust poses isn’t good … this is a simple adjustment around a single rotation/axis … imagine trying to adjust a pose … How do you edit the Quat W curve with any precision ?

Thank you, I will probably use cyclic. And, for a quick fast way, just animate rot 90, move x number frames ahead, and rot another 90.

To add onto viewing the IPOs for more than one object, what bugs me is deleting IPO curves. A while back I was working on about a minute-long animation with maybe 10 objects. I messed up a few times and had to delete all the curves, which involved selecting every object, selecting all the curves, and deleting. It got even more confusing when the first half of the animation was good and the second half bad, because then I would have had to go inside nine curves per ojbect (loc, rot, scal; xyz) and delete everything after a certain point. Instead I deleted the whole thing and started from scrath b/c that seemed easier. Maybe there’s a way to delete all the animation after a certain point, but I haven’t found it (which, I guess, goes back to the hotkey-zen-master thing. A useful function might be a key that, when pressed, lists all the shortcut keys for the given mode and panel you’re in; kinda like an in-program dictionary.)

Actually, jErikoATo, that sort of work would have been better accomplished in the Action Editor. It’s very good for pushing around keys, removing, re-ordering, etc. I only move into the Ipo Editor when I need to adjust the slope of individual curves.

I still don’t understand why people want to adjust the rotations of bones by pulling points around on a curve. It’s so easy to do with a Normal rotation manipulator in the 3D view. I’m not saying there’s no use for it – just that I personally don’t get it.

I have been animating robots, I wanted to get a continuous rotation on things like wheels, and wrists.

I would use taget bones on my IK chains rather than edit the bones directly. I think it’s pretty mandatory to have multiple objtcs curves in the one view. Most professional animators I’ve worked with (actually every single one of them) animates almost entirely withing the curves/IPO of the objects/rigs and never touch the dope sheet/action editor.


Sounds like a job for the Blender Heuristics Development League. If only there was one. :slight_smile:

Seriously though, it would be good to see some more development time going into “core functionality”, as opposed to “features”. Nothing wrong with features, but, improved functionality will make a great program, err,…greaterer.

Well I’m using the IPO curve window just as much as the Action/NLA editor.
Adjusting curves, as grsaaynoel can probably tell, is a great way of achieving overlapping action, especially in arm rotations.
Of course you could add more keys instead with just the action editor, but its not as
easy to revise, as theres more keys to delete, move etc. I find it way easier to tweak a curve, then deal with a huge swath of keyframes.

But I was trained on Maya, which seems to have a culture of using a curve editor a lot.
That being said, I like the current functionality of the IPO editor :stuck_out_tongue:

This is one of the most intelligent and useful discussions of a functionality in Blender that needs improvement that I’ve yet run across on this or most other forums. Kudos to everyone for keeping it non-confrontational and non-defensive, particularly when comparisons to other 'wares are made.

I agree with the majority of comments made about ways to make the IPO editor more flexible, with display of multiple object curves the most serious lack imo. I have a tendency to use curves for most purposes, as I learned the techniques before there really was much in the way of dope sheet, action and NLA editing, regardless of package. But Blender should have functionality that appeals to and can work well within a wide range of workflow paradigms – as mentioned, it should facilitate the work, not try to force it into a specific methodology.

If someone does dig into the IPOCE code, please also take a look at the existing functions and make sure they’re as reliable & consistent as they can be made. For instance, using the I-KEY over the IPOCE window should insert a key on the selected curve, but it is applied very inconsistently in my experience – sometimes it works & sometimes not, with no pattern I can discern to why it’s only sporadically successful. Workarounds mean you have to insert keys in curves where you may not want them (e.g., other axes if translation) that you then have to remove. That’s time wasted. Cleaning up this kind of glitch can improve how people work with the other animation editors as well, since the IPO curves are the basis for the data in those windows.