Skip to content

mmindoong/-2022-2-SWFestival_KSWAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

2022SWFestival_KSWAG

2022 SW Festival Joseon DarkSoul 3D Action Game

화면 캡처 2022-11-21 193620

📁 개요 ➖

a. 타이틀
image

b. 게임의 테마

한국판 조선풍 다크소울류 3D 액션 게임

c. 게임 장르

  • 3D Action

d. 게임 의도 및 목적

  • 한국 조선의 다양한 컨텐츠를 반영한 한국풍 다크소율 게임 제작

e. 대상

  • 3D 액션 및 전투에 흥미를 가지는 사람들

f. 플랫폼

  • PC

🛠 기술 플랫폼 ➖

  • Unreal Engine 5.0
  • Blender
  • Perforce

🔧 게임 시작 ➖

.exe 파일 실행

🕹 조작법 ➖

  • 공격키 - Left Mouse Button
  • 방어,반격 - Right Mouse Button
  • 대시 - Left Shift
  • 앉아서 걷기 - Left Ctrl
  • 점프 - F
  • 회피(구르기) - Space Bar
  • 스킬 - 1,2,3,4,5,6
  • 인벤토리 - Tab
  • 상호작용 - G
  • 시점고정(LockOn) - Q
  • 시점고정해제(LockOff) - Z

📌 구현 시스템 ➖

📌 1. 플레이어 ➖

a. 전투 시스템

1️⃣ 공격 시스템

  • 마우스 좌클릭을 통해 공격이 이루어지도록 구현함
  • 콤보 공격을 적용하여 한 공격이 끝나고 다음 공격까지 적절한 타이밍에 공격 키를 누르면 다음 콤보 공격이 이루어지도록 함
  • 달리기 공격이나 점프 공격과 같은 플레이어의 움직임과 연동되는 공격을 적용
  • 타격감을 위해 공격 및 방어/반격에 성공할 경우 이펙트와 카메라 셰이킹을 적용
  • 플레이어가 타격 후 다른 키를 누르면 공격 후 모션이 캔슬되도록 하여 더 역동적으로 진행되도록 함
  • 공격 시 가장 가까운 위치에 존재하는 적 방향으로 플레이어 방향을 고정하여 공격할 수 있는 기능을 넣어 쉽게 공격할 수 있도록 함

2️⃣ 방어/반격 시스템

  • 마우스 우클릭을 눌렀을 때 방어 또는 반격 로직이 실행되도록 구현함
  • 적이 공격하는 타이밍에 맞춰 적절하게 키를 누르면 반격이, 그렇지 않다면 방어가 실행되도록 함

3️⃣ 피격 시스템

  • 플레이어에게 타격을 준 오브젝트가 플레이어를 기준으로 앞, 뒤, 오른쪽, 왼쪽 중 어느 위치에 있는지 계산하여 그에 맞는 애니메이션을 적용
  • 일정 수 이상 타격을 받으면 플레이어가 넘어져 무방비 상태가 되도록 함
  • 플레이어가 넘어지는 것도 피격 애니메이션과 같이 방향을 계산하여 그에 맞는 애니메이션이 적용되도록 함
  • 보스 몬스터와 같이 특정 패턴이 존재하는 몬스터의 경우 패턴에 적절하게 피격 모션을 재생하여 캐릭터, 몬스터의 상호작용이 실감나게 이루어지도록 함
    ex) 보스가 Howling 공격을 하면 플레이어가 날아가도록, 플레이어를 잡고 타격하는 공격을 하면 플레이어가 누워서 연속으로 피격받는 애니메이션이 재생되도록 함

4️⃣ 회피 시스템

  • 스페이스바와 방향키를 클릭하여 앞, 뒤, 오른쪽, 왼쪽으로 굴러서 공격을 회피하도록 구현함
  • 회피 로직 실행시에는 적의 공격을 받지 않도록 구현
  • 회피 후 방향키를 눌렀을 때 회피 후 동작이 캔슬되도록 하여 딜레이로 인한 피해를 방지함

b. 스킬 시스템

