엔진
[Unreal] 멀티플레이 개념잡기 Replicated
정의 일반적인 게임들은 Steam에 연동하는 등의 플랫폼 작업이 뒤따르거나, DB에 현재 상태의 값을 저장하는 등 서버로서 필요한 작업이 더욱 많다. 다만 이러한 부분은 일단 제쳐두고 별다른 save data 없이 단판 게임으로서 멀티플레이 게임을 어떻게 만들 것인지 부터 생각해보자. 개인적으로는 dedicated server를 연습하기 위해 멀티플레이 개념을 잡고 있으므로 리슨 서버(listen server)에 대해서는 별도로 다루지 않는다. 참고로 Editor에서 dedicated server를 이용해 여러 클라이언트를 띄우려면 아래와 같이 설정하면 된다. Replicated 속성 적용하기 기본적으로 위의 그래프를 보면 replicated 속성은 아래 구조체에 적용할 수 있다. - GameSt..
그래픽스 파이프라인 (게임 엔진 관점)
3D 그래픽을 사용하는 게임들이 포함하고 있는 모듈들. - 사용자 입력(User Input) - 자원 관리(Resource Management) - 그래픽 로딩과 렌더링(Loading and Rendering Graphics) - 스크립트 해석과 실행(Interpreting and Executing Scripts) - 음향 처리(Playing Sound Effects) - 인공 지능(Artificial Intelligence) 위의 소스 코드 모듈은 집합적으로 게임 엔진(Game Engine)을 구성한다. 게임 엔진의 구성 객체의 표현과 렌더링 렌더링(Rendering)이란 3D 게임 세계의 객체들을 컴퓨터의 화면(2D)으로 그리는 것, 또는 그리는 과정이다. 메시(Mesh)는 게임 공간 또는 게임 세계..
[Unreal] C++ 버전 변경(C++ 20기능 사용) 방법과 모듈
언리얼에선 디버그 속성 통해 전체 .sln 파일에 대해 언어를 지정 할 수가 없다. UE 5 기준 전체 언리얼 모듈들은 C++ 17버전으로 작성 되어있다, 따라서 20 버전으로 업그레이드 한 후 참조할 때 에러가 날 수 있다. 각 모듈 Build.cs 파일 내에 // CppStandardVersion.Latest 즉 최신 버전 설정 시 17 버전으로 설정 됨. CppStandard = CppStandardVersion.Cpp17; // C++ 20 기능 사용하고자 할 때 아래와 같이 작성하면 된다. CppStandard = CppStandardVersion.Cpp20; 아래는 현재 사용하고 있는 직접 구현한 모듈들이다. Objects 같은 경우엔 탄알(파티클 이펙트) Niagara System을 사용해야..
[Unreal] 마우스 방향을 따라가는 총기 애니메이션 (Aim Offset)
Animation에는 Aim Offset과 Aim Offset1D가 존재한다. 가장 큰 차이점은 파라미터 개수의 차이다. 에임 오프셋은 하나의 애니메이션이기 때문에 애님 인스턴스에서 설정 해줘야한다. 가장 눈여겨봐야할건 Additive Settings이다 Aim Offset과 구성할 애니메이션 Sequence이 Preview Base Pose가 일치 해야한다. 애니메이션 Sequence 내 Additive Anim Type을 Mesh Space와 Base Pose Type을 Selected animation frame으로 설정하는것도 중요하다. 가운데, 가운데 상, 가운데 하, 오른쪽, 오른쪽 상, 오른쪽 하, 왼쪽, 왼쪽 상, 왼쪽 하가 각각 구성 후 추가한다. Horizontal Axis을 Yaw로 ..
[Unreal] RootComponent 루트 컴포넌트
루트 컴포넌트는 충돌 인식과 월드 스페이스에서 오브젝트의 위치를 결정하고 항상 충돌을 탐지하는 컴포넌트(메쉬(Skeletal, Static) , 충돌체)여야 한다. 메쉬 컴포넌트를 설정했을 시 Mobility라는 항목이 추가된걸 확인해 볼 수가 있다, 이는 크게 3개로 나뉜다. 추가적으로 Set Simulate Physics를 할 시 무조건 Movable이여야 한다. Static > 맵에서 움직이진 않고 라이트닝 또한 인게임 중 위치를 바꿀 수가 없다. Stationary > 맵에서 움직이진 않지만 라이트닝 위치를 인게임에서 바꿀 수가 있다. Movable > 맵과 라이트닝 동일하게 움직일 수가 있다. 참고 : https://docs.unrealengine.com/4.26/en-US/BuildingWor..
[Unity] 메인&UI 카메라 2개 동시에 설정
카메라를 설정하기 위해선 UI 카메라가 메인 카메라보다 앞으로 와야한다. 3D로 카메라 전환 후 비교. 캔버스를 카메라 모드로 전환한 후 UI 카메라를 붙여야한다. 하지만, 문제점이 발생 할 수가 있다 예로 들어서 메인 카메라에서 오브젝트를 렌더링 할 시 UI와 같이 표현하고자 할텐데 UI 카메라가 비추는 깊이와 사물 (오브젝트) 를 제한둬야한다, UI 카메라를 오직 UI만 그리고 깊이 0으로 설정하고 메인 카메라를 -1로 설정한다. (수가 작을 수록 뒤로 감)