135 Degree Panel Transform
You will also have to reposition the origin of the entity, if the panel rotates on its edge like I assume.
While I am on the subject, I currently have some panels that move when a button is pressed, but when I see it closed from the other side, I can see the arms. Is there a prettier way of doing it? Two sets of movable panels?
Ive got panels that rotate all the way around, using parent attachment points, but I kind of wanted this thing to start out looking like its a wall, and then to swing around the outside of the room and point down towards the floor of the next room.
Cant seem to find an arm that does that, so I guess if thats not possible then my next step would be to use two different arms, one to open up the wall and another just to move a panel to look at the ground?
That and I can only get it to horizontally, I cant get it to rotate vertically, plus it looks strange.
Is there really no way to get an arm to move a panel back and then 135 degrees?
I don't think the arm models themselves can accomplish such a task gracefully; i don't know how to make this pretty, so you're on your own there :/
Your mechanical problems have solutions though!
- Check the 'X axis' flag on the func_rot_button. This lets you rotate it vertically, if the orientation is right. You can also use the 'Y axis' flag if necessary.
- To get the func_rot_button to press/unpress with your player button, keep the reset timer at -1 for 'stay forever', then use the player button to invoke 'PressIn' and 'PressOut' outputs accordingly. This will override the timer.
-
If you want to move the panel back straight, and then 135 degrees, this is definitely impossible to do with panel-arm models. Prettiness aside, however, you can accomplish this using a staggered set of triggers:
-- Create a nodraw func_button on the side that moves 'back' in the direction and distance you want. Create another nodraw func_rot_button for the rotation.
-- Set up the triggers so that, on player pressing the button, you parent the panels to the func_button, then activate the func_button. When they are moved fully back, parent the panels to the func_rot_button and then activate that. I recommend making sure that the player can't reverse the procedure mid-step, or you will have to refine the !%$@ out of the trigger orders, and that is not fun. -
I think you can also use func_tracktrain to get this done, but I don't have experience with that, so its up to you to research.