UE5 C++ | Crypt Raider, 캐스팅, 부착, 태그 처리 및 프로젝트 마무리 정리 (유데미)
언리얼 강의 중 Section 4를 정리한 아홉번째 글입니다.
UE5 C++ | Crypt Raider, 캐스팅, 부착, 태그 처리 및 프로젝트 마무리 정리 (유데미)
강의 정보 🎓
- 강의명: Unreal Engine 5 C++ Developer: Learn C++ & Make Video Games
- 플랫폼: 유데미
- 현재 섹션: Section 4 - Crypt Raider
- 주요 내용: 캐스팅, 부착, 태그 처리 등을 다루며 프로젝트를 마무리하였다.
캐스팅과 액터 부착 🔗
AttachToComponent 사용
- 가고일 액터를 Trigger에 붙이고 Physics를 비활성화
UPrimitiveComponent로 캐스팅 후SetSimulatePhysics(false)AttachToComponent(this, FAttachmentTransformRules::KeepWorldTransform)으로 부착
1
2
3
4
5
6
7
8
9
10
AActor* Actor = GetAcceptableActor();
if (Actor != nullptr) {
UPrimitiveComponent* Component = Cast<UPrimitiveComponent>(Actor->GetRootComponent());
if (Component) {
Component->SetSimulatePhysics(false);
}
Actor->AttachToComponent(this, FAttachmentTransformRules::KeepWorldTransform);
Mover->SetShouldMove(true);
}
태그 추가 및 삭제 🏷️
Grab 시 태그 추가
1
HitResult.GetActor()->Tags.Add("Grabbed");
Release 시 태그 삭제
1
2
AActor* GrabbedActor = PhysicsHandle->GetGrabbedComponent()->GetOwner();
GrabbedActor->Tags.Remove("Grabbed");
불리언(Boolean) 논리 연산자 ✅
- Grabbed가 아닌 가고일만 트리거에서 반응하도록 설정한다.
1
2
3
4
5
6
7
for (AActor* Actor : Actors) {
bool HasAcceptableTag = Actor->ActorHasTag(AcceptableActorTag);
bool IsGrabbed = Actor->ActorHasTag("Grabbed");
if (HasAcceptableTag && !IsGrabbed) {
return Actor;
}
}
레벨 다듬기 🎨
PostProcessVolume 설정
- 씬이 어두워지는 현상 해결해야 한다.
- 씬의 노출 보정 메소드 영향이다.
- 액터 배치 → 크기 조정
Exposure → Metering Mode: Auto Exposure Basic
Grab/Release 동작 개선
Grab시 Detach 처리:
1
HitResult.GetActor()->DetachFromActor(FDetachmentTransformRules::KeepWorldTransform);
Mover의 위치 복귀 구현
이동 후 되돌아오는 기능 구현
1 2 3 4
FVector TargetLocation = ShouldMove ? OriginalLocation + MoveOffset : OriginalLocation; float Speed = MoveOffset.Length() / MoveTime; FVector NewLocation = FMath::VInterpConstantTo(CurrentLocation, TargetLocation, DeltaTime, Speed); GetOwner()->SetActorLocation(NewLocation);
Crypt Raider: 마무리 ✅
- 포인터 / 레퍼런스 이해
- ActorComponent / SceneComponent 활용
- 루멘 조명 시스템 학습
- 라인 트레이싱 & 콜리전 이해
- 블루프린트 → C++ 함수 호출 연결 실습
요약 및 느낀점 📝
- 프로젝트 마무리 단계에서의 부착 로직, 태그 관리, Detach 처리, 복귀 이동 구현 등을 하였다.
Crypt Raider 섹션을 통해 언리얼 엔진의 핵심 기능들을 C++과 블루프린트를 번갈아 사용하며 실습할 수 있었다. 특히 두 기술의 상호작용을 경험하면서 각자의 장점과 쓰임새를 체감할 수 있었고, 실제 게임 기능에 가까운 컴포넌트 기반 로직 구성을 다뤄보며 엔진 구조에 대한 이해도 높아졌다. PhysicsHandle, Trigger, Mover 등 다양한 C++ 컴포넌트를 직접 구현하고, 이를 블루프린트와 연결해 게임 내 동작을 제어하는 흐름은 실제 게임 시스템을 설계하는 데 필요한 기초 체력을 다지기에 충분했다. 이제 남은 것은, 배운 내용을 바탕으로 나만의 레벨과 로직을 직접 설계하고 구현해보는 것이다. 섹션에서 제공된 틀에 의존하지 않고 디자인부터 시스템 구성까지 스스로 해보는 과정이 진짜 실력으로 이어질 것이라 생각한다. 이번 섹션은 단순한 따라하기에서 벗어나 구조를 이해하고 확장하는 법을 배운 의미 있는 시간이었다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.