Controlling a rigged 3D Model using Jitter

Valentin's icon

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

Rob Ramirez's icon

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.

Max Patch
Copy patch and select New From Clipboard in Max.

the patch below demonstrates these two techniques.

Valentin's icon

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