사전 캠프 15일차

Kyu_·2025년 11월 21일

Unreal 사전캠프

목록 보기
14/17

언리얼

미니 프로젝트: 나만의 인터랙티브 공간 만들기

1. 주제 소개

  • 미로 맵을 만들 생각을 했다.
  • 레버나 버튼같은 오브젝트와 상호작용을 통해 문이 밀리고, 열리는 등 다양한 상호작용을 적용해보자
  • 복습할 겸 처음부터 차례로 구현해보자

설계

  1. directionlight설정
  2. directionlight를 쓰기위해 대기 설정
  3. startcontent에 있는 floor로 바닥 설정을 함 scale은 x 50 y 50 z 1
  4. myasset폴더를 만들고 그 안에 blueprint폴더와 environment 폴더, input폴더를 만듬
  5. input폴더안에 조작에 관련된 향상된 인풋들 move, look, jump, mapping context들을 만들어서 키를 매핑함
  6. blueprint폴더안에 bp_Character 블루 프린트 클래스를 만듬 매핑한 조작들을 블루프린트에 적용시킴
  7. myasset폴더에 animation 폴더를 만듬 그 안에 abp_chracter를 만들고 이동에 따른 애니메이션을 bp_character에 적용시킴
  8. 이제 환경을 만듬 fab에서 미로 관련된 벽이나 문 같은 에셋들을 받아와서 위치는 environment에 넣음
    실제로 뷰포트에 환경을 세팅하고 미로를 만듬
  9. 레버나 버튼같은거를 눌렀을때 문이 열리는 등 상호작용을 맵에 적용

구현 과정

  • 조명과 바닥을 만듬
  • 캐릭터를 설정하고 키를 매핑해줌
  • 캐릭터에 애니메이션 부여

기억할 점

캐릭터 움직임

  • get player controller -> enhanced input player sub system -> add mapping context (만들어놓은 mapping context연결하기, beginplay에서 exec연결해서 시작하자마자 매핑되게끔)
  • add movement input
    • 특정 방향으로 이동 명령을 넣어주는 함수
    • World Direction : forward vector를 이동방향으로 세팅한다.
  • action value x
    • 일반적으로 키 입력의 앞/뒤(Axis 1/-1)가 들어감
  • get control rotation(target is pawn)
    • 현재 컨트롤러(플레이어가 조작중인 캐릭터)의 시점 회전값(플레이어가 바라보는 방향)을 구함
  • get forward vector
    • get control rotation에서 포워드축을 뽑아냄
    • fps라면 플레이어가 보는 방향, 3인칭이라면 몸이 향하는 방향
  • get right vector
    • get control rotation에서 forward vector의 수직축을 뽑아냄
  • add Controller Yaw input
    • 마우스 좌우 움직임이나 패드의 우측 스틱 X값을 받아서 Yaw에 변화량을 직접 추가
    • 플레이어의 좌우(Horizontal)시야 회전
  • add Controller Pitch input
    • 마우스 위/아래 움직임, 패드 우측 스틱 Y값을 받아 Pitch에 변화량 추가, 플레이어의 상하(Vertical)시야 각도

애니메이션

  • state machine에서 state alias사용할때 꼭 사용하는 state 체크하기

오류

Land 애니메이션 오류

  • Land 애니메이션 작동시 캐릭터가 사라졌다가 다시 나타남

  • 첫번째 시도

    • 기본 스테틱 메시 및 애니메이션으로 변경
    • 같은 증상
  • 두번째 시도

    • Land 애니메이션의 Additive Anim Type을 변경
    • No Additive로 변경하니 정상적으로 Land 발생

0개의 댓글