PCG 기반 건물 및 도시 생성 자동화: Unreal Engine의 PCG(Procedural Content Generation)를 활용하여 건물 크기, 층수, 소품, 재료, 벽 패턴 등을 절차적으로 생성하고 도시를 구성하는 포괄적인 방법을 제시합니다. 🏙️
절차적 사고 및 패턴 인식: 복잡한 문제를 해결하기 위해 패턴을 식별하고 유사한 작업을 적용하는 '절차적 사고'의 중요성을 강조하며, 이를 통해 다양한 건물 변형을 효율적으로 생성합니다. 🤔
모듈식 디자인 및 재사용성: Plasticity에서 디자인된 모듈을 Houdini에서 UV 처리하고 FBX로 패킹하여 재사용 가능한 형태로 만들며, 이를 통해 벽, 코너, 지붕 등 다양한 구성 요소를 효율적으로 조합합니다. 🧱
블루프린트와 PCG 그래프 연동: 블루프린트에서 정의된 Floors, Size X, Size Y와 같은 매개변수를 PCG 그래프의 Get Actor Property 노드를 통해 읽어와 건물 생성 로직에 동적으로 활용합니다. 🔗
층별 속성 및 동적 변형: 각 층에 Shrink Direction (축소 방향) 및 Shrink Strength (축소 강도)와 같은 속성을 부여하고, 노이즈 및 라운드 노드를 사용하여 층별 크기를 무작위로 조절하며, 높이 그라디언트를 적용하여 더욱 흥미로운 건물 형태를 만듭니다. 📐
오류 방지 및 정밀 제어: 층 축소 시 발생할 수 있는 작은 편차를 줄이기 위해 '단계별 축소(Step Shrinking)'를 도입하여 특정 축소 값만 허용하고, Split any cube 및 Normalize Float와 같은 미니 툴을 활용하여 정밀한 제어를 가능하게 합니다. 🛠️
벽 및 코너 자동 생성 로직: 1m 큐브 그리드를 기반으로 벽과 코너를 생성하고, 이를 4m, 2m, 1m 단위로 분할하여 다양한 크기의 모듈을 조합하는 '벽 분할(Wall Segmentation)' 알고리즘을 구현합니다. 🏗️
문 및 소품 배치 지능화: 벽 세그먼트에 노이즈를 적용하여 문의 위치를 무작위로 결정하고, 건물 둘레를 기반으로 문 개수를 조절하며, 소품 배치 시 창문이나 돌출된 영역을 자동으로 피하는 지능적인 방법을 사용합니다. 🚪
시드(Seed) 기반 무작위성 및 일관성: 전역 시드와 개별 시드를 조합하여 건물 전체 또는 특정 부분(예: 지붕 소품)의 무작위성을 제어하고, Mutate Seed 노드를 통해 위치에 따른 시드 변화를 활용하여 일관성 있는 결과를 얻습니다. 🌱
PCG 그래프 이동 및 안정성 확보: PCG 그래프가 월드 중앙에 고정되는 문제를 해결하기 위해 Get Actor Data as a Single Point 노드를 사용하여 액터의 중심점으로 그래프를 이동시켜 안정적인 작동을 보장합니다. ↔️
지붕 생성 및 2D 분할 알고리즘: 층을 큐브로 변환하고 중복을 제거하여 지붕 큐브를 생성한 후, 벽 분할과 유사한 2D 분할 알고리즘을 적용하여 4x4m, 2x2m, 1x1m 등 다양한 크기의 지붕 모듈을 동적으로 생성합니다. 🏠
고급 소품 배치 로직 (거리 측정): 벽 소품 배치 시, 소품과 벽 사이의 평균 거리를 측정하여 유효성을 판단함으로써 창문이나 돌출부를 자동으로 피하고, 입력 메시나 벽의 변화에 유연하게 적응하는 고급 솔루션을 제공합니다. 📏