본문 바로가기

728x90
728x90

언리얼엔진

리얼 엔진 5: 액터의 다중 Static Mesh Component 바운드 계산 이드 오늘은 언리얼 엔진 5에서 액터에 포함된 여러 Static Mesh Component들의 전체 외곽 바운드를 효율적으로 계산하는 방법에 대해 자세히 알아보겠습니다. 이 기능은 렌더링 최적화, 충돌 감지, 컬링 등 다양한 게임 개발 시나리오에서 핵심적인 역할을 합니다.1. 핵심 개념: 언리얼 엔진의 바운드란?언리얼 엔진에서 **바운드(Bounds)**는 특정 오브젝트나 컴포넌트가 차지하는 공간의 최소 및 최대 범위를 나타내는 개념입니다. 일반적으로 FBox (Axis-Aligned Bounding Box, AABB) 또는 FBoxSphereBounds (AABB와 Bounding Sphere를 포함) 형태로 표현됩니다.렌더링 최적화: 카메라 시야 밖에 있는 오브젝트를 렌더링하지 않아 성능을 향상시킵니다 (.. 더보기
언리얼 엔진 5 물리 제약: EAngularConstraintMotion::ACM_Limited와 Angular Projection 활용하기 안녕하세요! 언리얼 엔진으로 게임을 개발하며 물리 제약(Physics Constraint)을 사용하다 보면, EAngularConstraintMotion::ACM_Limited 설정 시 "소프트 리밋(Soft Limit)" 방식으로 동작하여 제한 각도를 완전히 막지 못하는 상황에 부딪힐 수 있습니다. 아무리 제한 각도를 설정해도 오브젝트가 살짝 넘어가는 것을 보고 당황하셨을 텐데요. 오늘은 이 ACM_Limited의 동작 방식과, 이를 보완하여 하드 리밋(Hard Limit) 에 가깝게 구현할 수 있는 Angular Projection 활용법에 대해 자세히 알아보겠습니다.EAngularConstraintMotion::ACM_Limited는 왜 완전히 막히지 않을까?EAngularConstraintMoti.. 더보기
언리얼 엔진 5: UShapeComponent 오버랩 이벤트에서 특정 액터 무시하기 안녕하세요! 언리얼 엔진 5를 활용한 게임 개발을 진행하다 보면, UShapeComponent (또는 UPrimitiveComponent)의 오버랩 이벤트에서 특정 액터만을 무시해야 하는 경우가 종종 발생합니다. 예를 들어, 플레이어 캐릭터 주변의 범위 컴포넌트가 있지만, 특정 NPC나 아이템과는 상호작용하지 않아야 할 때가 그렇죠. 이번 글에서는 언리얼 엔진 5에서 이러한 특정 액터 무시 기능을 어떻게 구현할 수 있는지, 그리고 관련 API에 대한 정확한 정보를 공유하고자 합니다.1. 오버랩 이벤트의 기본 동작 원리 이해하기언리얼 엔진의 오버랩 이벤트 (예: OnComponentBeginOverlap)는 두 컴포넌트의 콜리전 설정에 따라 자동으로 발생합니다. 이 시스템은 주로 콜리전 채널이나 오브젝트 .. 더보기
언리얼 엔진 5의 핵심! Input Mapping Context(IMC) 완전 정복 안녕하세요! 언리얼 엔진으로 게임을 개발하다 보면 플레이어의 다양한 입력을 어떻게 효율적으로 관리할지 고민하게 됩니다. 특히 언리얼 엔진 5에서는 Enhanced Input 시스템이 도입되면서 더욱 유연하고 강력한 입력 관리가 가능해졌는데요, 그 핵심에는 바로 "Input Mapping Context (IMC)"가 있습니다.이번 글에서는 IMC가 무엇인지, 어떻게 활용하는지, 그리고 실제 프로젝트에서 어떻게 적용할 수 있는지 자세히 알아보겠습니다.Input Mapping Context(IMC)란 무엇인가요?"Input Mapping Context(IMC)"는 언리얼 엔진 5의 Enhanced Input 시스템에서 입력(키보드, 마우스, 게임패드 등)을 실제 게임 내 "액션(점프, 상호작용, 무기 장착 등.. 더보기
언리얼 엔진 5 데이터 테이블과 FInstancedStruct: 다형성 끝판왕 설계 가이드 데이터 기반 게임 설계에서 "데이터 테이블(Data Table)"은 이미 필수 도구입니다. 하지만 전통적인 데이터 테이블은 한 가지 구조체(Struct)만을 기반으로 하기에, 다양한 타입의 데이터를 한 테이블에서 다루고 싶을 때 유연성이 떨어지는 한계가 있었죠. 언리얼 엔진 5의 FInstancedStruct를 활용하면 이 한계를 극복해, 진정한 다형성 데이터 테이블을 구현할 수 있습니다.데이터 테이블의 기본 구조와 한계언리얼 엔진의 데이터 테이블은 특정 구조체(FTableRowBase 상속)를 기반으로 하며, 각 행(Row)이 해당 구조체의 인스턴스가 됩니다. 예를 들어 무기, 아이템, 적 정보 등 다양한 게임 데이터를 테이블 형태로 관리할 수 있습니다.하지만, 예를 들어 아이템마다 속성이 다르거나(무.. 더보기
언리얼 엔진 5: Sweep과 Trace 완전 정복 – 차이점, 성능, 실전 예제까지! 게임을 개발하다가 보면 Sweep과 Trace는 충돌 판정에서 자주 사용되는 기능입니다. 하지만 두 방식의 차이와 각각의 장단점, 그리고 실제로 어떻게 활용해야 하는지 헷갈리는 경우가 많죠. 이 글에서는 SweepMultiByProfile의 개념부터 Trace와의 차이, 성능적인 부분까지 초보자도 쉽게 이해할 수 있도록 자세히 설명합니다. 실전에서 바로 활용할 수 있는 예제 코드도 함께 소개하니, 언리얼 엔진 충돌 검사에 대해 제대로 알고 싶으신 분들에게 도움이 될 거예요.1. SweepMultiByProfile이란?SweepMultiByProfile은 언리얼 엔진 5에서 지정한 Collision Profile과 **부피(Shape)**를 사용해, 시작점(Start)에서 끝점(End)까지 3D 공간을 ".. 더보기
C++ 개발 생산성 극대화! 기본값을 지원하는 Getter/Setter 자동 생성 매크로 (수정 및 개선) 개발 효율을 높여줄 팁을 들고 왔습니다. 특히 C++ 개발, 그중에서도 언리얼 엔진(Unreal Engine)을 다루시는 분들이라면 주목해주세요! 반복적인 코딩 작업을 줄여주고 생산성을 확 끌어올려 줄 Getter/Setter 자동 생성 매크로에 대해 이야기해보려 합니다. 왜 이 매크로가 필요할까요?C++로 개발하다 보면 멤버 변수를 선언하고, 그에 대한 Getter/Setter를 만드는 작업은 정말 흔하죠. 여기에 언리얼 엔진에서는 UPROPERTY 매크로를 이용해 변수 속성을 지정하고, 기본값까지 설정해야 합니다. 이 모든 과정을 매번 손으로 타이핑하는 건 시간 낭비이자 오타 발생의 주범이 될 수 있습니다.오늘 소개해 드릴 매크로는 Getter/Setter 자동 생성을 중점적으로 다룹니다. 멤버 변.. 더보기
🎮 [언리얼 엔진 5] FGameplayTag에서 특정 단어 포함 여부 확인하는 방법 언리얼 엔진 5에서 FGameplayTag를 사용할 때, "Character.Status.Dead"와 같은 태그 문자열에서 "Dead"라는 **세그먼트(단어)**가 포함되어 있는지를 확인하고 싶은 경우가 종종 있습니다.이번 포스팅에서는 Unreal Engine 5에서 FGameplayTag의 내장 함수만을 활용한 방법과, 안전한 문자열 기반 방법까지 두 가지를 소개해드립니다.✅ 목표예를 들어, FGameplayTag 값이 다음과 같다고 가정합니다.Character.Status.Dead 이때 "Dead"라는 단어가 이 태그에 포함되어 있는지를 확인하고 싶은 상황입니다.✅ 방법 1. MatchesTag() 함수 사용 (전제 조건 있음)FGameplayTag는 자체적으로 계층 구조 기반 비교를 지원합니다.Ma.. 더보기

728x90
728x90