Unreal 15

[UE5] Blueprint 프로젝트를 C++로 만들어보기 (2)

전에 생성한 Bluprint 캐릭터의 설정을 확인하며 cpp로 설정해 준다. character controller 설정 capsule conponent collision 설정 Mesh Transform 설정 Animation Mode 설정 Mesh Collision 설정 Mesh 설정이전 글의 Actor와 마찬가지로 Skeletal Mesh의 레페런스를 복사하여 cpp에 넣어준다. CharacterBase.cpp// Fill out your copyright notice in the Description page of Project Settings.#include "Character/MABCharacterBase.h"#include "Components/CapsuleComponent.h"// Sets..

[UE5] Transform Scale과 Shape Extent의 차이

collision을 다루다가 scale과 extent가 겉으로 보기에는 비슷해보여 궁금해졌다.scale은 자식에 영향을 미친다는 점 외에 어떤 차이가 있는지 궁금하여 알아보았다. 1. scale은 Transform의 일부 / extent는 Collision의 Shape의 고유 속성이다. 2. scale은 자식계층을 비롯한 구조 전체에 영향을 준다 / extent는 독립적이라 충돌 범위에만 영향을 준다. 3. extent는 기본적으로 렌더링X. CollisionDebug를 해야만 렌더링된다. extent는 오직 충돌 처리 범위만을 늘려야 할 때 사용을 권장한다고 한다. 실제 렌더링 과정에는 영향이 없고 충돌 범위만 늘어나기 때문에 사용한다. 또한 자식 계층에 대해 독립적이라 안전하게 사용 가능하다. ..

[UE5] Blueprint 프로젝트를 C++로 만들어보기 (1)

게임 모드 - 캐릭터 - 플레이어 컨트롤러 - 액터 순으로 생성1. GameModeBase 생성 Game 폴더를 만들어 안에 넣어주고, 상위 경로를 include에 추가해준다. 2. 모듈 추가하기프로젝트이름.Build.cs 파일에 다음을 추가해준다. PublicIncludePaths.AddRange(new string[] { "프로젝트이름" });이 때, 빌드하면 컴파일 오류가 뜨는데 이를 라이브코딩으로 리로드 해야 한다. 엔진 끄고 빌드하면 계속 오류가 난다. 3. 플레이어 컨트롤러, 캐릭터 추가1) 플레이어 컨트롤러 2) 캐릭터 - 베이스용 캐릭터 추가플레이어와 npc 등 모든 캐릭터의 베이스가 될 캐릭터 3) 캐릭터 - 플레이어용 캐릭터 추가위에서 생성한 CharacterBase를 추가한다..

[UE5] Dedicated server 전용 서버 독학하기 1) 공식 문서 튜토리얼

1. 어떤 부분을 리플리케이트 할지 구분하기어떤 자원을 공유&동기화 할 것인지 구분해야 한다. 필요한 자원을 구분하여, 서버 비용을 최적화하는 것이 개발 측과 게임 플레이 모두 영향을 미치기 때문에 매우 중요한 부분이라고 생각한다.  2. Listen server / Dedicated server 가장 큰 차이는, 플레이어가 서버가 되는가?이다. Listen server는 플레이어가 서버가 되어 서버를 호스팅 하여 다른 플레이어들(client) 간의 자원을 관리한다. 실제 플레이중에 서버를 통하여 동기화되기 때문에 서버가 된 플레이어가 유리하다.  Dedicated server는 전용 서버가 따로 존재하여 참여하는 플레이어들은 모두 client이다. 그렇기 때문에 Listen server와는 다르게 공정..

[UE5] !!반환을 하는 이유

Unreal source code 중, 다음 코드를 발견했다. 왜 Object가 아닌 !!Object를 반환할까 궁금했다. 결국 같은 결과가 아닌가?싶었다.  bool Succeeded() const { return !!Object; } 결론적으로, !!를 사용하는 이유는 Object의 포인터가 아닌 안전하게 bool값을 명시적으로 반환하기 위해서라고 한다. 그냥 Object를 반환하여도 같은 결과를 나타낼 수 있지만,bool을 반환한다는 의도를 명확히 하고, 타입 안정성을 보장하려는 목적이라고 한다.