Bug in Chincken Exporter R91, R81 and ?

If like me, you have a big screen in 16/9, the button motion extraction don’t appear - never !!! it’s under !
The solution is to modify the lines :
self.bMExtraction.update([w-wPad-500, top-1, 110, 20])
and change in
self.bMExtraction.update([w-wPad-500, top-30, 110, 20]) fro example.
And “Motion Extraction” will appear !!! I didn’t understand why my model don’t walk on the spot and the model example (fleur) of 42 do… it’s because model extraction was already on.
Sometimes… :blush:

No, idem with the button “motion extraction” - the result is a bit different, but the body is not moving on the spot.
Normally, if i had understood, the move of the object is function of the SRB, not another center ?

if someone could help me, this is the file :
http://lup5do.1fichier.com/blobanim.blend
Thanks in advance

to help,
the R42 model and mine have a difference in the static egg file:

R42 (fleur.egg) has :
SyntheticRootBone {
}

Mine has :
SyntheticRootBone {
{
{
1.841088 0.179080 -0.215076 0.000000
-0.179059 1.853580 0.010580 0.000000
0.215093 0.010221 1.849747 0.000000
0.008378 -0.526550 -1.549277 1.000000
}
}
}

Do you know if it’s normal ?

I’m sure the problem is linked to this extract of the exporter script :

for f in xrange(minframe,maxframe+1):
      context.currentFrame(f)
      scn.update(1)
      pbones = armature.getPose().bones
      if srb:
		srbMat = Matrix(pbones['SyntheticRootBone'].poseMatrix)
		srbDeltas.append(srbMat * srbIMatPrev)
		srbIMatPrev = srbMat.invert() # if there is no srb this will always be just identity
      for i, name in enumerate(boneNames):
        pbone = pbones[name]
        parent = bones[name].parent
        if parent:
          imat = (pbones[parent.name].poseMatrix*mat*srbIMatPrev).invert()
          poses[i].append(pbone.poseMatrix*mat*srbIMatPrev * imat)
        else:
          poses[i].append(pbone.poseMatrix*mat*srbIMatPrev)
    Blender.Set('curframe', oldframe)
    poses = dict([(name, poses[i]) for i, name in enumerate(boneNames)]) # convert poses to a dictionary like this (bonename:[posematrices])
    if srb:
      poses['SyntheticRootBone'] = srbDeltas

It’s about matrix transformation. We use the invert function to do the translation of all bones relatively of the SRB. The code seems to function, but in real not… why ?

If i modify this script and i delete the “mat” transformation, it functions !

Here is my modification (with print messages for debug) :

for f in xrange(minframe,maxframe+1):
	  print ">Frame :"+str(f)
	  context.currentFrame(f)
	  scn.update(1)
	  pbones = armature.getPose().bones
	  if srb:
	    print ">Calculating SRB delta"
	    srbMat = Matrix(pbones['SyntheticRootBone'].poseMatrix)
	    srbDeltas.append(srbMat * srbIMatPrev)
	    srbIMatPrev = srbMat.invert() # if there is no srb this will always be just identity
	  for i, name in enumerate(boneNames):
	    pbone = pbones[name]
	    parent = bones[name].parent
	    if parent:
	      print ">Calculating delta using parent : "+parent.name+" for bone :"+name
	      imat = (pbones[parent.name].poseMatrix*srbIMatPrev).invert()
	      poses[i].append(pbone.poseMatrix*srbIMatPrev * imat)
	    else:
	      print ">Calculating delta for bone : "+name
	      poses[i].append(pbone.poseMatrix*srbIMatPrev)

Mat is the armature.matrix, not material.

Why do i have to make this modification to have the same as the example ? It seems that my armature is moving, not the example. Is there a parameter under blender to do that ?
If i use my modified script with the example 42 fleur, only the dress is moving on the z axis, not the rest. It’s a big difference I don’t know what is the difference between my model and this one !!! Please, help.

So, in conclusion, there is not really a bug in the SRB mode, but the author of fleur.blend has made a particular thing in his blend file that i can’t reproduce. Have you an idea ? There is a line which is growing from the origine to the model is fleur.blend, what is it ?