Page MenuHome

Riging - unpredictable behaviour with Constraint Track To
Closed, ArchivedPublic

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 1650 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71

Blender Version
Broken: version: 2.92.0, branch: master, commit date: 2021-02-24 16:25, hash: rB02948a2cab44
Worked: (newest version of Blender that worked as expected)

Short description of error
I start do some simple example around riging due that I meeting crazy/quirk behaviour
https://youtu.be/e2a5mCa2Hj4?t=454 - in this step, Blender should have this type image


But my result is somethin like this

The horizontal bones are changed into vertical position after add Track To.
Back to the object mode and edit changing bone orientation. By this situtation is hard to set right position for bones.

Exact steps for others to reproduce the error
Repeat the step like on B 2.8 on B 2.9
https://youtu.be/e2a5mCa2Hj4 Model & Rig Pistons fast in Blender 2.8+

This is exact cases around Constraints that doing blender uncomfy and generating angry things..
https://developer.blender.org/T88761

There is on movie more bugs around
https://youtu.be/e2a5mCa2Hj4?t=468

Event Timeline

Keep an eye on your Tracking and Up axis:
This works correctly if you use Y for Track and Z for up

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from Developers.Fri, Jun 4, 3:04 PM

The defaults for the Track To constraint was changed in rBbe009020827c: Defaults: Change default axes for Track To constraint, so this is obviously done intentionally.
I have to agree though that for bones, this is not ideal?

CC @Sybren A. Stüvel (sybren)
CC @Julian Eisel (Severin)

This is not a bug though, just want the devs to be aware, feel free to close immediately.

There is on movie more bugs around

Oh and forgot to Add: the "not-so-perfect" update is due to a dependency cycle in the piston rig

Dependency cycle detected:
  OBArmature/Bone.003/BONE_CONSTRAINTS() depends on
  OBArmature/Bone.002/BONE_DONE() via 'Track To'
  OBArmature/Bone.002/BONE_READY() via 'Ready -> Done'
  OBArmature/Bone.002/BONE_CONSTRAINTS() via 'Constraints -> Ready'
  OBArmature/Bone.003/BONE_DONE() via 'Track To'
  OBArmature/Bone.003/BONE_READY() via 'Ready -> Done'
  OBArmature/Bone.003/BONE_CONSTRAINTS() via 'Constraints -> Ready'

There are probably better ways to do this (this is outside the scope of the bugtracker though)

The axes change is clear now. But after some moves for bone and specially rotation, the bone is laging ond often not following to end default (eg. after ESC) position and doing misunderstanding.

The axes change is clear now. But after some moves for bone and specially rotation, the bone is laging ond often not following to end default (eg. after ESC) position and doing misunderstanding.

This is due to the mentioned dependency cycle

  1. Still not sure about this all.

In attachment have some part of work as simplified plane wing, cut form something biger.


The Bone.001 is done by Extrude in edit mode from Bone in Armature.A1 and this same Armature.A2.

The first image have limit rotation turned off (hide)

The second image have limit rotation turned on (show)

  1. But after turn on, the wing it's fliped as applied Limit rotation what we can see on 2nd img.

a) After operate on/off on this the Bone.001 laging this same, but doing missunderstndig what possition for axes is real.
In fact open .blend file is not possible the lag to see but need swith button on/off, like ESC. There was something like "Refresh" for blender but not sure that have sense for this?

b) Now, don't know it's normal in relation to Armature.A2 axes with Bone and how to prevent this fill (flip).

c) Should use limit rotation to Wing.remex or controler handle (black part) as object or to the armature/bone?

  • In both case have bad reaction in fact that without axes for Constraint Track To looks ok betwen add limit rotation .
  • If I trying do connection Armature.A2 with Armature.A1 (servo mechanism - blue), then this same.
  • In fact of this buggy reaction as fliped any limit rotation for angle (eg. -45 to 45 degrees) not working btw in this case.
  • what is misleading for me: rotation for wing.remex doing by R + Y axe, Constraint limit rotation want X axe, then if I have laged bone it's easy to lost.

d) Due that of tree hierarchy of this joints how normaly should works this mechanism doing frustration (limit rotation can be applied to any part of this mechanism and efecting for whole).

  • Watch the blue line - it's should be conected betwen Bone.001 left and Bone.001 right (following the settings - to the tip not root), but it's Bone.001 left and Bone right (to the root)?

It's bether to not use Extrude bones in this same Armature and separated?
For first post I do simple example in case working with this model.
But I'm not understand that any other new Constraint like Track To or Limit Rotation added using own "Up axes" and doing as default?

Maybe user should have more easy option to set connection betwen Tip or Root?
And checkbox for "dependency cycle" to lag or not lag (refresh)?

I'll be glad for confirmation for 3 types wings on one where limit rotation is applied to Armature.A1 (-45 to 45 angle), Armature.A2(-90 to 90 angle), Armature.A3 (as central pipe joining: limit location on X axe). - I deleted multiply limitations steps to not do complicated situation.
If I doing this in wrong way, let me know, eg. if should use Separated bones.

I was available to separate the problem "fliping" to .blend file but around Limit Rotation. But the problem is going out to Constraint Track To problem I think, but not sure.
The remex_example.blend have

remex_example_off.png

remex_example_on.png

For me is no sense to fliping this, and can discover why this happening.
And if have parented object, bones, this made crazy stuff to"debug" problem.

  • BTW looks like bug around try delete in Display mode the vertex groups, modifiers? Have this impact as old? The object is ctr+c/v from project.blend to remex_example.blend

This is not a support forum. Since the problem with the Track To constraint has been clarified, this task can be closed.