unreal engine

언리얼 학습일지-6-블루프린트와 폴리지

243 2021. 5. 7. 16:32

 

 

저번에 했던 블루프린트 기초에서 조금 더 진보된 로직을 공부해보자

 

 



액터 블루프린트를 생성하고 이벤트그래프에 들어가면 이런 이벤트들이 있다.

 

beginplay는 실행하면 활성화되는 것이고 actor begin overlap은 액터와 곂치면 활성화되는 것이다. tick 이벤트는 컴퓨터의 함수주기마다 활성화된다.

 

pin의 색이 서로 안맞아도 자동으로 convert 해서 연결된다. 



변수의 사칙연산을 프로그램 해보자.






Number A(1)와 Number B(2) 변수를 생성한다. 

 

int+int, int*int 등의 액션을 생성해 변수, Print String과 연결하면 플레이 했을 때 각각의 결과값이 출력된다.




이번엔 피타고라스의 정리를 이용해 두 점 사이의 거리를 구하는 프로그램을 짜보자





 

이렇게 Hypotenuse노드를 사용하는 방법이 있고







이렇게 정직하게 순정파로 짜줄 수도 있다. 

 

하지만 뭐가 더 편한지는..^^

(두번째 건 뭐가 문젠지 캡처도구도 안먹는다…)





이번에는 Tick 이벤트 노드를 사용해 숫자가 1초마다 1씩 카운트되게 해보자.





위의 로직과 아래의 로직은 똑같지만 한 가지 차이가 있다.

Delay 노드의 위치이다. 수치가 같아도 어디에 위치하느냐에 따라 딜레이 되는 정도가 달라진다.







---------------------------------------







새 폰 블루프린트 클래스를 생성하고 입력 맵핑을 사용해 화면 이동, 액션 제어를 설정할 수 있다.





플레이어 컨트롤러 클래스를 생성하고 

이벤트 그래프에서 캐릭터 이동을 위한 메카니즘을 만들어준다.







이제 게임 모드 베이스 클래스를 생성하고 아래 창에서 Player Controller Class, Default Pawn Class 를 새로 만들었던 블루프린트로 바꿔준다.

 

 

이제 프로젝트 세팅 - 맵&모드에 들어가서 기본 게임모드를 새로 만든 블루프린트로 변경하고 실행하면 만든 로직대로 캐릭터를 움직일 수 있다.







------------------------------







폴리지 해보기





 

메가스캔에서 grass카테고리의 에셋을 다운받고 임포트한다.

모드-폴리지를 클릭하고 식물의 스태틱 메쉬를 슬롯에 추가한다.





 



그 전에 LOD라는 개념을 곁다리로 알아가면 좋다.

 

메가스캔에서 에셋을 다운 받을 때 톱니바퀴를 누르고 Export Settings의 Mode 탭에 들어가면 이런 셋팅이 있다.

 



LOD라는 것은 메쉬를 퀄리티를 결정짓는데 단계가 높아질수록 점점 추상적인 형태로 변한다. 이런 게 있는 이유는 최적화를 위해 에셋이 멀리 보일 때는 단순화 시켜서 보일 수 있도록 하기 위해서이다. 

 

나는 게임이 아니라 단순 배경작업을 하거나, 영상을 출력하기 위함이라면 메가스캔에서 애초에 LOD 0 만 체크해서 익스포트하면 저장공간을 아낄 수 있다.





익스포트한 Grass의 머티리얼 에디터에 들어가보면 LOD 세팅 창이 있다.

여기서 LOD Auto를 LOD 0 으로 바꾸고 LOD 개수를 1로 줄이면 멀리서 보던 가까이서 보던 LOD 0 (최고 퀄리티) 으로 출력된다.



다시 폴리지로 돌아가서, 임포트한 메쉬들 중 원하는 것들을 선택한 뒤 페인트를 하면 잔디밭을 쉽게 만들 수 있다.





 

밀도-메쉬 사이의 간격을 조절할 수 있다. 

Random Pitch  Angle-설정한 각도 내에서 랜덤으로 생성된다.

Scale X-최솟값과 최댓값을 설정하면 그 사이에서 랜덤으로 생성된다.




 

툴바에서는 페인트, 채우기, 지우기 등 도구를 바꿀 수 있다.

단일 툴을 선택하면 한 번 클릭에 하나만 생성된다. 

메쉬를 여러개 선택하면 꽃다발처럼 한 포인트에서 메쉬들이 한꺼번에 생성된다.

 

 




-------------------------------------------







다음은 라이팅..~ 아마