Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- unrealengineai
- 25.06.11dir
- c언어정리
- 게임개발
- uaiperception
- 언리얼엔진공부
- 프로그래밍
- c++
- 프로그래밍일기
- 영단어정리
- 자료구조정리
- 각도변환
- c++class
- DX
- 언리얼엔진
- livrary
- 월드아웃라이너
- 자료구조
- 언리얼엔진5
- directx
- 게임엔진튜토리얼
- bttask
- c++porinter
- leveleditor
- ipc(inter process communication)
- 자료형타입
- c++용어정리
- 언리얼비헤이어비어트리
- 언리얼ai
- 수학용어정리
Archives
- Today
- Total
루리코딩 세상
UObject 본문
언리얼에는 게임 오브젝트를 처리하기 위한 강력한 시스템이 존재한다. 언리얼의 오브젝트에 대한 베이스 클래스는
UObject 이며, UCLASS 매크로는 UObject 에서 파생된 클래스에 태그를 지정하여 UObject 처리 시스템이 인식 할 수있다.
✅ 1. UMeshComponent
- 설명: 메시(3D 모델)를 렌더링하기 위한 기초 클래스입니다.
- 역할: 메시를 화면에 보여주는 기능만 제공. 실제 메시 데이터를 포함하지는 않음.
- 직접 사용보다는 상속을 통해 만든 다른 컴포넌트를 사용하는 것이 일반적입니다.
- 주요 하위 클래스: UStaticMeshComponent, USkinnedMeshComponent
✅ 2. UStaticMeshComponent
- 설명: 움직이지 않는(static) 메시를 표현하기 위한 컴포넌트입니다.
- 사용 예시: 건물, 나무, 박스, 도로 같은 정적인 환경 요소
- 특징:
- 애니메이션 없음
- 물리 충돌, 그림자 지원
- 로딩과 성능이 비교적 빠름
- 사용하는 메시 자산: UStaticMesh
UStaticMeshComponent* MeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh"));
✅ 3. USkinnedMeshComponent
- 설명: **스켈레톤(뼈대)**에 따라 변형(skinning) 가능한 메시를 표현하는 추상 클래스입니다.
- 역할: 스켈레탈 메시(USkeletalMeshComponent)의 기반 클래스
- 특징:
- 뼈대 구조를 기반으로 메시가 변형될 수 있도록 지원
- 애니메이션 가능
- 실제 사용은 직접 하지 않고 USkeletalMeshComponent를 통해 사용
✅ 4. USkeletalMeshComponent (🦴Skeleton)
- 설명: 애니메이션 가능한 캐릭터 메시를 표현하는 컴포넌트입니다.
- 상속: USkinnedMeshComponent → UMeshComponent → USceneComponent → UActorComponent
- 사용 예시: 캐릭터, 동물, 몬스터 등 움직임이 필요한 3D 객체
- 특징:
- 애니메이션 시스템과 연동 (애님 블루프린트, 몽타주 등)
- 본(Bone) 기반 움직임
- 피직스 에셋 및 블렌드 셰이프, 머티리얼 다양화 등 지원
- 사용하는 메시 자산: USkeletalMesh
USkeletalMeshComponent* SkeletalMeshComp = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("SkeletalMesh"));
🔁 요약 비교
컴포넌트메시 타입애니메이션주 용도
UMeshComponent | 기본 메시 핸들러 | ❌ | 다른 메시 컴포넌트의 부모 |
UStaticMeshComponent | Static Mesh | ❌ | 배경, 오브젝트, 환경물 |
USkinnedMeshComponent | Skinned Mesh | 🔶(추상적) | SkeletalMesh의 부모 클래스 |
USkeletalMeshComponent | Skeletal Mesh | ✅ | 캐릭터, 몬스터, 애니메이션 |
브레이크포인트는 디버깅에 매우 중요한 요소로, 빨간 원으로 표시되어 흐름을 멈추는 지점을 시각적으로 알려줍니다.
🔷 변수 (Variable)
- 의미: 값을 저장하기 위한 공간. 블루프린트에서 게임 데이터를 저장하거나 전달할 때 사용합니다.
- 종류 예시:
- Boolean (참/거짓)
- Integer (정수)
- Float (소수)
- Vector (위치, 방향 등)
- Actor, Component, Object 등 다양한 참조형
- 사용 위치: 왼쪽 My Blueprint 창에서 생성하고, 그래프에서 Get(불러오기), Set(설정하기) 노드로 사용함.
🔷 연산자 (Operators)
- 역할: 변수나 값들 간의 계산 또는 비교를 수행
- 종류:
- 산술 연산자: +, -, *, / (더하기, 빼기 등)
- 비교 연산자: ==, !=, <, >, <=, >=
- 논리 연산자: &&(AND), ||(OR), !(NOT)
- 사용 예시:
- Health <= 0 → 캐릭터 사망 조건 판단
- Speed > 600 → 빠르게 달리는 상태 확인
🔷 브레이크포인트 (Breakpoint) - 단축키: F9
- 역할: 블루프린트 실행 도중 지정된 지점에서 실행을 일시 중단시킴
- 사용 방법:
- 이벤트 그래프에서 원하는 노드 위에서 F9 키를 누르거나 마우스 오른쪽 클릭 후 Add Breakpoint
- 해당 노드에 빨간 원이 표시되며 활성화됨
- 게임을 실행 중일 때, 해당 노드에 도달하면 자동으로 실행이 멈춤
- 상단 툴바에서 Resume (계속 진행) 또는 Step 기능 사용 가능
- 활용 예시:
- 함수가 실제 호출되는지 확인하고 싶을 때
- 조건문이 어떤 분기로 가는지 확인할 때
- 변수 값이 어떻게 바뀌는지 실시간으로 보고 싶을 때
🔴 브레이크포인트 활성화 예시
✅ 1. Print String
- 역할: 실행 중 문자열을 출력하는 디버깅 노드.
- 화면 왼쪽 상단에 텍스트 출력.
- 용도:
- 코드 흐름 확인
- 변수 값 확인
- 이벤트 발생 여부 확인
Print String
└ Text: "Hello"
✅ 2. 클래스 구조 & 컴포넌트 계층
AActor (기본 Actor 클래스)
├─ Transform (Location, Rotation, Scale)
├─ APawn (입력 가능 Actor)
│ ├─ InputComponent (입력 처리)
│ └─ ACharacter (움직임 기능 내장)
│ ├─ CharacterMovementComponent (걷기, 점프 등 기본 이동)
│ └─ BP_Player (블루프린트 캐릭터 예시)
│ ├─ USpringArmComponent (카메라 붐/팔)
│ └─ UCameraComponent (카메라)
✅ 3. Transform & Relative Transform
- Transform: 월드 좌표 기준의 위치, 회전, 크기
- Relative Transform: 부모 컴포넌트 기준의 위치, 회전, 크기
UCameraComponent
└ Relative to USpringArmComponent
USpringArmComponent
└ Relative to Character (BP_Player)
✅ 4. 입력 처리 (InputComponent)
▶ InputComponent
- 입력 바인딩 시스템: 키보드, 마우스, 게임패드 등의 입력을 처리
▶ Axis Mapping / Action Mapping
- Axis Mapping: 값이 연속적으로 변하는 입력 (예: 이동, 마우스 축)
- 예: MoveForward, MoveRight
- Action Mapping: 버튼이 눌림/떼짐으로 나뉘는 이벤트 (예: 점프, 공격)
Event MoveForward (Axis Mapping)
└ Add Movement Input
└ World Direction: Get Actor Forward Vector
└ Scale Value: Axis Value
✅ 5. MeshComponent 계층
UMeshComponent (기본 메시 렌더링 컴포넌트 - 추상)
├─ UStaticMeshComponent (정적인 메시 - 건물, 바위)
├─ USkinnedMeshComponent (스켈레톤 기반 메시 - 추상)
└─ USkeletalMeshComponent (애니메이션 가능한 캐릭터 메시)
🔁 계층 요약
클래스/컴포넌트설명
UMeshComponent | 기본 메시 렌더링 추상 클래스 |
UStaticMeshComponent | 정적 메시 (움직임 없음) |
USkinnedMeshComponent | 스켈레톤 메시의 부모 (애니메이션 가능) |
USkeletalMeshComponent | 본(Bone) 기반 애니메이션 가능 메시 |
'이론 > Unreal Engine' 카테고리의 다른 글
Add Movement Input (0) | 2025.05.12 |
---|---|
Unreal Engine 구조 파악하기 (0) | 2025.05.09 |
언리얼 엔진5 인터페이스 no.003 : 인터페이스 화면 워크샵 창 설정하기 (0) | 2025.05.07 |
언리얼 엔진5 인터페이스 no.002 : 액터 생성과 좌표 개념 익히기 (0) | 2025.05.07 |
언리얼 엔진5 인터페이스 no.001 : 게임 프로젝트 생성 (3) | 2025.05.07 |