Blender 2.5 Dolly Zoom Plugin?


I would be quite interested in a Dolly Zoom plugin for Blender 2.5. There have been some attempts in the past which seem to do the trick in Blender 2.4x. (Here is a very detailed related explanation about real world and Blender cameras but to be honest this goes beyond my understanding)

I have been using Blender for a while on and off, but I’m far from being an expert, Python is new to me, and Math isn’t my strength either. I started using Python (just yesterday) and it seems relatively straightforward. I would like to try to write a custom property for the camera in which the user can define a target object for a dolly zoom so that the field of view (fov) can be calculated automatically from the distance to the target and the width. Here is the “Dolly Zoom Math”:

So a dolly zoom custom property could have these GUI fields:

  • Target (to select the target object which calculates the distance to the camera)
  • Field of view (this would be the field of view on a certain frame)
  • Width (although I guess the width could be read or calculated from the resolution?)

I’m not even sure if that’s all I need yet. That’s why I’m asking the more experienced Blender users here. To my understanding I would need to define a specific distance and field of view at a certain frame. When I then move the camera the field of view would be recalculated based on the original relation to the distance (or the distance could be recalculated based on a changed field of view). I’m still uncertain if I miss something. How would you define this original relation between distance and field of view? Or would I need another field to enter a value that expresses this relation?

For my purpose I would like to make a dolly shot possible even if the camera does not move in a straight line to and from the target object. Imagine a camera with a TrackTo constraint to a target object. The camera moves on an elliptic path around the target, so that the distance is variable. Depending on this distance the field of view should be recalculated to create a dolly shot effect. I hope this explanation makes sense.

As you can see I’m really new to all of this, but it’s a good challenge. I can’t even promise that I can actually do this, but I would like to try.