참고 영상
https://www.youtube.com/watch?v=lNwn2yq6qXg
시드를 통해 랜덤 관리하기
무조건 랜덤이 아닌 시드를 입력받아 고정된 던전을 만들수 있는 기능을 추가할려합니다.
우선 변수 2개가 필요합니다. Seed 변수는 입력받는 시드 넘버 입니다.
Stream 은 시드를 통해 만들어진 랜덤 스트림입니다. ( 사실 잘 모릅니다. )
Set Seed
1. 입력 받은 Seed가 -1일 경우에는 Stream을 랜덤으로 만듭니다.
2. -1이 아닐경우엔 Seed 기반으로 랜덤 Stream을 만듭니다.
그 후에 기존에 Random Item으로 사용하던 노드들을 Stream기반 랜덤 노드로 변경하고 Stream을연결해 줍니다.
계단 추가 하기
만들어둔 로직은 Arrow 컴포넌트가 방의 출구에 붙어있고 거기에 새로운 방을 붙이는 것 이기 때문에 방위에 방을 만들어 계단으로 연결하고 Arrow컴포넌트와 박스 콜리전만 잘 붙이면 던전의 층을 늘릴 수 있습니다.
이런식으로 큐브 스태틱 메시로 만들어보았습니다.
Arrow 컴포넌트만 높이를 잘 맞춰주면 됩니다.
던전 생성 액터에 특수 방 배열 추가하기
기존의 일반 방과 같은 배열에 계단을 넣어두면 일반방과 비슷한 빈도로 계단이 생성돼서 어색한 던전이 될 수 있습니다.
그렇기 때문에 특수 방 배열을 만들어 계단을 따로 관리해 주도록 하겠습니다.그리고 계단 방 바리에이션을 조금 추가 하였습니다. ( 입구 개수 다르게 )
기본 방을 담을 변수를 추가하고 특수 방을 담을 변수도 추가하였습니다.
기본 기준으로 현재 방의 개수가 20으로 나눠떨어지면 ( 20의 배수 마다 ) 특수 방을 생성하게 하였습니다.
기존에 사용하던 Rooml List는 temp처럼 사용하고 기본 방일 경우에 새로만든 RoomList_Base를 복사하여
특수 방 생성시에는 Special RoomList를 복사하여 방을 생성 합니다.
Begin Play
1. 기본 방들을 담긴 배열을 temp ( RoomList )으로 BeginPlay에서복사시켜 줍니다.
2. Set Seed 이벤트를 호출합니다.
실행화면
'Unreal Engine 5 > How To Use' 카테고리의 다른 글
언리얼 엔진 5 / Procedural Dungeons ( 절차적 던전 생성 ) 5 문 설치 (2) | 2025.04.14 |
---|---|
언리얼 엔진 5 / Procedural Dungeons ( 절차적 던전 생성 ) 4 아이템 배치 (0) | 2025.04.12 |
언리얼 엔진 5 / Procedural Dungeons ( 절차적 던전 생성 ) 2 (0) | 2025.04.10 |
언리얼 엔진 5 / Procedural Dungeons ( 절차적 던전 생성 ) 1 (0) | 2025.04.10 |
언리얼 엔진 5 / 캐릭터 조작 ( 이동 / 점프 / 회전 ) (0) | 2025.01.09 |