반응형

전체 글 139

[UE] AttributeSet을 생성만 해줘도 자동으로 ASC가 인식하는 이유

ChatGPT에게 이런식으로 CDO 영역에 Actor가 AttributeSet를 생성만 해줬는데 어떻게 ASC가 이를 인식하고 적용한 지 물어봤고 아래는 그에 대한 답변이다 좋은 포인트 짚으셨어요 👍UAbilitySystemComponent::InitializeComponent 시점에서 AttributeSet들이 자동으로 ASC(AbilitySystemComponent)에 붙는 이유를 단계별로 설명드릴게요.1. AttributeSet은 UObjectUAttributeSet은 UObject 기반이라서, 보통 UAbilitySystemComponent의 DefaultSubobject 또는 Owner의 Subobject로 만들어집니다.즉, ASC가 소유한 액터(보통 ACharacter, AActor 등)에 ..

공부/UE 2025.09.20

[UE] 각종 Ability가 GAS의 ActorInfo에 접근할 수 있는 이유

GetAbilitySystemComponentFromActorInfo_Checked() 함수는 CurrentActorInfo를 통해 AbilitySystemComponent에 접근할 수 있다. 그럼 CurrentActorInfo는 언제 세팅된건지 파악해보면 게임 시작 직후에 Player가 빙의될 때, AbilitySystemComponent가 블프로 세팅한 각 어빌리티들에 대해 GiveAbility를 호출해주고 있다. 이때 FGameplayAbilitySpec타입의 FGameplayAbilitySpec을 전달해준다 코드를 타고 들어가다보면 UAbilitySystemComponent::OnGiveAbility 내에서 각 어빌리티들에게 자신이 갖고 있는 AbilityActorInfo를 넘겨준다. 그럼 AS..

공부/UE 2025.09.20

[UE] Notify, AbilityTask, TargetActor를 이용한 공격 판정

애니메이션 특정 프레임에 쏠 UAnimNotify를 상속받은 UAnimNotify_GASAttackHitCheck클래스 생성 특정 시점에 UAnimNotify_GASAttackHitCheck::Notify가 호출 UAnimNotify_GASAttackHitCheck::Notify 내부에서 UAbilitySystemBlueprintLibrary::SendGameplayEventToActor 호출 블루프린트에서 AnimationNotify를 UAnimNotify_GASAttackHitCheck로, SendGameplayEventToActor 인자로 날릴 Tag를 세팅 UABGA_AttackHitCheck라는 GameplayAbility를 생성해준다 - 해당 GA가 필요한 이유는 노티파이로 이 GA의 활성화(..

공부/UE 2025.09.17

[UE5] CDO(Class Default Object)

CDO란?UCLASS가 하나씩 가지는 기본값으로 초기화된 기본 인스턴스* UCLASS는 아래처럼 UCLASS 매크로가 선언된 클래스* UCLASS 매크로를 쓰려면 반드시 UObject를 상속받아야 한다. UCLASS 매크로는 이 클래스가 UObject를 상속받은 클래스임을 엔진에 알리는 용도* 아래 리셋 버튼을 통해 초기값으로 돌아갈 수 있는 이유도 CDO 덕분CDO는 언제 만들어지나?클래스를 로드하거나 처음 사용할 때 해당 클래스의 CDO가 생성된다. CDO는 누가 만드나?언리얼 엔진 UObject 시스템에서 자동으로 만들어준다. CDO의 기능 및 장점1. 성능 향상 및 메모리 최적화- 객체를 생성할 때 마다 생성자를 호출하는 것 보다 CDO 값을 단순 고속 복사하는게 더 빠름(언리얼 엔진 자체에서 C..

공부/UE 2025.05.31

[UE] Layered blend Per bone

특정 본을 기준으로 모션을 블렌딩해줄 때 사용 나의 경우 플레이어가 바라보는 방향이 좌 우로 90도 or -90도가 넘어갈 때 회전하는 모션을 블렌딩해서 플레이 해주려고 사용  그림을 예시로 설명하면1. Lower Body는 블렌딩 대상이 아님(blend weight가 1이라서)2. Upper body는 블렌딩 되지만 Bone Name을 spine_01으로 넣어줘서 척추 뼈 기준 위쪽 본들만(즉, 상체) 블렌딩됨

공부/UE 2025.04.06
반응형