[Game] Project Unseen



Unreal Engine C++과 Gameplay ability system을 사용해서 만든 게임입니다.

게임의 장르

TPS, 소울라이크(보스 사냥)

개발 기간

2024.04 ~ 2024.06 (기획 및 개발 약 한 달 소요)

플레이어의 조작

1

구현


공격과 회피

1

Gameplay Ability System

유연한 구조, 효율적인 개발 => 사용하면서 GAS의 잘 구현된 구조를 경험, 학습

  • Abilities 사이 우선순위 구현
  • Gameplay Tag를 사용한 공격 회피
  • Gameplay Effects를 사용한 Attribute 관리
  • Target Actor를 사용하여 HitCheck


보스 패턴 구현

Behavior Tree, 나이아가라 시스템 사용


Projectile

2
  • 발사체 사용 및 총구에서 발사 : 현실적인 경험 제공
  • 카메라가 보는 방향으로 LineTrace하여 나온 HitResult를 사용하여 Projectile 방향 계산

Projectile 오브젝트 풀링 구현 => 짧은 시간 내 빠른 생성 가능

  • 게임 시작 시 일정 수의 총알 스폰 및 Push
  • Pool이 빈 상태일 때 Pull 요청 시 Expand
  • Projectile이 다른 Actor에 충돌 시 Push
  • Projectile 생성 후 일정 시간이 지나면 Push
  • Shoot 시 Pool에서 Projectile을 Pull

총기 반동 시스템

3

두 가지 방식의 반동 구현

  1. 컨트롤러 Input 강제 입력 => 수직 반동

  2. 조준선 벌어짐에 따라 사격 범위 넓어짐 (총알 퍼짐) 수평 반동


수평 반동

그림 1

4

그림 2

5

A : 크로스헤어 상으로 Recoil 길이 (그림 2 노란 선)

B : 거리에 따라 벌어지는 Recoil 적용 길이 (그림 2 초록 선)

C : UI와 카메라 사이 거리를 구할 수 없기에 경험적 Variable

D : 카메라 LineTrace의 HitResult.Distance

삼각형의 닮음을 사용해서 조준선의 벌어진 정도와 총구에서 날아가는 총알의 수평 범위를 시각적으로 일치시킴. 단순한 수학이지만, 정확한 계산으로 현실적인 경험 제공


약점(치명타) 시스템

6

스켈레탈 메시 구분을 통한 약점 구현

ApplyPointDamage를 사용하여 충격 지점에 약점 여부에 따른 색상 적용하여 데미지 UI 구현


능력치 강화 시스템

7

획득한 재화를 사용하여,

  • 사격속도 증가
  • 반동 감소
  • 총알 구매

Leave a comment