5️⃣ 스킬 시스템

  • 무기 크기 변형 스킬 : 무기 변형(돌진/환술/축소) 기능 구현
  • 돌진 스킬의 경우 크기가 커진 무기가 앞으로 돌진하는 돌격기 기술
  • 환술 스킬의 경우 크기가 커진 무기를 휘두르는 광역기 기술
  • 축소 스킬의 경우 크기가 커진 무기를 내리치는 극딜 기술
  • 축지법 스킬
  • 시간의 흐름을 제어하여, 플레이어의 시간은 그대로이지만 주위 적들의 공격이 천천히 움직이도록 구현
  • 순간이동 스킬
  • 지붕 위의 다소 떨어진 거리를 순간 이동할 수 있도록 구현
  • Trigger Box를 설치하여 자신과 Overlapped된 액터 제외한 Trigger를 찾아 거리를 계산하여 해당 지점으로 순간이동한다.

6️⃣ 부적 시스템

  • 스킬 부적 아이템 사용 시스템
  • 스킬의 경우 Progress ui를 사용하지 않고, 부적 아이템을 사용해 도술을 부리는 것이므로 사용한 부적의 종류에 따라 적절한 스킬을 사용하도록 구현
  • 스킬 쿨타임 시스템 구현

c. 이동 시스템

7️⃣ 이동 및 애니메이션 시스템

  • 로코모션 시스템

  • 루트 모션을 적용한 애니메이션을 통해 자연스러운 움직임을 구현하고, 일반 모드공격 모드 모션을 나누어 구현함

  • 달리기를 시작하고 멈출 때 적절한 애니메이션을 적용하고, 달릴 때 공격 키를 누르면 대쉬 연계 공격이 이루어지도록 구현함

  • Foot IK를 적용하여 경사진 표면 위에 플레이어가 위치할 때 붕 떠있지 않고 자연스럽게 서 있도록 구현

  • 점프

  • 정지 시 점프, 걸을 때 점프, 달릴 때 점프로 나누어 구현

  • 점프 시 공격을 하면 점프 공격이 실행되도록 구현

📌 2. 보스 ➖

1️⃣ LEVEL 1 - 마을

몬스터 주무기 성격 기본 공격 특수 공격 특징
몬스터1 삼지창 호전적 찌르기 연속 찌르기 없음
몬스터2 호전적 내려찍기 없음 체력이 많음
몬스터3 호미 겁이 많음 찍기 없음 도망가서 적들을 불러옴
몬스터4 돌맹이(원거리 공격) 까불거림 돌 던지기 돌 세게 던짐 플레이어가 가까이 가면 도망감
할아버지 과묵함 할퀴기 없음 NPC처럼 가만히 있다면 갑자기 공격함
승려 주술 까칠함 불 관련 주술 승려 셋이 모이면 마법 캐스팅 제단에서 등장

2️⃣ LEVEL 2 - 성곽

몬스터 주무기 성격 기본 공격 특수 공격 특징
도적 주먹,발 음산함 주먹,발차기 없음 숨어있음
궁수 활(원거리 공격) 신중함 활 쏘기 뒤로 물러나서 활쏘기(백어택) 원거리
포졸(대장) 난폭함 검 베기 참격 강함
포졸(부하) 횃불 충성심 횃불로 지지기 없음 강함
승려 주술 차가움 얼음 관련 주술 승려 셋이 모이면 마법 캐스팅 공격에 시간이 좀 걸림,제단에서 등장

3️⃣ LEVEL 3 - 보스

☝ 1 페이지 : 파괴왕

✔ 주 무기는 쌍 도끼, 성격은 난폭함.
✔ 기본 공격

  • 도끼로 세번 때리기(왼쪽 오른쪽 아래)
  • 양손 도끼로 앞으로가며 공격
  • 도끼를 던짐(앞으로 던졌다가 돌아와서 다시 받음)

✔ 특수 공격

  • 기모아서 내려찍기(전방으로 화염 공격)
  • 돌면서 내려찍기(전방에 땅이 솟아오름 - 지형 생성0)
  • 점프 내려찍기(전방에 땅이 솟아오름 - 지형 생성x)

✔ 특징 : 지형 파괴(보스로 인해 생성된 지형에 플레이어는 막히지만 보스는 부심), 보스가 광폭하면 이속이 빨라지면서 공격력도 세지고 주변 구조물을 다 부셔버림

