[음악] 이제 아트가 있고 프로젝트도 생겼으니, 게임을 만들기 시작해 봅시다. 제가 가장 먼저 하고 싶은 것은 약간의 환경을 만들고 플레이어를 추가하는 방법을 배우는 것입니다. 따라서 샘플 장면(Sample scene)을 확장해서 메인 카메라와 글로벌 라이트(Global light)를 다시 볼 수 있도록 할 겁니다. 이 씬이 열려 있지 않다면, 에셋 폴더(assets folder)로 가서 씬(scenes)으로 이동한 후 'Sample scene'을 더블 클릭하세요. 그러면 열릴 겁니다. 그렇게 한 후에, 아트 폴더의 그라운드(ground) 폴더로 가서 'grass'를 선택하고 'grass mid'를 찾겠습니다. 어디에 있나? 여기 있습니다, grass mid. 이 grass mid를 가져와서 [IMG:N] 계층 구조(hierarchy) 안으로 드래그할 건데, 아니요, 여기 아니라 여기에 있는 계층 구조 안으로 넣을게요. 그러면 중앙에 위치하게 되고 게임 월드의 정중앙에 놓겠습니다. 마우스 휠로 확대/축소하고, 주변을 이동할 때는 가운데 마우스 버튼을 기억하세요. 지금 이 위치는 마음에 들지 않습니다. 제 게임 뷰(game view)를 보면 여기에 잔디가 우리 세계의 중앙에 있는 것을 볼 수 있습니다. 저는 이것이 우리 세계의 아래쪽 근처에 있었으면 좋겠습니다. 그래서 그렇게 변경해 봅시다. 하지만 여기에서 그냥 예를 들어 이 y 위치를 클릭하고 드래그해서 아래로 당기면 내려갈 겁니다. 꽤 좋은 곳으로 가져올 수는 있겠지만, 제가 아직 매우 중요한 것을 하지 않았기 때문에 일관성이 없을 것입니다. 먼저 이것을 다시 0으로 설정한 다음, 이 게임 뷰 창 영역으로 올라가서 'free aspect'이라고 쓰여 있는 부분을 살펴봅시다. 이것이 의미하는 바는 우리 게임이 창의 보기나 크기에 따라 조정되고 스케일링될 것이라는 겁니다. 즉, 화면 비율(aspect ratio)은 우리가 가진 공간에 따라 조정됩니다. 더 넓은 공간이 있다면 와이드스크린으로 가고, 덜하다면 예쁘게 키가 큰 포트레이트(portrait)로 갈 것입니다. 우리는 그것을 원하지 않습니다. 우리는
게임을 제작할 때는 고정된 화면 비율(fixed aspect ratio)을 사용하는 것이 좋습니다. 이렇게 해야 어떤 요소들이 어떻게 보일지, 그리고 일관성이 유지될지 알 수 있습니다. 그렇지 않으면 실제 기기에서 1080P나 4K 등 최종적으로 구축하는 해상도에서 작동할 때 모든 것들이 이상하게 보이게 될 것입니다. 그렇다면 어떤 해상도를 선택해야 할까요? 기본적으로는 풀 HD(Full HD)인 1920x1080을 사용합니다.
이것이 제가 보통 추천하는 방식이니, 필요하지 않은 다른 비율들은 일단 시도해 보지 마세요. 자, 이제 그 기능으로 전환해 보겠습니다. 보세요, 옆에 막대들이 생겼죠? 이걸 드래그하면 화면 비율이 유지됩니다. 이게 우리가 원하는 것이에요. 만약 레이아웃을 초기화(reset)하면 다시 창 레이아웃(window layouts)으로 돌아가고 기본 설정은 자유 비율(free aspect)로 재설정될 것입니다. 그래서 1080p 또는 1920x1080으로 다시 변경해야 합니다. 예전식 TV 시절부터 흔히 쓰이던 방식이니, 1080p라고 부를 수도 있습니다. 자, 이 잔디(grass)가 아래쪽에 있게 하려면 어떤 값을 넣어야 할까요? 이걸 어떻게 움직이고 어떻게 낮출 수 있을까요? 제가 보여드렸듯이, 여기서 Y를 클릭하고 마우스를 아래로 드래그하면 이동할 수 있어요. 보세요, 숫자가 변하는 게 보이죠? 자, 이게 실제로 뭘 하는지 한번 알아봅시다. 장면 보기(scene view)로 가면 잔디가 있는 오브젝트가 하나 있는데, 이걸 클릭할 수 있습니다. 적절한 위치를 클릭하면 마우스 커서가 생기고, 이걸 드래그해서 움직일 수 있어요. W 키를 누르면 화살표들이 나오고, 이걸 드래그해서 위아래나 좌우로 옮길 수 있습니다. 어느 화살표를 잡느냐에 따라 오른쪽은 왼쪽에서 오른쪽으로, 초록색은 위에서 아래로 이동합니다. E 키를 누르면 회전(rotate)하고 돌릴 수 있어요. 저는 그렇게 하고 싶지 않으니 Ctrl + Z를 눌러 변경 사항을 되돌리고요. 만약 E나 R 키를 누르면 실제로 크기를 확대하거나 아주 크게 만들거나, 아니면 축소할 수도 있습니다. 이것도 원하지 않으니 Ctrl + Z를 누릅니다. 또한 이 이상한 위치도 원하지 않으니 0으로 다시 변경하겠습니다. 그리고 아래로 이동시킬 거예요. 움직이려면
아래로 내려가서 W를 누르면 이동 모드로 전환되지만, 이렇게 그냥 드래그하지 않을 거예요. 대신 Ctrl을 제어할게요. Ctrl 키를 누르고 있으면 스냅(snapping)이 활성화되는 것을 볼 수 있습니다. 이제 이 값을 보세요. 이 위치 Y 값은 제가 이걸 아래로 드래그하면서 Ctrl을 누르니까 0.25씩 증가하는 것이 아니라, 0.25 간격으로 내려가네요. 즉, 1/4미터만큼 내려간 거예요. 미터법에 익숙하지 않다면 약 3피트보다 조금 적은 정도입니다. 이 미터법 변환에 익숙해져야 할 것 같아요. 하지만 제가 이걸 아래로 드래그하면 쿼터 미터 간격으로 스냅되고, 이게 거의 바닥인 -4.5까지 내려갈 수 있어요. 이 흰 선이 뭐지 궁금하실 거예요. 사실 이게 카메라예요. 카메라 경계(camera bounds)를 보여주고 있습니다. 만약 씬 뷰(scene view)로 돌아가면 여기는 카메라의 가장자리를 보여주고, 게임 뷰(game view)는 실제로 렌더링된 게임 화면을 보여줍니다. 참고로 이것들을 드래그할 수 있어요. 보세요, 이걸 드래그해서 보면 이제 나란히 볼 수 있네요. 이쪽으로 드래그하면서 두 뷰에서 모두 볼 수 있어요. 다시 Ctrl Z를 눌러 되돌리고, 제 게임 뷰를 잡아서 여기로 끌어와서 나란히 도킹할 수 있습니다. 만약 레이아웃을 망가뜨렸다면 언제든지 'layouts default'로 돌아갈 수 있어요. 그냥 풀 HD(full HD)로 변경하는 것만 기억하세요. 자, 이제 여기에 바닥이 생겼네요. 이걸로 뭘 할 수 있을까요? 만약 바닥 전체를 원한다면요? 바닥을 끝까지 쭉 펴고 싶다면 어떻게 해야 할까요? 다시 돌아가서 그 바닥 오브젝트를 찾읍시다. 찾아봅시다. 그리고 여기 잔디(grass mid)를 또 드래그해서 배치하고 정렬해 보려고 합니다. 기술적으로는 그렇게 할 수도 있지만, 정말 형편없는 방법일 거예요. 엄청 비효율적이고 아마도 너무 고통스러워서 시간이 오래 걸릴 겁니다. 그러니 이걸 되돌리죠. 이 잔디를 선택하고, 삭제 키를 누릅니다. 첫 번째 잔디가 아니라 두 번째 잔디만요. 'grass mid'라고 되어 있는 것만요.
자, 이제 잔디를 선택하고 약간 수정해 보겠습니다. 인스펙터(Inspector)에서 보이듯이, 우리가 변형(transformed)을 했고 물건들을 여기저기 옮겼으며 몇 번이나 봤습니다. 그리고 스프라이트 렌더러(Sprite renderer)가 있습니다. 이것은 이 스프라이트를 표시하는 오브젝트의 컴포넌트입니다. 우리 레벨에는 카메라, 라이트, 그리고 스프라이트가 있는 오브젝트 하나가 총 세 개 있습니다. 그 이름은 'grass mid'인데, 이것이 실제로 스프라이트의 이름이기 때문입니다. 그렇다면 이 스프라이트 렌더러는 무엇일까요? 우리의 스프라이트를 보여줍니다. 우리가 스프라이트를 표시할 수 있는 몇 가지 다른 옵션을 제공합니다. 지금 드로우 모드(draw mode)는 'simple'로 설정되어 있습니다. 이것을 클릭하면 실제로 'tiled'로 변경할 수 있으며, 타일링된(tiled) 스프라이트는 텍스처를 반복하여 마치 배경이나 바닥이 타일링되거나 비디오 게임에서 타일링되는 모든 것을 만들 수 있게 해줍니다. 이제 타일링 크기를 늘리려면 너비(width)를 수정할 수 있습니다. 1, 2, 3, 4, 5, 6 또는 원하는 대로 10까지 키울 수 있습니다. 저는 이것을 약 20으로 변경하고 시퀀스 뷰(Scene View)로 가서 어떻게 보이는지 확인해 보겠습니다. 카메라 뷰를 살짝 지나서 길고 멋진 잔디 조각이 보입니다. 하지만 게임 뷰(Game View)로 돌아가 스프라이트 렌더러를 보고 이 작은 경고 메시지가 무엇인지 살펴보겠습니다. 큰 느낌표와 노란색이라 조금 걱정될 수 있습니다. '사용된 스프라이트가 full rect로 생성되지 않았거나, 스프라이트 모드가 polygon 모드로 설정되지 않아 스프라이트 타일링이 올바르게 표시되지 않을 수 있습니다(Sprite tiling may not appear correctly because the Sprite used is not generated with full rect or Sprite mode set to polygon mode).'라고 되어 있습니다. 이것을 수정하려면 스프라이트 임포트 설정(Sprites import settings)에서 메시 타입(mesh type)을 'full rect'로, 그리고 스프라이트 모드(Sprite mode)를 'single' 또는 'multiple'로 변경하세요. 우리의 사용 사례에서는 실제로 아무 문제 없이 작동합니다. 왜냐하면 스프라이트가 만들어진 방식 자체가 큰 문제는 아니기 때문이지만, 저는 여기에 있는 것을 싫어하므로 정확히 지시된 대로 오류를 제거하겠습니다. 그래서 이것은...
스프라이트 모드를 변경해 봅시다. 이게 무엇인지 확인하고 수정해야 합니다. 스프라이트 임포트 설정에서 메시 타입(mesh type)을 '풀 렌치(full rect)'로 변경합니다. 자, 이제 우리의 스프라이트를 찾으러 갑니다. 그러기 위해 여기 아래에 있는 스프라이트를 선택할 건데, 이건 렌더러(renderer)에 있는 게 아니라 프로젝트 뷰(project view)에 있는 실제 스프라이트입니다. 그리고 여기에 있는 메시 타입으로 가는데, 기본값인 '타입(type)'으로 설정되어 있습니다. 이걸 '풀 렌치(full rect)'로 변경하고 적용(apply)을 누릅니다. 이제 우리의 에러가 사라질 겁니다. 잔디는 실제로 전체 스프라이트를 가져오고 모서리나 가장자리에 투명한 빈 공간이 있어도 잘라내지 못하는 것만 하고 있습니다. 하지만 이 스프라이트들에는 빈 모서리나 가장자리가 없기 때문에 실제로는 아무런 차이가 없습니다. 그래서 실제로 아무것도 변경하지 않는 겁니다. 이제 아래에 바닥(ground)이 생겼습니다. 그리고 플레이어(player)를 추가할 시간인 것 같습니다. 플레이어를 추가하려면, 'players' 폴더로 갈 건데, 128x256 폴더를 선택합니다. 이 폴더는 모든 스프라이트의 높이가 같은 곳입니다. 다른 폴더에는 높이가 다른 스프라이트들이 있습니다. 이건 나중에 덕킹(ducking)이나 점프(jumping) 같은 것을 다룰 때 조금 더 이야기하겠습니다. 하지만 지금은 그냥 'I' 폴더로 들어가겠습니다. 그리고 파란색 폴더를 선택하고, 유휴 상태(idle)인 파란 외계인(blue alien)을 찾습니다. 이름이 여기에 보이지 않아서, 이 작은 슬라이더를 드래그해서 리스트 뷰(list View)에서 볼 수 있게 합니다. 그리고 'Alien Blue Front'라고 적힌 것을 가져와서 바로 씬 뷰(scene view)로 끌어다 놓겠습니다. 이제 우리 게임 중앙에 외계인 한 명이 앉아 있습니다. 재생 버튼을 눌러도 되고, 지금은 아래에 잔디가 있는 멋진 외계인 게임이 될 수 있을 것 같습니다. 한번 봅시다. 자, 여기 있습니다. 우리의 게임이 생겼고 작동하지만, 실제로 아무것도 하지 않습니다. 그래서 플레이를 멈추겠습니다. '플레이(play)' 버튼을 다시 누르거나, Control 또는 Command + P를 사용합니다. 이것도 다른 단축키입니다. Control + P 또는 Command + P에 익숙해지시길 강력히 권장합니다. 재생과 정지를 토글(toggle)하기 때문에 아무 일도 일어나지 않은 겁니다. 아직 설정하지 않았기 때문입니다.
우리 게임에 필요한 것은 코딩도, 물리 효과도, 상호작용도 없는, 단순히 스프라이트(Sprites)로 그린 정적인 장면일 뿐입니다. 아직은 게임이라기보다는 그렇습니다. 그래서 다음 섹션에서는 연결 작업을 시작할 예정이지만, 그 전에 레벨을 저장해야 합니다. 파일(File)로 가서 '저장(Save)'을 누르면 됩니다. 그러면 샘플 씬(sample scene) 이름 옆에 있던 작은 별표가 사라질 겁니다. 그냥 '샘플 씬(Sample Scene)'이라고만 되어 있으면 되는데, 저는 그게 마음에 들지 않습니다. '샘플 씬'이라는 이름의 장면에서 작업하거나 아직 우리만의 레벨이 없는 건 싫습니다. 그러니 한 번 더 저장합시다. 그러려면 파일(File)로 가서 '다른 이름으로 저장(Save As)'을 선택해야 합니다. C scenes 폴더로 들어가서 우리의 레벨 이름을 'level one'이라고 지정할 겁니다. 자, 여기 파일 이름 섹션에서 'level one'이라는 단어를 선택하거나 입력하고 엔터(Enter)를 누릅니다. 이제 우리 장면이 'level one'으로 표시되는 것을 볼 수 있습니다. 한번 확인해 봅시다. 에셋(assets) 폴더로 가서 씬(scenes) 폴더로 가면, 이제 'level one'이 있고 'sample scene'도 있습니다. 제가 더블클릭해서 확인해 보니, 네, 똑같아 보입니다. 'level one'으로 돌아가 보면 역시 똑같습니다. 아주 흥미로운 건 아니네요. 실수로 샘플 씬에서 작업하지 않도록 확실히 해야겠습니다. 이제 'level one'이 작동하고 로드되었으니, 프로젝트(project)에서 샘플 씬을 선택해서 삭제(delete)를 누르고 다시 한번 삭제해 주세요. 그렇게 하기 전에 반드시 'level one'에 있는지 확인하고 저장했는지, 그리고 모든 것이 제대로 작동하는지 확인하세요. 그렇지 않으면 나중에 다시 만들러 가야 합니다. 이제 이것까지 저장했으니 준비가 끝났습니다. 다음 섹션에서는 물리 효과(physics)를 연결하기 시작할 겁니다.