Unreal Engine 기초: 블루프린트 통신(Blueprint Communication) 정리
언리얼 엔진에서 액터 간에 데이터를 주고받는 방법은 다양.
각 통신 방식의 특징을 이해하고 상황에 맞는 최적의 방법을 선택하는 것이 효율적인 게임 개발의 핵심.
1. 레벨 블루프린트 vs 재사용 가능한 블루프린트
통신의 시작은 '어디에 로직을 작성하느냐'에서 시작.
- 레벨 블루프린트: 특정 레벨에 종속되며, 해당 레벨 내의 액터들을 직접 참조하기 쉽움.
하지만 다른 레벨에서 재사용할 수 없다는 치명적인 단점이 있음. - 재사용 가능한 블루프린트: 클래스 기반의 액터 블루프린트로 제작하여 어떤 레벨에서든 독립적으로 동작하게 만듬.
2. 액터 참조와 퍼블릭 변수
통신을 하려면 '누구와' 통신할지(참조)를 정해야 함.
① 액터 구하기 (Getting Actor Reference)
가장 흔한 방법은 GetAllActorsOfClass를 사용하거나, Line Trace, Collision Overlap을 통해 부딪힌 액터의 정보를 가져오는 것.
② 퍼블릭 변수 (Public Variables)
변수 옆의 '눈' 아이콘을 켜서 인스턴스 편집 가능(Instance Editable) 상태로 만들면, 에디터의 상세 패널에서 직접 액터를 할당하거나 값을 수정할 수 있음.
3. 블루프린트 통신의 3대장
언리얼 공식 강의에서 강조하는 가장 중요한 통신 메커니즘.
| 방식 | 설명 및 활용 |
|---|---|
| 형변환 (Casting) | 가장 직접적인 방법. "너 혹시 A 클래스니?"라고 확인한 뒤, 맞다면 해당 액터의 모든 정보에 접근. (강한 결합) |
| 인터페이스 (Interface) | 상대방이 누구인지 몰라도 "상호작용"이라는 함수만 있으면 실행. 여러 종류의 액터가 같은 함수명에 다르게 반응해야 할 때 유용. (약한 결합) |
| 이벤트 디스패처 | "나 죽었어!"라고 방송(Call)을 하면, 이 소식을 듣겠다고 등록(Bind)한 모든 액터가 동시에 반응. 1:N 통신에 적합함. |
블루프린트 통신 결론
통신 방식을 선택할 때는 다음 기준을 고려.
- 확실히 대상이 정해져 있고 깊은 상호작용이 필요하다면? → Casting
- 서로 다른 클래스들이 공통된 기능을 수행해야 한다면? → Interface
- 한 액터의 변화를 다수의 액터가 감지해야 한다면? → Event Dispatcher
오늘 배운 것: 무조건 Casting을 쓰는 것보다 Interface를 적절히 섞어 쓰는 것이 프로젝트가 커졌을 때
메모리 관리와 컴파일 속도 면에서 훨씬 유리
'1. Unreal 개념' 카테고리의 다른 글
| 26_02_04) Unreal Engine 조명과 머티리얼 (0) | 2026.02.04 |
|---|---|
| 26_01_29) 게임 분석 - 몬스터 헌터 월드의 상호작용과 액터 설계 (1) | 2026.01.29 |
| 26_01_27) Unreal Engine Editor 기본 강의 (0) | 2026.01.27 |
| 26_01_26)게임씬(Game Scene)의 개념 탐구 (0) | 2026.01.26 |
| 26_01_26) Unreal Engine 조사하기 (0) | 2026.01.26 |