본문 바로가기

블루프린팅/2. 블루프린트 프로그래밍

[2.블루프린트연습] 캐릭터 천천히 따라다니게하기

이전과 비슷하게 BP_QMark에서 작업한다. 기존 블루프린트를 그대로 사용한다. 블루프린트 에디터를 열어 이벤트그래프를 좀 수정해야한다.

현재는 캐릭터의 위치를 그대로 BP_QMark에 카피해주었는데 BP_QMark에서 캐릭터까지의 벡터를 이용해 조금씩 더해주겠다. 그럼 천천히 따라가는 효과가 난다. 이런것을 해주는 보간함수가 있지만 여기서는 기본 기능을 이용해 노가다로 만들어 보겠다. 아는게 이것밖에 없어서 ㅎㅎ 일단 Get Actor Location과 Set Actor Location사이의 연결을 끊어낸다 ALT+클릭으로 하면된다.

왼쪽 Get Actor Location출력위를 우클릭하고 Recombine Struct Pin을 클릭해서 출력을 벡터로 되돌린다. 반대편 Set Location도 같이 합쳐준다.

BP_QMark와의 벡터를 만들기 위해 Get Actor Location을 하나더 추가한다. 기존 Get Actor Location을 카피해도 된다. 우클릭 - 를 입력해서 빼기 연산자를 추가한다.

다음과 같이 연결해서 두 위치의 벡터를 구한다

캐릭터쪽으로 가야하기 천천히 가야하기 때문에 벡터를 30등분 정도 해준다. 우클릭후 나누기/ 연산자를 추가해준다. 

아래쪽 입력핀을 우클릭후  ToFloat로 바꿔주고 30을 입력해준다

현재 위치에 방향을 나눈걸 더해줘야합니다. +연산자를 추가후 현재 위치와 더해준다.

더해진 값을 Set Actor Location과 더해준다.

전체 연결입니다.

컴파일후 저장하고 실행해보면 퀘스쳔 마크가 천천히 따라 옵니다. 다만 아직 마크가 캐릭터를 가리므로 올려주겠습니다. Z축만 올리기 위해  Z축으로 100정도 올려줘야 하는데 기준을 올려야 하므로 맨 앞의 캐릭터의 Return Value를 끓고 Split해줍니다.

+ 노드를 추가해 줍니다.

마이너스 노드도 스필릿해주고 Z축만 더해주고 아래핀은 100을 입력해준다  XY값은 그냥 연결해준다

위치를 갱신하는 전체 그래프입니다. 로테이션 부분은 똑같습니다.

컴파일 세이브 해주고 실행해보면 캐릭터 머리위로 퀘스천마크가 잘 유지됩니다. 점프해보면 좀 문제는 있지만. 하여간 잘 움직이네요. 좀더 수정 한다면 Z값은 천천히 변화하지 않고 캐릭터의 Z값+100으로 즉각 고정하는게 좋을것 같습니다.

100이 증가된 +노드의 Z값을 Set Actor Location입력값을 스플릿하고 Z입력값에 직접 연결해 주었습니다. 

컴파일 세이브 실행해보면 하여간 되긴 됩니다. 되기는 되는데 캐릭터의 움직임과 정확히 따라가지는 않네요 아마 캐릭터의 애니메이션과은 캐릭터액터의 위치와의 차이 문제 같습니다.

부족한 면이 많지만 처음보다는 블루프린트의 노드 사용이 많이 늘은것 같습니다.