Driver Control for Material Emit | Problem

Hey everybody. So I’m tossing together a quick rig for a robot figure on a project I’m working on and I ran into a problem with assigning a control bone to affect the emit on the texture for the eyes.

I found the other few posts on this board where the people did not know about the limitation of creating drivers directly from the material panel with the RMB, so I made it through the Datablocks and have the same results: The driver does nothing.

This was supposed to be a quick rig, but I’ve never tried to control emit before. Now I’m obsessed and I’m beginning to waste serious hours on it. All my object drivers work just fine, but not this one.

If anyone wants to check it out, here is the blend.

jamesdiemer.com/cyborgirl_Final_Anim.blend

The offending texture is labeled “Pink.Glow”
The driver is labeled “Emit (Pink.Glow)”
The control bone is the only bone in pose mode that has not been shape replaced.

Oh yeah, I’m using the most recent release of 2.56 (thought there might be a bug in my 2.54 i was running)

Thanks in advance. Love this forum (you guys have saved my life so many times while helping out others, but this is my first time actually posting.

Hi H11,

Firstly kudos on a great little rig’n’robot.

The issue here is simlar to one that was trying to drive the count var of an array modifier.

I got this working by using a custom property instead.

The steps

Delete the driver you had set up.
Add a custom property named “glow” to the Armature object. (This can be then keyframed with armature actions… or driven by the bone location … but i think the property sliders are a ;nice way to drive it)
To make it easy to see if its working later in driver slide it to a value say 0.21

Go to the emit property for the material and add driver

In the driver panel
add a driver variable … (I’d avoid using dot notation in your var names… it’ll blow up scripted expressions)
make it a single property

to Object > Armature … then in the path field use

[“glow”]

With “show debug info” selected … if you see 0.21 then bob’s your aunty in drag…

Now when you change the value of the emit custom property on the armature it drives the eye emit.

Note that the emit slider doesn’t show up purple…but still drives ok.

Hope you can make sense of this and it helps.

EDIT:

Note… in your original file , and when you first set up the driver it has material context… as can be seen in drivers hierarchy and the RNA path in the driver is simply “emit”

Now if you delete that driver … select your head object and then add driver to the emit material property you’ll see the fcurve datapath is

[“Pink.Glow”].material.emit

and the driver belongs to the head object rather than the material.

it then works with your initial bone setup too…

PPS…

Had a play with using this http://blenderartists.org/forum/showthread.php?t=195585&p=1792109&viewfull=1#post1792109 to sync your eyes glowing to an audio track… worked a treat.

Thanks for your reply. Yeah, I know about the nam.ing, it’s an old habit I’ve never shook from the AutoCAD R6 days. I tried setting up as a custom property on the armature, but it’s not reflecting value changes. It’s late, though - so I’ll try again in the morning after I’ve got some sleep.

Most important step is delete the driver with active fcurve = emit

I’m using r35559 so perhaps that’s why yours isn’t working.

I got it! Thanks! I hadn’t realized there was a different RNA path if you select the material from the “Materials” hierarchy in the Datablock instead of the Object’s active materials list. Good to know.

Now comes the fun part, adding a linked Halo particle to coincide with the Emit.

Oops, I said that wrong. In case anyone else reads this for assistance later:

Do not make the driver off the “Active material” datablock of the Object. Make it off the one under “Material Slots” datablock of the Object.