본문 바로가기

강동새싹언리얼수업/언리얼

커서위치로 캐릭터 이동 블루프린트

https://wergia.tistory.com/m/317

 

[UE4] [블루프린트] 클릭한 위치로 캐릭터 이동시키는 기능 구현하기

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 베르의 게임 개발 유튜브 안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올

wergia.tistory.com

플레이어 컨트롤러로 Blueprint Class를 만든다. 이걸로 플레이어의 움직임을 컨트롤 할것이다. 이름은 BP_CursorController로 하자

블루프린트를 열고 좌클릭 상태를 저장할 변수를 만든다. 클릭하는 동안만 이동할 것이다.

좌클릭 이벤트에 변수를 설정한다. 미리만들어 놓은 좌클릭 이벤트가 있다면 사용해도 된다. 블러거는 좌클릭시 Attack라는 인풋액션이 있어 연결해 보왔다.

SetNewDestination 이라는 함수를 만들자 Input으로 NewDestination(Vector)가 필요하다

SetNewDestination Function

MoveToDestination Function도 추가한다. 마우스커서의 좌표를 얻어와 충돌지점을 위에만든 함수에 리턴한다. 

MoveToDestination Function

이벤트그래프로 돌아와 LeftMouse변수가 참이면 위치를 이동한다.

함수는 만들었으니 좌클릭시 움직일 캐릭터를 만들어 보자.

Character를 부모로 블루프린트를 하나 만든다.

캡슐컴포넌트를 선택하고 Height와 Radius를 변경해줍니다.

최상위컴포너트에서 Pawn 카테고리의 Use Controller Rotation Yaw를 꺼준다. 캐릭터가 카메라를 따라서 회전하지 않게 해준

Character Movement컴포넌트의 Orient Rotation to Movement를 체크해 이동시키려는 방향과 캐릭터의 방향이 다르면 Rotation Rate로 회전시켜줍니다.

 Constrain to Plane을 체크해 이동을 평면으로 제한하고 Snap to Plane at Start를 체크해 플레이 시작시 평면에 붙여줍니다.

캡슐컴포넌트 아래 Spring Arm 컴포넌트를 추가해줍니다. Inherit Pitch, Yaw, Roll을 체크해제해 캐릭터를 따르지 않고 월드좌표계를 따르게 해줍니다.

Target Arm Lenghth를 800으로 해주고 캐릭터를 내려다 보다록 transform rotationdml 값을 0,-45,+45로 설정해줍니다. Do Collision Test를 꺼 충돌테스트 꺼줍니다.

Spring Arm밑에 카메라를 추가하고 UsePawnControlRotaion을 꺼 카메라의 회전이 폰의 회전에 영향을 주지 않도록 설정합니다.

메시컴포넌트를 선택해서 메시와 Anim class를 설정해줍니다.

 Transform을 설정해 메시위 위치와 방향을 맞춰줍니다.

게임모드베이서 블루프린트를 만들어 우리가 만든 Player Controller와 Default Pawn class를 설정해 줍니다.

월드 세팅에서 자신이 만든 게임모드를 설정해줍니다. 이름은 각자 자신이 만든걸로 지정해줍니다.

툴바에서 하셔도 됩니다.

플레이 해서 좌클릭할동안 플레이어가 커서를 바라보며 움직입니다.

 

'강동새싹언리얼수업 > 언리얼' 카테고리의 다른 글

수업  (0) 2023.12.04
231130 수업 플레이어 Widget  (0) 2023.11.30
수업 C++로 작성된 디자인 패턴들  (1) 2023.11.29
231129 위젯 거래 함수 만들기  (0) 2023.11.29
Enemy HP Bar 만들기  (0) 2023.11.28