Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 960M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 391.25
Broken: version: 2.81 (sub 1), branch: master, commit date: 2019-08-06 20:27, hash: rBf4e27bc2c981
Short description of error
Setting the value to posebone.constraints["IK"].target and subtarget causes unnecessary frame update. It seems that calls frame_set() after the value set.
Exact steps for others to reproduce the error
I attached sample python scripts for both 2.78 and 2.81.
I've just finished porting my own add-on from 2.78 to 2.81. There was no problem in porting except for one thing that I describe below.
My add-on is for posing armature with simple rig and attached above is a simplified version.
I found a problem in "c.target = rigObj" line in change_rig() function in it.
Just after the line was executed, all matrix_bases were reverted to their own animation curve value, so I could not assign the desired pose as a key in 2.81.
This is not occurred in 2.78c.
You can find simple armature and three keys in timeline for each bones in attached .blend file.for 2.78c for 2.81
- drag "Bone.001" by G key to change bone attitude.
- press "Start" in "changetarget" panel and select "Effector" bone
- and press G key which is overridden by the add-on. "IK" constraint is muted and "Effector" bone is parented to "Bone.001" inside the script.
- Click left mouse button to finish add-on. The pose is completely the same as before step 3. above.
Now you can assign the new pose as a new key.
On the other hand, once the pose was set in step 1. the pose revert to #80th frame pose after step 4, so I cannot create any animation in current 2.81 with my own add-on.
As I wrote a comment in the add-on code, I thought that "frame_set()" may be called when the value of posebone.constraints["IK"] is changed without intention.
Please refer to attached movies describe above step for 2.78c and 2.81.