도서리뷰: 초보자를 위한 유니티 입문(개정2판)

2023. 5. 22. 23:47내 서재

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

확장현실(XR, extended reality)와 유니티(Unity)

여기저기 귀를 따갑게 울리던 '메타버스'라는 버즈워드(Buzz word)가 한풀 꺾였습니다. 그럼에도 디지털이 가져온 무한에 가까운 가능성은 여전합니다. 특히 디지털로 구현할 수있는 가상현실(VR, virtual reality)은 디지털의 꽃이라고 해도 과언은 아니지 않을까 합니다.

 

유니티는 게임뿐만아니라 교육과 훈련에서도 상당한 영향력을 갖고 있습니다.

세계은행은 에쿠아도르에 가상현실을 활용한 몰입형 훈련과정을 도입하는 프로젝트를 진행한 바 있습니다(참고: With ActiVaR, Ecuador launches its first immersive training program (worldbank.org))

 

여기에도 유니티가 활용되었습니다.

 

게임만을 위한 도구로 제한될 것이 아니라 가상현실 활동을 위한 도구로서 유니티는 매우 중요한 역할을 하고 있습니다. 그래서 '초보자를 위한 유니티'는 더더욱 관심을 끌었습니다.

 

'초보자'라는 모호한 개념

어떤 책이나 '초보자'라는 개념은 매우 중요하면서도 어렵습니다.특히 유니티는 디지털로 만들어지는 세계 또는 현실에 대한 상상력이 매우 필요하기 때문입니다.이 책 '초보자를 위한 유니티 입문(개정2판)'은 꼼꼼한 설명에도 불구하고 '초보자'에 대한 사전 설명이 조금 더 있었다면 하는 아쉬움이 있었습니다.언제나 '초보자'를 정의하기가 어렵다면 '내가 생각한 "초보자"는 어떤 것이고, 이 책의 독자에 대한 좀 더 구체적인 고민이 설명으로 나와 있었다면 어땠을까?'하는 생각이 들었습니다.분명 어느 저자나 기술서적을 쓸 때 반드시 고민했을 요소이므로 이 부분에 대해서 독자에 대한 당부와 기초지식을 습득할 안내가 더 있었다면 어땠을까 하는 아쉬움이 있었습니다.

 

개인적으로 유니티 입문과정을 통해 유니티로 작은 프로젝트를 실행해본 경험이 있지만, 유니티를 한동안 사용하지 않아 거의 다 잊은 입장에서 '초보자를 위한 유니티 입문(개정2판)'은 굉장히 매력적인 제목이었습니다.

 

유니티 말만 듣고 한 번 해봐야겠다는 사람들도 있을테고, 그 분들 가운데서도 프로그래밍에 대한 경험과 지식이 있느냐 아니냐에 따라 '초보자'란 개념이 주관적으로 매우 다를 수 있어서 이런 점에 대한 독자 또는 출판사의 고민이 좀 더 풍부했다면 더 좋았을텐데 하는 생각이 있었습니다.

 

그러면 독자들은 책을 읽을 때 어떤 요소를 주의할 수 있을텐데 그리고 부족한 것은 어디서 어떻게 확인할 수 있는 지 미리 알아둘 수 있지 않았을까 하는 생각이 들었습니다.

 

'기술서적'의 또 다른 고민, 메뉴와 사용자인터페이스 변경

분명 2판을 쓰게된 주요 요소 가운데 하나일텐데 안타깝게도 메뉴와 사용자인터페이스가 다소 변경이 되었습니다. 저도 기술관련 문서를 번역하는 일을 개인적으로 여러차례 해봤는데, 늘 업데이트에 따른 메뉴 또는 사용자인터페이스의 변화로 포기하는 일이 잦았습니다. '초보자'들은 메뉴의 개념에 대한 이해가 부족하기 때문에 약간만 메뉴구성이나 사용자인터페이스가 변경되면 당황할 수 있을텐데요.

가령 예를 들자면, 47페이지에서 '씬(Scene)'의 메뉴 설명 가운데 '씬 표시 설정'에서 'Miscellaneous'와 'Deferred'에 대한 내용이 친절히 설명되어 있는데, 2023년 5월 현재 해당 요소들이 사라져 있습니다.

