change and update Spot Size when camera lens change?
Note : This answer relates to the interpretation of changing camera angle as being to change the actual camera, rather than the properties of the camera - which was not the actual intention of the question. I have left this answer in place since it may be of use to someone searching for related issues and it does describe an apparent issue in the OpenGL render.

After running some tests, it seems that there is a problem in the behaviour but I don't quite get the same results. Most notably, my render preview mode does correctly update and the actual render also appears to work correctly - the only issue I did find is in using OpenGL render where the light cone was not updated.

Here's my setup :



I've created two cameras and added markers to the timeline - one at frame 1 and another at frame 20. These markers are bound to the relevant camera so that the view starts at the first camera and changes to the other on frame 20.

I've set the Pass Index on Camera #1 to 1 and Camera #2 to 2 and the driver on the spot lamp size is set to 'bpy.context.scene.camera.pass_index /2' - since it's in radians this will be 0.5 radians (28.6 degrees) for the first camera and 1.0 radians (57.3 degrees) for the second camera.

If I render the animation I get this up to and including frame 19 :



And this on frame 20 and beyond :



Manually skipping through frames produces similar results in the 3d Editor window, whether in Render Preview mode, Solid or Wireframe :



Where I do get strange results is if I do an OpenGL Render - in which case the lamp size wasn't being updated (note the lamp cone lines not changing their spread) :



However, if I moved the timeline frame to be after frame 19 then the OpenGL animation did work correctly! (note the change in spread of the light cone - only change is the 'current' frame in the timeline at the time the render is triggered) :



So, in summary, there does appear to be a problem - and a problem that is dependent on the start frame in the timeline at the point the OpenGL render is actioned. I don't know if the same issue could potentially occur in 'full render' - perhaps I just didn't hit the same situation. More extensive testing required.

Note that my tests were all performed on Linux using Blender 2.76b.



EDIT I repeated the test using 'full' render and the lamp size in the final render did correctly change - so this looks like the issue is restricted to OpenGL render (at least, in my case). It would be interesting if you could repeat the tests. I'll upload my Blend file so you can test with that if desired.