Im not entirely sure but I think the problem is from the camera attatch script since the camera is now attached at the wrong position near the feet:
{
Camera = ObjectInitializer.CreateDefaultSubobject<UCameraComponent>(this, TEXT(“Camera”));
Camera->AttachParent = GetMesh();
Camera->AttachSocketName = FName(TEXT(“camera_socket”));
Camera->bUsePawnControlRotation = false;
FPostProcessSettings & PPS = Camera->PostProcessSettings;
PPS.bOverride_FilmSaturation = true;
PPS.bOverride_SceneFringeIntensity = true;
PPS.bOverride_VignetteIntensity = true;
//PPS.bOverride_MotionBlurAmount = true;
//PPS.MotionBlurAmount = 0.f;
CameraBoom = ObjectInitializer.CreateDefaultSubobject<USpringArmComponent>(this, TEXT("CameraBoom"));
CameraBoom->AttachParent = GetCapsuleComponent();
//CameraBoom->AttachSocketName = FName(TEXT("root"));
//CameraBoom->bUsePawnControlRotation = true;
CameraBoom->TargetArmLength = 100.f;
CameraBoom->SocketOffset = FVector(0.f, 30.f, 80.f);
CameraTP = ObjectInitializer.CreateDefaultSubobject<UCameraComponent>(this, TEXT("CameraTP"));
CameraTP->AttachParent = CameraBoom;
CameraTP->bUsePawnControlRotation = false;