인공지능 시대에 들어서면서 챗지피티(ChatGPT)와 같은 대화형인터페이스(Coversational Interface)가 메뉴 또는 사용자경험(UX, user experience)로 들어오게 되면서 근본적인 변화가 도래하고 있다는 점에서 이런 변화들은 앞으로 어떻게 구현이 될지 좀 더 궁금합니다.

확장현실에 대한 기초 설명의 아쉬움

2차원(2D)이든 3차원(3D)이든 유니티로 구현할 세상은 또 다른 확장된 현실입니다.

메타버스이냐 아니냐는 차치하고, 새롭게 구현된 현실에 대한 기본 개념과 기초 정보가 미리 공유되면 기능을 익혀서 활용할 수 있는 상상력을 자극하는 데 도움이 되지 않을까 하는 생각을 해봤습니다.

직접 확장현실 솔루션을 사업화 하는 입장이라서 더욱 아쉽게 여기는 게 아닌가 싶지만, 그래서 배운 유니티 기술을 어디에 어떻게 그리고 궁극적으로 '왜' 사용하려는 지에 대한 인식을 미리 알려주고 시작하면 더 좋지 않았을까 생각했습니다.

그랬다면 아마도 '기즈모(Gizmos)'라는 낯선 용어에 대한 개념을 좀 더 수월하게 이해하고 필요성에 대해서 쉽게 적응할 수 있었을 것 같습니다.

참고로 '기즈모'는 확장현실에서 배치된 오브젝트(사물)를 제어하는 다양한 요소들을 시각화 한 것을 말합니다.

가령 3D에서는 해당 오브젝트를 3차원에서 6가지 자유도(DoF, Degree of Freedom)로 다룰 수 있게 시각화해서 제어하도록 돕는 기즈모부터, 조명과 그림자 등의 위치를 다루는 기즈모 등 다양한 기즈모가 존재하며 이를 눈에 띄게 제어하도록 알려주는 것들을 말합니다.

 

3D 기즈모 예시
3D 오브젝트를 위치 방향 등을 제어하는 기즈모(Gizmo)의 예
화면을 제어하는 기즈모(Gizmo)의 예

그럼에도 불구하고 이 책은 장점이 참 많습니다.

정성들인 인터페이스 또는 메뉴 설명

하나하나마다 정성들여서 사용법을 유기적으로 연결해서 알려주고 있고, 추가적인 설명을 박스 형태로 안내해주고 있습니다. 가령 실무적으로 초보자들이 화면을 제어하는 기즈모를 다루다가 장면이 바뀌었을 때 당황하기 쉬울 수 있는데, 그 때 오브젝트의 좌표 원점에 대한 설명을 추가해줘서 놀라지 않고 제자리로 찾아갈 수 있게 하는 등은 이 책의 큰 장점이 아닌가 합니다. 설치 후에 곧바로 메뉴 또는 인터페이스와 익숙해지도록 구성했는데, 이 점은 실습으로 배우면서 개념을 깨치고 싶어 하는 분들에게는 오히려 장점이 되지 않을까 싶습니다.

기본 사용법 익히기

유니티가 각광받게 된 가장 큰 까닭 가운데 하나는 '물리 동작'에 대해서 따로 계산할 필요가 없고 물리적 지식이 많지 않아도 오브젝트를 다양한 형태로 조작할 수 있기 때문이었을 겁니다. 이 점에서 제3장 '유니티 사용하기'는 실습을 통해서 금방 익힐 수 있게 도와 줍니다. 다만 아쉬움이 있다면 예제 프로젝트를 QR 코드 등으로 쉽게 이동할 수 있는 안내가 있었다면 좋지 않았을까 싶었습니다.

2D 게임 만들기를 통한 학습

기본적으로 2D에서 활용할 게임을 예제를 통해 각 기능을 배울 수 있도록 친절히 안내하고 있습니다.

특히 소스를 미리 배포해주어서 해당 소스를 통해 게임을 만들 수 있도록 한 점은 게임을 만들 때 필요한 기능들을 반복해서 익히도록 설계되어 있습니다.

