BluePrint를 이용한 2인 합동플레이 공포게임으로
Listen Server방식으로 Steam서버, Lan연결중 하나를 선택해 멀티플레이 가능하도록 구현하였고
Steam플러그인을 연결해서 Steam오버레이 기능 사용가능하고 업적기능등 다양한 기능을 추가할 예정이다.
https://www.youtube.com/playlist?list=PLZlv_N0_O1gYqSlbGQVKsRg6fpxWndZqZ
Blueprint Multiplayer | v4.11 | Unreal Engine
Video Tutorial Series In this video series, Wes Bunn from Epic Games walks you through creating a networked game with Steam integration entirely through Blue...
www.youtube.com
언리얼 공식채널에 있는 스팀연동 멀티플레이 튜토리얼 보고 필요한 부분만 빼서 구현했었다.
간단히 요약하자면 메인메뉴에서 ServerTravel로 만들어진 방을 찾아오게 만든다음 각자 고유의 PlayerController을 붙여주고 Possess + Spawn Actor 을 해준다
--- 플레이어 캐릭터 ---
각 플레이어 캐릭터들은 하나의 캐릭터BP를 물려받는 자손BP들로 이루어져 있으며
Server 플레이어와 Client 플레이어는 서로 보여지는것이 같아야 해서 Replication을 필요한 기능에는 다 넣은것 같다.
ex) 아이템줍기, 아이템버리기, 문열기, 후레쉬, 각종 애니메이션
캐릭터의 얼굴움직임 또한 카메라의 방향을 따라가게 만들어야 해서 Rotaion값을 애니메이션BP에 보낸후 목Bone을 Rotation값에 따라 움직이도록 구현했다. (목의 위아래가 90도가 넘어가거나 180'뒤를 볼 수 없도록 Clamp해서 제한을 두기도 했다)
참고 : https://www.youtube.com/watch?v=Kk_7XOpJ8mM&t=384s
--인벤토리--
인벤토리는 Inventory배열을 하나 만들고
MasterItemBP를 만들어 부모가 될 아이템BP에 구조체, Enum 등을 사용해서 자손 아이템BP를 주웠을때 Inventory배열에 구조체의 정보가 들어가 각각 정보가 저장되도록 구현하였다.
물론 아이템을 주웠을 떄나 버렸을때 이벤트를 Replicat해서 Server Client 모두 동기화 되도록 구현했다.
--- 맵 ---
처음에 만들었던 맵들은 굉장히 퀄리티도 높고 리플렉션도 많이 넣어서 유리창이나 거울등이 구현 되었으나
학원컴퓨터의 사양이 굉장히 낮았던 이유 떄문에 프레임드랍이 너무 심하여 굉장히 낮출 수 밖에 없었다.
처음에는 다중채널을 이용해서 1층에 있을때는 2층, 3층이 로드되지 않도록 만들려고 했으나 AI가 움직이거나 3층 모습을 시네마틱으로 보여줘야 하는 등 문제 떄문에 1개의 레벨에 시작하자 마자 모두 로드되도록 만들 수 밖에 없었다.
하지만
모든 사물에 Max Draw Distance를 넣어서 멀리 있을때 보여지지 않도록 만들거나
https://docs.unrealengine.com/ko/Engine/Performance/Scalability/ScalabilityReference/index.html
Scalability, 엔진 퀄리티 레퍼런스
Scalability, 엔진 퀄리티 옵션, 프로퍼티, 콘솔 변수입니다.
docs.unrealengine.com
언리얼 도큐먼트에 있는 퀄리티를 낮추는 방법을 설정하도록 옵션메뉴를 구현하거나
프레임문제에 큰 영향이 있던 Tick을 사용하는 이벤트들을 SetTimerByFunctionName 으로 수정하는 등
최적화 덕분에 많이 부드러워 졌다. ( 그래도 서버간의 핑문제는 해결을 아직 못했다...; )
--- AI---
AI는 시각, 청각을 이용하도록 만들었고 쫒아오는 도중 잃어버리거나 안보이는 곳에서 소리가 들렸을때 등 시각, 청각을 모두 이용하여 플레이어들을 찾고 쫒아오고 지정한 구역은 Patrol 하거나 랜덤한 지역을 Patrol 하게 만들었다.
참고했던 문서 / 영상들
https://www.youtube.com/playlist?list=PL4G2bSPE_8ukuajpXPlAE47Yez7EAyKMu
AI
www.youtube.com
https://www.youtube.com/playlist?list=PL4G2bSPE_8ukyyJGDPii-CQMFmPhY9esS
Equipment System
www.youtube.com
https://www.youtube.com/playlist?list=PLqjIOKeeD0cl4VUVQS0qKNlzZHWm8_34k
UE4 Tutorials | Multiplayer "STALKER" themed TPS
www.youtube.com
https://www.youtube.com/playlist?list=PLZlv_N0_O1gZalvQWYs8sc7RP_-8eSr3i
UMG UI Inventory | v4.8 | Unreal Engine
Video Tutorial Series Categories: UMG UI Designer
www.youtube.com
https://www.youtube.com/playlist?list=PL2PzA1O_fwkI0K710p9t13ASu_LXcDyzj
언리얼
www.youtube.com
https://docs.unrealengine.com/en-US/Gameplay/Networking/index.html
Networking and Multiplayer
Setting up networked games for multiplayer.
docs.unrealengine.com
https://www.youtube.com/watch?v=16BvKb-OPOg&t=510s
'개발일지 > Unreal Engine' 카테고리의 다른 글
카툰렌더링 (0) | 2021.04.14 |
---|---|
언리얼 360영상 만들어서 유투브에 올리기 (0) | 2020.08.12 |
깃허브에 푸시 에러 고치기 (0) | 2020.08.02 |
GitHub연결 (0) | 2020.08.01 |