3
$\begingroup$

Most of the various tips I've seen on constructing billboards (at least, without the use of the old legacy particle system) involves constraining them to the camera. This works fine for a scene with a single camera, but oftentimes, particularly in animations, you'll want multiple, and they can be easily switched using markers. However, to the best of my understanding, this sort of breaks the "constrain to object" method of creating billboards.

Ideally, somehow tracking the object to whatever the active scene camera is would solve this problem. How could this be done? Geometry nodes? Some sort of driver-and-constraint wizardry?

EDIT: Here's a very basic example .blend file.

$\endgroup$
5
  • $\begingroup$ So it doesn't work if you add a child of constraint, or even parenting? I'm not sure, but maybe it's possible to animate parents? Or what you could do is animate the influence of each child of modifier? For example, the influence is 1 on the child of constraint on a camera. Then animate the value to be 0 when the second child of comes, then add another child of and animate the values, and on and on and on. $\endgroup$ Commented Jun 28, 2022 at 16:59
  • $\begingroup$ I'm not currently posting an answer since I may turn out to be wrong, and you would have probably tried this. Have you? $\endgroup$ Commented Jun 28, 2022 at 17:00
  • 2
    $\begingroup$ Yes, this is also possible (at least partially) with Geometry Nodes (in combination with drivers). Do you have a blend file for us to try this on your concrete example? $\endgroup$
    – quellenform
    Commented Jun 28, 2022 at 17:43
  • $\begingroup$ @quellenform added a .blend file. $\endgroup$
    – Legoman
    Commented Jun 29, 2022 at 0:53
  • $\begingroup$ @YousufChaudhry that technically would achieve the same result, but it's an enormous amount of tedium and incredibly impractical, especially if you have a lot of billboards, a lot of cameras, and want to have the freedom to change the timing later on. $\endgroup$
    – Legoman
    Commented Jun 29, 2022 at 0:54

1 Answer 1

4
$\begingroup$

Geometry Nodes could be helpful here.

enter image description here

If you put a driver into a Group Input, and enter the euler rotation of the active camera there, you can transfer this rotation directly to your object.

enter image description here

  1. Create a Group Input of type Vector.
  2. Choose Single Value for the driver, select the current scene, and enter camera.rotation_euler.x as path. Repeat this for the other axes.
  3. In the Geometry Nodes you can then transfer this rotation directly to your instance by first converting the object with the node Geometry to Instance, and then using the node Rotate Instances.

PS, just to be clear: Geometry Nodes are NOT necessary here, because you can also control the rotation of an object directly with the driver or constraints. It was just fun to answer the question with Geometry Nodes as well. But who knows what else you could do here ...?

$\endgroup$
8
  • $\begingroup$ What? Why don't you just drive rotation values instead of using geonodes without reason? $\endgroup$
    – Crantisz
    Commented Jun 29, 2022 at 9:23
  • 1
    $\begingroup$ @Crantisz Simply because here was (also) asked for Geometry Nodes, and that would be the solution with Geometry Nodes ...besides I like Geometry Nodes :D $\endgroup$
    – quellenform
    Commented Jun 29, 2022 at 9:25
  • 1
    $\begingroup$ Also avoid using scripted expressions in drivers. They used python to operate, which should be slower. I know you can't even notice the difference in this case, but then you start using plenty of drivers it does make sense. $\endgroup$
    – Crantisz
    Commented Jun 29, 2022 at 9:33
  • $\begingroup$ @Crantisz Good point! As always, a very useful hint! $\endgroup$
    – quellenform
    Commented Jun 29, 2022 at 9:34
  • $\begingroup$ Works perfectly in the scene the driver was created in--can't figure out how to append, link, or otherwise transfer it into any other scene, though, which really limits its utility...any advice? $\endgroup$
    – Legoman
    Commented Jun 29, 2022 at 13:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .