Camera "Focus Object" Shows Distance

Hey guys, I hope this is the best place to make a suggestion, and I do believe as a filmmaker this is an essential feature Blender should implement ASAP. Please note as a Cinema 4D convert, this basic functionality in C4D is something I never realized I would miss so much…

In the current version of Blender (2.91), in the Depth of Field menu for the camera, you can set a Focus Object, but you cannot determine the actual distance that camera is using for said object. The “Distance” field does not update to reflect the object, it stays on the value originally set for the camera, now disabled.

It would be extremely useful to see how far the camera is focusing to reach an object, because then the Focus Object can be disabled and the camera focus set manually to that distance. This would be useful if you wanted to animate the camera but not the focus object.

It would also be helpful because you might want to ‘auto focus’ the camera to the object, but then rack focus in front of or behind that object. You can achieve this with an empty, but again, if you want to animate the camera you would also have to animate the empty to move along with it, or your focus will stay on the empty.

Does anyone else feel as strongly about this as I do?

4 Likes

I don’t feel strongly about this, but there are things that you can do to emulate what you want, that require only a few clicks. If you create a driver for the DoF distance, you can easily set it up to be equal to the distance between the camera and some focus-marker. It will show you the number, and otherwise act the same.

If you want to create an offset to the focus distance, you can do that by using a scripted expression and adding or subtracting a small quantity from the distance in the driver. This can be from a custom property, or it could be from the transforms of some other empty, which could follow anything at all that you wanted. (Another way to do this is to point an empty at the camera, with some constraint like a damped track, and then measure the distance to some child of this empty.)

Of course, Blender isn’t really designed to be aware of things that happened in earlier frames, but if you want to change focus distance realistically, you can set up your distance to be run through some kind of physics, to change only at a particular rate. It would be nice if Blender could have some pseudo-physical inertia for things, slow parenting and such, but it’s just not designed with that in mind.

There are also plenty of things that are possible with constraints and parenting relationships to manage your focus point. What’s an ideal setup depends on exactly how you want to animate it.

1 Like

Thanks, these are all interesting concepts and perhaps very viable offerings. In my case, to take the time to learn how to write a script in order to get more precision with the camera focus means less time focusing on the work itself, so not really an option.

My workflow is typically just snap a focus empty on the object in question, then offset the empty manually. It’s very fast and easy, but unfortunately makes animating the camera a real headache as then the focus object has to be moved accordingly.

Showing the distance of the focus object should really be built into the basic camera functionality. What is the best way to try and push this request onto the developer dashboard?

I think you may be making it out to be a bigger deal than it is-- you’re not even really writing a script, you’re doing a simple driver-- possibly the simplest driver it is to make:

If you want to, you can save that as a startup file, and it’ll always be there.

Obviously, you need to learn a few techniques to use Blender to its fullest potential, and it’s nice when that’s unnecessary, but 1) learning those techniques will help you in other ways; 2) I don’t think anybody can reasonably expect Blender to act exactly like all other animation packages, seeing as how there’s more than one of them, and expecting people to understand Blender’s fundamental tools, of which drivers are one, seems like a pretty reasonable ask to me.

Because this is basically a matter of preference, and a relatively simple thing to do, I don’t think you’re going to get developers very excited about it, but you can try; asking here is as likely to get attention as asking anywhere else. Of course, if you want something done, put up some money to hire somebody to do the work, and it’ll get done, but it won’t ever be with any guarantee or even expectation of it making it into the main Blender build-- you’d be running a fork, or you’d be hiring people for maintenance, or you’d just accept that you’ll have to hire somebody again later to make it work again.

1 Like

Fair enough, thanks for the recommendations.

I spend years in C4D and I very much appreciate and celebrate the differences in Blender, which is why I made the switch, but I do also believe that some things C4D has just got right and wish Blender devs would implement. The best example of this is being able to use an entire collection as a Boole object, which Blender was unable to do until 2.9, but which C4D has done forever. I literally rejoiced out loud when I read this was happening! I feel the same passion for the focus object distance :wink:

As I’m still working on translating my skillset into Blender space I’m fumbling along in some respects, and as such I haven’t gotten into drivers so may not be appreciating the simplicity. I guess I’ll have to go down another rabbit hole. Cheers.

I should have mentioned https://blender.community/c/rightclickselect/ . If you think that you have a proposal that’s more popular than people might think, put it there-- if it gets people excited, you’ll get lots of upvotes, and developers will give your proposal more consideration.

But really, it takes all of fifteen minutes to learn drivers well enough to do what I demonstrated, and less than 30 seconds to set it up.

You might consider making a post on https://blenderartists.org/c/support/animation-and-rigging , detailing your workflow and explaining where it’s tedious or difficult for you-- you might get some good responses on how changes to your workflow would save you time or improve your output.

1 Like