본문 바로가기

Unity/3D Project

3D RPG - 프로젝트 시작

프로젝트를 시작하기 위해 다음과 같이 준비했습니다.

게임 기획하기

처음으로 유니티 엔진으로 제작했던 게임이 2D RPG 프로젝트였습니다. 

그래서 이번에는 유니티 엔진 역량과 게임 개발의 다양한 측면을 깊이 이해하기 위해 3D RPG 프로젝트로 선정했습니다.

 

우선 처음 개발하는 개인 프로젝트이다 보니 어떻게 구현해야 할지 많이 고민 했습니다. 그래도 앞서 2D 프로젝트를 만들어 본 경험이 있어 틀부터 잡기 위해 간단하게 기획하여 만들어야할 기능들을 생각해봤습니다.

 

개발하기 전 제가 처음 기획했던 정보들입니다.

 

왼쪽 사진은 예시 사진이고, 오른쪽 사진은 완성한 게임 화면 입니다.

캐릭터의 기능들.
   ㄴ Input

        ㄴ Move(WASD), Run(Ctrl), Jump(SpaceBar), Interaction(F), Inventory(I), Equip(E), Attack(MouseInput), PickUp(Z)

        ㄴ Quest UI(Q), Status UI(C), Achievement UI(L), Esc - UI closed & Option UI
   ㄴ Movement - Animation, Movement
   ㄴ PlayerStats - MoveSpeed, JumpForce, HP, MP, Attack Damage, Regen Speed, Critical(Percent, Damage), 
   ㄴ Ground Check - Jump
   ㄴ Player State - Idle, Walk, Run, Attack, Die
   ㄴ Quest

Equip
   ㄴ Inventroy UI
   ㄴ Equip UI
   ㄴ Prop(Weapon)

 

playerStat
- 캐릭터 움직임(걷기, 달리기, 점프)
- 캐릭터 애니메이션
- 캐릭터 상호작용 키(상호작용, 아이템 줍기, 앉기, 아이템창, 스킬, 공격, 소모 아이템)
- 경사로 체크, 콜라이더 설정, 바닥 체크, rigidbody, 앉을 때 collider 반으로 줄임

카메라

- 카메라가 플레이어를 바라봄.
- alt 마우스 왼쪽클릭으로 카메라 회전가능(커맨드 키)


Character Movement
캐릭터가 움직이기 위해서 Vertical, Horizontal 키입력
달리기 버튼 left Shift
상호 작용 키 Space bar
공격 Ctrl
점프 Alt - Raycast 바닥체크
앉기 예정 C - crouch(웅크림) - 이것을 하려면 collider 반으로 줄여야됨
아이템 줍기 Z
Inventory Key I
Equipment E
아이템 1234 번까지?
Skill Key 예정 - 유저 키 설정
경사로 체크 - 계단 오르기 Raycast
Move Speed
Run Speed
Input Key
Gravity Power
Jump Force

카메라 따라가게 만들기 

Character Stats
Name - Main Menu에서 결정
Job : Healer, Dealer, Tanker, 소환수
Quest
HP
Mana
Exp
Damage - 방어력 공식 필요
Critical Damage
Defense
Money

Character Skills
Skill Tree - Basic Skills - Change Jobs(Healer, Dealer, Tanker)


Monster Stats
public
몬스터의 type : 
이름
체력
공격력 - 방어력 공식 필요
방어력
경험치
이동속도
점프를 하는지?
크리티컬 데미지?
시야 범위 ( 감지 범위 )

 

게임 시스템

- Level System

   ㄴ 레벨 시스템을 활용하여 캐릭터를 점점 성장시킨다

- Hunting System

   ㄴ 사냥을 통해 퀘스트를 완료하며 던전 시스템을 활용하여 스테이지 보상도 얻을 수 있다.

- Quest System

   ㄴ 업적 및 퀘스트 시스템을 활용하여 게임의 스토리를 나아가 유저들에게 재미요소를 준다.

- Economy System

   ㄴ 경제 시스템을 사용하여 상점에서 아이템을 구매하고 장비를 강화하는 기능으로 더 강한 장비로 사냥을 할 수 있다.

 

에셋 구하기 

제가 사용한 에셋들은 무료 에셋들을 사용했습니다.

그래픽으로는 Low Polygon 아트를 사용했습니다.

간단한 그래픽을 표현하기에 적절한 그래픽인 것 같아 선택하게 됐습니다.

주로 유니티 에셋 스토어에서 많이 구했는데, 그 중 itch.io 사이트라는 게임 사이트에서도 에셋들을 판매하고 있어 많은 도움이 됐습니다.

 

- 완성 후 느낀점-

처음 기획한 순서대로 개발이 순조롭게 진행되었지만, 점차 개발을 계속할수록 초기 기획의 부족함을 깨닫게 되었습니다. 이로 인해 많은 고민에 빠졌고, 개인적으로 제작하는 프로젝트에서 실력 부족으로 인해 기획대로 이루어지지 않은 부분도 많아 실망했습니다. 그러나 완성을 목표로 한 단계씩 차근차근 도전한 결과, 결국 프로젝트를 완성할 수 있어 만족스러웠습니다.

 

전체 코드

https://github.com/HerFS/Unity-RPG/tree/main