2. Setting Up Soft Non-Stretchy IK

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 ก.ย. 2024
  • In the second video we'll get started on creating all the necessary Joints, Locator, etc. and discuss how to create non-stretchy soft IK with with Utility Nodes in the Node Editor.
  • บันเทิง

ความคิดเห็น • 22

  • @habitable4116
    @habitable4116 7 ปีที่แล้ว

    Thanks for the tutorial! I've been trying to figure out how to make this setup work for legs that don't fall perfectly on the x-axis (like in a preexisting rig or a scripted one).

    • @Hazmondo
      @Hazmondo  7 ปีที่แล้ว

      That shouldn't matter. I made the joints have lengths of 3 and 4 and placed the IK in the x-axis just so it was easier to follow along.
      What's important for the soft (stretchy) IK is "wristLoc", this locator receives the output of the node network into it's LOCAL translate X, but "upperArmLoc", the parent, can be in any position with an aim constraint to the control curve - in fact you could aim in any axis but you'd also need to change the attribute of "wristLoc" so it matched too, it doesn't change the output so I would recommend not changing it.
      You're correct that legs are a bit harder to setup, the reason is because you probably don't want the control curve to drive the soft IK calculation when you use a reverse IK foot system: you want to position the locator at the ankle but parent (constrain) it to the last reverse joint :). Here's some more information: www.rigging101.com/free/reversefootlock/index.htm

    • @ptf42069
      @ptf42069 7 ปีที่แล้ว

      the concept of reverse foot rool is just using some hierarchy to drive the ik, that ik will be driven based on some particular node (heel, toe, ball, angkle). just like what He said, parent the angkle_loc to the angkle will solve that.
      anyway, I found a little bit weirdness about this setup, when I switched the stretch value from 0-1 slowly, the total of the joint length increased slower. that means, it lost the softness behavior. i do not know whether i did not set it up correctly.

  • @ליאורגולן-ה5ב
    @ליאורגולן-ה5ב 6 ปีที่แล้ว

    hey !
    first great tutorial and thanks
    second i made this into a script the thing is when the bone length is seven its all work perfect
    but when the lengt not 7 things dont work so good
    why is that iput the length in right places
    thanks

    • @richstubbsanimation
      @richstubbsanimation 5 ปีที่แล้ว

      Hi, sounds like you just need to query the bone length and have that new variable in your script. A couple of distance nodes would do the trick and query the values which would give you your bone length attribute when the bone length doesn't total 7

  • @andreasgeorgiou1901
    @andreasgeorgiou1901 4 ปีที่แล้ว

    Okay I think I am going wrong where you connect the first multiply divide nodes outputX to the Second multiply divide nodes input 2. Maya 2019 won't allow that for some reason it either has to be outputX to Input2X or Output to Input2 so which should we use? (interesting how Maya didn't have an issue with it in the video)

    • @Hazmondo
      @Hazmondo  4 ปีที่แล้ว

      Did you solve this issue?

  • @andreasgeorgiou1901
    @andreasgeorgiou1901 4 ปีที่แล้ว

    Hey Hazmondo Okay I got it working, but I have a question, in the video at 22.50 you attach the outputX value from one multiply divide node into the Input2 of the other with Input 1 set to -1. Maya can't attach OuputX to input2 alone it has to be input2X this leaves input2Y and Input2Z as 1 is this correct? I am using Maya 2019 and it wont let attach One value to all XYZ of input2 of Multiply divide 2 what should the Y and Z be of Input 2? of the second mult div node? thanks

    • @Hazmondo
      @Hazmondo  4 ปีที่แล้ว

      Haha, that was a mistake and I'm not sure why I was allowed to connect those attributes together, outputX should go to input2X, the other attributes should be 0. The reason we create and aim constraint aiming in X is so that we can guarantee the local space translation of the wristLoc will only have values in X

    • @andreasgeorgiou1901
      @andreasgeorgiou1901 4 ปีที่แล้ว

      @@Hazmondo Thanks man, yeah I was wondering why Maya was being so nice to you in the video lol

  • @andreasgeorgiou1901
    @andreasgeorgiou1901 4 ปีที่แล้ว

    What I have found if you are scripting this it hinges on your scene scale all your overall max arm extension changes when its in cm or meter scale, so what I did was to divide the final output of the plus minus average node by 100 to get meter scale values but if your in cm scale this is not needed

    • @Hazmondo
      @Hazmondo  4 ปีที่แล้ว +1

      Why not divide the chainLen by 100 if you're using meters? Then you don't need to create an extra node

    • @andreasgeorgiou1901
      @andreasgeorgiou1901 4 ปีที่แล้ว

      @@Hazmondo Still having issues as the Wrist locator shifts from its start position for some reason need to go over the tutorial again but thanks for the tip

  • @morin6661
    @morin6661 4 ปีที่แล้ว

    Hi, thanks for the tutorial first of all :). I am able to create the node network but when i connect the output of final condition node to translatex of locator, it moves to other location. Can you please help me with this?

    • @morin6661
      @morin6661 4 ปีที่แล้ว

      I also froze the transformation of the locators.

    • @Hazmondo
      @Hazmondo  4 ปีที่แล้ว

      @@morin6661 Hi, I don't think I freeze the transformations of the locators, that might be causing the error. Make sure that the locator is parented to the correct object.

    • @morin6661
      @morin6661 4 ปีที่แล้ว

      @@Hazmondo I recreated the locators and created the hierarchy. When I connect the final output, it moves to opposite side of the axis. For example, output is x =70 and it moves to x = -70. I multiplied it by -1. Now it moves as it should.

    • @morin6661
      @morin6661 4 ปีที่แล้ว

      I know why that happened. My setup is on -ve side of axis that's why i have to multiply the output with -ve value.

    • @Hazmondo
      @Hazmondo  4 ปีที่แล้ว +1

      @@morin6661 I thought that could have been the issue. Now you know how to create this setup for ik with mirrored joint orientation :)

  • @andreasgeorgiou1901
    @andreasgeorgiou1901 4 ปีที่แล้ว

    Hey man, Ive followed along to setup my characters arm using soft IK but I am getting an error: basicExpression has encountered a divide by zero. Result is unpredictable. This is on the first multiply divide Node you create any help would be great thanks

    • @Hazmondo
      @Hazmondo  4 ปีที่แล้ว

      Correct, in recent versions of Maya you get the "divide by zero" warning, instead of dividing by softP you can multiply by softP ^ -1 which gives you the same result but no warning :)

  • @anupambanerjee9690
    @anupambanerjee9690 4 ปีที่แล้ว

    Hey give me raw file link