분류 전체보기 58

2026-7-3 TIL

TIL: Unreal Engine FQuat와 FRotator의 차이점, 장점과 단점 이해하기오늘 배운 내용오늘은 Unreal Engine에서 회전을 표현할 때 사용하는 FRotator와 FQuat의 차이점에 대해 정리했다.처음에는 둘 다 회전을 나타내는 자료형이라서 차이가 크게 와닿지 않았다.하지만 정리해보면 다음과 같다.FRotator→ Pitch, Yaw, Roll 세 개의 각도로 회전을 표현하는 방식FQuat→ X, Y, Z, W 네 개의 값으로 회전을 표현하는 쿼터니언 방식둘 다 회전을 나타내지만 사용하는 목적이 다르다.FRotator는 사람이 읽고 이해하기 쉬운 회전 표현이고, FQuat는 내부 계산이나 보간에서 더 안정적인 회전 표현이다.이번 정리의 핵심은 다음과 같다.FRotator→ 보기..

카테고리 없음 2026.07.03

언리얼 팀 프로젝트(멀티플레이) - 제시어 도형으로만들고 맞추기(1)

Unreal 테스트 배치 시스템 구현 정리오늘은 Unreal 프로젝트에서 테스트용 캐릭터 입력과 도형 배치 시스템의 기본 흐름을 구현했다.목표는 플레이어가 도형을 선택하고, 화면 앞에 프리뷰를 띄운 뒤, 원하는 위치와 회전값으로 서버에 설치 요청을 보내는 구조를 만드는 것이었다.1. 테스트 캐릭터 입력 구성먼저 BP_TestCharacter가 사용할 테스트 Pawn 기반 C++ 클래스를 구성했다.추가한 기본 구성은 다음과 같다.CapsuleComponentMeshComponentSpringArmComponentCameraComponentFloatingPawnMovementEnhanced Input용 MappingContextMoveActionMoveUpActionLookAction이동 입력은 클라이언트에..

unreal 8기 2026.06.30

2026-6-23 TIL

TIL: Unreal Engine 모듈 간 상호작용과 독립 플러그인 생성 및 검증 이해하기오늘 배운 내용오늘은 Unreal Engine에서 서로 다른 모듈이 어떻게 상호작용하는지, 그리고 프로젝트 안에 독립 플러그인(Temporary) 을 직접 구성하고 프로젝트에 연결하는 과정을 정리했다.처음에는 Primary 모듈, Test 모듈, Temporary 플러그인이라는 표현이 헷갈렸다.하지만 정리해보면 다음과 같다.ModuleAndPlugin 모듈→ 현재 프로젝트의 주 게임 모듈Test 모듈→ 별도로 만든 실습용 Runtime 모듈Temporary 플러그인→ 프로젝트의 Plugins 폴더 아래에 만든 독립 플러그인이번 실습의 핵심은 단순히 클래스를 만드는 것이 아니라, 모듈과 플러그인이 서로 어떻게 분리되고..

unreal 8기 2026.06.23

2026-6-22 TIL

언리얼 C++ 새 모듈(Test) 생성 및 등록오늘 배운 내용오늘은 언리얼 C++ 프로젝트에서 새로운 모듈인 Test 모듈을 직접 생성하고, 빌드 대상에 등록하는 과정을 정리했다.새 모듈은 언리얼 에디터 안에서 만드는 것이 아니라 프로젝트 폴더의 Source 폴더 안에서 직접 생성해야 한다.즉, Content 폴더가 아니라 Source/Test 경로에 모듈 폴더와 필수 파일을 만들어야 한다.1. 새 모듈(Test) 생성 위치새 모듈은 프로젝트 폴더 안의 Source 폴더에 만든다.예시 구조는 다음과 같다.프로젝트폴더/├─ Source/│ ├─ 프로젝트명/│ │ ├─ 프로젝트명.Build.cs│ │ ├─ 프로젝트명.h│ │ └─ 프로젝트명.cpp│ ││ └─ Test/│ ├─ Tes..

unreal 8기 2026.06.22

2026-6-19 TIL

TIL: Unreal Engine 프로젝트 구조와 플러그인의 특성 이해하기오늘 배운 내용오늘은 Unreal Engine 프로젝트 구조에서 Config, Content, Source, Plugins, .uproject 파일이 각각 어떤 역할을 하는지, 그리고 그중에서도 플러그인(Plugin) 이 어떤 특성을 가지는지 자세히 정리했다.이번 과제의 핵심은 단순히 폴더 이름을 외우는 것이 아니라, Unreal Engine 프로젝트가 어떤 단위로 구성되고, 기능을 어떻게 분리해서 관리할 수 있는지 이해하는 것이다.특히 Plugin은 프로젝트에 기능을 추가하는 독립적인 패키지이며, 하나 이상의 모듈과 콘텐츠, 설정 파일을 포함할 수 있다.핵심은 다음과 같다.프로젝트→ 게임 전체를 실행하는 가장 큰 단위모듈→ C++..

