블로그 이미지
한국IT전문학교 게임프로그래밍 2018년 졸업생 / 배우고 익히고 정리하는 곳 무명의 공룡

카테고리

분류 전체보기 (133)
Unity (5)
AR / VR (8)
홀로렌즈2 (2)
Unity 3D 액션 게임 제작 (2)
정리 (9)
소소한 배움 (6)
그외 (7)
비공개 (56)
--이전 프로젝트들-- (0)
Tree-sha (팀 3D) (9)
Icicle Game (2D) (19)
MMD RPG (3D) (9)
Total
Today
Yesterday

달력

« » 2024.12
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

공지사항

※안드로이드 기준으로 작성되었습니다.



카드보드는 굉장히 제한적인 입력 요소 덕분에 게임으로 써먹기는 힘듭니다.


자석 스위치도 지원되지 않는 기기가 있어 의존하기 어렵고 정확하지도 않습니다. (딱 떨어지는 스위치가 아니라 값의 변화량으로 체크하는거라)


그러면 남은건 일정 시간 이상 바라보기인데 컨트롤하는 동안은 시선을 그곳에 고정시켜야 하니여간 불편한게 아닙니다.


그래서 게임은 일단 미뤄두고 카드보드에 익숙해질 겸사겸사 감상용을 하나 만들어보았습니다.


제가 마침 유니티로 MMD 다루는 것에 대해 많이 글을 쓰고 있으니 MMD를 감상해보겠습니다.



무대 배치



카드보드 관련 설정에 앞서 일단 무대 배치부터 하겠습니다.


MMD는 기본적으로 캐릭터 하나가 춤추고, 그에 맞춰 노래가 나오면 끝입니다만 그래선 심심하겠죠.


대부분의 MMD에는 그에 맞는 스테이지가 준비되어 있습니다.


다만... 유니티에 스테이지까지 가져오는 방법은 알아내지 못하였기에 조금 꼼수를 써봤습니다.


unitychan stage에 대한 이미지 검색결과


우리의 유니티짱의 스테이지를 조금 빌려봤습니다.



바로 이렇게요!


근데 이게 14년 작품이라 상당히 오래 되었고 코드도 자바와 C#이 섞여있는데다 각종 연출이 Candy Rock Star에 딱 맞춰져 있어서 이래저래 삭제시키고 가져왔습니다.


그래서 정말 기본적이고 반복적인 반짝임밖에 없습니다.


하지만 이정도만으로도 훌륭하고 어차피 다른 노래 쓸거니까 괜찮습니다.


그리고 이 스테이지의 바닥이 빛나는거라 그런지 기본 그림자가 안 그려지더군요.


무겁기만 한 그림자를 뺄 핑계거리를 찾았네요. 빼버렸습니다.


이제 마음에 드는 MMD 모델과 음악, 모션을 찾아 MMD4Mecanim을 이용해 가져옵시다.


이 과정은 여기서는 적지 않겠습니다.


전 이번에도 sour식 린입니다. 노래는 Hand in Hand랑 Satisfaction으로 했습니다.


카메라가 너무 멀면 잘 안보이니까 상당히 가까이에 둡시다. 그리고 화면이 둘로 쪼개지니까 16:9가 아니라 8:9 화면으로 두고 배치하는 편이 편합니다.



그럼 게임씬으로 봤을 때 대충 이런 모양이 됩니다.


이걸로 일단 당장의 무대 배치는 끝입니다.


이제 카드보드로 볼 수 있게 설정해봅시다.



카드보드 설정



카드보드로 보기 위해서는 유니티를 설치할 때 안드로이드 빌드 서포트를 같이 깔아주어야 합니다.


깔아 주었다면 별도의 sdk를 깔아주지 않아도 보는데는 전혀 문제가 없습니다.


sdk를 따로 깔아주면 카드보드의 자석이나 데이드림 기능을 활용할 수 있게 해주고 데모 씬을 지원해줘서 맛보기가 가능합니다만 어차피 여기선 다 안 쓸 기능들이므로 전 깔지 않았습니다.


이후 Player Settings에서



맨 아래 XR Settings에서 위와 같이 설정해줍니다.


이후 메인 카메라를 보면



맨 아래 Target Eye가 생겼음을 알 수 있습니다.


클릭해보면 Both, Left, Right, None이 있는데 Both로 해두면 됩니다.


이걸로 카드보드 사용준비도 모두 끝입니다. 정말 쉽네요.



빌드 후 폰으로 실행시켜보면 이와 같습니다.


알아서 이런 형태가 되는데 위에 있는 X나 옵션은 현 시점에선 사실상 아무 기능도 없습니다.


일단 보기 시작하면 아예 눈을 때기 전까진 화면 터치가 불가능한 카드보드 특성상 저기에 기능을 넣어도 별 의미가 없기에 딱히 넣지 않았습니다. 종료는 강제종료 해주면 됩니다



UI와 기능 넣기



여기까지만 해도 감상에는 충분하지만 노래나 위치를 바꿀 수 있다면 더 좋겠죠.


UI를 넣어보겠습니다.



