Controlling a rigged 3D Model using Jitter


    Jul 03 2012 | 1:27 am
    Hi All,
    I have a 3D character that is rigged (a female form) I want to control her in Max, but don't know where to start. Created in Blender I can export as .DAE or .OBJ - The model imports fine into Jitter using jit.gl.model, and I can texture and rotate, scale, position easily enough. Cool.
    How to I control the rigging of this model? I don't see any recent info on jit-ogre - Does it even work with Max6?
    I want to be able to use MIDI or OSC to control. I can get the OSC or MIDI data in, but I how do I have it "talk" to the model's rigging - )head shoulders, legs etc.) ?
    Thanks so much!
    Valentin

    • Jul 03 2012 | 4:57 pm
      i don't believe obj files support skeleton rigs, so your best bet is to export to collada (dae).
      once you've exported and loaded with jit.gl.model, you can control the individual bones/nodes by accessing the jit.gl.model internal jit.anim.nodes. the model object creates a hierarchy of jit.anim.node objects when the model is loaded.
      there are a couple options for controlling the model using this internal node structure: the "copynodestoclipboard" message creates a jit.anim.node hierarchy mirroring the internal structure in the clipboard, allowing you to paste the structure into your patch. every bone/node of the model can be manipulated from this structure.
      alternatively, if you create a jit.anim.node object in your patch, and set it's @name attribute to the name of an internal model-node, a link will be created between the two allowing you to manipulate the internal model-node with the external jit.anim.node.
      in both of these cases, it's important you set your jit.gl.model @name attribute, because the internal model-nodes are named using this attribute.
      the patch below demonstrates these two techniques.
    • Jul 03 2012 | 5:50 pm
      Hi Robert,
      This is exactly what I was looking for.
      I pasted your patch in, and it works beautifully. I think I understand what it's doing , so that's good too - lol
      If I am getting control info from a source such as Kinect using NI Mate (e.g.) it seems like it would make the most sense to "wire-up" the incoming rotation info for each joint to the anim.nodes created using "copynodestoclipboard" - does that sound about right?
      I'm sure I'll have more questions as I dig in.
      Thanks so much !
      V