일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 드래곤 플라이트
- 개발일지
- meta
- 유니티 UI
- 오큘러스
- Oculus
- 팀 프로젝트
- 유니티 GUI
- 앱 배포
- Photon Fusion
- 유니티
- 모작
- VR
- 유니티 Json 데이터 연동
- input system
- 오브젝트 풀링
- meta xr
- CGV
- 포트폴리오
- ChatGPT
- 가상현실
- 길건너 친구들
- HAPTIC
- 멀티플레이
- 개발
- 연습
- 드래곤 플라이트 모작
- 팀프로젝트
- XR
- OVR
- Today
- Total
EasyCastleUNITY
CGV 개발일지 1 (프로젝트 시나리오 설명) 본문
CGV(Castle Giant Virtual) 기획서
팀 프로젝트의 일환으로써, 가상현실 플레이어와 모바일 플레이어가 같이 즐길 수 있는 게임을 만들어보고자 하였습니다.
그에 맞는 프로젝트 시나리오를 설계하고 필요한 R&D 목록을 작성하고 R&D를 해보며, R&D 경험을 쌓고, 협업 경험을 위해 개인으로 프로젝트를 하는 것이 아닌, 팀 프로젝트를 해보기로 하였습니다.
팀 회의의 결과, 거인(가상현실 플레이어)와 사람(모바일 플레이어)가 서로 경쟁하는 게임을 만들어 보기로 하였습니다.
그리고 이에 따라. 프로젝트의 시나리오를 작성해 보았습니다.
참고한 프로젝트는 Crazy Farm 이라는 게임입니다.
https://www.youtube.com/watch?v=HQuaInjjhNQ
시연영상
https://store.steampowered.com/app/876130/Crazy_Farm__VRGROUND/
<<스팀>>
#시나리오 정리
컨셉 : 거인(VR)과 인간(모바일)의 대결 구도
프로젝트 흐름 :
1. 게임이 시작되면, 가상현실 플레이어가 모드를 선택한다.
1-1. 해당 모드는 2개로, 그냥 가상현실 플레이어 혼자 실행하는 싱글모드(적 역할 ai) 확정 x
모바일 플레이어(모바일 클라이언트3~4명)와 같이 플레이하는 멀티 모드
2. 모드를 선택하면, 해당 모드에 맞는 방이 생성된다. 그 방의 세션이름(세션 번호)은 랜덤으로 정해진다. Ex) 192345처럼 숫자로
3. 모바일에 경우, 실행하면, 방 번호를 입력하는 란과, 자신의 닉네임을 정하는 란이 나오고, 방 번호를 입력하고 방 입장(Room Enter) 버튼을 누르면 서버 상태에 따라 연결이 되거나, 연결이 되지 않는 경우, 30초에 지연시간을 주고, 30초가 넘어갈 경우, 연결하는 시도를 해제한다.
4. 서버에 연결이 되면, 호스트(가상현실 플레이어)의 화면에 대기자 리스트에 입력한 닉네임으로 대기자가 들어오게 된다.
5. 클라이언트는 방으로 들어오면, 자신이 움직일 아바타를 선택(안 넣을수도 있음)하고, 레디 버튼을 누르면, 호스트 하면상에서, 해당 클라이언트가 준비가 완료된 상태라는 것을 보여준다.
6. 호스트는 게임 시작 버튼이 있지만, 들어온 클라이언트가 준비 상태가 아니라면, 게임을 시작할 수 없다.
7. 게임이 시작하면, 씬이 전환되며, 호스트와 클라이언트가 실제 GameScene으로 넘어가게 된다.
8. 호스트가 가상현실 플레이어임을 감안하여, 바로 시작하면, 부담이 될 수 있기에, 가상현실 플레이어의 눈 앞에, 따라다니는, UI를 만들고, 준비가 되면, 시작버튼을 눌러 게임이 시작할 수 있게 한다. 이 사이에 클라이언트는 대기소 같은 장소에 모여 있게 된다.
9. 게임이 시작되면, 가상현실 플레이어 (이하 거인으로 지칭)은 지정된 경로를 따라 이동하게 된다.
10. 게임이 시작되면, 클라이언트(이하 사람으로 지칭)가 대기하고 있던 대기소의 문이 열리며, 게임이 시작된다.
11. 거인은 사람의 방해를 막아내고, 목적지에 도착하면 승리입니다.
12. 사람은 거인을 방해하여, 목적지에 도착하지 못하도록 막거나 거인을 죽이면 승리입니다.
13. 거인은 지나가는 경로에 있는 나무나 돌등은 잡아, 날아오는 사람들의 공격을 막아내고, 사람들을 공격하여, 사람들을 죽일 수 있습니다.
14. 사람은 맵 곳곳에 설치되어 있는, 포나, 미리 장착되어 있는 검을 통해 거인을 공격할 수 있습니다. 거인의 각 부위마다 입는 피해량이 다릅니다.
15. 거인에게 가까이 다가가 공격하다가, 거인의 손에 붙잡히거나, 공격을 당하여 사람은 죽을 수 있습니다. 죽으면, 일정시간에 부활시간을 거쳐, 부활하게 된다. (이때 부활 위치는 죽은 자리에서 다시 태어나거나, 처음 시작 위치인 대기소에서 부활한다.)
16. 거인한테 일정 이상의 피해를 입히면, 사람들 측은 특수 스킬이 활성화된다. 일정시간 동안 거인의 움직임을 멈추는 스킬(또는 이동속도를 느리게 하는 스킬)
17. 게임의 총 시간은 2분으로 구상 중
18. 게임이 종료 시, 종료 순간에, 살아있는 인원이 한명도 없는 경우, 거인이 도착하지 못한 경우에도, 거인이 승리로 간주한다.
19. 게임이 종료되고, 다시 원래의 방으로 돌아오게 되며, 다시 준비를 하면, 다시 게임을 시작할 수 있다.
이렇게 시나리오를 작성하고, 이 프로젝트를 만들기 위해 필요한 R&D 목록을 작성해 보았습니다.
#R&D 목록
1. VR 항목
- 게임 씬
1. 머리 asset (멀티에서 모바일 플레이어 들에게 보여지는 asset)
2. 손 asset (멀티에서 모바일 플레이어 들에게 보여지는 asset)
3. VR UI Interaction (가상현실 플레이어가 조작을 하기 위해 필요한 UI Interaction)
4. Grab Interaction (가상현실 플레이어가 손으로 물체를 잡는 상호작용)
5. Distance Grab Interaction (가상현실 플레이어가 멀리 있는 물체를 잡는 상호작용)
6. Throw an object (가상현실 플레이어가 잡은 물체를 던지는 상호작용)
7. 잡은 물체 휘두르기 (가상현실 플레이어가 잡은 물체로 다른 물체에게 물리 상호작용 일으키기)
8. 커스텀 핸드 (OVR에서 제공하는 기본 손이 아닌, 다른 커스텀 손을 사용)
9. 커스텀 핸드 애니메이션 만들기 (멀티에서 손의 움직임을 구현하기 위해 애니메이션 만들기)
10. VR 플레이어 크기에 맞는 맵 크기 만들기 (가상현실 플레이어가 거인이기에, 거인으로 느껴지게끔, 맵 크기를 조절해야 됨)
11. 나무가 부서지면 나오는 이펙트 만들기
12. Poke Interaction (UI 상호작용에 사용)
13. 남은 거리 보여주기 및, 남은 시간 보여주기 (거인이 경로에 따라 움직이기에, 얼마나 남았는지 사용자가 알 필요가 있음)
14. Haptic Feedback (몰입감을 높이기 위해, 진동요소 추가)
- 로비 씬
15. 로비 씬 디자인 (전체적인 흐름을 위한 UI 디자인이 필요)
2. 모바일 항목
- 게임 씬
1. 조이스틱을 통한 이동
2. 버튼을 누르면 공격
3. 대포가 주변에 있으면, 대포발사 버튼이 활성화되고, 버튼을 누르면 포탄이 발사
4. 죽은 후, 일정 시간 후 리스폰
5. 특수 스킬
6. 스킬 및 타격 이펙트 리소스 구하기
7. 남은 거리 보여주기 및, 남은 시간 보여주기
- 로비 씬
8. 실행하면, 닉네임 입력하는 창 나옴 (UI InputField 사용)
9. 그 다음 창으로 넘어가면, 입력한 닉네임과, 다음 방번호를 입력하라고 나옴 (UI InputField 사용)
10. 입력하고 들어가면, 방으로 연결되거나, 연결이 안된 경우, 알려주기 (로딩창 만들기)
11. 방으로 들어가면, 캐릭터 선택하기
12. 선택한 정보 게임 씬으로 넘기기
3. 멀티 플레이어 항목
1. 화면 동기화 (VR이 움직이는 것이 모바일에서 보이고, 모바일이 움직이는 것이 VR 화면에서 보이고)
2. VR 위치 동기화 (머리와 손들의 위치를 동기화)
3. 랜덤 방 번호 만들기 (방번호를 입력하여 입장, 랜덤적으로 방을 만들기 위해)
4. RPC (Remote Procedure Call, 원격 프로시저 콜 : 사용하여, VR에서 보낸 정보를 모바일 클라이언트에게, 클라이언트가 VR로 정보를 보낼때 사용)
5. 서버에 들어온 정보 그대로 들고, 씬 전환하기
6. Host일 경우, OVRCameraRig VR 플레이어 만들기
7. Client 일 경우, 모바일 플레이어 만들기.
R&D 항목은 크게 3가지 항목으로 구분되며, 하위 항목들이 있습니다.
이 항목들을 기반으로 R&D를 해보며, 개발일지를 작성해 보겠습니다.
'CGV(Castle Giant Virtual) 프로젝트 일지' 카테고리의 다른 글
CGV 개발일지 6 (멀티, 랜덤한 방 번호 만들기) (1) | 2023.11.29 |
---|---|
CGV 개발일지 5 (Throw Object 개선 하기) (0) | 2023.11.25 |
CGV 개발일지 4 (OVR Grab을 통해 잡은 물체를 통해 다른 물체 치기) (4) | 2023.11.25 |
CGV 개발일지 3 (OVR 기능 활용하여 테스트) (1) | 2023.11.25 |
CGV 개발일지 2 (프로젝트 세팅) (1) | 2023.11.25 |