Continuing the work on the Oinkfrog’s eyes, I quickly created some new controllers with the L for local and W for world. These are now the parents for the locators I has used until now and are not only nicer to select but convey the meaning for their function. A bit of reorganising of parenting and the local one now follows the head around and the world one is pretty independant.
The ability for local vs world control was until now on the left eye look control, so I created new attributes for these new controllers which could both set this value. This was more complex than it seemed though as it (perhaps sensibly) doesnt allow circular attribute referencing. So I have made the master control for the Local/World control on the World controller. The Local controller gives some feedback on its level of control via its attribute as well which helps. Linking in the original attribute means it is all linked in and working like a charm from World.
These are the commands I used, in case they are helpful:
connectAttr Eyes_HANDLE_World.World Eyes_HANDLE_Local.World;
connectAttr Eyes_HANDLE_World.World Look_L.Local_World;
Lastly I setup a simple aim constraint for the two controllers so they stay pointing at his nose which makes them seem much better integrated with the rig and nicer to use.