다만, 게임에 대한 간단한 기획과 어떤 까닭으로 해당 게임을 만들게 되었는지, 해당 기능을 고려한 까닭은 무엇인지 등에 대해서 사전에 체계적으로 고민할 수 있도록 책이 서술되었다면 하는 아쉬움은 있었습니다.

아울러 갑작스럽게 나타난 '스프라이트'라는 개념을 좀 더 상세히 설명해주었다면 어땠을까 하는 생각이 들었습니다.

"초보자"를 위한 안내서인데, 개념 설명이 다소 약한 느낌은 계속해서 들게 되었습니다.

아무래도 실습을 통해 2D와 3D 게임을 개발하는 데 초점을 맞춰서 그런 게 아닌가 싶습니다.

따라서 게임을 만들다보면 생각이상으로 고려할 요소가 많다는 걸 알게되고 자연스레 해당 요소들의 기능과 역할에 대해서 익히게 되는 점은 '실습을 통한 학습'의 장점이 아닌가 싶습니다.

제어를 위해서 코딩도 익히게 되는데, C# 코드 스크립트 들이 등장하는데 프로그래밍을 배운 적 없는 '초보자'들에게는 다소 장벽이 되지 않을까 싶습니다.

다만, 게임 하나에 얼마나 많은 요소들이 들어가는 지에 대해서는 확실히 생각하는 훈련을 제공한다는 장점도 있다고 봅니다.

3D 게임 만들기를 통한 학습

실습에서 다루는 게임은 '장애물 달리기 게임'인데, 장애물을 배치하고, 플레이어를 조작하면서, 카메라를 통해 시점을 변화시키는 등의 입체감 있는 게임을 만드는 방법을 익힙니다.

특히 3D 게임은 애셋 스토어가 중요한 역할을 하므로 에셋 스토어 사용법과 그 밖에 3D로 구현하게 됨에 따라 빛 처리 방법과, 6 자유도(DoF)를 고려한 캐릭터 움직이기 등의 추가적인 설명이 제공됩니다.

3D 게임은 홀로 작업해서 만들기가 어려운 만큼 애셋 스토어가 중요하기에 상세한 설명을 해당 챕터(제6장)에서 다루고 있습니다. 그리고 플레이어가 3차원에서 작동하므로 플레이어를 잃지 않기 위해 '태그'를 설정하는 방법부터 플레이어를 따라 카메라를 이동시키는 등의 입체적이며 몰입감을 높이는 속성을 매우 잘 설명하고 있습니다.

스마트폰에서 실행하기

3D로 만든 게임을 스마트폰에서 실행할 수 있도록 변경하는 방법을 학습합니다.

특히 스마트폰은 사용자의 컨트롤이 키보드나 마우스 등을 사용하지 않으므로 사용자경험이 전혀 달라집니다.

이런 요소에 대한 고려와 안드로이드 및 아이폰에서 작동하도록 만들 때 필요한 사항에 대해서도 함께 학습을 하도록 매우 친절한 방식으로 게임을 만들 수 있도록 안내해줍니다.

최종적으로 스마트폰에서 실행할 수 있도록 학습을 마치고 나면 전체 실습과정은 끝이 납니다.

찾아보기

마지막에 주요 키워드를 통해서 찾아보기를 하도록 색인을 매겨 두었습니다.

 

후기

실습을 통해서 몰입형 환경에 대한 이해를 자연스레 닦을 수 있도록 잘 설계 되어 있는 책입니다.

다만, '초보자'들에게 기본적인 개념을 잘 설명해주면 더 좋지 않았을까 하는 아쉬움도 있습니다.

기본 개념에 대한 설명이 부족한 것도 있거니와 '초보자'들을 고려한다면 개념을 잘 이해시켜주는 것은 매우 필요하지 않을까 싶습니다.

실습을 통해서 상당히 완성도 높은 2D, 3D 게임을 만들고, 모바일에 내보내는 방법까지 배울 수 있다는 점에서 이 책은 그만한 가치를 갖고 있다고 생각합니다.

 

초보자를 위한 유니티 입무 책 표지
초보자를 위한 유니티 입문