Controlling a rigged 3D Model using Jitter
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
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.
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