멀리서 보면 대충 이렇게 배치했습니다.


둥근 구체는 1초동안 쳐다보고 있으면 그 위치로 이동합니다.



아래 큐브는 노래 선택과 UI 스위치입니다.


처음엔 UI Switch라는 큐브만 있습니다.


모든 UI는 쳐다보면 점점 파래지고 1초가 되면 작동 되었다는 뜻으로 붉은 색이 됩니다.


UI Switch를 1초동안 쳐다보면 위 사진대로 구체와 노래명, 그리고 중앙에 붉은 점이 표시됩니다.


다시 보면 다시 UI Switch 큐브만 남고 다 사라집니다. 감상에 방해가 되지 않도록 하기 위함입니다.


노래 제목을 1초동안 쳐다보면 그 노래가 나오고 춤을 추기 시작합니다.


이미 재생중인 노래를 쳐다봐도 처음부터 다시 노래가 나오고 춤을 춥니다.



여기까지 UI를 배치했고 어떤 기능을 가지게 할지도 생각해뒀으니 이제 실제 기능을 구현하면 됩니다.


대략 레이캐스트, 색 변화, 시간 인식, 이동, 노래 및 춤 재생, 중앙에 점 띄우기 정도만 하면 되겠네요.



레이캐스트는 메인카메라에 달고 쏴주면 됩니다. 실행시 카메라가 2개가 되지만 정상 작동 합니다.


색 변화나 시간 인식은 보고 있는 대상이 이전 프레임과 동일하다면 시간이 될 때까지 계속 값을 더해주고 시간이 되면 정해진 함수를 작동시킵니다. 만약 이전 프레임과 보고있는 오브젝트가 다르다면 초기화 시켜주면 되겠네요.


이동은 그냥 카메라를 움직이면 될 거 같은데 이게 앱으로 보게되면 카메라가 2개가 되어서 그런지 실제 폰에서 시도해보면 이동이 먹지 않습니다. 하지만 방법은 있습니다 카메라 부모로 빈 오브젝트를 달아두고 이 부모를 이동시켜주는 방식을 쓰면 정상적으로 이동합니다.


노래 및 춤 재생은 MMD4Mecanim이 정말 편리해서 그냥 해당 애니메이션을 재생만 시켜주면됩니다. 

다만 같은 애니메이션을 다시 동작시키면 노래가 초기화 되지 않아 노래 싱크를 맞추기 위해 모션이 노래와 동일해질때까지 2배속 되는 증상이 있으므로 현재 재생 중인 노래는 재선택이 안되도록 막아놓을 것이 아니라면 이렇게 중간을 하나 거치게 해주면 됩니다.



중앙의 점은 보통 FPS같은 1인칭 장르에서 중앙이 어디인지 알려주기 위한 보조 역할입니다. 여기서는 UI를 쳐다보는데 도움을 줍니다.

원래는 붉은색이나 작동하는 곳을 쳐다보면 초록색이 됩니다.

근데 이 중앙을 알려주는 원을 사용할 땐 주의점이 있는데



sdk 데모 씬에서도 이렇게 쓰고 있는데 붉은 원의 위치는 실제로도 보고 있는 곳의 위치와 일치해야 합니다.


그리고 그만큼 크기도 멀수록 커져야합니다.


일반적으로 게임만들때처럼 따로 UI 창 하나 두고 고정시켜버리면 화면이 2개인 VR에선 오히려 초점이 틀어지게 만드는 문제를 가지고 있습니다.


지금 제가 만든 스테이지엔 스테이지 자체에 콜라이더가 없어서 임시로 레이캐스트에 닿는게 없을 때는 그냥 10만큼의 거리에 띄우도록 했더니 UI를 볼때는 초점이 맞지만 보지 않을 때는 원이 2개처럼 보이는 문제가 발생합니다.




추가로 평소처럼 UI Canvas를 기본 상태인 Overlay로 쓰게 되면 폰에서 해당 UI가 제대로 보이지 않습니다.


페이드 인, 아웃 같이 화면을 통째로 가려야 할 필요가 있다면 Overlay가 아닌 Camera로 두고 사용하시면 됩니다.




네, 이것으로 노래도 바꿀 수 있고, 위치도 바꿀 수 있고 VR로 MMD를 감상 할 수도 있는 짤막한 앱이 완성되었습니다!


확인하기 위해선 일일히 빌드를 해야하는지라 평소보다 훨씬 더 오래 걸렸지만 어느정도 감을 잡기에는 충분했던거 같습니다.


과연 이걸 가지고 게임을 만들라면 어떤걸 만들어야할지 의문이지만....



혹시나 여기서 필요하신 리소스가 있다면 말씀해주시면 올려드리도록 하겠습니다.


제가 제작한게 아니라면 링크를 걸겠습니다.

'AR / VR > VR' 카테고리의 다른 글

(유니티 3D) Mesh Cut  (6) 2018.09.10
VR을 값싸게 카드보드로 시작하자  (0) 2018.05.10
(유니티3D)VR게임 짤막한 제작  (1) 2017.12.08
Posted by 무명의 공룡
, |