본문 바로가기

Study

5/9_캐릭터 시점 움직이기

대충 저번시간 내용..

!!!!!!!!!!!!!!!!!!!!!!!!!!!!출결체크 꼭 확인해서 잘 하자!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

이번에 할 것들.

카메라 이동시 플레이어 보이도록 시점 수정.

시점에 따라서 이동 방향 맞추기.


시야 해결하기

BP_Player에 SpringArm 컴포넌트 추가하기 - Camera컴포넌트 SpringArm에 넣기

Camera의 Use Pawn Control Rotation 해제. 트랜스폼도 디폴트값으로 변경

SpringArm의 Use Pawn Control Rotation 체크.

 

SpringArm의 트랜스폼 x : -50 / z : 100

SpringArm의 Camera / Target Arm Length : 250

SpringArm의 Camera / Socket Offset z : 50.0 설정

SpringArm의 Camera / Camera Collision / Probe Size : 15.0

 

SpringArm을 쓰는 이유!

벽이나 사물에 충돌에 대해서 늘어났다 줄어들었다를 나타낼 수 있다.

뷰포트에 SpringArm을 보면 빨간선이 보일텐데, 그 빨간선이 늘어났다 줄었다 하면서 효과가

나타나는 것이다.

 

벽에 완전히 붙었을 때 카메라 화면이 자연스럽게 나오도록 수치를 잘 조정해주자.

만약에 충돌에 반응하는 것을 빼고 싶다면 SpringArm의 Camera Collision / Do collision Test 체크를 해제.


캐릭터 움직임 수정하기

World공간을 기준으로 움직였기 때문에 문제였다.

 

Get Actor Forward Vector 노드 추가 : 액터의 전방값을 가져온다.

Get Actor Right Vector 노드 추가 : 액터의 우측값을 가져온다.

이 두개의 노드를 각각 Add Movement Input노드의 World Direction에 연결해줌.

 

이제 카메라의 바라보는 방향에 따라서 이동이 되는 것을 볼 수 있음.


캐릭터 움직임 애니메이션 추가하기

레벨로 나가서 콘텐츠브라우저 우클릭 - 우클릭 - 애니메이션 - 애니메이션 블루프린트 추가

부모클래스 : AnimInstance / 타깃 스켈레톤 : Mannequin_Skeleton 선택 후 확인

ABP_Character 생성 완료.

 

BP_Character의 Mesh컴포넌트 Animation / Anim Class에 ABP_Character 추가해주기

 

ABP_Character  블루프린트 살펴보기

최종 애니메이션이 화면에 나오게 될 애니메이션을 뜻한다.

우측 하단에 에셋 브라우저 탭에서 Idle 끌어다 놓고 최종 애니메이션 포즈 노드와 이어주면,

Idle애니메이션이 나오는것을 볼 수 있다.

 

이제 AnimGraph에서 상황에 따라 애니메이션이 나오도록 해줄 것이다.

여기서 생각나는건 Branch가 생각나지만 Anim에서는 실행핀이 없기 때문에 사용할 수 없다.

(Pose 핀만 있음)

 

idle노드는 지워버리고, machine 검색하여 스테이트 머신 새로 추가를 해줌.(Locomotion 이름변경)

스테이트머신 더블클릭해서 내부로 들어간다.

 

Entry가 시작 지점이다. 에셋 브라우저에서 Idle을 가져다가 만든 뒤, 서로 연결해준다.

Run도 하나 추가해주고 Idle -> Run 연결해주는데 그럼 이제 트렌지션 룰이 생성됨.

트렌지션 룰을 더블클릭해서 들어가면 새로운 창이 뜸

 

Try Get Pawn Owner - Get Velocity - VectorLengthSquared - == - 결과

 

 

 

과제! 부동소수점의 연산에서 오차가 발생하는 원인 파악