< '언리얼엔진5' 태그의 글 목록

언리얼엔진5 28

[UE5] FPS 에임 오프셋 만들기 (캐릭터 상체 상하 움직임)

레퍼런스 https://youtu.be/jHM7JzsNyvQ     원리는 간단하다. aim offset 1D를 통해  마네킹의 spine_02 를 -90부터 90까지 변환시켜준다. 단지 헤멧던 원리의 부분은 후반의 블루프린트 부분이었는데, base aim rotation(컨트롤러가 바라보는 방향의 rotation 값) 을 가져와서 pitch 가  180 이상이면 그대로 적용하고, 180 이하이면 -360 값을 해 주는 부분이었다.   FRotator APawn::GetBaseAimRotation() const{ // If we have a controller, by default we aim at the player's 'eyes' direction // that is by default Con..

[UE5] 구글 시트 불러와서 JSON 파싱하기

프로젝트를 하다 구글 시트에서 데이터를 불러와야 할 일이 생겼다. 어찌어찌 GPT 의 도움을 받아 구현에 성공했지만 완전히 이해하지 못한 것 같아 블로그에 따로 정리하려 한다.   오늘 가져올 시트는 아래와 같다.   // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "HttpModule.h"#include "Interfaces/IHttpRequest.h"#include "Interfaces/IHttpResponse.h"#include "Json.h"#include "JsonU..

[이득우의 언리얼 프로그래밍 Part3 필기] 12. 물리 움직임 리플리케이션

캐릭터 리플리케이션 -> RPC 사용액터 리플리케이션은 프로퍼티 리플리케이션을 사용한다.   [언리얼엔진 5 공식문서] Networked Movement in the Character Movement Component캐릭터 무브먼트 컴포넌트는 걷기, 낙하, 수영, 비행 등 휴머노이드 캐릭터의 일반적인 이동 모드가 포함된 캡슐화된 이동 시스템을 제공하는 액터 컴포넌트입니다. 캐릭터 무브plug-in-baby.tistory.com  움직임 리플리케이션을 위한 서버의 준비 [ReplicatedMovement] 서버에서 SimulatedProxy로 보내는 움직임 정보를 기록한 멤버 변수OnRep_ReplicatedMovement 로 이벤트 함수 호출함일반 움직임 물리 움직임의 리플리케이션을 모두 처리하는 용도로..

[이득우의 언리얼 프로그래밍 Part3 필기] 11. 움직임 리플리케이션

공식 문서 Understanding Networked Movement In The Character Movement Component For Unreal Engine | Unreal Engine 5.4 Documentation | EpicDetailed explanation of how the Character Movement Component handles networked movementdev.epicgames.com 해석본 일부 [언리얼엔진 5 공식문서] Networked Movement in the Character Movement Component캐릭터 무브먼트 컴포넌트는 걷기, 낙하, 수영, 비행 등 휴머노이드 캐릭터의 일반적인 이동 모드가 포함된 캡슐화된 이동 시스템을 제공하는 액터 컴포넌트..

[UE5] Networked Movement in the Character Movement Component

캐릭터 무브먼트 컴포넌트는 걷기, 낙하, 수영, 비행 등 휴머노이드 캐릭터의 일반적인 이동 모드가 포함된 캡슐화된 이동 시스템을 제공하는 액터 컴포넌트입니다. 캐릭터 무브먼트 컴포넌트는 강력한 네트워크 게임플레이 통합 기능도 제공합니다. 기본 이동 모드는 모두 기본적으로 리플리케이트되도록 제작되었으며, 개발자가 커스텀 네트워크 이동을 만들 수 있는 프레임워크를 제공합니다. 캐릭터 무브먼트의 기본UCharacterMovementComponent 는 ACharacter 액터 클래스 및 거기서 파생된 모든 블루프린트에 프리태치되어 제공됩니다. TickComponent 함수 도중 UCharacterMovementComponent 는 PerformMovement 를 호출하여 현재 사용중인 이동 모드와 플레이어의 ..

[이득우의 언리얼 프로그래밍 Part3 필기] 10. 캐릭터 공격 구현 개선

패킷 렉이 생길 때 입력이 서버로 전달되는 과정에서 시간이 오래 소요서버에서 클라이언트로 전달되는 과정에서 또 소요애니메이션이 재생되지 않고 대기하는 시간이 길어짐      당연하게도 서버와 클라이언트의 시간은 차이가 나게 된다. 따라서GetWorld()->GetTimeSeconds() 대신 GetWorld->GetGameState()->GetServerWorldTimeSeconds() 를 사용해야 서버의 시간을 이용해 판정을 할 수 있다. 최적화FVector_NetQuantize 데이터를 전달할 때 벡터 구조체를 전달하는데, 벡터의 경우에는 float 세개로 구성되어있기 떄문에 12바이트(32, 32, 32)를 차지한다. 따라서 높은 정밀도가 필요하지 않은 경우에는 작은 사이즈로 압축해서 보낸다.이를 ..

[이득우의 언리얼 프로그래밍 Part3 필기] 9. 캐릭터 공격 구현

캐릭터의 공격 플로우   네트웍 멀티플레이의 구현을 위한 4원칙 ++)3. 중요한 정보 -> 클라이언트가 재접속한 상황에서 접속이 끊어지지 않은 것처럼 진행이 되어야 함. 이때 필요한 데이터들이 중요한 데이터들이다. 4. 가급적이면 멀티캐스트보다 Client RPC 를 사용해라  네트웍 멀티플레이을 위한 공격 기능 구현 기획  C++ 에서 프로퍼티 리플리케이션의 이벤트 함수를 사용하는 경우에는 클라이언트에서만 호출되고 서버에선 자동으로 호출되지 않기 때문에 서버 로직의 경우 명시적으로 함수를  호출 해주어야 한다. (서버에서 프로퍼티가 변경됌 -> 연결된 클라이언트들에게 프로퍼티 리플리케이션 됌 -> 서버에서는 해당 함수의 로직이 실행 안됌 -> 따라서 서버 또한 같은 로직을 구현해 주기 위해선 명시적으..

[이득우의 언리얼 프로그래밍 Part3 필기] 8. RPC 기초

RPC(Remote Procedure Call) 이란?원격 프로시저(함수) 호출의 약자원격 컴퓨터이 있는 함수르 호출할 수 있도록 만든 통신 프로토콜네트웍 멀티플레이에서 서버와 클라이언트간에 빠르게 행동을 명령하고 정보를 주고받는 데 사용언리얼 엔진에서 클라이언트에서 서버로 통신하는 유일한 수단을 제공한다.  ++)오너십을 가지는 액터의 경우 클라이언트에서 서버로 명령을 내릴 수도 있음  https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Networking/Actors/RPCs/ RPC네트워크를 통한 함수 리플리케이션 지정하기 입니다.docs.unrealengine.com Client RPC 개요서버에서 클라이언트로 호출하는 RPC이를 활용해 특..