본문 바로가기

분류 전체보기

(152)
[UE Tips] Asset, TSubclassof, CDO, static class의 차이 Asset정의에셋은 언리얼 엔진에서 게임을 구성하는 모든 리소스를 의미여기에는 메시(mesh), 텍스처(texture), 머티리얼(material), 사운드(sound), 애니메이션(animation), 블루프린트(Blueprint), 레벨(level) 등이 포함 특징에셋은 콘텐츠 브라우저(Content Browser)에서 관리되며, 프로젝트에 필요한 모든 리소스를 저장하고 조직화에셋은 .uasset 파일 형식으로 저장게임 플레이 도중에 동적으로 로드하거나 언로드할 수 있음 사용 예시새로운 캐릭터 모델을 추가하기 위해 메시와 텍스처 에셋을 임포트사운드 에셋을 사용하여 배경 음악이나 효과음을 재생   TSubclassOf정의TSubclassOf는 언리얼 엔진의 템플릿 클래스로, 특정 클래스의 서브클래스 타..
[Unity Tips] JWT를 사용하여 인증과 검증하기 Unity에서 게임 개발 시 JWT(JSON Web Token)를 사용하여 사용자 아이디를 인증하고 검증하는 과정은, 주로 게임 내 사용자 인증 및 세션 관리에 활용됩니다. 게임 개발에서는 로그인 시스템을 통해 사용자를 식별하고, 사용자의 데이터를 보호하며, 게임 서버와 안전하게 통신할 수 있어야 합니다. 이 과정에서 JWT가 중요한 역할을 합니다.  JWT를 활용한 사용자 인증 및 검증 과정사용자 로그인 요청:사용자가 게임에 로그인하려고 하면, 클라이언트(게임 앱)에서 서버로 로그인 요청을 보냅니다. 이 요청에는 사용자의 아이디와 비밀번호 등의 자격 증명이 포함됩니다.서버에서 JWT 발급:서버는 해당 사용자의 자격 증명을 확인합니다. 자격 증명이 올바른 경우, 서버는 그 사용자에 대한 정보를 담은 JW..
[UE Tips] 언리얼엔진 물리 (Add Impulse, Add Force 차이) 팁 1. Add Impulse (충격 가하기)즉각적인 힘 적용: Add Impulse는 물체에 순간적이고 즉각적인 힘을 가합니다. 이는 물체의 속도(운동량)를 즉시 변경합니다.단위: 충격량은 kg·m/s로 측정되며, 이는 힘(N)과 시간(s)의 곱입니다.사용 시점: 폭발, 충돌, 점프 등 순간적인 이벤트에서 사용됩니다.특징:질량에 관계없이 동일한 속도 변화를 일으킵니다.한 번의 호출로 즉각적인 반응을 얻습니다.예제:캐릭터가 점프할 때 순간적으로 위로 튀어오르는 힘을 가함.폭발로 인해 주변 물체가 순간적으로 멀리 날아가는 효과.2. Add Force (힘 가하기)지속적인 힘 적용: Add Force는 물체에 지속적이고 프레임마다 힘을 가합니다. 이는 물체의 가속도를 변경하여 서서히 속도를 증가시킵니다.단위: ..
[UE Tips] 언리얼 폴더 정리하는 방법 언리얼에는 폴더링을 쉽게 할 수 있도록 Set Color와 Add to Favorite 기능을 제공하고 있다.Favorite 기능을 사용하면 다음과 같이 일반 컨텐츠 폴더이외에 Favorites 탭을 사용할 수 있다.
[Study] Part 3 - 캐릭터 무브먼트의 확장 (13/15) 정리캐릭터 무브먼트의 확장네트웍 멀티플레이 게임을 구현하는 여러 방법의 이해캐릭터 클래스에 설정된 캐릭터 무브먼트 컴포넌트를 확장하는 방법의 학습캐릭터 무브먼트 클래스에 관련된 클래스를 확장해 새로운 움직임 기능을 추가하는 방법의 학습 캐릭터 무브먼트 컴포넌트 | 언리얼 엔진 5.1 문서 | Epic Developer Community 고급 토픽 참고네트웍 멀티플레이 텔레포트 기능을 구현하는 방법두 가지 시나리오CharacterMovementComponent에 텔레포트 명령을 위한 RPC 혹은 프로퍼티 리플리케이션을 새롭게 설계해 추가 구현CharacterMovementComponent가 사용하는 RPC 기능에 텔레포트 기능을 추가 선언하고, 몇몇 중요한 가상 함수를 override하여 구현1번의 경우 ..
[Study] Part 3 - 물리 움직임 리플리케이션 (12/15) 정리물리 움직임 리플리케이션액터의 물리적인 움직임을 리플리케이션하는 플로우와 소스 코드의 이해Simulate Proxy로 동작하는 캐릭터에서 움직임을 처리하는 방식의 이해  액터의 리플리케이션 플로우프로퍼티 리플리케이션을 사용해 움직임 정보를 전송하고, 클라이언트는 받을 때마다 이를 적용함  움직임 리플리케이션을 위한 서버의 준비ReplicatedMovement서버에서 SimulatedProxy로 보내는 움직임 정보를 기록한 멤버 변수OnRep_ReplicatedMovement로 이벤트 함수 호출함일반 움직임과 물리 움직임의 리플리케이션을 모두 처리하는 용도로 활용됨FRepMovement 구조체의 주요 멤버 변수위치와 회전 : 컴포넌트의 현재 위치와 회전데이터 정밀도 설정 : 위치, 회전, 속도의 데이터..
[Study] Part 3 - 움직임 리플리케이션 (11/15) 정리움직임 리플리케이션네트웍 멀티플레이에서 안정적으로 캐릭터 움직임을 동기화하는 플로우의 이해움직임 리플리케이션에 관련된 언리얼 소스코드 분석움직임 리플리케이션을 디버깅하는 방법의 학습  캐릭터 움직임의 리플리케이션 플로우클라이언트의 입력 정보를 서버로 보내고 서버에서 확인 후 수정을 거침 네트웍 캐릭터 무브먼트에 관한 언리얼 공식 문서입력을 하면 입력을 원하는 가속도로 변환해서 PerformMovement를 호출해서 이동 계산을 진행한다는 것.매 틱마다 진행된다.ACharacter는 APawn에서 파생되었지만 단순히 캐릭터 이동 컴포넌트가 추가된 폰이 아니다. UCharacterMovementComponent의 네트워크 리플리케이션을 진행할 수는 있지만 폰에다가 다른 무브먼트 컴포넌트를 부착한다고 AC..
[Study] Part 3 - 캐릭터 공격 구현 개선 (10/15) 정리네트웍 멀티플레이를 클라이언트의 반응성을 높이는 구조로 설계하는 방법의 학습강화된 클라이언트 역할에 맞서 서버쪽 검증 처리를 강화하는 방법의 학습네트웍 통신 전송양을 줄이는 여러 기법의 학습 현재 코드의 캐릭터 공격 구현의 문제점클라이언트의 모든 행동은 서버를 거친 후에 수행되도록 설계되어 있음통신 부하가 발생하는 경우 사용자 경험이 나빠짐의도적으로 패킷 렉을 발생 시킨 후 결과 확인  [PacketSimulationSettings]PktLag = 500DefaultEngine.ini  의도적으로 패킷 렉을 발생시킨 결과 기존에 구현한 공격 기능의 리뷰렉이 발생하는 경우 클라이언트의 반응이 많이 느려지는 문제가 발생 서버로부터 입력에 대한 응답이 올 때까지 대기하고 있어야한다.서버에서 모든 것을 처리..