You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What steps will reproduce the problem?
1. Rig a model using rigify
2. "play" this file in gamekit, see that it works as expected
3. Append all assets in another (new) file.
4. "play" this file in gamekit, see that it crashes when trying to use a
garbage root bone transform
What is the expected output? What do you see instead?
file loads
What version of the product are you using? On what operating system?
2.68a blender, win 7 64bit, svn gamekit
Please provide any additional information below.
I've looked into this.
In:
void gkBlenderSceneConverter::convert(bool createGroupInstances)
...
while (roots.hasMoreElements())
{
gkBone* bone = roots.getNext();
gkMatrix4 eobmat = gkMathUtils::getFromFloat(obMe->obmat);
gkMatrix4 sobmat = gkMathUtils::getFromFloat(obAr->obmat);
bone->applyRootTransform(eobmat.inverse() * sobmat);
}
}
}
}
}
m_logic->resolveLinks();
}
The eobmat matrices in the original armature file all seem to be the indentity
matrix. In the appended file the values look like junk and end up making the
roots m_bind matrix a series of +/- INFINITY values, which then crashes game
kit in:
void gkSkeletonLoader::recurseBone(Ogre::Skeleton* skel, gkBone* cur,
Ogre::Bone* par)
{
GK_ASSERT(cur);
Ogre::Bone* obone = skel->createBone(cur->getName());
cur->_setOgreBone(obone);
if (par != 0)
par->addChild(obone);
const gkTransformState& rest = cur->getRest();
obone->setPosition(rest.loc);
obone->setOrientation(rest.rot);
obone->setScale(rest.scl);
obone->setBindingPose();
obone->setManuallyControlled(true);
gkBone::BoneList& bl = cur->getChildren();
for (UTsize i = 0; i < bl.size(); ++i)
recurseBone(skel, bl[i], obone);
}
When setting the bones rest position.
I've attached two files. model_girl.blend loads fine, bugtest.blend crashes
although it *should* have the same content, but must have some differences.
Original issue reported on code.google.com by [email protected] on 18 Aug 2013 at 7:03
Original issue reported on code.google.com by
[email protected]
on 18 Aug 2013 at 7:03Attachments:
The text was updated successfully, but these errors were encountered: