Announcement

Collapse
No announcement yet.

자동차 탑승 전 후 시점 변화 문제

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    K11이 탑승 전인가요?

    여튼 3인칭을 구현하실때 SetBehindView(true);를 이용한거 같은데

    만약 그렇다면
    차량에서 내릴때 호출되는 함수에서 SetBehindView(false);가 호출되서 바뀌는것 같네요.


    어느 부분에서 SetBehindView가 호출되는지는 정확히 모르겠습니다만
    차량 탑승, 하차시 실행되는 모든 함수들을 검사해볼 필요가 있을것 같습니다;;
    UT차량의 베이스 클래스부터요.

    Leave a comment:


  • replied
    네이버 카페에 올리신 것 같은데

    다른 사람은 볼 수 없습니다.


    Ut는 사용해 본 적이 없기 때문에

    그 코드들은 직접 분석하십시오.

    Leave a comment:


  • replied



    이거입니다 ^^;;

    donggas90님 말씀대로 UTPawn.CalcCamera()를 씁니다.

    // 플레이어 폰에 붙어있는 카메라 위치 계산
    simulated function bool CalcCamera( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV )
    {
    // 첫번째부터 카메라 시작위치,

    local vector CamStart, HitLocation, HitNormal, CamDirX, CamDirY, CamDirZ, CurrentCamOffset;
    local float DesiredCameraZOffset;

    CamStart = Location;
    // CamOffset.X = 25;
    // CamOffset.Y = 0;
    // CamOffset.Z = 0;
    CurrentCamOffset = CamOffset;

    // 카메라 높이 설정
    DesiredCameraZOffset = (Health > 0) ? 1.3 * GetCollisionHeight() + Mesh.Translation.Z : 0.f;
    CameraZOffset = (fDeltaTime < 0.2) ? DesiredCameraZOffset * 5 * fDeltaTime + (1 - 5*fDeltaTime) * CameraZOffset : DesiredCameraZOffset;

    if ( Health <= 0 )
    {
    CurrentCamOffset = vect(0,0,0);
    CurrentCamOffset.X = GetCollisionRadius();
    }

    CamStart.Z += CameraZOffset;
    //매개변수로 받은 out_CamRot에서 x,y,z축 각각으로의 방향을 뽑아내어 각 변수에 전달
    GetAxes(out_CamRot, CamDirX, CamDirY, CamDirZ);
    CamDirX *= CurrentCameraScale;

    if ( (Health <= 0) || bFeigningDeath )
    {
    // 월드에 찝히지 않게 카메라 위치 조절
    // @todo fixmesteve. FindSpot이 실패하면 (거의 안그러지만) 계속 찝히게 될 수 있습니다.
    FindSpot(GetCollisionExtent(),CamStart);
    }
    if (CurrentCameraScale < CameraScale)
    {
    CurrentCameraScale = FMin(CameraScale, CurrentCameraScale + 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*fDeltaTime);
    }
    else if (CurrentCameraScale > CameraScale)
    {
    CurrentCameraScale = FMax(CameraScale, CurrentCameraScale - 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*fDeltaTime);
    }

    if (CamDirX.Z > GetCollisionHeight())
    {
    CamDirX *= square(cos(out_CamRot.Pitch * 0.0000958738)); // 0.0000958738 = 2*PI/65536
    }

    out_CamLoc = CamStart - CamDirX*CurrentCamOffset.X + CurrentCamOffset.Y*CamDirY + CurrentCamOffset.Z*CamDirZ;

    if (Trace(HitLocation, HitNormal, out_CamLoc, CamStart, false, vect(12,12,12)) != None)
    {
    out_CamLoc = HitLocation;
    }



    return true;
    }

    여기가 문제인거란 말씀인가요???

    Leave a comment:


  • replied
    이미지가 안나옵니다.


    카메라 관련 정보는 다음 문서를 참고하십시오.

    카메라 태크니컬 가이드


    카메라 시점은

    Pawn.CalcCamera() 또는 Camera.UpdateViewTarget()에서

    연산할 수 있습니다.

    하지만

    UT 패키지에는 이미 수많은 함수성이 추가되어 있습니다.

    그렇기 때문에 사소한 문제(오류라기 보다는 의도하지 않은 상황)라도,

    수정을 가하기 위해서는

    그와 관련된 코드를 찾기 위해

    관련 없는 많은 분량의 코드들을 분석하는 수고를 겪어야 합니다.


    일단, UT 패키지에 따로 Camera클래스가 없고 UTPawn.CalcCamera()가 참을 리턴하는 것으로 보아

    UTPawn.CalcCamera()가 카메라 시점과 연관된 함수라는 것 정도는 비교적 쉽게 알 수 있습니다.

    Leave a comment:


  • started a topic 자동차 탑승 전 후 시점 변화 문제

    자동차 탑승 전 후 시점 변화 문제





    위 사진과 같이 자동차를 탑승 전 후 시점이 바뀌는데요..
    탑승 후 시점을 바뀌는 것을 어디서 뭘 어떻게 고쳐야 하는지....모르겠네요...T_T
Working...
X