해당 카테고리 글들은 '언리얼 엔진 5로 ARPG 게임 처음부터 만들기'를 수강하고 공부한 내용을 정리한 글입니다.
강의 바로가기
Section 1: Blueprint Introduction, Section 2: Maze Algorithm and Tile System 의 내용을 정리한 글입니다. 자세한 내용은 강의에서 확인 가능합니다.
Lesson 2 - Creating Main Menu
위젯 생성
Lesson 3 - Adding Main Menu to Viewport and Quit Functionality
게임모드에 위에서 생성한 위젯 뜨도록 구현
Quit 버튼 클릭시 게임 종료
Lesson 4 - Loading Screen Mechanics & Maze Spawning
게임을 시작하면 maze generation을 만들고, 미로에는 처음과 끝이 있는데 그 끝은 다시 maze generation을 생성한다. Start → M.G → M.G → .. 이런 식인데 미로 진입 전에 로딩화면을 넣어야 되므로 첫 번째 M.G를 알아야 된다. 이를 알기 위해 bool 값을 생성한다.
bool 값을 생성하고, 인스턴스 편집가능과 스폰시 노출에 true 체크
Start 버튼 클릭시 maze generation 생성. SpawnActor에 이제 Continue 값이 뜬다.
Lesson 5 - Creating a Loading Screen
로딩바 위젯 구현
로딩바 위젯에 Set Percent 함수 구현
Lesson 6 - Adding Loading Screen to Game Mode
앞에서 만든 로딩 위젯을 화면에 띄우는 ShowLoading이라는 커스텀 이벤트 함수 구현
Maze Generation에서 continue가 false이면 로딩바 화면이 보이는 함수 호출
미로 생성 비율에 따라 로딩바를 채울 계획인데 1단계 타일 생성의 경우 로딩바의 40프로까지만 채워지도록 구현할 계획
Lesson 7 - Building the Maze Algorithm
먼저 로딩바를 채우는데 필요한 수학을 계산하는 함수를 구현
Pure Function(실행핀 없음)으로 구현
현재 타일에 대한 최대 타일의 비율을 계산해야 되므로 최대 타일 / 현재 타일 * 100
그리고 타일이 전부 만들어져도 전체 로딩바의 40프로만 채워져야 되므로 40 / (앞에서 구한 수식) 을 한다
Max Tiles 인스턴스 편집가능 + 스폰시 노출로 빼서 20으로 설정
타일을 추가하는 경우
첫 타일을 0,0으로 간주했을때, 내부좌표계의 x, y
크기만큼 곱해야 됨. 오른쪽 그림처럼 하나의 타일 크기가 600이라면 위의 타일 x값은 600
Lesson 8 - Creating the First Tile
미로의 첫 번째 타일을 스폰하는 함수 구현
다음 미로를 생성할 때 이전 것을 삭제해서 RAM에 로드되지 않도록 최적화할 계획이라 Actors to Destory 배열 생성해서 추가. 그리고 Dungeon Map, Spectial Tiles에도 추가
Lesson 9 - Custom Direction System
북, 동, 남, 서 - enum 구현
앞에 만든 enum 값들이 랜덤으로 Last Exit에 set
사진 속 배열은 해당 노드가 실행될 때 필요한 값들을 메모리에 올렸다가, 랜덤으로 하나를 추출해 주고, 그 뒤에는 더 이상 참조되지 않는 한 큰 부담을 주지 않는다(가비지 컬렉션 혹은 스코프 종료와 함께 처리)
블루프린트 클래스의 변수로 배열을 만드는 것보다 이런 식으로 배열 만들고 없애고 이런 방식이 메모리 차원에서 더 좋음
Lesson 10 - Finding Adjacent Tiles
이런식으로 인접한 포인트들 리턴