나무의 집 - 구현 설명

Kclient·2022년 11월 3일
0

포트폴리오

목록 보기
3/7
post-thumbnail

1. 캐릭터 폰 제작

1.1 블루프린트 확장

CharacterBase.h / CharacterBase.cpp

  • 공통 기능을 C++로 작성 뒤 블루프린트로 확장시켜서 사용
  • 무기 발사 등 기능을 C++ 코드로 작성, 블루프린트로 확장하여 사용
  • UPROPERTY 메타데이터를 지정하여 접근 권한을 제한하거나 카테고리를 설정

1.2 무기 기능 구현

CannonBall.h / CannonBall.cpp
MatchBullet.h / MatchBullet.cpp

  • C++ 코드를 사용하여 발사체를 구현
  • 블루프린트 클래스로 무기를 제작, 캐릭터 폰에서 함수를 호출하여 동작

1.3 애니메이션 적용, 모션 컨트롤러 IK, 사운드 적용

  • 노티파이를 적용해 발걸음 소리를 구현
  • 모션 컨트롤러의 위치 정보를 사용하여 IK 애니메이션을 구현

2. 네트워크 컴포넌트 제작

2.1 Socket 프로그래밍

GameInstance.h / GameIntance.cpp
ClientSocket.h / ClientSocket.cpp
PlayerController.h / PlayerController.cpp

  • ClientSocket은 Recv 작업을 위해 별도의 Thread를 생성

  • 받아온 패킷은 별도의 메세지 버퍼에 집어 넣는다.

  • 패킷의 처리는 PlayerController에서 작업을 하게 된다.

2.2 네트워크 컴포넌트

NetworkModule.h / NetworkModule.cpp

  • 블루프린트에서 소켓통신을 하기 위한 네트워크 컴포넌트
  • 함수 지정자를 설정하여 블루프린트에서 호출이 가능한 함수를 생성
  • 카테고리 지정을 하여 쉽게 검색할 수 있도록 함

3. 로비 3D UI (UMG)

동작 영상

  • UMG를 사용하여 로비 UI를 구현

  • 네트워크 컴포넌트를 사용, 이벤트에 바인딩하여 동작

  • Widget Switcher를 통해 상황에 맞는 위젯으로 교체

  • 로비에 접속하고 캐릭터를 선택하기 위한 UI

  • 방 생성/접속 동작의 구현

  • 방에 접속한 후 캐릭터 선택 및 준비/시작 UI

  • 캐릭터 선택 및 준비/시작 동작의 구현


4. 퍼즐 기능 구현

  • 게임 내에 등장하는 퍼즐 기능 구현

5. 레벨 스트리밍 설정

  • 레벨 스트리밍 적용으로 끊기지 않는 게임을 구성


6. 사운드 적용

  • 배경음악, 이동음, 발사음 등 다양한 사운드 적용
profile
뭐든 손에 잡히는 대로 해보자

0개의 댓글