Collada Joints - how to move/translate them?

hello,

i am battling my way through Collada integration in VVVV, i have progressed quite a bit and am now able to export a rigged character from Blender and get it into V with the skeleton.

I have integrated the SelectJoint and mapped its transform to a quad so i can just click on a joint and see where it is in the Renderer. So far so good …

but what i really want to do now is to be able to move the joints and see the mesh move/deform accordingly …

i really don’t know where to go from here, i’ve spent a week trying to find and understand all the info on this but am completely stuck now

In the Collada VVVV documentation there is a mention of a config pin for

Skeleton pin enabled

If the skeleton pin should be enabled. Default false for performance reasons.
^

i cannot find this pin … and i don’t know if it’s relevant to what i want to do …

i’ve also tried to implement what i found here:

https://discourse.vvvv.org/t/6790

which is basically what i want to do with collada files, but i’m lost again …

ok i have progressed a bit with help of the following thread:

https://discourse.vvvv.org/t/5767

i had a problem with the Collada + Skeleton file before where most nodes came up red, i had to start VVVV first, rescann externals and then load the file, now it works.

so now i can move,rotate individual joints … cool

the problem i have (and it’s the same in the file from the above mentioned thread) is that the mesh is ripped apart as soon as i connect the GetJointTrasnform out pin to the Skinning matrices pin.

what am i missing ?

set OutputTranfsormCount to Fixed 60 on GetJointTransform which is connected to skinning shader. the shader wants 60 matrices, if you provide less than 60, some vertices might take the wrong joint transform…modulo stuff…

tha for your help Elias !

OutputTranfsormCount is already set to ‘Fixed 60’ (but shouldn’t the setting ‘dynamic’ solve this if there is less than 60 ?)

i’m not sure i understand what these OutputTransform matrices are … is this equal to the number of joints ?

my DAE rig has a much simpler structure than the astroboy model, but with the astroboy the same happens: https://discourse.vvvv.org/t/5767

yea had give it a try 3-4 times, still no luck, suspect the problem is if you do a “bone” in blender or in 3ds collada won’t export it as proper bone. Like in astroboy example if you import it back in 3ds, you won’t see any bones, only helper objects with IK solvers… I suspect the problem might be there…
Also last vvversion all the time model flips, from LeftHanded to RightHanded… and the problem in that part obviously might look like that!

the astroboy imports more or less fine into Blender 2.56 (just the fingers seem to be split from the rest of the rig, but there afre many things i don’t get in the imported structure

there are several empty groups (astroBoy_newSkele.003-011) and a modifier node with another armature …

but most of all there are some vertex groups

which might be involved in this, i’m pretty new to blender, i thought vertex groups were just like selection sets but apparently they also play a role in skinning ( http://wiki.blender.org/index.php/Doc:Manual/Modeling/Meshes/Vertex_Groups )

my character deforms fine in Blender without these but maybe i need them for this to work in VVVV

will have to look deeper into blender i guess to understand how this astroboy is designed

despite the vertex groups, there don’t seem to be any deformation constraints, the astroboy behaves more or less exactly as my model

but you’re right antokhio about the mess with the orientation, this doesn’t work as expected and i had to go through a lot of trial and error to get my model to import the right way into v

i’d help if you’d post the patch so i we can have a look at it…

here it is Elias

AstroPimp.zip (754.1 kB)

still haven’t found a solution to this … :(

hi stickman, sorry for the late reply. i somehow totally forgot to look at this. the solution is super simple: you have to connect the inverse bind pose pin on the GetJointTransform with the hidden inverse bind pose pin from the mesh (collada) node. open up the inspektor to change the visibility of the hidden inverse bind pose pin.

hey Elias … how cool … that was it :)

the deformations are a bit rough, the weighting from Blender didn’t come over probably but i think i need to sort this out in blender which i don’t know very well yet

but at least i’ve got something i can more or less work with … thx Elias !!!

Hey Stickman.

Don’t suppose you’d be up for sharing your blend file? Would be really useful to get my head around rigging bones in blender

Cheers

hey mrboni, check out this tutorial: http://www.blendercookie.com/2010/07/30/using-the-human-meta-rig/

this is what i used to make my rig, just grab any free mesh or buy one you like and rig it like in the tutorial … it needs work thou, you’re better off trying this out on a fresh/different mesh, i’m going to start over again with a simpler mesh/rig as well just to get to grips with blender rigging

Did you ever get this to work as expected?

I can rotate for example the upperleg and the knee, and get correct results when I show a quad or something on each joint position that I get from GetJointTransform, also the SelectJoint node shows the correctly transformed skeleton.

However, if I feed the 60 transforms coming from GetJointTransform into the Skinning fx (only thing I did was change to VS2 and PS2 model, because I am working on a not too recent laptop for the moment), the wrong parts of the body seem to move.

Could it have something to do with the fact that the astropimp returns 4 meshes? And if so, how can one solve this?