✌ 2페이지 : 늑대

➖ 주 무기: 손, 입, 발으로 성격은 난폭함.
➖ 기본 공격

  • 손으로 세번 때리기(왼쪽 오른쪽 아래)
  • 점프 공격(점프 공격에 맞으면 물어 뜯김)
  • 점프 공격(물어 뜯기지 않는 공격)
  • 콤보 공격
  • 땅을 한번 쓸면서 공격
  • 사거리에 닿으면 2개의 공격중 하나 랜덤
  • 1은 돌면서 공격
  • 2는 돌면서 발로 내려찍음

➖ 특수 공격

  • 도약후 내려 찍기(하늘 위로 솟구치고 몇초뒤 플레이어에게 낙하)
  • 하울링(울부짖음 - 충격파)
  • 얼음공격(얼음 칼날 세개를 연속으로 발사 - 유도x)
  • 얼음토네이도(맵에 일정시간 돌아다니며 플레이어를 쫓는 얼음토네이도 생성 - 유도 o)

📌 3. UI ➖

1️⃣ 인벤토리/상점/상호작용 시스템

image

  • DataTable를 사용해 아이템 구조체를 관리하고, 각각을 actor로 생성해 개별적으로 필요한 기능을 구현함
  • 인벤토리 컴포넌트에는 AddItem, DropItem, UseItem 등 이벤트 호출 및 처리하도록 구현 image
  • 인벤토리에는 기본 인벤토리 Slot과 Quick Slot, 돈과 관련된 Slot이 존재함
  • AddItem,DropItem - 상점을 통한 구매나 드랍 아이템의 상호작용을 통해 아이템을 인벤토리에 추가, 삭제 가능하도록 구현함.
  • UseItem
  • UseItem은 회복 소모 아이템이나 스킬 사용을 위한 아이템인 부적을 사용하기 위한 이벤트 구현.
  • 사용하려는 슬롯에 해당하는 아이템에 따라 회복 소모이벤트가 발생하도록 로직 및 UI 구현
  • 상호작용은 상점/Checkpoint/아이템 각 액터들을 Scene으로부터 얻어와 적절한지 판단하여 구현
  • 위젯 설계
  • 인벤토리의 위젯은 W_Item, W_Slot, W_InventorySlots, W_QuickSlots, W_ItemInfo W_InventoryHUD, W_PlayerHUD, 마지막으로 W_HUD으로 구현하여 가장 상위에서부터 Update계층적으로 호출하는 방식으로 구현됨.
  • Update 호출하는 시기는 각 인벤토리에서 이벤트를 발생시킬 때 W_HUD 업데이트를 호출하면 순차적으로 호출할 수 있도록 처리함.

2️⃣ 상태 시스템

  • Parameter 관련 컴포넌트에서는 각 액터마다 UseItem 이벤트 등을 실행했을 때, 플레이어에게 효과를 줄 수 있도록 관련 값들을 관리하고 처리하는 기능을 담당함.
  • Health, Stamina 등 현재 상태의 값을 Progress UI에서도 Update 될 수 있도록 위젯 설계 및 구현

3️⃣ 미니맵/지도 시스템

  • Top view로 해당 map의 texture를 얻어 이를 미니맵을 구성하는 material에 material parameter collection 의 scalar parameter로 전달함.
  • 플레이어의 위치를 전달받아 미니맵에 아이콘으로 플레이어의 위치를 표시하도록 구현

4️⃣ 메뉴 및 저장 시스템

  • 각 Level에 사용되는 GameMode (Pawn mode, HUD, Player Controller 등) Setting
  • 각 스테이지 별 시작 지점에 CheckPoint 존재하여 현재 인벤토리의 값, 체력 회복 등 저장 시스템 구현
  • 시작 화면, 로딩 화면, 옵션, 메뉴 화면 구현

📌 4. Design ➖

제작모델 사진 Face Count 제작모델 사진 Face Count
엽전 image 344 포션 image 674
장승3종 image 65024 솟대 image 10054
깃발 image 1600/1879 다리 image 452/272/282
제단 image 146,558 창2종 image 204/436

Hits

About

2022 SW Festival Joseon DarkSoul 3D Action Game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published