Page MenuHome

Copy Transforms constraint jumps when changing influence
Closed, ArchivedPublic


OS: Xubuntu 12.10
Blender version: SVN r55030

When a bone is sheared, the Copy Transforms constraint causes it to suddenly jump when blending it's influence to/from 0.0. Expected is a smooth transition between 0.0 and 1.0 influence.

Attached is a file demonstrating the issue. Simply drag the influence slider, and notice it's behavior especially near 0.0.



Event Timeline

The same "jumping" behavior occurs with Copy Location, Copy Rotation, and Copy Scale as well. So it seems the problem is likely in some code that's shared among those constraints.

The copy transform constraint has no blending option (in the code). In theory you could simply mix two 4x4 matrices, but that doesn't always give the desired result, especially not when rotations are involved. Decomposing the matrix would also not work (shear gets lost).

I will ask Joshua what he'd suggest to do. A linear interpolated matrix (with its limitations) is probably what Nathan would accept :)

Yeah, it's not necessarily a trivial problem, I'm aware.

Note, however, that as per my first comment here, this problem is showing up for the Copy Location, Copy Rotation, and Copy Scale constraints as well. In the example file, just substitute any of those constraints for the Copy Transforms constraint, and the same problem appears. It basically seems to be a problem with constraints operating on bones (and objects? haven't checked) that have been sheared by parent transforms.

Ideally the shear could somehow be "extracted" and separately interpolated, and then re-inserted afterwards, such that the other interpolations happened as if they were "inside" the space of the shear. That's probably not trivial to do, and may be one of those "multiple possible solutions" things, but it would sure be useful behavior.

Hmm, here's a thought:
If you decompose and then recompose the matrix, you lose the shear, yes? So couldn't you then use the inverse of the decomposed/recomposed matrix to extract the shear from the original? Not sure if that would give the desired result, but I imagine it would at least be smooth. Something to try, perhaps.

Sergey Sharybin (sergey) closed this task as Archived.

it was quite a while already, moving to TODO now

Pretty known limitation of constraints which are heavily used to decompose matricies..