• Editor
  • What bone should I use as target to get desired result?

So I'm trying to get this strap to move back behind the knee with a transform constraint since when the knee comes up the straps are too short. But it does this weird round about path of getting to where I want it to go. The source bone is the Lower leg right now. I even tried making the source bone the IK joint but it behaves pretty much the same. Transform constraints seem to act differently in the new beta. Is there a different bone I should link it to?

Here's it doing what I want it to do below but I need the straps to be longer. I was thinking to use a transform constraint but that doesn't seem to be working.

Related Discussions
...
  • Изменено

Maybe like this, transform constraint to place a bone 50% between the leg IK target and the origin of the upper leg bone, then put IK on a single bone at the knee to point at that:

I used transform constraint offset so the IK target isn't too close to the knee.

4.3 has more sophisticated transform constraints, though they are only days old.

  • height13 ответили на это сообщение.

    Nate So the bone at the knee is just insuring that the strap rotates along that bone and then the bone that's out to the left is the actual transformation constraint which the rotate bone is pointing to right? Would the red bone move according to the leg IK as it's Source bone? It sounds like i need to set up two IKs then. Let me know if I'm misunderstanding. I've never really used IKs and Transforms in a complex way like this before by myself.

    Yep. The red bone is a child of the upper leg bone. It's positioned at the upper leg bone too. The transform constraint moves it halfway to the IK target, to give the strap bone at the knee something to point at. You'd attach the strap to the strap bone at the knee. I'm not sure how to best get the strap to scale though.

    This is the first thing that came to mind and is probably overcomplicated! Monday Erika can give her input, she probably has better ideas.

    Okay I think I kinda got it to work. I had an issue though. I got the first strap to work exactly how I wanted but now the second strap isn't quite working the same. The IK at the back of the first strap kinda has this damping effect so it doesn't move too close to the rotation bone. But when I tried to apply the same "clamp" to restrict the movement on the second back IK, it automatically moves that bone on to the the rotation bone making it move faster and act not as intended. I originally wanted the bottom strap rotation to parent to the lower leg just like how I had the top strap parented to the upper leg but it seems the transform restraint doesn't even move at all. Here are some gifs of what I mean ( in these gifs the bottom knee strap rotation is parented to the lower leg and the back IK bottom strap is parented to the Upper leg):


    Here is what my bone hierarchy and transforms look like. I noticed when I try to change the transforms on the bottom bone it automatically moves the bone in setup instead which makes the animation start in that weird position. Thank you so much for your help so far!

    Here is the bone hierarchy since it didn't want to load on my last post

    The bottom kneepad strap is parented to the lower leg, that's probably why it behaves differently. Try parenting it to the upper leg, or try using a single IK target bone for both straps.

    I can't help but think there should be a simpler way.

    Unfortunately switching the parent bone just made it worse. I tried to adjust the transform constraint because the parent bone change and it just ended up moving the bone in setup mode even though the leg IK wasn't moving at all. I made sure to click the match button before I made any changes too.
    I tried to replicate what I did on the left side to the right knee and it had the same issue of the bones moving/scaling in setup mode when nothing else was moving. I made sure to "match" the bones every time, deleted the constraint and recreated it several times.
    The back of the Knee IK also just moves really fast/ collides with the rotation bone when I attempt to recreate it on the second leg. I'm not even sure what I did to get the first IK bone not to move as much. That IK Mix influence was still at 100%.
    I'm not sure if its just a bug with the new beta but I don't think this happened with the stable ver of Spine. Unfortunately I can't downgrade my file since I already saved in the latest beta yesterday.

    Thank you for replying so fast!

    Be sure to set the mixes to zero before clicking Match. Afterward you can increase the mix again.

    If you post or email your .spine (without images) we could take a look. contact@esotericsoftware.com

    • height13 ответили на это сообщение.

      Nate Alright! I emailed the file to your email! Let me know if there are any problems opening it.

      • Misaki ответили на это сообщение.

        height13 We have received your Spine project. Thank you for submitting it! We are currently verifying the correct behavior of transform constraints within the Spine team, so please wait a little longer for a detailed response.

        height13 We released Spine 4.3.14-beta today, which includes fixes for transform constraints. I sent out an email with a Spine project that demonstrates a solution to the knee-pad belt problem in your skeleton using the transform constraints available in this latest beta.
        I hope that the Spine project I sent you will help you solve this problem, but if it doesn't work or I missed some necessary requirements, please let me know.

        • height13 ответили на это сообщение.

          Thank you so much for helping with this! What you gave me was pretty much perfect. I just adjusted the rotate offset to get both the strap to come together at the ends.
          Here's what it looks like with the images!

          Just a quick question, I saw that Local was check in both options and Clamp was added. Does the local just make sure it transforms according to the relative position of the bone it's parented to? And I'm assuming that the Clamp is using the values on the right side of the properties to refer to, right? How did you arrive at those values? Or was it just trial and error?

          • Nate ответили на это сообщение.

            I just ran into another issue when I was messing around with the file. It seems like the Knee bone is not working anymore. Before the Spine update I was able to move the knee bone around to deform the leg when switching to font facing and side. Now it seems locked into place. And when I did get to move (I can't quite remember how I did it and I haven't been able to replicate it to show a screenshot), the bones were not following each other like they were supposed to. I followed this tutorial on how to get the knee working before the update.

            World rotation is the direction the bone is pointing in world space (eg as seen on your screen). Given that definition, it can only point 0-360 degrees. When it points toward the right edge of your screen the rotation is 0. Rotate it toward the bottom of your screen at all and it'll flip to eg 359 degrees. This jump between 0 and 359 degrees can cause issues.

            Local rotation doesn't have that issue. Also the rotation you want for this setup is relative to the parent bone, not relative to world space, so it makes sense to use local. In other words, the straps rotate with the parent. In world space the direction it points would not depend on its parent bones.

            Yes, clamp applies to the values set to the target bones (the range on the right side).

            height13 How did you arrive at those values? Or was it just trial and error?

            Nooooo, don't attempt trial and error for transform constraint ranges, it will just be confusing.

            The source bone local rotation when pointing straight down is 0. When it is fully bent, it is -180. So, your source range is 0 to -180.

            The target bone local rotation when the source bone is at the 0 end of its range is -90. When the source bone is at the other end of its range, you want the target to point up, which is -180.

            You can see these values by setting the constraint mix to 0 and rotating the bone through the range you care about and choosing Local axes. Think about the range for the source and target and set the appropriate values. Don't guess or just enter values randomly, it's unlikely to give you the results you want.

            • height13 ответили на это сообщение.

              Nate Thank you for the explanation! This should help me a lot when I work with transform constraints in the future!

              • Nate оценил это.

              Misaki I just ran into another issue when I was messing around with the file. It seems like the Knee bone is not working anymore. Before the Spine update I was able to move the knee bone around to deform the leg when switching to font facing and side. Now it seems locked into place. And when I did get to move (I can't quite remember how I did it and I haven't been able to replicate it to show a screenshot), the bones were not following each other like they were supposed to. I followed this tutorial on how to get the knee working before the update.

              • Misaki ответили на это сообщение.

                height13 In order to accurately understand the current status of your rig, could you email us the Spine project so that we can review the problem?: contact@esotericsoftware.com
                Since your skeleton is a bit complicated, it would be easier for us to understand which parts to look at if you could send us a project with the parts unrelated to the problem removed.

                • height13 ответили на это сообщение.

                  Misaki Sure! I will email you the file with just the left leg.

                  • Misaki ответили на это сообщение.
                  • Misaki оценил это.

                    height13 Thanks for sending the file! I watched the video you referenced while looking at the Spine project, and in that video the translate X/Y mix values were lowered a bit to manually translate the bone from about 6:21 to about 7:00, so I thought the problem of not being able to move the knee bone at all could be solved by simply changing the mix value:

                    However, it seems that the current setup has a problem where the belt does not follow when the knee bone is moved, so it seems that this needs to be solved by changing the bone that the mesh is bound to. However, from here on, I thought the answer would change depending on the rig you were looking for, so please try to fix it yourself and let us know again if you have any problems.

                    • height13 ответили на это сообщение.