본문 바로가기
Unreal Engine

Unreal Engine 편집 가능한 변수와 생성 시 노출 (Editable Variables & Expose on Spawn)

by hfgraphic 2025. 11. 8.
반응형

 

편집 가능한 변수와 생성 시 노출 (Editable Variables & Expose on Spawn)

 

이제 **편집 가능한 변수(Editable Variables)**와 생성 시 노출(Expose on Spawn) 기능에 대해 알아보겠습니다.


 

1. 편집 가능한 변수의 목적

 

편집 가능한 변수를 사용하면, 블루프린트 내부의 코드를 수정할 필요 없이 레벨 에디터의 디테일(Details) 패널에서 해당 변수의 값을 직접 수정할 수 있습니다.

  • 디자이너 친화적: 이 기능은 특히 블루프린트를 모르는 레벨 디자이너들에게 매우 유용합니다. 그들은 코드를 건드리지 않고도 노출된 변수(예: 조명 색상, 강도)만 바꿔서 레벨을 디자인할 수 있습니다.
  • 편의성: 프로그래머 자신에게도 특정 설정을 편리하게 변경할 때 유용합니다.

 

2. 변수 생성 및 설정

우리가 만든 BP_LightPole 액터를 더블 클릭하여 변수를 만들고 설정해 봅시다.

  1. 변수 1: 강한 조명 (Intense Light)
    • 새 변수를 만들고 이름을 IntenseLight로 지정합니다.
    • 타입은 Boolean (참/거짓)으로 설정합니다. (이 값이 참이면 조명을 강하게 설정할 것입니다.)
  2. 변수 2: 상점 설명 (Shop Description)
    • 새 변수를 만들고 이름을 ShopDescription으로 지정합니다.
    • 타입은 Text로 설정합니다.
  3. 변수 노출 설정:
    • 두 변수를 클릭하고 디테일 패널을 확인합니다.
    • Instance Editable (인스턴스 편집 가능): 이 옵션을 체크해야 레벨 에디터의 디테일 패널에서 변수를 편집할 수 있습니다.
    • Expose on Spawn (생성 시 노출): 이 옵션을 체크하면, 나중에 이 액터를 Spawn Actor from Class 노드로 생성할 때 이 변수들을 노출시켜 값을 설정할 수 있습니다.
  1. 카테고리 정리 (선택 사항):
    • 기본적으로 변수는 Default 카테고리 아래에 표시됩니다.
    • 변수를 클릭하고 Category 필드를 Light Pole 등으로 변경하면, 레벨 디테일 패널에서 해당 변수들이 깔끔하게 Light Pole이라는 제목 아래 그룹화됩니다.

 

3. 노출된 변수를 활용한 로직 구현

IntenseLight 변수 값에 따라 조명 강도와 색상을 변경하는 로직을 BP_LightPole이벤트 그래프에 구현합니다.

  1. Begin Play 이벤트를 만듭니다.
  2. Branch (분기): IntenseLight 변수 (Get 노드)를 가져와 Branch 노드의 조건에 연결합니다.
  3. True (IntenseLight가 참일 때):
    • Point Light 컴포넌트 (왼쪽 컴포넌트 패널에서 드래그하여 Get 노드 생성)를 가져옵니다.
    • Set Intensity (강도 설정) 노드를 연결하고 값을 50 (또는 충분히 강한 값)으로 설정합니다.
    • Set Light Color (조명 색상 설정) 노드를 연결하고 색상을 눈에 잘 띄는 빨간색으로 설정합니다.
  1. False (IntenseLight가 거짓일 때):
    • Set Intensity 노드를 연결하고 값을 1 (약한 기본값)로 설정합니다. (색상은 기본값 유지)

 

4. 테스트 및 디버깅 설정

 

테스트를 위해 레벨의 **자동 노출(Auto Exposure)**을 끄고 조명을 더 잘 보이게 설정합니다.

  1. Post Process Volume 추가: 레벨에 Post Process Volume을 배치합니다.
  2. 설정:
  • **Infinite Extent (무한 범위)**를 체크하여 맵 전체에 영향을 미치도록 합니다.
  • Exposure (노출) 섹션에서 **Min Brightness (최소 밝기)**와 **Max Brightness (최대 밝기)**를 모두 1로 설정합니다. (이렇게 하면 카메라가 장면에 따라 밝기를 자동으로 조절하지 않게 됩니다.)
  1. BP_LightPole 테스트:
  • 레벨에 배치된 액터: 레벨에 BP_LightPole을 배치하고 디테일 패널에서 Intense Light체크합니다.
  • Spawn된 액터: 레벨 블루프린트에서 Spawn Actor from Class 노드로 생성된 액터는 기본값 (Intense Light비활성화된 상태)으로 생성됩니다.
  1. Play를 클릭합니다.
  • 레벨에 배치된 액터 (Intense Light 체크됨): 빨간색의 강한 조명이 켜집니다.
  • Spawn된 액터 (Intense Light 미체크): 기본 색상과 약한 강도의 조명이 유지됩니다.

결론: Instance EditableExpose on Spawn 기능을 통해 블루프린트의 변수를 외부에 노출시켜 편리하고 유연하게 액터의 속성을 개별적으로 제어할 수 있습니다. 이는 개발 워크플로우를 개선하는 데 필수적인 기능입니다.

 

반응형