Problem with modifying BindPose on skeleton

Thanks for your interest @yan

I tested both with HardwareSkining and SoftwareSkining, removed SkeletonControl and AnimControl from spatial and recreated them, tested with both jme 3.1 and 3.2 snapshot no difference.

Searched all the forum and found only [this post] (Bone local coordinate system - #2 by Momoko_Fan)

Its not enough to just call setBindTransforms(), you have to make sure the inverse world bind transforms are computed as well. When you use the Skeleton(Bone) constructor, it will do that for you based on the bind transforms that the bones currently have set. Hence, if you modify them after using the constructor, you have to call update() and then setBindingPose() on the skeleton after you do that.

This is the whole code for setBindingPose() :

/**
     * Saves the current bone state as its binding pose, including its children.
     */
    void setBindingPose() {
        bindPos.set(localPos);
        bindRot.set(localRot);
        bindScale.set(localScale);

        if (modelBindInversePos == null) {
            modelBindInversePos = new Vector3f();
            modelBindInverseRot = new Quaternion();
            modelBindInverseScale = new Vector3f();
        }

        // Save inverse derived position/scale/orientation, used for calculate offset transform later
        modelBindInversePos.set(modelPos);
        modelBindInversePos.negateLocal();

        modelBindInverseRot.set(modelRot);
        modelBindInverseRot.inverseLocal();

        modelBindInverseScale.set(Vector3f.UNIT_XYZ);
        modelBindInverseScale.divideLocal(modelScale);

        for (Bone b : children) {
            b.setBindingPose();
        }
    }