일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c언어정리
- livrary
- 월드아웃라이너
- 프로그래밍일기
- c++class
- bttask
- 게임개발
- 게임엔진튜토리얼
- leveleditor
- unrealengineai
- 언리얼엔진5
- 자료구조
- 프로그래밍
- uaiperception
- directx
- DX
- c++porinter
- 각도변환
- ipc(inter process communication)
- 언리얼비헤이어비어트리
- c++
- 자료형타입
- 언리얼엔진
- 언리얼엔진공부
- 25.06.11dir
- 영단어정리
- 언리얼ai
- c++용어정리
- 자료구조정리
- 수학용어정리
- Today
- Total
루리코딩 세상
애니메이션 블루 프린트 본문
- Idle
언리얼 엔진에서 "Idle"은 일반적으로 캐릭터나 오브젝트가 아무 동작도 하지 않는 상태를 의미합니다. 즉, 캐릭터가 움직이지 않고 기다리거나, 애니메이션이나 상호작용이 없을 때의 상태를 "Idle 상태"라고 합니다.
게임이나 애니메이션에서 캐릭터의 "Idle 애니메이션"은 보통 캐릭터가 특정 위치에서 움직이지 않거나 대기하는 동안 발생하는 애니메이션을 가리킵니다. 예를 들어, 캐릭터가 서서 대기하는 동안 손을 흔들거나, 호흡하는 등 자연스럽게 생긴 작은 움직임을 표현하는 데 사용됩니다.
언리얼 엔진에서 Idle 상태는 상태 머신(State Machine)이나 애니메이션 블루프린트(Anim Blueprint)에서 설정되며, 캐릭터가 특정 조건(예: 이동, 공격 등)에 따라 다른 애니메이션으로 전환될 수 있습니다.
- BlendSpace
- Try Get Pawn Owner
추가된 BlendSpace 드래그해서 이벤트 그래프로 갖고오기.
- Up/Down Casting
언리얼 엔진에서 Upcasting과 Downcasting은 클래스 계층에서 객체의 타입을 변환하는 방법을 말합니다. 객체 지향 프로그래밍에서 클래스 간의 관계를 이용하여 특정 클래스를 다른 클래스 타입으로 변환하는 기법입니다. 언리얼 엔진에서 이러한 변환은 주로 **C++**에서 사용되며, 포인터나 레퍼런스의 타입을 다룰 때 필요합니다.
1. Upcasting
Upcasting은 자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것을 의미합니다. 자식 클래스는 부모 클래스를 상속받았기 때문에, 자식 클래스의 객체는 부모 클래스 타입으로 자동 변환될 수 있습니다.
- Upcasting은 암시적으로 이루어지며, 상위 클래스에서 하위 클래스의 메서드나 변수를 호출할 수 없다는 제약이 있습니다.
- 하지만 상위 클래스 타입으로 변환되었으므로, 상위 클래스에서 정의된 멤버만 접근할 수 있습니다.
class ACharacter : public APawn {
// ACharacter의 코드
};
class APlayerCharacter : public ACharacter {
// APlayerCharacter의 코드
};
// Upcasting
APlayerCharacter* PlayerCharacter = new APlayerCharacter();
ACharacter* Character = PlayerCharacter; // APlayerCharacter -> ACharacter
2. Downcasting
Downcasting은 부모 클래스의 객체를 자식 클래스 타입으로 변환하는 것을 의미합니다. Downcasting은 명시적으로 이루어지며, 잘못된 타입으로 변환할 경우 런타임 에러를 발생시킬 수 있기 때문에 주의가 필요합니다.
- Downcasting을 할 때는 타입이 맞는지 확인하기 위해 Cast<T>() 함수를 사용합니다. 이 함수는 성공적인 변환이면 변환된 객체의 포인터를 반환하고, 실패하면 nullptr을 반환합니다.
예시:
ACharacter* Character = new APlayerCharacter(); // ACharacter 포인터가 APlayerCharacter를 참조
APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(Character); // Downcasting
if (PlayerCharacter) {
// 성공적으로 APlayerCharacter로 변환되었을 경우
} else {
// 변환 실패
}
Upcasting과 Downcasting의 차이점
- Upcasting: 자식 클래스에서 부모 클래스로의 변환. 일반적으로 암시적으로 이루어지며, 안전하게 사용할 수 있습니다.
- Downcasting: 부모 클래스에서 자식 클래스로의 변환. 명시적으로 이루어지며, 변환이 실패할 수 있기 때문에 반드시 타입 체크를 해야 합니다.
결론
- Upcasting은 안전하며 자식 클래스의 객체를 부모 클래스 타입으로 처리할 때 사용됩니다.
- Downcasting은 위험할 수 있으며, 변환이 필요한 경우 타입을 확인하고 변환을 시도해야 합니다.
언리얼 엔진에서 Cast<T>() 함수는 Downcasting에서 타입 안전성을 제공하기 위해 매우 유용합니다.
- Character
- Get Velocity -> Vector Length XY
- Run
'이론 > Unreal Engine' 카테고리의 다른 글
언리얼 엔진5 : UObject Component (0) | 2025.05.12 |
---|---|
스테이트 머신 (FSM : Finite State Machine) (0) | 2025.05.12 |
InputComponent : 입력 설정 (0) | 2025.05.12 |
Add Movement Input (0) | 2025.05.12 |
Unreal Engine 구조 파악하기 (0) | 2025.05.09 |