Rigging: Copying a valid driver path into a variable of another driver property (DOESN'T WORK? BLENDER ERROR?)

Question Animation

Hi. So I am currently following a course of Rigging Fundamentals by Wayne but I am completely stuck on the drivers part. I looked more into videos with copying driver paths into the properties and I've done exactly what the videos show all over YouTube - I just don't know why I am encountering this error. I am trying to do a driver property switch. 

I added a driver on a constraint which it points to a single property. I delete this driver. I re-add it again. Now it does not work. It only works sometimes but other times it does not work. It is as if it is just luck or chance. It is really frustrating me right now because I am starting to believe that this is Blender's problem and that they are just so many bugs that they do not care to patch up. I am really REALLY hoping that I am wrong and that I am just simply missing something but I have tried every trial and error to simply have this paste - yet the path is still read as invalid and the constraint is not reading this driver input!

The driver path is: pose.bones["Bone"]["prop"]

It is literally the same path. There is no reason why it should result in an error.

I attached a dropbox link containing 2 blender files where the driver works and the other file shows that it doesn't. I also attached a video in dropbox so you guys can see exactly what I mean.

WORKING_Driver: https://www.dropbox.com/scl/fi/pqa5cgqwv6gwozisvuz75/WORKING_-Driver.blend?rlkey=vvc8tfh7annoy9i3i8cr8ayzo&st=kzapxswn&dl=0

NOT WORKING_Driver: https://www.dropbox.com/scl/fi/daec8t855y5ndfi65uajb/NOT-WORKING_-Driver.blend?rlkey=gme6j9kvgxezzbzfb5l8u5514&st=zqhad1db&dl=0

VIDEO OF WHAT I DID THAT APPARENTLY CAUSED THE ISSUE:  https://www.dropbox.com/scl/fi/1ldumlzkud3cucs26lsqw/bandicam-2024-06-12-16-13-45-871.mp4?rlkey=9azm9xnlbx12nfyfdci2k9cva&st=uqrnos25&dl=0

In the video, all I did was delete the driver and re-add the driver with the same setup.

I was following along this tutorial, just so you know how my setup is:

https://www.youtube.com/watch?v=FsOHU-oJ0Z4&list=PLbjn7kaP877u1sX4zl081V8jUeSHDY18G&index=5


(If anyone can tag Wayne in this, that'd be appreciated. I don't know how to tag)


Much appreciated, all.

1 love
Reply
  • coyo (coyohti) replied

    Heya! I was able to get your "not working" file to work. I suspect the issue is related to how and where Blender stores certain data, like paths, but honestly, that is beyond me. I just know that sometimes you have to delete things in a certain way or else it seems that data can hang around and muck up other stuff.

    What I did was go to the constraint and delete the driver from the purple bar, turning it back to blue. Then I proceeded to recreate the driver from there as shown in the video. The key seems to be ensuring the driver is completely cleared from the constraint (blue bar).

    Here's the new working file. It's a 4.1 file so also be aware that under Edit Property the Type needs to be set to Integer instead of Float for it to act like a switch. In the video (2.8) he does this by setting the appropriate values to integers instead of floats but in 4.1 it's more explicit.

    https://drive.google.com/file/d/14nRxBGrr9aF0I2tdNOwA0QTKlPkEGDQD/view?usp=drive_link

    Hope this helps!

    1 love
  • Dwayne Savage(dillenbata3) replied
    Solution

    The problem is the Property ID type. You need object and you have Armature. The full path is bpy.data.objects["Armature"].pose.bones["Bone"]["prop"] as you can see it's bpy.data.objects not bpy.data.armatures. In the driver editor click the dropdown(Surrounded by yellow box in image) and select objects. Then select Armature in the object dropdown next to the icon and paste your path. 

     4-06-12 19-51-17.png

    1 love
  • Dwayne Savage(dillenbata3) replied

    Just realized I didn't explain how I got the full path. Just set 1 editor to text editor. Then on your property(the custom property you setup in this case) right click and copy full path. The. With mouse cursor in text editor either right click and paste or press Ctrl+v. 90% of the time you'll get bpy.data.{Data ID type} then if there are multiple then you will see [] with the name in quotes or an index number. Then a dot followed by the property path. Hope that helps you to understand what's going on. For example if you had put the custom property under the armature tab instead of on the first bone("Bone") then you would need the Armatures Data ID instead of Objects.

    1 love
  • Kimberly T.(AnimationStudent) replied

    Hi. Thank you Coyo. I first had to set the property ID type to the right one and then re-add the driver to forcefully update the dependencies. Thank you for that insight. This helped

    2 loves
  • Kimberly T.(AnimationStudent) replied

    Hi Dwayne, thanks for your help. I set it to Object and at first it didn't work but I realised that I changed the name of "prop" on my other project and so I had to re-copy the driver path to the input. But yes, I've had the property ID type set wrong. Thank you for your help

    2 loves