I'm pretty new to blender so probably i'm going to say wrong terms or function in this question, feel free to ask for a better explanation if necessary.
I have created a material tab that makes the images in the planes show only when the camera is looking at them at a certain angle (like the NPC in the Doom 1993 game).
In this case I set the angle to be 90° degrees so that when the camera turn past that point, the plane in the front became invisible and the one on the side shows up (In this example I used only 2 planes for simplicity, normally there would be 8 planes each one turned by 45° in an octagon like shape).
I use some math with vector and arcosine to do the trick as shown in the example.
There are two colored planes on the side to show better what's happening: when the plane is red it means is showing the guy, when is green it don't.
This is the node used for each plane:
The rotation works fine, the true problem is that the plane is still acting like... well, like a plane.
I wanted to make the guy rotate and follow the camera at the same time (Billboard if I'm correct).
My first thought was to use a simple locked or damped track set on the camera, but unfortunately this is the result:
The plane shows both the guy because they are always facing the camera and so of course the camera is always in the 90° cone.
So here's my idea:
I make two sets of planes, the first one (Planes 1) will be invisible and immobile, while the second set (Planes 2) will have the image to show, the material and the locked track.
My idea was to make Planes 2 show not using his vector (that if I'm correct its use in the material tab) but the vector of Planes 1, so that the camera take in consideration the angle or vector of Planes 1 while Planes 2 will be free to rotate.
Is it possible to make a link like this without using any script? If it isn't possible, can you recommend another solution without any script to make a character rotate and act like a Doom 1993 game NPC?
Again, I'm sorry for any error while typing or incorrect terms since I'm new to blender and this is my first question, I tried to be as clear as possible but, if necessary I'm ready to give you any information that you need to resolve my problem.