UE5/공부
OnMouseMove 함수 [개인저장용]
마우스가 움직이는 지 아닌지를 추적하기 위해서 UMG의 OnMouseMove함수를 오버라이딩했는데 아무 동작을 하지 않아도 계속 이 함수가 호출되는 문제가 발생했다. 이를 해결하기 위해 이전 델타타임의 마우스의 위치와 현재 마우스 위치를 비교해서 마우스가 움직이는지를 판단하게 해야한다.
[언리얼엔진 5] Set Input Mode UI Only Error Handling
뱀파이어 서바이벌을 레퍼런스로 토이프로젝트를 개발하던중 해결해서 글로 남깁니다. 레벨업을 하면 위젯이 생기고 3개중에 고르는 전형적인 방식 하지만 위젯을 클릭하면 그 순간 누르고 있던 키보드는 다시 키보드를 때고 다시 누를때 까지 입력을 인식하지 못했다. 레벨업하자마자 도망가야하는 게임인 만큼 엄청난 에러사항이었다. 언리얼 포럼을 뒤지면 금방 나올줄 알았지만 글이 많이 없었다. 머리 박치기 해본 결과 Set Input Mode UI Only 가 범인이었다. 위와 같은 현상이 있다면 Set Input Mode Game And UI로 변경해야한다. Set Input Mode UI Only가 되면 당연히 컨트롤러의 인풋은 무시되므로 누르고 있어도 당연히 무시된다. 어찌보면 키보드를 때고 다시 눌러야 작동하는 ..
[언리얼엔진 5] Root Motion Scale
구르기와 같은 루트모션을 사용하다보면 불편한 점이 있다. 이동거리를 마음대로 정할 수 없는 점이다. 이때 루트모션의 이동거리를 변화시킬 수 있다. (사실 루트모션의 이동 자체를 바꾸는 것)
[언리얼엔진 5] IK Retargeter with Root Motion
https://docs.unrealengine.com/5.0/ko/root-motion-in-unreal-engine/ 루트 모션 언리얼 엔진 4 에서 루트 기반 애니메이션을 처리하는 방식을 살펴봅니다. docs.unrealengine.com 언리얼엔진 4를 공부할 떄 역시 루트모션을 많이 사용했었다. 하지만 언리얼엔진 5로 넘어가면서 애니메이션 리타겟팅 방식이 바뀌었다. 각 스켈레톤의 IK 릭을 만들고 IK 리타게터로 리타겟팅할 수 있다. 이때까지만 해도 너무 좋았다... (왠지 순조롭더라) 리타겟팅된 애니메이션 몽타주의 루트모션이 먹통이 된것이다. Enable Root Motion을 활성화해도 애님bp에서도 루트모션을 활성화해도 해결할 수 없었다. 포럼의 정말 많은 질문, 답변글을 보고 시도해보았지만..
[언리얼엔진5] 텍스처 스트리밍 빌드 크래쉬 해결 (GUID Fixer)
여러 레벨을 생성하다보니 어떤 레벨에서 텍스처 스트리밍 빌드를 하면 크래쉬가 발행하는 오류가 발생했다. 텍스쳐 스트리밍 풀이 오버해서 발생한 결과라고 생각하여 텍스쳐 스트리밍 풀을 관리해주었다. 그럼에도 계속해서 크래쉬가 발생하여 개발을 진행할 수가 없었다. 계속된 구글링 끝에 해결방안을 찾았다. UE5 Plugin (5.0) for resolving conflicting material GUIDs that cause errors in Swarm build and conflicting texture GUIDs that cause errors in texture streaming builds. 우선 해결되어서 정말 다행이다. 크래쉬가 어디에서 발생했는지는 이후에 자세히 찾아볼 예정이다. 만약 텍스쳐 스트리..
[언리얼엔진 5] Find Nearest Actor
플레이어를 따라다니며 지원하고 적을 공격하는 Pet을 구현하려했다. 일단 적을 찾아야 하는 것이 우선이므로 콜리전을 생성하였다. 여기서 많은 적들을 찾을 수 있는데 내가 원하는 것은 가장 가까운 적에게 다가가는 것이다. 이때 언리얼엔진은 아주 유용한 노드를 제공한다. 액터 배열을 받아 이중 가장 가까운 액터와 거리를 리턴한다. Origin 파라미터는 측정하는 위치이다. 여기서는 본인의 위치를 넘겨주었다.
[언리얼엔진 5] PaperZD Spite 액션 (+Paper2D)
다음과 같은 sprite를 어떻게 다룰 수 있을까? sprite의 편의기능이 부족한 기존 언리얼엔진을 위해 PaperZD는 다양한 액션 기능을 지원한다. 일단 언리얼엔진의 paper2d를 사용해 sprite를 플립북(flipbook)으로 변환시켜주어야 한다. 일단 저 png파일을 언리얼엔진에서 스프라이트 액션 -> 페이퍼2D 텍스쳐 세팅 적용을 눌러준다. 그 후 스프라이트 추출을 눌러준다. 그후 추출된 스프라이트들을 묶어 플립북을 만들어 준다. 이렇게 만들어진 Flipbook을 사용하기 편하게 PaperZD에서 지원하는 AnimSource를 통해 관리할 수 있다. 이제 애님시퀀스가 자동으로 생성되고 PaperZDAnimBP에서 간편하게 사용이 가능하다. PaperZD는 가벼운 내용이기에 여기까지만 다루겠..