002-Unity FPS Sample 살펴보기
#유니티, 유니티 튜토리얼, 유니티 강좌, Unity, Unity tutorial, HDRP, FPS Sample, 게임 개발, C#
이번에는 인고의 시간을 거쳐 어렵게 다운로드한 FPS Sample 프로젝트에 대해 살펴 보기로 하겠습니다.
Peter Andreasen씨가 언급한 게임 개발자들이 겪을 사소한 문제들, 넘어서야 하지만 데모나 튜토리얼에서는 이야기하지 않는 Detail한 사항들이 어떻게 Tool 들로 구현되어 있는지 알아보겠습니다.
아래의 화면은 Level_01을 Load 후에 화면 모습인데요, 현재 글을 쓰는 데스크탑의 사양이 괜찮은 컴퓨터임에도 광원과 SkyBox를 모두 켜니, 조금 느려지긴 합니다.
Scene View에서 오른쪽을 클릭을 유지한 상태로, WASD, QE를 이용해 이곳 저곳을 돌아다녀 봅니다.
구경은 이제 이정도로 하고, Peter Andreasen씨가 언급한 어떤 Tool 들이 있는지 알아 봐야겠죠?
아래는 FPS Sample을 소개하는 유튜브 영상에서 꼭 빼놓지 않고 소개하는 Project Tools 입니다. 아래와 같이 FPS Sample > Windows > Project Tools를 클릭합니다.
그러면 아래와 같이 Project Tools 창이 Open 됩니다.
모든 기능에 대해서는 다음을 기약하고, 중요한 몇가지 기능들에 대해서만 알아보겠습니다.
Levels 영역에는 이 프로젝트에 포함된 Level과 Bootstrapper 및 Menu가 포함되어 있습니다. Open 버튼을 누르면 해당 Level이 Load 됩니다. Server 버튼은 사용해보지 않다가, 이번에 눌러보니, 해당 Level이 Load된 Headless server가 실행됩니다. Bootstrapper는 항상 게임과 함께 Load 되며, 이후 실행시 넘겨 받은 인자에 따라 Server, Client, Preview mode가 선택되어 실행 됩니다. Bootstrapper를 구성하면, 나머지는 Level에 대한 작업만이 남게 됩니다. Bootstrapper Scene을 제작하는 것이 FPS Sample을 동일하게 제작하는 거의 전부임을 미리 기억해 두시면 좋을 것 같네요.
Server button을 눌러 실행한 모습을 참조하세요.
Testlevel 옆의 Serve 버튼을 눌렀더니, 아래와 같이 실행되고, Loading ~~ testlevel 이라는 console 문구가 보입니다. 현재 testlevel이 loading 되었고, server로 실행이 되고 있다는 의미입니다.
FPS Sample에서는 미리 생성된 Prefeb을 사용하는데, 이 Prefeb의 내용이 변경되면 Assets[force]를 반드시 눌러 주어야 Game Build시 반영됩니다. Level 관련된 사항도 변경이 생기면(구체적으로 어떤 변경인지 나중에 알아보겠습니다.) Levels [force]를 눌러주어야 합니다.
아래에 보이는 Game 영역에서 Arguments에는 Text를 입력할 수 있는데, 게임 실행을 위한 인자를 전달할 수 있습니다. Game은 내부적으로 Console 창에서 명령을 입력받거나, 또는 실행시 인자를 함께 전달하는 방식으로 Server, Client, level load 등이 실행되도록 설계되어 있는데, 실행시에 이런 명령을 추가하려면 이곳에서 입력한 후에 실행해 볼 수 있습니다.
아래와 같이 Arguments에 실행시 수행될 명령을 인자로 입력하고, Run을 누르면, 실제 server가 실행됩니다. Argument 에 대해서는 차차 다루도록 합니다.
Quick Start 영역입니다.
Quick Start는 Editor를 포함해서 Build된 Game을 여러 개 실행시키고 Muliplay를 할 수 있도록 해주는 강력한 도구 입니다. 각각의 항목에 대해서 살펴보면,
Mode : Muliplayer 또는 Singleplayer를 설정합니다.
Level : 실행시 Load하고자 하는 Level을 선택합니다. Project 창에 등록된 Level 중에서 Bootstrapper를 제외하고 선택 가능합니다.
Headless server : Server로 실행시 Graphic을 포함할 것인지에 대한 여부를 결정합니다.
Use Editor as : Editor도 함게 실행할지, 실행한다면 Server로 할지, Client로 할지를 결정합니다.
Default agrs : 인자로 전달 가능한 여러가지 console 명령이 많은데, 이곳에 입력하면, 게임 실행시 함께 실행 됩니다.
설정을 마치고 Start를 누르면 실행이 됩니다.
아래와 같은 설정으로 실행시켜 봅니다. Server를 하나 실행시키고, Client를 2개 실행시키도록 했습니다.
3개의 창이 뜨면서, 하나는 Server, 2개는 Client로 실행이 됩니다.
실제 돌아다니면서 둘이 만나는 것도 가능하네요. 이런 것은 어떤 데모나 튜토리얼에서도 다루지 않았던, 이 프로젝트를 통해서만 얻을 수 있었던 고급 개발자들의 기법인 것이죠.
그 외에 유용한 Tool이 있다면 LaunchWindow 입니다.
메뉴에서 FPS Sample > Windows > LaunchWindow 를 선택하면 됩니다.
아주 작은 창이 뜹니다
S는 selection 입니다. S를 클릭하면 초록색으로 변하는데, 상단의 Start Select 버튼을 누르면 Selection된 setting으로 Game을 실행합니다. "^"은 누르면 명령인자를 입력할 수 있는 부분을 보이게 해줍니다. 개별적으로 있는 노란색 버튼은 개별적으로 실행하겠다는 의미 입니다. 위와 같이 sever와 client를 각 한개씩 설정하고 실행하면, 그대로(?) 실행이 됩니다. Project tools에 있는 기능이 동일하지만, server, client setting을 여러가지로 해주도 빠르게 수행할 수 있는 tool로 이해하면 되겠습니다.
다음으로 소개할 Tool은 Network Profiler 입니다.
메뉴에서 FPS Sample > Windows > Nework Profiler를 선택하면 됩니다.
실제 실행해보면 Game is not running 이라는 메시지와 함께 아무것도 표시되지 않지만, Project Tools에서 Editor를 포함하여 Multiplayer mode로 Game을 실행하면 아래와 같이 여러가지 Network와 관련된 인자들을 보여 줍니다.
마지막으로 유용한 FPS Sample에서만 제공되는 Hot Key를 한 가지만 알아보겠습니다.
바로 Position under mouse 기능입니다. 핫키는 Ctrl + Shift + Q가 할당되어 있습니다.
실제 사용해 보겠습니다.
Scene View에서 Game Object를 하나 선택합니다. 그리고 이것의 위치를 변경하고 싶은 곳으로 마우스 커서를 이동합니다. 그런 이후에 Ctrl + Shift + Q 를 누릅니다.
마우스가 위치하고 있는 곳에서 레이캐스트를 쏴서 처음으로 충돌하는 객체와 레이가 교차하는 점으로 오브젝트를 옮깁니다.
이번에는 아래와 같이 엘리베이터의 꼭대기로 옮겨 보겠습니다.
마우스 위치를 잡고 Ctrl + Shift + Q를 누릅니다.
Barrel이 Elevator 상부로 이동되었습니다. 이런 Tool은 level 제작시에 상당히 유용할 것 같습니다.
다음은 FPS Sample을 동일하게 제작하기 위한 첫 작업이 기다리고 있습니다. FPS Sample을 살펴보는 것이 첫 작업이긴 하지만, 실제 제작을 시작하는 것은 다음부터라고 할 수 있겠습니다.
- 다소승탁진 -
'Unity > Repeat FPS Sample Project' 카테고리의 다른 글
005-Repeat Unity FPS Sample - Project Settings-Continue (0) | 2019.12.27 |
---|---|
004-Repeat Unity FPS Sample - Project Settings (0) | 2019.12.25 |
003-Repeat Unity FPS Sample Package 설치하기 (0) | 2019.12.25 |
001-Unity FPS Sample을 다운 받자 (1) | 2019.12.23 |
000-Unity FPS Sample Project (0) | 2019.12.19 |