5.4 게임애니메이션샘플 5-2 [Traversed]
Step4.
1.
여긴 지금까지 구한 구조체의 변수에 따라 장애물 타입을 결정 하는 곳 이다.
아 타입구분을 위해 장애물 높이나 넓이를 구했던 거구나....
이렇게 깊은 뜻이 있었구나...
아무튼 노드는 간단하다.
요런식으로 만들면 된다.
노드만 간단하다는 의미다.
구현에는 정교한 설계가 필요 할듯 하다.
2.
디버깅 부분이다.
더 간단하다.
그래서 안 적는다.
Step5.
1.
4번에서 액션타입을 얻어왔다. 얻어온 액션타입이 None 이면 함수 종료
2.
5.2단계: 인터페이스를 사용하여 전방 에지 위치를 Anim BP로 보냅니다. 이 변환은 다음 Motion Matching 검색 내의 사용자 지정 채널에 사용됩니다.
설명만 보면 몹시 중요한 부분이다.
아마 Traversal PSS에 어떤 커스텀 채널이 있나보다.
아직 만들기 전이라 모른다. 그러고 보니 이거 만든 사람도 코맨트상자를 예쁘게 칠해뒀네.
사려깊다.
항상 무식하게 cast 해 와서 썼는데, BPI 처음 만들어 본다.
일단 만들고
SetInteractionTransform
GetInteractionTransform
두개 함수가 있다. 각각 이름에서 역할을 알수 있다.
3.
구조체를 하나 더 만든다.
만들어진 구조체로 몽타주를 불러온다고 한다.
형태는 게이트와 스피드만 추가 하면 되는 간단한 형태이다.
CHT_TraversalAnims
선택테이블을 추가 해 주고, 여기서 더 진행 하려면 모션매칭 파일들 작업을 우선 해야 한다.
장애물 타입별 nested 선택기를 추가 해 준다.
테이블 셋팅이 지금까지와 다르다.
컨텍스트 데이타에서 클래스가 아닌 스트럭쳐를 선택 해 주고
TraversalChooserParams를 넣어준다.
아웃풋 타입은 몽타주를 선택 해 준다.
이제 몽타주를 만들어 준다.
몽타주에 설정된 애님노티파이와 커브가 보인다. 찾아보자.
이것저것 참 많네,무시하고 몽타주를 우선 다 만들어 주자.
선택기에 몽타주를 등록해 주면서 보는데
구분하는 기준을 잘 모르겠다.
모션을 비교해 봐도 큰 차이를 모르겠지만. 장애물의 넓이에 따라 모션 출력을 달리 해 주고 있다.
다른 비교 조건은 스피드 인데 이건 당연히 정지 걷기 달리기 상태에 따라 달라야 하니 필요하다.
모션을 추가 하지 않고 더 다채롭게 보일 수 있는 방법이 뭐가 있을까..나중에 한번 시도 해 보는것도 재밌겠다.
에픽프로젝트에서 런상태에 스피트 값이 25로 되어 있는데 암 250을 잘못 입력한게 아닐까 싶어서 난 250으로 수정해서 작성한다.
어디까지 했더라...
아 캐릭터BP에서 스텝 5를 하던중이였지
구조체 선택 파라미터에서 선택기로 변수값을 전달하는 과정이다.
이과정을 통해 상황에 맞는 몽타주가 선택이 된다.
4.
모션매치 라는 함수가 있다.
선택기의 모든 값을 가져와 전달 해주고 전달 받은 값으로 적절한 몽타주를 골라준다.
골라준 몽타주를 전달받아 구조체에 넣어준다.
몽타주를 가져오지 못하면 함수를 빠져나간다.
포즈히스토리네임은 애님비피에 포즈히스토리에 태그로 등록을 해 줘야 한다.
5.
이벤트그래프에서 커스텀 이벤트를 하나 만들어 준다.
perfromTraversalAction
그리고 구조체 연결 해 주면 함수가 끝이 난다.
이제 이벤트그래프로 나가서 만들어준 커스텀 이벤트를 살펴보자.
PerformTraversalAction
근데 개인적인 느낌으론 컬리전을 끄지 않는게 더 좋아 보인다.
인풋액션을 만들어 주면 캐릭터BP의 모든 작업이 끝났다.
짠 하고 실행되면 좋겠지만 아직 포즈서치데이타를 만들어 주지 않았다.
스키마를 우선 만들어 주고 PSD를 하나하나 추가 해 준다.
스텝5에서 말하던 커스텀 채널을 만들 시간이다.
PSC_Traversal_Head/PSC_Traversal_Pos
두개를 만들어 준다.
PSC_Traversal_Pos

댓글
댓글 쓰기