UE4 Chapter 13. 버그 수정 : 공격시엔 180도로 회전시키기

Date:     Updated:

카테고리:

태그:

인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀
언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html

🚖 정확히 180도 회전하게 만들기

플레이어 캐릭터가 A, D 키에 의하여 방향을 바꾸는데 횡스크롤 게임이므로 180도로 확 돌려야 한다. 근데 A, D 키를 조금만 누르면 90도쯤 밖에 회전이 안되서 앞 뒤 방향으로도 갈 수 있는 버그가 있다. 우선 회전 속도 값을 크게 올려주었다. 조금조금씩 회전 되는 일이 없게 (Character Movement Rotation Rate 회전 속도)

image

  • Z 축으로 회전해야 한다. (언리얼은 수직 축이 Z 축)
    • 마지막에 A 키를 눌렀었으면 Z 축 회전 값을 -90 으로 만들어야 하고
      • Left Right 입력 축이 음수로 들어왔다면 A
    • 마지막에 D 키를 눌렀었으면 Z 축 회전 값을 90 으로 만들어야 한다.
      • Left Right 입력 축이 양수로 들어왔다면 D
    • 즉, 어떤 키를 마지막으로 눌렀는지 저장해 둘 필요가 있음.
  • 공격이나 콤보 공격 등을 할 때 Z 축 회전 값을 마지막으로 눌렀던 키에 따라 -90, 90으로 만든 후에 공격 하도록 한다.


🚩 플레이어 블루프린트

Boolean 타입의 IsPressRightKey 변수 만들기.

image

  • Update Move Key 함수 만들기
    • float 타입으로 Axis Value 를 입력 받는다. (Left Right 입력 축 이벤트에서 호출할 것이라서 음수면 A키, 양수면 D키다)
    • 파라미터 값이 음수이면 👉 A키 👉 IsPressRightKey 변수를 False 로 만들기
    • 파라미터 값이 양수이면 👉 D키 👉 IsPressRightKey 변수를 True 로 만들기

image

Left Right 키보드 입력 발생시 Axis Value 를 파라미터로 받는 Update Move Key 함수를 호출 및 실행한다. 이 함수의 실행이 끝나면 IsPressRightKey 변수 값이 정해진다. 즉 가장 마지막에 누른 키가 A, D 중 어떤 것이였는지 알 수 있다.


image

  • Update Rot By Move Key 함수 만들기
    • IsPressRightKey 가 True 이면, 즉 마지막 입력 키가 D 였다면 Z 축 회전값 90
    • IsPressRightKey 가 False 이면, 즉 마지막 입력 키가 A 였다면 Z 축 회전값 -90

image

공격시, 구르기시 덜 회전 되있었다면 제대로 회전하도록 Update Rot By Move Key 함수 실행시켜 Z 축 회전값 90 or -90 도로 회전

image

콤보 공격시 덜 회전 되있었다면 제대로 회전하도록 Update Rot By Move Key 함수 실행시켜 Z 축 회전값 90 or -90 도로 회전



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UE4 Lesson 1 카테고리 내 다른 글 보러가기

댓글 남기기