게임 개발/Unreal Engine 기본

블루프린트의 Construction Script(CS) 노드와 SCS

지노윈 2025. 12. 30. 14:01
반응형

1. SCS vs Construction Script (CS)

구분 SCS (Simple Construction Script) Construction Script (블루프린트 노드)
정체 컴포넌트 구조의 데이터(설계도) 컴포넌트 생성 후 실행되는 로직(함수)
하는 일 "이 액터는 메쉬 1개, 라이트 1개가 있다" "메쉬의 색상을 랜덤하게 바꾸고, 라이트 밝기를 조절해라"
실행 시점 액터 생성 직후, 컴포넌트 탄생 단계 SCS가 컴포넌트 조립을 마친 직후
편집 방법 컴포넌트 패널에서 마우스 드래그 그래프 에디터에서 노드 연결

2. 데이터의 흐름 (생성 순서)

액터가 월드에 배치되거나 스폰될 때, 데이터는 다음과 같은 순서로 흐릅니다.

  1. SCS 단계 (정적 구성): 에디터에서 미리 붙여둔 컴포넌트들이 실제 메모리에 할당됩니다.
    • 이때 변수들은 CDO에 저장된 기본값을 따릅니다.
  2. 변수 주입: Expose on Spawn으로 설정된 변수들이 이 시점에 들어옵니다.
  3. Construction Script 단계 (동적 수정): 이제 막 생성된 컴포넌트들을 노드 로직을 통해 수정합니다.
    • 예를 들어, "나의 팀 ID 변수가 1이면 메쉬를 빨간색으로, 2이면 파란색으로 바꿔라" 같은 로직이 여기서 돌아갑니다.

3. 런타임 컴포넌트 추가와의 차이점

게임 도중에 AddComponent 노드로 컴포넌트를 추가하는 것과 SCS의 차이점은 직렬화(Serialization)에디터 가시성입니다.

  • SCS/CS 컴포넌트: 에디터 뷰포트에서 즉시 보이며, 레벨을 저장할 때 해당 컴포넌트의 설정값도 함께 저장됩니다.
  • 런타임 추가 컴포넌트: 게임이 실행된 후에만 존재하며, 에디터 상의 액터 데이터에는 포함되지 않습니다. (휘발성)

실무 팁: 최적화 주의사항

Construction Script는 에디터에서 액터를 살짝만 움직여도 매 프레임 재실행됩니다.

  • 따라서 CS 노드 안에 무거운 계산이나 복잡한 루프를 넣으면 에디터가 매우 버벅이게 됩니다.
  • 반면 SCS는 단순히 "데이터"를 나열한 것이므로 성능 부하가 거의 없습니다. 가능하면 시각적인 구조는 SCS(컴포넌트 패널)에서 잡는 것이 좋습니다.

 

반응형