Well, you could do it a couple of different ways...
The main one would be to calculate the y position of the characters eyes ( ie, the head ) then position camera at the character's x and z positions along with the y position you calculated... But, you have to hide the object so that you can see out of it
Then, for the 3rd person view, simply use something like;
camxpos# = NewXValue(Object Position X(obj),WrapValue(Object Angle Y(obj) + 180),200)
camypos# = Object Position Y(obj) + 200
camzpos# = NewZValue(Object Position Z(obj),WrapValue(Object Angle Y(obj) + 180),200)
Position Camera camxpos#,camypos#,camzpos#
Point Camera Object Position X(obj),Object Position Y(obj) + 50,Object Position Z(obj)
Then, to switch between the views, just do a check for a differnt key, ie, If InKey$() = "3" Then do 3rd person, If InKey$() = "1" Then do 1st person...
Hope I Helped...
Jess.

Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy