Unreal

[Unreal] 3월 27일 수업정리

k-codestudy 2025. 3. 27. 13:29

디테일 패널과 초기 데이터 설정

  • 디테일 패널에서 초기 데이터를 설정하는 행위는 해당 값이 기본값(default value)으로 설정된다는 의미
  • 블루프린트의 컨스트럭션 스크립트(Construction Script)에서도 초기 데이터를 설정할 수 있음
  • 디테일 패널에서 변경하는 값과 컨스트럭션 스크립트에서 변경하는 값이 충돌하면, 컨스트럭션 스크립트의 값이 우선됨

 

컴포넌트의 구분

모양(렌더링되는 컴포넌트)

  • 뷰포트(Viewport)에 보이는 오브젝트 (예: Static Mesh, Skeletal Mesh, Sprite 등)
  • 씬에 배치되며 계층구조를 가짐

프로그래밍적인 컴포넌트

  • 화면에 보이지 않으며 계층을 가지지 않음
  • 대표적인 예: AudioComponent, PhysicsHandleComponent, CameraComponent, MovementComponent 등
  • 게임 로직과 관련된 기능을 수행함

 

컨스트럭션 스크립트 (Construction Script)

컨스트럭션 스크립트란?

  • 블루프린트의 생성자(Constructor) 역할을 함
  • 객체(Actor)가 씬에 배치될 때 실행되며, 초기 설정을 진행함.
  • 디테일 패널에서 변경하는 것과 같은 역할을 수행하지만, 컨스트럭션 스크립트가 우선순위를 가짐
  • 즉, 디테일 패널에서 값을 변경해도 컨스트럭션 스크립트에서 다시 덮어씌울 수 있음

컨스트럭션 스크립트의 역할

  • 외부에서 입력을 받아 자동으로 조립(Setup)할 수 있도록 함
  • 예를 들어, StaticMeshComponent에 SetStaticMesh()를 사용하여 특정 메쉬로 변경할 수 있음

예시

  • MeshComponent가 SM_Chair로 설정되어 있음

  • SetStaticMesh(SM_Rock)을 실행하면 뷰포트에서 SM_Rock으로 변경됨

  • 즉, 컨스트럭션 스크립트의 설정이 우선 적용됨

컨스트럭션 스크립트를 사용하는 이유

 

디테일 패널에서도 설정이 가능한데 왜 사용할까?

  • 컨스트럭션 스크립트에서는 변수를 추가할 수 있음
  • 추가한 변수는 다른 사용자가 쉽게 조작할 수 있도록 UI에 노출할 수 있음 ( 인스턴스 편집 가능 )
  • 디테일 패널에서 변경한 값과 연동하여 자동화된 설정을 제공할 수 있음
  • 예를 들어, 특정 값을 변경하면 해당 값에 따라 다른 설정이 자동으로 적용되도록 구성할 수 있음

 

언리얼에서 오브젝트(Actor)를 생성하는 방법

드래그 앤 드랍

  • 콘텐츠 브라우저에서 블루프린트(또는 스태틱 메쉬 등)를 씬으로 드래그하면 생성됨

스폰(Spawn)

  • SpawnActor 함수를 사용하여 런타임 중 동적으로 생성할 수 있음

 

블루프린트 변수 설정

변수 타입

  • 변수를 생성하면 다양한 속성을 설정할 수 있음
변수 타입 해당 변수가 어떤 타입인지 설정 (예: Static Mesh, int, float 등)
설명 변수에 대한 부가 설명을 추가 가능
스폰 시 노출 SpawnActor를 사용할 때 변수 값을 외부에서 설정 가능하도록 함
인스턴스 편집 가능 특정 오브젝트(인스턴스)에서 변수를 변경할 수 있도록 허용
블루프린트 읽기 전용 const와 같은 역할을 하며, 블루프린트에서 값을 변경할 수 없음
프라이빗 기본적으로 Public이지만, 체크하면 Private 변수가 됨 (외부 접근 불가)
카테고리 변수를 정리하기 위한 그룹을 설정 가능
리플리케이션 네트워크 통신에서 해당 변수를 동기화할지 여부를 결정

 

 

변수 슬라이더 및 범위 설정

 

  • 변수 타입이 int, float 등 숫자형일 경우 슬라이더 및 입력 범위를 설정 가능

슬라이더 범위(Slider Range)

  • 슬라이더를 조작할 때 이동 가능한 최소/최대 범위를 설정
  • 하지만 입력 범위는 제한되지 않음 (즉, 직접 값을 입력하면 제한값을 넘을 수도 있음)

값 범위 설정(Value Range)

  • 변수에 허용할 최소/최대 값을 강제 설정
  • 입력 값이 범위를 벗어나면 자동으로 조정됨

 

변수 활용

  • 변수를 오브젝트 레퍼런스(Object Reference) 타입으로 설정하면, 해당 변수는 특정 오브젝트를 참조할 수 있음

변수 Get/Set 단축키

  • Ctrl + 드래그 앤 드랍 → Get 변수
  • Alt + 드래그 앤 드랍 → Set 변수

변수를 사용하는 이유

  • 외부에서 조작할 수 있도록 인스턴스 편집 가능(Instance Editable) 옵션을 활성화할 수 있음
  • 프로그래밍적인 요소가 아니라도, 다른 사용자가 쉽게 값을 조작하여 다양한 변형을 줄 수 있음

 

블루프린트의 노드 및 기능

 

시퀀스 (Sequence)

  • 여러 개의 실행 흐름을 순차적으로 실행할 때 사용
  • "핀 추가(Add Pin)" 버튼을 눌러 실행 순서를 늘릴 수 있음

변수 승격 (Promote to Variable)

  • 특정 값이나 노드를 변수로 승격시키면 자동으로 변수 생성됨
  • 컴파일 후 변수 승격을 하면, 기존 설정된 값이 그대로 유지됨

단축키

  • Drag + Q : 그나마가장 깔끔한 방법

  • Drag + C : 선택된 노드에 주석(Comment) 추가

 

컨스트럭션 스크립트의 핵심 개념

  • 결국 중요한 설정을 밖으로 빼서, 다른 사용자가 쉽게 조작할 수 있도록 하는 것
  • 이를 통해 블루프린트의 자동화 및 편의성을 높일 수 있음
  • 특정 요소(예: 메쉬, 머터리얼)를 변수로 설정하여 다른 사람이 쉽게 변경할 수 있도록 하면 작업 난이도를 낮출 수 있음

실습 

lamp를 만들어 볼것 

컴포넌트에 staticMesh, point Light 추가
컨스트럭션에 Set intensity, Setlight Color, Set Source Radius의 값을 설정할수 있게 설정 ( 인스턴스 편집가능을 on )
완성본 ( 인스턴스 편집가능을 on으로 하여 우측 디테일 패널에서 값을 설정할수 있게 됨 )

'Unreal' 카테고리의 다른 글

[Unreal] 3월 31일 수업정리  (0) 2025.03.31
[Unreal] 3월 28일 수업정리  (0) 2025.03.28
[Unreal] 3월 26일 수업정리  (0) 2025.03.26
[Unreal] 3월 25일 수업정리  (0) 2025.03.25
[Unreal] 3월 24일 수업정리  (0) 2025.03.24