이번 시간에는 네모친 레벨에서 진행하도록 한다.
폴더를 따로 만들어준 뒤, 블루프린트 클래스에서 캐릭터를 생성해준다
블루 프린트 클래스를 더블 클릭하여 확인하면 캡슐이 존재하고, 컴포넌트로는 캡슐 컴포넌트, 화살표 컴포넌트, 메시, 캐릭터 무브먼트가 존재한다
캐릭터 블루프린트에서 기본적으로 메시가 추가되어 있으므로 메시를 골라 선택해준다
메시를 불러오고 아래와 같이 돌려준다
그 다음에는 카메라와 스프링 암이 필요하기 때문에 추가해준다.
스프링 암 밑에 카메라를 배치해주고 카메라가 아닌 스프링 암을 회전 시켜 위에서 쳐다보게 끔 만들어준다
캐릭터를 움직이기 위해서는 언리얼 엔진의 입력을 받을 수 있어야 한다. 프로젝트 세팅- 입력에서 하는 것보다 향상된 인풋 시스템으로 이를 대체한다. 유저들의 입력을 매핑할 수 있게 입력 액션과 입력 매핑 컨텍스트를 생성해준다.
Look과 Move는 X,Y축을 모두 사용하기 때문에 설정값에서 Axis 2D를 설정해준다.
IMC_NBC_DefaultMappingContext는 아래와 같이 세팅해준다. 입력 액션에서 입력 이벤트를 정의하고, 매핑 컨텍스트에서 키를 액션에 매핑해준다는 개념이다.
OnlineLearingkit 다운받으면서 함께 온 IA_Move 같이 이름이 햇갈릴 수 있는 것들을 주의하고 새로 만든 것에 키를 매핑해준다
⛔여기서 솔직히 스위즐 입력 축 값 이라는게 뭔지 감도 안온다
찾아본 것을 정리해보도록 한다
모디파이어(Modifier):
스위즐 입력 축 값(Swizzle Input Axis):
잠깐 이러니까 회전이 진짜 햇갈리고 있다...
언리얼에서 월드 좌표를 기준으로 축 방향은 다음과 같이 정의된다
X축 (빨간 축): 앞/ 뒤 방향으로 이동
Y축(초록 축): 좌/우 방향
Z축(파란 축): 위/아래 방향
로컬 좌표 VS 월드 좌표
다음 플레이어의 이벤트 그래프에 들어가서 다음과 같이 작업해준다
enhanced 저것은 엔진에게 이걸 사용하겠다~!라고 말하는 것이다.
저 위의 코드들로 움직이는 건 아니고 0번 플레이어에게 저 mapping context를 사용하겠다~라고 말하는 것이다
move 관련해서 이제 블루프린트를 짜볼건데, 액터의 앞 벡터를 world direction에 연결해주고 x값은 scale value에 연결해준다.
여기서 a와 d에 스위즐 입력 축 값을 넣어서 Y방향으로 넣어준 것이다.
x방향으로 월드를 기준으로 캐릭터가 보고있는 방향으로 가겠다?는 의미다
앞뒤로 움직이기 성공!!
월드 스페이스 기준으로 y축 즉 오른쪽으로 보내주기 위해 add actor right vector 만들어서 연결해준다
아.. 진짜 암기의 영역이다
x는 yaw에 연결,, y는 pitch에 연결...
이렇게 피치 사용에 체크해주면 플레이어가 술먹은듯 갸우뚱하며 움직이는데 이는 캐릭터 전체에 적용되어 이렇다고 할 수 있다. -> 이 마우스만 움직이고 싶기 때매문에 두개 체크를 다 꺼주고 캐릭터 무브먼트에서 rotation으로 검색하여 무브먼트 방향으로 회전 조정을 눌러준다
스프링암에 폰 회전 제어를 클릭한다. 근데 오른쪽 버튼이나 왼쪽 버튼 누르면 애가 빙글빙글 돈다
위에 잔건 월드 스페이스 기준이다. 플레이어가 바라보는 방향이라는 다른 말이다. 월드를 기준으로 오른쪽으로 움직이는 것이고, 월드를 기준으로 왼쪽으로 움직이는 것이다. 우리가 해야할것은 컨트롤러를 기준으로 움직여야 한다.
아까 스프링 암에 폰 회전 제어를 체크해줬는데 카메라가 지금 컨트롤러 인것이다.
폰 기준에서 yaw 를 받아서 앞으로 가는 것은 수정함
옆으로 가는 것도 같은 방식으로 제어한다
질문: 앞으로 가는데 z를 쓰는 이유?
회전을 방향으로 바꿔주는 중이다. 회전이 z이고 기둥이 z 축이니 둥글둥글하게 회전을 함
이 회전을 어떤 방향으로 할건지 정해주기 위해 z축을 사용함 --?사실 이해가 안가요 엉엉 선생님 살려주세요
점프는 아주 간단히 구현완료!!
📝TIL: 언리얼 엔진 블루프린트를 활용한 캐릭터 컨트롤 구현
축 방향 및 회전에 대한 이해
월드 좌표와 로컬 좌표
스위즐 입력 축 값
축회전과 이동
Roll, Pitch, Yaw의 정의와 활용
3D 공간에서 객체의 회전을 설명하는 세가지 주요 회전 축이다.
1. Roll
2 Pitch
3 Yaw
❗따로 이해하면서 정리하는 시간을 가져야겠다!