I've been playing around with calccamera which seems rather simple way to get different camera results. Here's a simple way I got a 2D camera going without using kismet, kismet seemed to lock onto the players movement so if you turned around and went the other way the camera would stay facing the side (of the player) it was originally focused on and end up facing the wrong direction (if that makes sense) this code actually gave me the results I've been looking for without much effort and always stays looking down the positive X axis no matter what my Pawn does. Once I figure out how to constrain the Pawn to something(hopefully a path so I can have a more dynamic 2d sidescroller) i'll change the code so it isn't hardcoded to this direction but go off the angle the pawn will be on.
I had to change to bBehindView=true to see the player's mesh.
I just put this in my Pawn class which extended UTPawn
simulated function bool CalcCamera( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV )
local vector CameraStart;
//Start at the player's location.
CameraStart = Location;
//Set the Z Offset (how high or low the camera is.
CameraZOffset = GetPawnViewLocation().Z;
//Set the Camera Z Offset
CameraStart.Z += CameraZOffset;
//Since we want to look down the Positive X axis lets move
//away from our player down the negitive X axis
CameraStart.X += -512;
//Set final location
out_CamLoc = CameraStart;
//setting the Yaw to -90 rotated the camera to look down the x axis
out_CamRot.Yaw = -90;
//Setting the Pitch to 90 locked the camera so it doesn't rotate up and down.
out_CamRot.Pitch = 90;
just found SetLocation() and SetRotation() which could essentially be used to constrain the player to a certain path
hope it helps.
local var vector newLocation;
newLocation = Location;
newLocation.X = 0; //Makes sure the player never leaves the x origin.