[언리얼] 워터 시스템

늦잠·2024년 6월 4일
0

목표 : 워터 시스템을 통해 을 구현해 보고, 부력을 받는 액터를 구현해본다.

기본 3인칭 게임 샘플에서 시작했다.



시작

맨 먼저, 필요한 water 플러그인과 landmass 플러그인을 활성화 한다.

랜드스케이프 모드를 선택한 후 지형을 적당히 생성한다.



바다

water 플러그인을 활성화하였으면 이렇게 여러 클래스가 추가되었을 것이다. water body ocean 액터를 배치해보자.

액터를 배치하면 거대한 바다가 생긴다. 화면에 표시되는 흰 경계선 : 스플라인을 통해 바다의 경계를 설정할 수 있다.

water body ocean을 배치했을 뿐인데 아웃라이너에는 water zone도 추가되었다.

water zonewater body ocean의 위치를 어긋나게 해서 살펴보면 두 액터가 겹치는 부분에만 물결이 생기고 나머지 영역은 배경으로만 되어있음을 확인할 수 있다.

water zone이 바로 물이 존재할 수 있는 영역이고, water zone안에 water body ocean같은 water body 액터를 배치함으로 비로소 물이 생기는 것이다.



이번에는 water body river 액터를 배치하여 강을 생성해 보았다.

이런 물 지형의 영역은 화면에 보이는 흰색 선인 스플라인으로 조절할 수 있는데, 스플라인은 흰색 점인 스플라인 포인트를 잇는 선이다.

스플라인 포인트는 액터를 우클릭하거나 디테일 패널에서 추가할 수 있다.

스플라인 포인트에서 물의 깊이나, 강의 너비, 강의 유속 등도 조절할 수 있다.
강의 일부는 좁고 유속이 빠르게 만드는 등 다양하게 활용할 수있다.


파도

이번에는 물의 파도, 웨이브를 다뤄 보자.

water body 액터의 디테일 패널에서 water waves asset을 찾아서 더블클릭해본다.

water waves asset은 다음처럼 파도의 수, 길이, 높이, 방향 등 다양한 부분을 조절할 수 있다.

이렇게도 가능하다.


물 매터리얼

물 또한 매터리얼을 사용한다.

매터리얼의 global vector parameter values를 수정하여 물이나 거품의 등을 바꿀 수 있다.

바다와 강 중, 바다만 붉은 색으로 바꾸면 이렇게 이상한 바다가 생긴다.


부력

부력을 받는 액터를 생성해보자.

액터 블루프린트를 만들고, 스태틱 메시 컴포넌트를 추가한다. 여기선 큐브를 사용하였다.
이후 큐브를 DefaultSceneRoot 컴포넌트에 드래그하여 루트 컴포넌트로 설정한다.

Buoyancy 컴포넌트를 추가한다. 이 컴포넌트가 액터에 부력 기능을 부여할 것이다.

큐브 컴포넌트를 눌러 피직스 시뮬레이트를 체크해 물리 시뮬레이션이 적용되게 한 후, 질량도 적어둔다.

Buoyancy 컴포넌트에서 Pontoons 배열에 멤버를 추가한다. 이것이 부력이 적용될 지점을 표시한다. 많이, 잘 배치할 수록 안정적인 부력 계산이 이뤄지겠지만 자원도 많이 들 것이다(아마).

이후 완성된 액터를 물 위에 배치하면 이렇게 부력을 받아 뜬다.
부력이 적용될 지점을 (0,0,0)에 배치했더니 큐브의 아래에서 부력을 받아 너무 가벼워 보이게 되었다.

그림으론 확인할 수 없지만,Buoyancy 컴포넌트에서 강의 유속에도 영향을 받게 옵션을 설정한 후(디폴트로 체크되어 있음), 액터를 배치하면 강의 흐름에 따라 떠내려가는 배를 볼 수 있다.

끝!



참고

profile
피카

0개의 댓글