2
$\begingroup$

This is probably a dumb question, but I can't see what I'm doing wrong.

I want to animate a material (actually the y offset of a procedural texture) according to the value of a shape key that's applied to a different object.

The object with the shape key is shown here:

Shape key properties for object that's animated

The object is "LATTICE_HP_bladder_for_pistoned". This is a lattice modifier for a geometric object. The shape key's value changes as expected when I scrub through my timeline.

When I copy the data path of the shape key's value, I get

key_blocks["Pistoned"].value

So I apply this to the driver I've added to the texture's y offset as follows:

Driver properties

However, nothing happens when I scrub the timeline. The "Value" field never changes from 0.000, even though the shape key is certainly animating correctly in my scene.

What am I doing wrong? Thanks!

$\endgroup$
2
  • 1
    $\begingroup$ Can you specify Cycles Render and Blender Render? Can you place tags? Even if the reader should be able to determine such information from clues. $\endgroup$ Apr 19, 2017 at 23:23
  • $\begingroup$ I think you will find this a limitation on blenders dependency graph. You can find a few different approaches here that may help. $\endgroup$
    – sambler
    Apr 20, 2017 at 5:46

1 Answer 1

2
$\begingroup$

Please note material drivers can be different than a Scale driver. Sometimes you will need to take this somewhat inconvenient step of adding a driver to datablocks view of the outliner. Get ready for a surprise.

Your material is not shown above.

Select key from the menu ... note the key on panel below.

enter image description here

Note the note from the tooltip from the Lattice Panel which you have already seen. Keys["Key.002"] in my case. Adjust to your case please. So the toolip is showing two items which must be noted. Two Strings.

enter image description here

Tooltip above for reference.

enter image description here

Panel entries. The two pieces of information from the tooltip are entered above.

In Blender User Preferences verify that scripts are enabled. You may want to seek fuller explanations of that concept here at BSE.

You may want to see this link about materials. Driver Expression

enter image description here

$\endgroup$
8
  • $\begingroup$ Thanks, this is helpful... but it's still not working! The tooltip on the shape key value says bpy.data.shape_keys["Key.001"].key_blocks["Pistoned"].value . I have set the driver's prop type to Key, and the prop value to "Key.001" (from the available list). And I have set the Path to "key_blocks["Pistoned"].value . But the value still remains at 0.000 when I scrub the timeline. $\endgroup$ Apr 19, 2017 at 17:39
  • $\begingroup$ It works in my case and I have no magical powers. it will benefit you to be optimistic. Update dependencies button is available. Please Try. I suggest you delete your panel and start again. Clean Slate. These operation take less than 3 minutes. $\endgroup$ Apr 19, 2017 at 17:46
  • $\begingroup$ Deleting and recreating the driver did not help. Using the Update Dependencies button did not help. But I noticed that if I move the play head and save the project, then the next time I start Blender and load the project the Value of the driver will be the value of my key at that frame. However, it doesn't change when I scrub the timeline. So it's reading it, but it's not dynamic... $\endgroup$ Apr 19, 2017 at 17:54
  • $\begingroup$ See edit. My time is expiring for a few hours here. $\endgroup$ Apr 19, 2017 at 17:59
  • 1
    $\begingroup$ Python scripts are already enabled for auto-run. I have other drivers in my scene which are working OK. So I still have the problem with this driver. $\endgroup$ Apr 19, 2017 at 18:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .