슈퍼마리오 월드 모작 설명 영상입니다.

'WinAPI > 완성' 카테고리의 다른 글

[WINAPI] 슈퍼마리오 월드 모작  (0) 2019.01.09


사격 애니메이션을 구현하고 싶어서 언리얼 엔진 홈페이지의 문서를 참고하여 애님 블루프린트를 작성하였는데,

(참고 : http://api.unrealengine.com/KOR/Engine/Animation/AnimHowTo/AdditiveAnimations/index.html)


위의 영상에서 보이는 것 처럼 사격을 해도 캐릭터가 전혀 미동도 않았다.


그래서 사격 애니메이션의 애니메이션 몽타주를 확인해봤는데..



보이는 것 처럼 이 애니메이션 몽타주의 길이는 0.233초(초록색 네모)정도인 반면에, 블렌드 시간(빨간색 네모)이 0.25초로 지정되 있었다.


즉, 사격 애니메이션 블렌딩이 끝나기도 전에 애니메이션이 끝나버려 발생한 문제였던 것.


그래서 블렌드 시간을 0.01초 정도로 맞춰주고 다시 테스트해보았다.




잘된다.

'UnrealEngine4 > 공부' 카테고리의 다른 글

[UE4] Break Hit Result 함수 런타임 오류 관련  (0) 2019.01.21

한빛미디어의 '실전 게임 제작으로 배우는 언리얼엔진4' 에서 라인 트레이스를 사용하는 부분을 공부하고 있었다.



예제를 끝마친 후 작동하는 것을 확인하고 종료 후 다음 장을 보려던 찰나,



엄청난 수의 런타임 에러와 마주하게 되었다.


오류의 내용은 PNPawn_Rabbit 블루프린트 클래스의 함수인 CanSeePlayerPawn 함수가 있는데,


이 함수 내부에서 라인트레이스와 Collision을 일으킨 객체의 정보(Hit Actor)값이 null임에도 불구하고 접근했다는 것.


그래서 문제의 구간으로 점프해보았다.



확인을 해보니, Break Hit Result와 Actor Has Tag가 말썽을 일으킨 것.


Can See Player Pawn 함수의 경우 이벤트그래프에서 매 Tick마다 실행되게끔 설정을 해놨었는데,


라인 트레이스와 Collision을 일으킨 Actor가 있는지 없는지 확인도 안하고 바로 Actor Has Tag에서 Hit Actor값에 접근해서 


Tag값을 얻어오려 하니 문제가 발생해버린 것.



그래서 Actor값이 유효한지 검사하는 'IsValid' 노드를 하나 추가해주고 실행하니 런타임오류 안뜨고 이쁘게 잘 실행되었다.


책에는 내가 겪은 런타임 오류에대한 말이 없었는데, 


책에서 사용한 버전이 4.10버전이고 내가 사용하고 있는 버전이 4.17버전이라서 버전 차이에서 오는 오류인건지는 잘 모르겠다.



+ Recent posts