구현 위치 판단

레벨 전용 연출은 가까이, 반복되는 규칙은 C++로

선택 기준은 편한 도구가 아니라 수명, 재사용성, 성능 민감도, 협업 비용이다. 레벨 블루프린트와 C++는 경쟁보다 역할 분리로 본다.

어디까지 살아야 하나

현재 레벨이 사라지면 같이 사라져도 되는가?

레벨 로드 동안만 필요

문 열림, 컷신, 배치 액터 연결처럼 맵에 고정된다.

여러 레벨에서 반복

체력, 상호작용, 무기, 이동처럼 인스턴스가 바뀌어도 규칙이 같다.

복사하기 시작하면 승격

두 번째 레벨에 붙여 넣는 순간 컴포넌트 후보로 본다.

누가 자주 바꾸나

디자이너 반복인지, 코드 리뷰가 필요한 규칙인지 묻는다.

배치와 연출이 중심

아티스트가 트리거, 사운드, 카메라 타이밍을 빠르게 조정한다.

타입과 테스트가 중요

리뷰, 병합, 리팩터링, 자동화 검증이 필요한 기반 로직이다.

API는 C++, 값은 BP

안정적인 함수와 속성을 C++로 열고, 레벨별 값은 블루프린트에서 조절한다.

얼마나 자주 호출되나

Tick, 충돌, 대량 반복에서 호출 빈도를 먼저 본다.

이벤트성 연결

BeginPlay, Trigger overlap, Sequencer 재생처럼 낮은 빈도에 맞다.

프레임 비용이 누적

매 프레임 계산, AI 판단, 물리 보조처럼 비용이 커지면 코드로 내린다.

Tick 노드가 늘면 경고

노드 그래프가 길어지면 타이머, 이벤트, C++ 함수로 압축한다.

Level Blueprint 유지

레벨에 배치된 액터 참조가 핵심일 때

고정 문, 엘리베이터, 퍼즐 순서, 컷신처럼 맵의 구체적 배치가 로직의 일부라면 가까운 곳에 둔다.

C++로 승격

규칙 이름이 붙고 여러 액터가 공유할 때

Interactable, Health, Weapon, Inventory처럼 기능 단위 이름이 생기면 클래스나 컴포넌트가 맞다.

하이브리드

C++는 기반 API, Blueprint는 콘텐츠 연결

성능과 구조는 코드가 책임지고, 디자이너가 바꿀 타이밍과 레퍼런스는 블루프린트가 맡는다.

실무 흐름

코드로 틀을 만들고 레벨에서 연결한다

C++ Component UFUNCTION 노출 BP 값 조정 Level 연결

이 흐름을 쓰면 재사용 가능한 규칙은 텍스트 코드로 관리하고, 레벨별 연출과 참조 연결은 빠르게 반복할 수 있다.