I didn’t do programming, and actually one year ago I didn’t even know what a ‘string’ was. But I’ve been using a little bit of python to automate tasks within Softimage. It’s still challenging, but excited too. Now I feel like I was living in a foreign country without knowing it’s language…
So, here’s my first script. It’s dumb, but for me it’s very useful: it places a null as a parent of the selected objects, respecting the rest of the hierarchy; and if you hold down Ctrl, Alt or Shift, it places the null as a child…
download: ed_AddNullAsRelative.pys
#Add Null as Relative #by Ed Schiffer #edschiffer@gmail.com #variables xsi = Application oRoot = xsi.ActiveSceneRoot sel = xsi.Selection ks = xsi.GetKeyboardState() for obj in sel: #if Ctrl, Alt or Shift is pressed, add a null as child: if ks(1) >= 1: oNull = oRoot.AddNull(obj.Name +"_child") xsi.MatchTransform(oNull, obj, "siSRT", "") xsi.ParentObj(obj, oNull) #else, add it as parent: else: oNull = oRoot.AddNull(obj.Name +"_root") oParent = obj.Parent xsi.MatchTransform(oNull, obj, "siSRT", "") xsi.ParentObj(oParent, oNull) xsi.ParentObj(oNull, obj) |
Just drag&drop it under Softimage’s Script Editor.
Even for the simplest rig, like a rock, I find myself always putting an extra parent object for the animation controller, so it can be constrained at a higher level and the controller is still free to animate…