언리얼엔진
-
[UE5 | FPS] 수평 FOV와 수직 FOV, 그리고 뷰모델언리얼엔진/FPS 프로젝트 2024. 5. 8. 19:45
FPS에서 FOV값은 마우스 감도 다음으로 중요한 옵션이 아닐까 싶다.FOV가 너무 좁으면 주변 정보를 얻기 어렵고, 너무 넓으면 적이 작게보여서 조준하기가 어려워진다.따라서 본인에게 맞는 적절한 값을 설정하는게 중요한데, 몇몇 게임들을 해보면 이 값의 범위도 다르고 같은 값으로 설정해도 체감되는게 다르기도 하다.만약 서로 다른 게임에서 동일한 느낌의 FOV를 설정했는데 그 값의 차이가 크다면 이 게임들은 FOV값을 서로 다르게 사용하는것일수도 있다. FOV에는 수직 FOV와 수평 FOV가 있다.값을 각도라고 했을 때, 수직 FOV는 위아래의 각도를, 수평 FOV는 좌우의 각도를 의미한다.사람은 위아래보다는 주로 좌우를 보게되므로 게임에서도 좌우를 기준으로 FOV값을 설정한다.그래서인지 FPS의 설정에서..
-
[UE5 | FPS] 애니메이션 블루프린트 링크언리얼엔진/FPS 프로젝트 2024. 5. 7. 15:45
현재 진행중인 FPS 프로젝트는 플레이어 캐릭터의 팔 메시는 하나만 존재한다.팔 애니메이션은 현재 들고있는 무기에 따라서 달라져야하는데 이때에는 무기에 맞는 애니메이션 블루프린트로 교체하는 방식을 사용한다.부모 애니메이션 블루프린트에서 노드 그래프를 작성하고, 각 무기마다 자식 블루프린트를 만들어서 에셋 오버라이드를 통해 무기에 맞는 애니메이션을 설정한다.각 무기에 맞는 애니메이션을 각자의 블루프린트에서 관리하니 한눈에 보기에 좋고, 새로운 무기가 추가될 때에도 자식 블루프린트를 만들어서 에셋만 지정해주면 되니 복잡하지 않다. 하지만 이 방법은 애니메이션 블루프린트가 교체될때마다 포즈가 초기화되면서 한 프레임씩 기본 포즈가 나타나는 문제가 있다.무기를 집어넣고 꺼내는 애니메이션은 몽타주를 재생하는 방식으..
-
[UE5 | FPS] 반동을 담하는 ControlShake와 반동 패턴언리얼엔진/FPS 프로젝트 2024. 5. 6. 17:02
사격했을때의 반동을 구현해야하는데 필요한 조건을 생각해봤다. 1. 카메라가 흔들려야하고 원래의 위치로 돌아와야함.2. 크로스헤어도 흔들려서 이어서 발사되는 총알은 흔들린 크로스헤어 방향으로 나아가야함.3. 카메라의 흔들림은 짧은 시간동안 유지되지만, 끊기지 않고 부드럽게 이어져야함.4. 총기에 따라 다양한 반동을 표현할 수 있어야함. 여기에 추가적인 조건으로는 구현 방식에 따라 무작위 반동과, 정해진 패턴이 있는 반동으로 나눌 수 있다.내가 알고있기로는 경쟁적인 요소가 있는 FPS게임은 주로 반동 패턴이 정해져있는 것으로 기억한다.마침 예전에 찾아두었던 에이펙스 레전드의 반동 패턴 데이터가 있어서 이 값을 적용해보면 비슷하게 될지도 궁금했고, 데이터는 패턴이 루프되도록 구성되어있는데 루프되는 반동 패턴..
-
[UE5 | FPS] 1인칭 카메라의 애니메이션을 위한 구조 설계언리얼엔진/FPS 프로젝트 2024. 5. 4. 17:50
1인칭 게임인 FPS는 몰입감을 위해서 특정 행동을 하는 애니메이션에는 카메라 애니메이션이 포함되어있다.카메라 애니메이션 덕분에 자신이 조종하는 캐릭터가 어떠한 행동을 하는 동안 머리가 흔들리는 느낌을 시각적으로 표현할 수 있다.거기에 더 나아가 카메라가 흔들리는 동안 크로스헤어는 카메라가 아닌 캐릭터에 고정되게 해서 모니터의 중앙에서 벗어나게되고, 그 덕분에 흔들림을 직접적으로 비교할 수 있는 대상이 있으므로 더 효과적으로 체감되게 해준다. 예시로 에이펙스 레전드의 카메라 에니메이션을 가져왔다. 이런 카메라 애니메이션은 에이펙스 레전드 뿐만 아니라 콜 오브 듀티 등 다양한 게임에서 볼 수 있다. 언리얼 엔진에서 FPS를 만들때 이런 느낌의 카메라 애니메이션을 구현하려면 어떻게 해야할지 오랫동안 고민한적..
-
[UE5] USTRUCT의 NetSerialize언리얼엔진/그 외 2024. 3. 12. 18:06
언리얼 엔진은 RPC나 프로퍼티 리플리케이션으로 클라이언트의 로컬 프로퍼티를 업데이트 할 수 있다. 프로퍼티를 업데이트 할 때 트래픽과 대역폭을 줄이기 위한 최적화 방법들이 있는데 그 중 구조체에 사용할 수 있는 NetSerialize가 있다. NetSerialize는 구조체의 데이터를 Serialize하거나 Deserialize하는 함수다. 보통은 언리얼 엔진에서 자동으로 Serialize를 해주므로 필수는 아니지만, NetSerialize 함수를 통해 조건에 따라 필요한 프로퍼티만 업데이트하는 로직을 구현할 수 있다. 예를 들어 Line trace의 결과를 구조체에 담아 보내는 경우를 생각해보면 Line trace 결과에 부딛친 물체가 아무것도 없다면 구조체의 모든 멤버 변수는 비어있는 기본값이 되므..
-
[UE5] 블렌더로 루트 모션 애니메이션 만드는 방법언리얼엔진/그 외 2024. 1. 25. 17:37
이 주제와 관련된 질문글을 봤는데 관심이 생겨서 방법을 연구해봤다.기억해두면 나중에 도움이 될거같아서 정리해둔다. 블렌더 오브젝트를 언리얼 엔진으로 임포트 해주는 블렌더 애드온인 Send to Unreal을 사용해서 에셋을 임포트하겠다. https://github.com/EpicGamesExt/BlenderTools GitHub - EpicGamesExt/BlenderTools: Blender addons that improve the game development workflow between Blender and Unreal.Blender addons that improve the game development workflow between Blender and Unreal. - EpicGamesEx..
-
[UE5] Enhanced Input Binding with Gameplay Tags C++언리얼엔진/그 외 2024. 1. 21. 16:58
원문: https://dev.epicgames.com/community/learning/tutorials/aqrD/unreal-engine-enhanced-input-binding-with-gameplay-tags-c Enhanced Input Binding with Gameplay Tags C++ | TutorialThis tutorial covers setting up a foundational Enhanced Input system in the First Person Template. This a minimalized version of the system implemented ...dev.epicgames.com 1인칭 템플릿을 이용해서 Enhanced Input Binding과 게임플레이 태그를..
-
[UE5] Bitmap 파일을 작성해서 이미지 파일 생성언리얼엔진/노노그램 2024. 1. 5. 17:53
전에 언리얼 엔진의 OpenCV 플러그인으로 런타임에서 이미지 파일을 생성하고 불러오는 작업을 했다.https://mstone8370.tistory.com/14 [UE5] 퍼즐 진행 상황 기록 기능난이도가 높은 퍼즐은 푸는데 시간이 오래걸려서 일단 상황을 기록해두고 나중에 다시 이어서 하는 경우가 있다. 그래서 퍼즐을 푸는중에 나가면 퍼즐의 마지막 상황을 기록하게 했다. 그렇다mstone8370.tistory.com원래 노노그램 프로젝트는 모바일에서 작동하게 하는걸 목표로 했는데 이 플러그인을 사용한 뒤로 apk파일이 빌드되지 않는 문제가 생겼다.여러 정보를 찾아보면서 컴파일까지는 완료되게 했지만 이후에 Gradle에서 링크 에러가 발생해서 결국엔 실패하게 됐다.원인을 계속 찾아보니 버전이 호환되지 않는..