전체 글741 언리얼엔진5 Static Mesh 분리하기 Modeling Mode Split 사용법 ▣ 외부에서 가져온 3D 모델을 사용하다 보면 여러 오브젝트가 하나의 Static Mesh 에셋으로 들어 있는 경우가 있습니다.예를 들어 건물 에셋 하나에건물 본체문창문난간간판같은 여러 파츠가 같이 들어 있을 수 있습니다.Content Browser에서는 하나의 Static Mesh로 보이지만 실제 메시 내부에서는 각각의 지오메트리가 서로 떨어져 있는 형태입니다. 이 상태에서는 문만 따로 움직이거나 간판만 다른 곳에서 사용하기 어렵습니다.이럴 때 Unreal Engine의 Modeling Mode에 있는Split툴을 사용하면 하나의 메시 안에 들어 있는 여러 지오메트리를 각각의 메시로 분리할 수 있습니다. 이번 글에서는Select Mode↓Modeling↓XForm↓Split순서로 Static Mesh를.. 2026. 9. 8. 언리얼엔진5 Time Remaining 애니노드 알아보기 ▣ 이번에는 Animation Blueprint에서 사용하는 Time Remaining 애니메이션 노드에 대해 알아보겠습니다.Time Remaining을 검색하다 보면 비슷한 이름의 노드가 여러 개 있습니다.Time RemainingTime Remaining (ratio)Get Relevant Anim Time RemainingGet Relevant Anim Time Remaining Fraction처음 보면 이름도 비슷하고StateTransitionAsset PlayerAnim GetterRelevantWeightRatioFraction같은 용어까지 같이 나오기 때문에 상당히 헷갈립니다.그래서 Time Remaining 노드만 바로 설명하기보다는 먼저 이 노드가 어디에서 사용되고, 어떤 애니메이션의 시.. 2026. 9. 7. 언리얼엔진5 C++ OnMontageEnded와 AnimNotify 차이 및 몽타주 종료 처리 ▣ 언리얼 엔진에서 공격이나 스킬 애니메이션을 만들 때 Animation Montage를 많이 사용합니다.예를 들어 공격 버튼을 누르면 다음과 같은 흐름으로 동작할 수 있습니다.공격 버튼 입력↓공격 상태로 변경↓Attack Montage 재생↓공격 판정↓Montage 종료↓공격 상태 해제이때 애니메이션의 특정 시점에서 이벤트를 실행하려면 AnimNotify를 사용할 수 있고, 몽타주가 완전히 종료됐을 때 처리하려면 OnMontageEnded를 사용할 수 있습니다. 처음에는 둘 다애니메이션 재생 중→ 특정 함수 호출이라는 점 때문에 비슷하게 느껴질 수 있습니다.하지만 사용 목적은 다릅니다.간단하게 먼저 정리하면 다음과 같습니다.AnimNotify→ 애니메이션의 특정 순간을 감지OnMontageEnded→ .. 2026. 9. 7. 언리얼엔진5 C++ enum으로 3인칭 1인칭 탑다운 숄더 컨트롤 모드 전환 ▣ 게임을 만들다 보면 하나의 캐릭터에서도 플레이 상황에 따라 카메라와 조작 방식을 변경하고 싶을 때가 있습니다.예를 들어 평소에는 3인칭으로 플레이하다가조준할 때는 숄더 카메라로 변경하고,특정 상황에서는 1인칭이나 탑다운 방식으로 변경할 수도 있습니다.이번 글에서는 enum class를 이용해서 다음 4가지 Player Control Mode를 만들어 보겠습니다.ThirdPerson→ 3인칭 모드FirstPerson→ 1인칭 모드TopDown→ 탑다운 모드Shoulder→ 숄더 / 조준 모드그리고 V키를 누를 때마다ThirdPerson↓FirstPerson↓TopDown↓Shoulder↓ThirdPerson순서로 계속 변경되도록 만들어 보겠습니다.단순히 카메라 위치만 바꾸는 것이 아니라 각 모드에 맞춰.. 2026. 9. 4. 언리얼엔진5 C++ 회전값 계산과 Actor 회전 함수 사용법 ▣ 언리얼 엔진에서 캐릭터를 만들다 보면 회전과 관련된 코드가 정말 많이 나옵니다.처음에는FRotator정도만 알고 있다가 캐릭터 이동 코드를 보면 갑자기FRotationMatrix가 등장합니다.예를 들어 다음과 같은 코드입니다.const FRotator ControlRotation = Controller->GetControlRotation();const FRotator YawRotation( 0.0f, ControlRotation.Yaw, 0.0f);const FVector ForwardDirection = FRotationMatrix(YawRotation) .GetUnitAxis(EAxis::X);처음 보면왜 회전값을 Matrix로 또 바꾸지?회전 행렬은 무엇이지?EA.. 2026. 9. 3. 언리얼엔진5 콘솔 명령어 사용법과 자주 쓰는 명령어 정리 ▣ 언리얼 엔진으로 게임을 만들다 보면 현재 프레임이 몇 FPS인지 확인하거나, 콜리전을 화면에 표시하거나, 게임 속도를 느리게 만들어 테스트해야 할 때가 있습니다.이럴 때 빠르게 사용할 수 있는 기능이 콘솔 명령어입니다.예를 들어 다음과 같은 작업을 할 수 있습니다.현재 FPS 표시CPU / GPU 병목 확인콜리전 표시NavMesh 표시게임 속도 변경FPS 제한렌더링 해상도 변경GPU 프로파일링프로젝트 세팅을 하나씩 찾아서 변경하지 않아도 게임을 실행한 상태에서 명령어 하나로 값을 변경하거나 디버그 정보를 확인할 수 있습니다.이번 글에서는 언리얼 엔진의 콘솔 명령어가 무엇인지 알아보고, 실제 개발할 때 자주 사용하는 명령어들을 정리해 보겠습니다.이 글은 2026년 9월 확인 기준 최신 정식 버전인 Un.. 2026. 9. 3. 언리얼엔진5 게임플레이 프레임워크란? ▣ 언리얼 엔진으로 게임을 만들다 보면 다음과 같은 클래스들을 자주 보게 됩니다.GameModeGameStatePlayerControllerPlayerStatePawnCharacterGameInstanceHUD처음에는 각각 따로 존재하는 클래스처럼 보이지만,이 클래스들은 서로 연결되어 게임의 기본 구조를 구성합니다.이러한 구조를 언리얼 엔진에서는 Gameplay Framework라고 합니다.Epic 공식 문서에서는 Gameplay Framework를 게임플레이를 만들기 위한 모듈식 기반을 제공하는 클래스들의 집합으로 설명하고 있습니다.이 글은 2026년 8월 확인 기준 최신 정식 버전인 Unreal Engine 5.8을 기준으로 작성합니다. ▣ 게임플레이 프레임워크간단하게 생각하면게임을 만들 때 필요한 .. 2026. 8. 27. 언리얼엔진5 C++ 컴포넌트 종류와 사용법 - ActorComponent, SceneComponent, PrimitiveComponent ▣ 언리얼 엔진에서 Actor를 만들다 보면 거의 항상 Component를 사용하게 됩니다.예를 들어 캐릭터 하나만 보더라도 내부에는 여러 Component가 들어 있습니다.Character│├─ Capsule Component│ → 충돌│├─ Skeletal Mesh Component│ → 캐릭터 외형│├─ Character Movement Component│ → 이동│├─ Spring Arm Component│ → 카메라 거리 유지│└─ Camera Component → 화면 출력 Actor 하나가 모든 기능을 직접 구현하는 것이 아니라 여러 Component를 조합해서 하나의 Actor를 구성하는 방식입니다.Epic 공식 UE 5.8 문서에서도 Component를 Actor에 추.. 2026. 8. 26. 언리얼엔진5 C++ Movement Component 종류와 사용법 ▣ 언리얼 엔진에서 캐릭터, Pawn, 총알, 움직이는 플랫폼 등을 움직일 때 여러 종류의 Movement Component를 사용할 수 있습니다.예를 들어 플레이어나 몬스터처럼 지면을 걷는 Character는UCharacterMovementComponent간단하게 자유 이동하는 Pawn은UFloatingPawnMovement총알이나 미사일은UProjectileMovementComponent계속 회전하는 오브젝트는URotatingMovementComponent정해진 위치 사이를 이동하는 플랫폼은UInterpToMovementComponent를 사용할 수 있습니다.이름에는 모두 Movement가 들어가지만 담당하는 이동 방식은 서로 다릅니다.이번 글에서는 Unreal Engine에서 제공하는 주요 Move.. 2026. 8. 24. 언리얼엔진5 Pitch Roll Yaw 회전축 정리 ▣ 언리얼 엔진에서 오브젝트나 캐릭터의 회전을 다루다 보면 Pitch, Roll, Yaw라는 값을 자주 사용하게 됩니다.처음 보면 헷갈릴 수 있는데, 사람의 고개 움직임으로 생각하면 쉽게 구분할 수 있습니다. ▣ PitchPitch는 고개를 위아래로 움직이는 회전입니다.사람이 "네"라고 대답하면서 고개를 끄덕이는 모습을 생각하면 됩니다.언리얼 엔진에서는 Y축을 기준으로 회전합니다.예를 들어 카메라로 위쪽이나 아래쪽을 바라볼 때 Pitch 값이 사용됩니다.Pitch = 위아래 회전 = Y축 회전 ▣ RollRoll은 고개를 좌우로 기울이는 회전입니다.고개를 갸웃하면서 "응?" 하는 모습을 생각하면 이해하기 쉽습니다.언리얼 엔진에서는 X축을 기준으로 회전합니다.캐릭터보다는 비행기나 드론처럼 몸체를 좌우로 .. 2026. 8. 14. 언리얼엔진5 C++ Actor 생명주기 주요 함수 정리 ▣ 언리얼 엔진에서 C++ Actor 클래스를 만들면 다음 함수들을 자주 사용하게 됩니다.InitializeComponent();PostInitializeComponents();BeginPlay();Tick(float DeltaTime);EndPlay(const EEndPlayReason::Type EndPlayReason);그리고 게임을 만들다 보면 Actor를 제거하지 않고 잠시 비활성화했다가 다시 사용하는 경우도 있습니다.예를 들어 Object Pool을 사용하는 총알이나 몬스터가 있습니다.이번 글에서는 각각의 함수가 언제 호출되고 어떤 작업을 작성하면 좋은지 최대한 간단하게 알아보겠습니다.먼저 전체 흐름을 보면 다음과 같습니다.Actor 생성 ↓Component 초기화InitializeCom.. 2026. 8. 13. 언리얼엔진5 C++ UE_LOG 사용법과 Actor 수만큼 로그가 출력되는 이유 ▣ 언리얼 엔진 C++로 기능을 만들다 보면 코드가 실제로 실행되고 있는지 확인해야 할 때가 많습니다.예를 들어 다음과 같은 내용을 확인하고 싶을 수 있습니다.함수가 제대로 호출됐는지현재 체력이 몇인지충돌한 액터가 누구인지BeginPlay가 몇 번 실행됐는지현재 Actor 인스턴스가 몇 개인지이럴 때 가장 간단하게 사용할 수 있는 것이 UE_LOG입니다.이번 글에서는 UE_LOG의 기본 사용법부터 FString, int32, float, FVector 같은 값을 출력하는 방법, 그리고 Actor의 BeginPlay에 UE_LOG를 작성했을 때 레벨에 배치된 Actor 개수만큼 로그가 출력되는 이유까지 정리해 보겠습니다.이 글은 2026년 8월 확인 기준 최신 정식 버전인 Unreal Engine 5.8을.. 2026. 8. 10. 언리얼엔진5 C++ 매크로란? ▣ 언리얼 엔진 C++ 코드를 처음 보면 일반적인 C++ 코드에서는 자주 보지 못했던 표현이 많이 등장합니다.UCLASS()class YOURPROJECT_API AMyActor : public AActor{ GENERATED_BODY()public: UPROPERTY(EditAnywhere) int32 Health = 100; UFUNCTION(BlueprintCallable) void PrintHealth();};UCLASS, GENERATED_BODY, UPROPERTY, UFUNCTION처럼 대문자로 작성된 코드가모두 함수처럼 보이지만 실제 C++ 함수는 아닙니다.이러한 코드를 매크로라고 합니다.이번 글에서는 일반 C++의 매크로가 무엇인지부터 시작해서 언리얼 엔진에서 .. 2026. 8. 7. 언리얼엔진5 AI 이벤트로 NPC 상황 자동 변경하기 ▣ 안녕하세요.지난 글에서는 안내 로봇의 상황을 Enum으로 구분하고, 현재 상황에 맞는 대사를 선택하도록 만들어 봤습니다.Welcome→ 방문객 환영Directions→ 길 안내Warning→ 위험 경고하지만 CurrentSituation 값은 개발자가 디테일 패널에서 직접 설정해야 했습니다.이번 글에서는 위험 구역에서 이벤트가 발생하면 안내 로봇이 자동으로 Warning 상태로 변경되도록 만들어 보겠습니다.플레이어가 위험 구역 안으로 들어가면 안내 로봇이 다음 문장을 출력합니다.위험 구역에 진입했습니다. 즉시 돌아오세요.플레이어가 위험 구역에서 나오면 로봇은 위험 발생 전의 상황으로 돌아갑니다.플레이어가 위험 구역에 들어감→ 위험 이벤트 발생→ 안내 로봇이 이벤트 수신→ Warning 상태로 변경→ .. 2026. 8. 5. 언리얼엔진5 C++ Actor 범위 진입 사운드 페이드 인·페이드 아웃 구현 (블루프린트 포함) ▣ 안녕하세요.이번 글에서는 플레이어가 특정 Actor의 범위 안으로 들어오면 소리가 서서히 커지고, 범위 밖으로 나가면 소리가 서서히 작아진 뒤 완전히 정지하는 기능을 만들어 보겠습니다.먼저 블루프린트로 구현한 뒤, 같은 기능을 C++ Actor 클래스로 만드는 방법까지 알아보겠습니다.전체 동작은 다음과 같습니다.플레이어가 충돌 범위 안으로 들어옴→ 사운드 재생 시작→ 볼륨 페이드 인플레이어가 충돌 범위 밖으로 나감→ 볼륨 페이드 아웃→ 페이드 아웃이 끝나면 사운드 정지 Audio Component의 Fade In 함수는 사운드를 재생하면서 일정 시간 동안 볼륨을 올려줍니다.Fade Out 함수는 일정 시간 동안 볼륨을 낮춘 뒤 Audio Component의 사운드를 자동으로 정지합니다.따라서 Fade.. 2026. 8. 4. 언리얼엔진5 AI 상황별 대화 선택 시스템 만들기 ▣ 안녕하세요.지난 글에서는 플레이어가 안내 로봇 가까이 다가오면 로봇 머리 위에 대화 위젯이 표시되도록 만들어 봤습니다.하지만 안내 로봇은 항상 같은 문장만 출력했습니다.안녕하세요. 무엇을 도와드릴까요?이번 글에서는 안내 로봇의 상황을 여러 개로 나누고, 현재 상황에 맞는 문장을 선택하도록 만들어 보겠습니다.예를 들어 안내 로봇의 상황을 다음과 같이 구분합니다.Welcome→ 방문객 환영Directions→ 길 안내Warning→ 위험 경고현재 상황이 Welcome이면 환영 문장을 출력합니다.Directions이면 길을 안내하고, Warning이면 위험 지역에 들어가지 말라는 문장을 출력합니다.전체 흐름은 다음과 같습니다.플레이어와 거리 확인→ 현재 상황 확인→ 상황에 맞는 대사 선택→ 대화 위젯에 표.. 2026. 8. 3. 언리얼엔진5 거리 감지 안내 로봇 만들기 2편 ▣ 안녕하세요.지난 글에서는 일정한 시간마다 플레이어와 안내 로봇 사이의 거리를 확인했습니다.플레이어가 가까이 오면 인사 메시지를 출력하고, 멀어지면 다시 대기 상태로 돌아가도록 만들었습니다.하지만 Print String으로 출력한 메시지는 테스트할 때는 편리하지만 실제 게임의 대화 표현으로 사용하기에는 부족합니다.이번 글에서는 안내 로봇의 머리 위에 대화 위젯을 추가해 보겠습니다.플레이어가 안내 로봇 가까이 다가오면 다음 메시지가 표시됩니다.안녕하세요. 무엇을 도와드릴까요?플레이어가 멀어지면 대화 위젯이 다시 사라집니다.전체 흐름은 다음과 같습니다.플레이어와 거리 확인→ 인사 거리 안에 있는지 판단→ 대화 위젯에 문장 입력→ 대화 위젯 표시→ 플레이어가 멀어지면 위젯 숨기기먼저 블루프린트로 구현하고, .. 2026. 7. 31. 언리얼엔진5 거리 감지 안내 로봇 만들기 1편 ▣ 안녕하세요.이번 글에서는 플레이어가 가까이 오면 인사하는 간단한 안내 로봇을 만들어 보겠습니다.일정한 시간마다 플레이어와 로봇 사이의 거리를 확인하고, 플레이어가 가까우면 인사합니다.플레이어 위치 확인→ 로봇과의 거리 계산→ 가까운지 판단→ 가까우면 인사→ 멀어지면 대기 상태로 전환같은 기능을 블루프린트와 C++ 두 가지 방법으로 만들어 보겠습니다.이 글은 2026년 7월 확인 기준 Unreal Engine 5.8로 작성했습니다. ▣ 이번에 만들 기능안내 로봇은 플레이어가 일정 거리 안으로 들어오면 다음 메시지를 출력합니다.안녕하세요. 무엇을 도와드릴까요?플레이어가 다시 멀어지면 다음 메시지를 출력합니다.플레이어가 멀어져 대기 상태로 돌아갑니다.중요한 점은 플레이어가 가까이 있는 동안 인사 메시지가.. 2026. 7. 30. 언리얼엔진5 C++ 플레이어 감지 전등 만들기 ▣ 안녕하세요.플레이어가 방 안으로 들어왔는지 감지해 전등을 켜도록 만들어 보겠습니다.플레이어가 감지 영역 안으로 들어오면 전등을 켜고, 감지 영역에서 나가면 전등을 끕니다.플레이어 감지→ 플레이어인지 확인→ 전등 켜기→ 플레이어가 나갔는지 확인→ 전등 끄기 블루프린트와 C++ 두 가지 방법으로 만들어 보겠습니다.이 글은 Unreal Engine 5.8을 기준으로 작성합니다. ▣ 예제의 에이전트 구조전등 주변에 Box Collision을 배치하고, 플레이어가 Box Collision 안으로 들어오거나 밖으로 나갈 때 발생하는 이벤트를 사용합니다.에이전트 구조로 정리하면 다음과 같습니다.감지→ 플레이어가 Box Collision에 들어옴판단→ 감지된 액터가 플레이어인가?행동→ Point Light 켜기결.. 2026. 7. 29. C++ RPG 만들기(C++ 핵심 개념) ▣ 언리얼 엔진에서 C++로 RPG를 만들기 전에 일반 C++의 핵심 개념을 먼저 정리해 보겠습니다. 1. C++ 프로그램의 기본 구조▣ C++ 콘솔 프로그램은 일반적으로 main 함수에서 실행을 시작합니다.#include int main(){ std::cout main 함수란?main은 C++ 프로그램의 시작 지점입니다.프로그램을 실행하면 운영체제가 main 함수를 호출하고, 중괄호 안의 코드를 위에서부터 순서대로 실행합니다.int main(){ // 프로그램에서 실행할 코드를 작성합니다. return 0;}int는 main 함수가 정수 값을 반환한다는 의미입니다.return 0;은 프로그램이 정상적으로 종료되었다는 값을 운영체제에 전달합니다.#include란?#include #incl.. 2026. 7. 28. 언리얼엔진5 블루프린트와 C++로 전등 에이전트 만들기 ▣ 이번에는 언리얼엔진5에서 가장 간단한 형태의 에이전트를 만들어 보겠습니다.에이전틱 AI라고 하면 LLM, 행동 트리, 자동 계획처럼 복잡한 기술부터 생각할 수 있습니다.하지만 처음에는 다음 구조만 이해하면 됩니다.상태 확인→ 판단→ 행동→ 결과 확인이번 예제에서는 방이 어두운지 확인하고, 어두우면 스스로 전등을 켜는 액터를 만듭니다.방이 어두운가?→ 어두우면 전등 켜기→ 밝으면 전등 끄기→ 결과 출력아직 센서나 LLM을 사용하는 완성된 에이전틱 AI는 아닙니다.에이전트가 상태를 확인하고 행동을 선택하는 가장 기본적인 구조를 이해하기 위한 첫 번째 예제입니다.이 글은 2026년 7월기준 Unreal Engine 5.8로 작성했습니다. ▣ 이번에 만들 기능전등 에이전트에는 다음 요소가 들어갑니다.Roo.. 2026. 7. 27. 언리얼엔진5 C++ 컴파일과 동기·비동기 에셋·레벨 로드 정리 ▣ 언리얼 엔진을 공부하다 보면 컴파일과 로드라는 표현을 자주 보게 됩니다.C++ 코드를 컴파일한다.블루프린트를 컴파일한다.셰이더를 컴파일한다.에셋을 동기 로드한다.에셋을 비동기 로드한다.레벨을 로드한다.모두 무언가를 준비한다는 점은 비슷하지만 실제 의미와 실행되는 시점은 다릅니다.컴파일은 작성한 코드나 그래프를 엔진이 실행할 수 있는 형태로 변환하는 과정입니다.로드는 디스크에 저장된 에셋이나 레벨 데이터를 실행 중인 메모리로 가져오는 과정입니다.따라서 다음 두 문장은 전혀 다른 작업을 의미합니다.C++ 컴파일소스 코드를 실행 가능한 바이너리로 변환에셋 로드저장 장치에 있는 에셋 데이터를 메모리로 가져옴이번 글에서는 컴파일과 로드의 차이를 먼저 알아보고, 하드 레퍼런스와 소프트 레퍼런스, 동기·비동기 에.. 2026. 7. 24. 언리얼엔진5 C++ 템플릿과 TArray, TMap 사용법 및 성능 비교 ▣ 언리얼 엔진 C++ 코드를 보다 보면 이름 앞에 T가 붙은 타입을 자주 볼 수 있습니다.TArray Scores;TMap ItemAmounts;TObjectPtr MeshComponent;TSubclassOf ActorClass; 그리고 함수를 호출할 때도 다음처럼 꺾쇠괄호 안에 타입을 작성하는 코드를 볼 수 있습니다.MeshComponent = CreateDefaultSubobject( TEXT("MeshComponent") ); 처음 언리얼 C++를 공부하면 다음과 같은 부분이 헷갈릴 수 있습니다.TArray 앞의 T는 무엇일까?는 왜 작성할까?TArray와 TArray은 무엇이 다를까?CreateDefaultSubobject는일반 함수와 무엇이 다를까?TArray와 TMa.. 2026. 7. 22. 언리얼엔진5 C++ ConstructorHelpers::FObjectFinder와 FClassFinder 사용법 ▣ 언리얼 엔진 C++ 코드를 보다 보면 다음과 같은 코드를 자주 볼 수 있습니다.static ConstructorHelpers::FObjectFinder MeshAsset( TEXT("/Game/Meshes/SM_TestCube.SM_TestCube"));if (MeshAsset.Succeeded()){ MeshComponent->SetStaticMesh(MeshAsset.Object);} 처음 보면 ConstructorHelpers::가 하나의 함수 이름처럼 보일 수 있습니다.하지만 ConstructorHelpers는 함수가 아니라 언리얼 엔진에서 제공하는 구조체입니다. ConstructorHelpers::FObjectFinder 여기서 ::는 C++의 범위 지정 연산자입니다.위 코드는 C.. 2026. 7. 21. 이전 1 2 3 4 ··· 31 다음