Programming/UE5

HD - 2D(?)에서 Mouse Cursor to World location

Dorasima 2024. 6. 10. 14:49

- 이 친구를 사용하면 된다.

- Convert Mouse Location To World Space

-저 노드가 작동되는걸 보면

- 대충 카메라 방향으로 10을 간 다음에 위치를 계산하는 거로 보인다.

- 이 노드와 똑같은 방법으로 계산하면 된다.

(viewport 종횡 + 카메라와 커서를 두고싶은 깊이 + 노드에서 나온 벡터 + 10을 이용한 비례식으로)

1차 시도

- 이렇게 하면, 땅속으로 들어가서 문제가 생긴다.

- 항상 보이게 만들어 줘야 한다.

- (PaperZD에 대해서 Custom Depth-Stencil 이 ... 잘 안된다.)

(Skydome mesh 뭐시기 문제도 터진다... 흠)

 

- 그냥 꼼수를 사용해야겠다.

- absolute position을 가지게 한다음에

- 그냥 카메라 가까이에 그려버리는 것이다.

(적당히 크기를 줄이면서)

- 어처피 2d라서 카메라도 고정이될 것이고,

2차 시도

- 그런데 이렇게 하면 Player가 움직일 때 빠르게 따라오지 못한다.

 

- tick과 AddMovement Input이 있는 곳에 둘 다 debug primitive를 해보니

- tick이 실행이 될때, Player Actor 의 위치가 업데이트가 안된 상태에서 뭔가 이루어지는 듯 하다.... 소프트웨어 마우스가 너무 느리다.

 

- 액터의 움직임에 맞춰서 미리 가서 움직이게 해 주었다.

3차 시도

- 로직 위치 (흰 점)은 잘 따라오는데, 커서 이미지(스프라이트)는 여전히 울컥이면서 따라온다.

 

결론

- 커서 이미지는 하드웨어 마우스로

- 로직만 소프트웨어 마우스로 해야한다.

- 안그러면 마우스가 너무 끊겨서 예쁘지가 않다.

 

- 좀 더 일반적인 Camera (+ SpringArm)일 때

- 그리고 로직 마우스만 처리할때

4차시도

- Line Plane Intersection을 이용해서, 플레이어가 위치한 평면에 좌표를 가지게 하였다.

- 결과

 

- 참고자료 (여기서 써먹지는 않았다.)

포스트 프로세스 머티리얼 | 언리얼 엔진 4.27 문서 (unrealengine.com)

 

포스트 프로세스 머티리얼

포스트 프로세스 패스를 만들어 머티리얼 에디터에 블렌딩하는 법입니다.

docs.unrealengine.com