unreal 8기 2026.06.19

2026-6-18 TIL

TIL: Unreal Engine 상속과 인터페이스, NetUpdateFrequency, NetDormancy를 통한 네트워크 최적화 이해하기오늘 배운 내용오늘은 Unreal Engine에서 상속과 인터페이스의 차이, NetUpdateFrequency의 의미, ForceNetUpdate(), 클라이언트 보간 처리, 그리고 NetDormancy를 사용하는 이유에 대해 정리했다.처음에는 상속과 인터페이스가 모두 기능을 재사용하거나 공통 기능을 만들기 위한 개념처럼 보여서 헷갈렸다.하지만 정리해보면 상속은 부모 클래스의 기능과 속성을 물려받는 구조이고, 인터페이스는 서로 다른 클래스들이 같은 기능을 가지고 있다고 약속하는 구조다.또 NetUpdateFrequency, ForceNetUpdate(), NetDo..

unreal 8기 2026.06.19

2026-6-17 TIL

TIL: Unreal Engine C++ OnRep 함수와 Blueprint RepNotify 사용 기준 이해하기오늘 배운 내용오늘은 Unreal Engine 멀티플레이에서 C++ OnRep_함수와 Blueprint RepNotify 함수를 언제 사용하면 좋은지 정리했다.둘 다 서버에서 변경된 replicated 변수 값을 클라이언트가 받았을 때 특정 함수를 실행할 수 있게 해주는 기능이다.하지만 실제로 사용할 때는 성격이 조금 다르다.핵심은 다음과 같다.게임 규칙에 영향을 주는 중요한 상태값→ C++ OnRep 함수UI, 애니메이션, 이펙트처럼 화면 표현 중심의 값→ Blueprint RepNotify 함수한 번만 발생하는 알림이나 이벤트→ RPC즉, 무조건 RepNotify를 쓰는 것이 아니라 이 값..

unreal 8기 2026.06.17

2026-6-16 TIL

TIL: Unreal Engine 네트워크 초기화 흐름과 NetLoadOnClient 이해하기오늘 배운 내용오늘은 Unreal Engine 멀티플레이에서 GameState의 BeginPlay 동기화 흐름, PlayerController가 Pawn을 Possess하는 과정, Owner 복제, PostNetInit, 그리고 NetLoadOnClient 속성의 의미를 정리했다.핵심은 서버와 클라이언트가 같은 시점에 모든 객체를 동시에 가지는 것이 아니라, 서버에서 먼저 상태를 만들고 그 상태가 복제를 통해 클라이언트에 전달된다는 점이었다.또 레벨에 미리 배치된 액터와 게임 중 서버가 Spawn하는 액터는 네트워크 설정을 다르게 봐야 한다는 점도 중요했다.4. HandleBeginPlay()의 의미HandleB..

unreal 8기 2026.06.16

2026-6-15 TIL

TIL: Unreal Engine Server RPC 검증과 Reliable RPC 이해하기오늘 배운 내용오늘은 Unreal Engine 멀티플레이에서 Server RPC에 사용하는 WithValidation, _Implementation(), _Validate(), Reliable RPC의 의미를 정리했다.핵심은 RPC가 단순히 함수를 호출하는 것이 아니라, 네트워크를 통해 서버와 클라이언트 사이에서 실행 위치와 검증 과정을 구분한다는 점이었다.특히 Server RPC는 클라이언트가 서버에게 요청을 보내는 구조이기 때문에, 서버 입장에서는 이 요청이 정상적인지 확인할 필요가 있다.클라이언트는 사용자가 조작할 수 있는 영역이기 때문에 서버는 클라이언트가 보낸 값을 그대로 믿으면 안 된다.그래서 Serve..

unreal 8기 2026.06.15

2026-6-11 TIL

TIL: Unreal Engine 접속 알림과 NetMulticast RPC 이해하기오늘 배운 내용오늘은 Unreal Engine 멀티플레이에서 플레이어가 접속했을 때 모든 클라이언트에 알림을 출력하는 흐름을 정리했다.핵심은 GameMode, GameState, PostLogin, NetMulticast RPC의 역할을 구분하는 것이었다.처음에는 GameMode에서 바로 Multicast RPC를 호출하면 될 것 같았다.하지만 GameMode는 서버에만 존재하기 때문에 클라이언트에 직접 알림을 전달하는 용도로는 적절하지 않았다.그래서 서버에서 접속을 감지하는 역할은 GameMode가 맡고, 모든 클라이언트에 알림을 전달하는 역할은 GameState가 맡는 구조로 구현해야 한다.1. GameMode는 서버..

unreal 8기 2026.06.11