레벨 디자인 하다 보면, 스태틱 메시 하나 배치할 때도 정렬, 회전, 재질 변경, 콜리전 설정 등 반복적인 수작업이 쌓이기 쉽습니다.
이런 작업을 조금이라도 줄이고자, Unreal Engine 5.5에서 에디터 전용 PlacementHelperActor를 구현했습니다.
💡 한 줄 요약: 메시 배치에 필요한 7가지 기능을 버튼 하나로 끝냅니다.
기능 요약
기능 설명
| AlignToGround | Z 위치를 자동으로 지면에 정렬 (피벗 or 메시 하단 기준) |
| AlignSlope | 지면 노멀에 맞게 Pitch·Roll 회전 정렬 |
| RandomYaw | 지정 간격 기반으로 무작위 Yaw 회전 적용 |
| RandomLocationInRadius | XY 평면 내 무작위 이동 (반경 설정 가능) |
| ResetLocation / ResetRotation | 인스턴스별 초기 위치·회전으로 복구 |
| CycleMaterial | 슬롯 0 머티리얼을 리스트 순서로 순환 적용 |
| ToggleCollision | No → Overlap → Block 순서로 콜리전 토글 |
시각 피드백 강화
각 기능 호출 시 결과를 즉시 확인할 수 있도록 다음과 같은 시각적 요소를 추가했습니다.
- 🖥 On-Screen HUD 메시지 (액터 이름 + 상태 정보)
- 🧭 DrawDebugLine / Arrow (정렬, 이동, 회전 시 시각화)
- 🔵 DrawDebugSphere (랜덤 반경 표시)
- 🏷 DrawDebugString (충돌 상태, 머티리얼명 등 텍스트 표시)
DrawDebugDirectionalArrow(GetWorld(), Loc, Loc + Dir, 80.f, FColor::Orange, false, 1.5f);
GEngine->AddOnScreenDebugMessage(MsgKey, 1.5f, FColor::Cyan, TEXT("[MyActor] Collision: Block"));
이 모든 출력은 Editor 전용이라 런타임에는 영향이 없습니다.
개발 의도
기본 Transform 도구만으로는 반복되는 작업을 자동화할 수 없어,
레벨 아티스트와 디자이너를 위한 “반자동 유틸리티 액터”를 제작하게 됐습니다.
- 디자이너: 파라미터만 지정하고 버튼만 누르면 정확한 정렬·랜덤 배치 가능
- 개발자: 완전히 C++ 기반이므로 유지보수와 확장도 쉽습니다
향후 RotationAlignToSpline 등도 추가 고려.
설치 경로 및 사용
- 위치: Content/Editor/PlacementHelperActor.cpp
- 액터 이름: BP_PlacementHelperActor
- 에디터에서 직접 배치 후 Details 패널에서 조작 가능
마무리
PlacementHelperActor는 작은 유틸리티지만, 레벨 디자인 시 상당한 시간을 줄여줍니다.
개발팀에서도 반복 배치를 할 때 “손이 많이 가는 작업” 들을 자동화하고, 시각 피드백으로 편의성을 늘릴 수 있었습니다.
'언리얼 엔진' 카테고리의 다른 글
| PlacementHelperActor 기능 가이드 (2) | 2025.07.18 |
|---|---|
| Unreal Character - 캐릭터 공격 판정 트러블슈팅 정리 (0) | 2025.05.29 |
| Unreal Character - 캐릭터 공격 판정 시스템 구현 정리 (0) | 2025.05.29 |
| Unreal Character - 락온 시스템 구현 (0) | 2025.05.29 |
| Unreal Engine - 오픈월드 개발 기술스택: World Partition과 PCG (1) | 2025.05.21 |