Unreal5 리슨 서버와 데디케이트 서버
·
Unreal
1️⃣ 개요언리얼이 제공하는 서버인 데디케이트 서버와 리슨 서버에 대해 알아보고자 한다.먼저 데디케이트 서버와 리슨 서버는한국의 온라인 게임이 사용하는 Persistent 서버(항상 운영되는 상태)와 다르게 콜솔 기반 게임에 적합하다.상용 게임에 이 서버들을 사용하기는 어렵다고 볼 수 있지만 배움의 차움에서 이를 알아보고자 한다. 2️⃣ 리슨 서버🔹액터액터의 경우 리플리케이트만 켜주면 공유된다.❓스태틱 메쉬는 그냥 뷰포트에 배치되면 공유되는데...스태틱 메쉬월드에 배치된 오브젝트는 기본적으로 클라이언트와 서버가 동일한 장면을 렌더링함하여리플리케이션을 켜지 않아도 보인다.블루프린트(동적 객체)동적인 객체나 블루프린트는 bReplicates를 활성화해야 클라이언트와 서버 간에 상태가 동기화되어서 클라이언트..
Unreal5 믹사모 애니메이션 강제 루트 잠금 적용시키기
·
Unreal
1️⃣ 개요언리얼을 사용하는 사람들은 믹사모를 한번쯤 들어보았을 것이다.믹사모는 다양한 캐릭터와 애니메이션을 제공해주는 사이트로 이를 "무료"로 받을 수 있기 때문이다. 그러나 믹사모를 사용하던 중 믹사모의 뼈대가 언리얼 기본 뼈대와 달라강제 루트 잠금을 적용할 수 없는 문제가 발생하였다. 2️⃣ 믹사모 루트 강제 잠금 적용믹사모의 뼈대는 root가 없고 Hips를 루트로 사용한다.그래서 루트를 잠그는 루트 강제 잠금을 사용하면 붕 떠있는 것 같은 모션이 나올 수 있다. 이와 관련하여 다음의 영상에서 인사이트를 얻을 수 있었다.Open RealityFix Mixamo Root Motion Animations in Unreal Engine | UE4​ 해당 영상 및 유튜브에 mixamo root motio..
Unreal5 나이아가라 이펙트와 사운드 사용하기
·
Unreal
1️⃣ 개요사용자에게 즐거움을 선사하는 FX인 VFX와 SFX의 C++ 사용법을 알아보고자 한다.이러한 FX는 일회성으로 발생하는 FX인지와 계속해서 발생을 해야하는 FX인지에 따라 코드가 달라진다. 일회성의 경우는 VFX와 SFX 자체를 스폰하는 방법을 사용할 수 있고다회성의 경우 컴포넌트를 생성하여 VFX와 SFX를 할당하고 활성화/비활성화하는 방법을 사용할 수 있다.이를 아래에서 순서대로 자세히 정리하고자 한다. 2️⃣ VFX일단 언리얼에는 Cascade와 Niagara 두가지의 이펙트가 존재한다.Cascade는 이전 언리얼에서 사용되던 VFX이고 Niagara는 언리얼5부터 언리얼이 밀고 있는 VFX이다.나이아가라를 알아보기 전 Cascade 이펙트도 사용할 수도 있으니 정리해보고 넘어가겠다.🔹..
Unreal5 미니맵 제작하기
·
Unreal
🔹개요언리얼에서 미니맵을 제작하는 방법에 대해 알아보자.맵의 모습을 담을 카메라와 이를 이미지로 바꾸어줄 렌더 타깃이 필요하고렌더한 이미지를 ui에 배치하면 된다.마지막으로 게임에서 볼 수 있는 이미지 마커를 설정하는 방법을 살펴보고자 한다. 🔹맵을 담을 카메라 생성하기언리얼에는 씬 캡처 2D라는 액터가 있다.이를 통해 ui에 배치할 렌더된 맵 영상을 찍을 수 있다.투영 타입을 Orthographic(직교)로 해주어서 Flat하게 찍을 수 있고직교 너비를 조정하여 깊이감을 조절해주자. 씬 캡처2D는 위와 같이 월드에 배치한 다음 블루프린트 이벤트에서 액터를 따라가도록 설정해줄 수 있다.💡Tip일반 표시 플래그를 통해 스켈레탈 메시를 비활성화하면플레이하는 스켈레탈 메시를 캡처하지 않도록 설정해줄 수 ..
Unreal5 C++ Enum
·
Unreal
//h 클래스 외부 선언UENUM(BlueprintType)enum class EDroneState : uint8 //uint8은 필수{ Start UMETA(DisplayName = "Start"), SelectMap UMETA(DisplayName = "SelectMap"), Fly UMETA(DisplayName = "Fly"), Crawl UMETA(DisplayName = "Crawl")};//h 클래스 내부 선언UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "State")EDroneState Estate;//cpp 사용enum 클래스를 다른 클래스에서 사용하기 위해 전방선언을 시도했다가 안되길래 찾아보았더니변수 선언 앞에다 적어주는 건 안되는..
Unreal5 3D 인터랙션 위젯
·
Unreal
📌 개요월드 상에 배치할 수 있는 인터랙션 3D 위젯을 만들어보고자 한다. 📌 3D 위젯 액터 제작먼저 월드에 배치한 3D 위젯 액터를 만들어주자.위젯 컴포넌트를 추가해준 후 위젯 클래스를 선택해주었다.이때 드로 사이즈가 작으면 위젯 전체가 안 나오니 충분히 키워주어야 한다. 📌 캐릭터/폰 클래스에 인터랙션 컴포넌트 추가이제 위젯과 인터랙션하기 위해서possess할 폰 또는 캐릭터 블루프린트에 WidgetInteraction 컴포넌트를 카메라 자식으로 추가해준다.(바라보는 방향으로 레이 트레이스를 쏘기 위해서) 디버그 표시는 켜주어야 다음과 같이 확인이 가능하다. 📌 입력 연결 이제 폰/캐릭터 블루프린트의 이벤트그래프로 가서실제 입력(빨간색 이벤트)을 위젯 상 입력(파란색 함수)에 연결해주어야 한..
Unreal5 UI 요소 사용법
·
Unreal
📌개요언리얼 블루프린트 위젯 요소 사용법에 대해 정리하고자 한다. 📌프로그래스 바C++로 바인딩할 경우 아래와 같다.//.h//전방 선언class UWidgetComponent;//헤더 내부UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI")UWidgetComponent* OverheadHPWidget; //캐릭터에 부착할 위젯 컴포넌트void UpdateOverheadHP(); //위젯을 업데이트해줄 함수virtual float TakeDamage( //위젯 업데이트 함수를 부를 함수 float DamageAmount, struct FDamageEvent const& DamageEvent, class AController* ..
Unreal5 블루프린트 움직이는 장애물 액터 제작하기
·
Unreal
📌 회전하는 액터1. Rotating Movement 컴포넌트 사용2. 이벤트 그래프 Add Actor Local Rotation➕ Plus▪ 축을 기준으로 회전 & 반대방향▪ 부딪혔을 때 캐릭터 날리기가만히 있으면 충돌이 뚫리는 현상(움직여야 충돌 인식이 되는 현상)→ Character Movement Component의 기본 동작 방식 때문여러 트릭이 있지만 일단 충돌이 되었을 때 날리는 등의 해결을 줄 수 있음📌 이동하는 액터1. 이동거리 기준 2. 무브먼트 컴포넌트에 보간3. 삼각함수 사용📌 추가 기능1. Overlap 이벤트Delay와 Set simulate Physics, Destroy Actor 등을 이용해 다양한 상호작용 액터를 만들 수 있음만일 스태틱 메시 오버랩 이벤트가 안 일어난..
Unreal5 블루프린트 캐릭터 만들기
·
Unreal
❗ New Knowledge▪ 내장된 입력 함수💡Tip ▪ 엔진 에디터 최적화실시간 꺼주고 엔진 퀄리티 낮음프레임 표시 → t.MaxFPS 30(t.MaxFPS 0 으로 하면 되돌릴 수 있음)▪ 회전축 팁yaw : 도리도리pitch : 끄덕끄덕roll : 갸우뚱📌 캐릭터 블루프린트 생성구분선 위에는 씬 컴포넌트로 화면에 보여주는 컴포넌트구분선 아래는 액터 컴포넌트 ❓ 스프링 암 왜 사용할까?캡슐 콜라이더가 캐릭터의 충돌과 움직임 중심이기 때문!캡슐을 기준으로 메쉬와 카메라가 따라 움직이면 충돌 처리와 이동이 깔끔(캐릭터의 동작이 자연스럽고 안정적) 📌 IA와 IMCIA는 입력 동작 자체를 정의하는 개념IMC는 해당 동작을 어떻게 설정할 것인지를 정의하는 개념  (해당 프로젝트 에셋 직진 → Y기준 ..
Unreal5 블루프린트 열거형으로 가위바위보 게임 구현
·
Unreal
📌 블루프린트 열거형 만들기 📌 가위바위보 게임🔸입력 매핑 🔸컴퓨터 랜덤 선택 🔸게임 로직  🔸실행 화면