목표 : 워터 시스템을 통해 물을 구현해 보고, 부력을 받는 액터를 구현해본다.
기본 3인칭 게임 샘플에서 시작했다.
맨 먼저, 필요한 water
플러그인과 landmass
플러그인을 활성화 한다.
랜드스케이프 모드를 선택한 후 지형을 적당히 생성한다.
water
플러그인을 활성화하였으면 이렇게 여러 클래스가 추가되었을 것이다. water body ocean
액터를 배치해보자.
액터를 배치하면 거대한 바다가 생긴다. 화면에 표시되는 흰 경계선 : 스플라인을 통해 바다의 경계를 설정할 수 있다.
water body ocean
을 배치했을 뿐인데 아웃라이너에는 water zone
도 추가되었다.
water zone
과 water 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
컴포넌트에서 강의 유속에도 영향을 받게 옵션을 설정한 후(디폴트로 체크되어 있음), 액터를 배치하면 강의 흐름에 따라 떠내려가는 배를 볼 수 있다.
끝!