I did a few searches to see if this question has been asked, but I couldn't find anything…
What I want to do is have some billboards floating over the heads of characters in my game (these could contain a name, thought bubbles… whatever). My approach was to create a Node representing the player, and then attach to that a Spatial of some kind that is their body as well as a BillboardNode with a local translation of +y. Then to the BillboardNode, I attach a Quad with a texture on it.
With that done I simply applied some InputControllers to the whole Node to get said character moving around.
Here's my problem: the BillboardNode tracks the camera fine at first, but once I turn the character, the quad will rotate with it (and at twice the speed).
Is there something subtle I'm not doing correctly or is that setup altogether not right?
The other approach would be to render it in the ortho queue, pretty much like how the FPS is shown. You will just need to translate the position from 3d space to 2d screen coordinates
That sounds like it might cause some unwanted problems… certainly this was the way that BillboardNode is supposed to work, right?
It probably should handle that, yes. You could work around that though by using a node above your character for translation and attach the billboard to that. (So billboard and character would be siblings.)
I believe that's actually what I'm doing.
Or are you suggesting that I apply my input handler to the character and manually update the billboard to be over them?
how are you going to deal with distance, when the writing is too small to read - or is that not a concern
haven't really thought about that, but it isn't a concern at the moment
ok, I fixed it by using screen allignment instead of axial
still, a billboardnode really ought not rotate when its parent does, just imo