유니티 : 구글 스프레드시트 데이터 가공 도구

◆ 개발기간 : 2020. 9
◆ 개발인원 : 1명
◆ 개발내용 : 기획, 전체 프로그래밍
◆ 개발환경 : Windows10, VisualStudio 2019, Unity 3D, UGUI
◆ 개발언어 : C#
◆ 요약 : 구글 스프레드 시트에 정의된 데이터 테이블을 .csv파일 형태로 다운받고, 게임에서 사용할 수 있는 데이터 코드를 생성해주는 에디터.
◆ 깃헙 : https://github.com/SunsetK/UnityGoogleSpreadSheetDataParser

  1. 참고사항
    • 인게임에서 데이터를 인스턴스화 하는 시스템은 별개로 구현해야함.
    • [필수] Unity : Editor Coroutines 패키지를 인스톨 해야 사용가능.
  2. 에디터 설명
    • ParsetConfig 영역
      • Data Path : .데이터 파일이 생성되어 저장될 경로
      • File(.csv) Path : 서버로 부터 다운받은 .csv파일들이 저장될 경로
      • Edit Templete Data Code : 자동으로 데이터 코드를 생성하기위한 템플릿 코드를 수정하기위해 파일을 오픈. 네임스페이스나 접두사/접미사/접근지정자등을 설정한다.
    • Datas 영역
      • DataName : 생성할 데이터 이름. 구글 스프레드 시트의 시트이름과 동일해야한다. 해당이름으로 데이터 클래스가 정의되며 .cs파일이 생성된다. Perser Config의 Data Path에 이미 같은이름의 .cs파일이 존재한다면 덮어쓰며, 없다면 새로 생성한다. 
      • UriKey : 구글 스프레드시트의 uri 키(스프레드 시트 주소의 d/와 /edit~ 사이의 문자열)
      • 하단 영역
        • Add Item : 새로운 데이터를 하나 추가한다.
        • Help : 설명서를 연다.
        • Save :  현재 Config, Datas 설정을 저장한다.
        • Parse All : 정의한 Data들을 모두 파싱한다.

Mukbang Simulation

◆ 개발기간 : 2021. 1~ (개발중)
◆ 개발인원 : 1명
◆ 개발내용 : 기획, 디자인, 전체 프로그래밍
◆ 플랫폼 : 안드로이드
◆ 개발환경 : Windows10, VisualStudio 2019, Unity 3D, UGUI
◆ 개발언어 : C#
◆ 요약 : 먹방 유튜버를 체험해보는 시뮬레이션 게임.

  • 컨텐츠 리스트

방송 계획을 세워 방송을 실행하고, 가상의 시청자들의 채팅에 반응을 하고, 음식을 먹기도 하며 방송을 진행합니다. 방송 구독자 수와 구독자의 상태에 따라 얻을수 있는 수익이 다릅니다. 방송이 다 끝나고 나면 자동으로 내 채널에 방송 동영상이 올라가는데, 방송의 반응에 따라 추가 수익과 구독자를 얻을 수 있습니다.

연구 – 연구를 통해 체력, 정신력등을 업그레이드 해 방송을 통해 얻는 수익을 증대시킬 수 있습니다.

과제 – 각 음식을 특정 횟수 이상 먹을때 마다 보상을 얻을 수 있습니다. 보상을 얻기위해 반복적인 플레이를 할 수 있도록 유도합니다.

랭킹 – 가상의 먹방 유튜버들과 경쟁을 해서 순위에 오르거나, 구글 리더보드를 통해 실제 플레이어들과 점수를 겨룰 수 있습니다. 경쟁에서 높은 순위를 달성하도록 유도 해 게임플레이 동기를 제공합니다.

부업 – 예상치못한 많은 지출로 방송을 할 자금이 부족해질때, 부업을 통해 부가 수익을 얻을 수 있습니다. 특정횟수 이상 작업 진행 시 숨겨진 음식을 얻을 수 있습니다.

상점 – 외형을 변경할 수 있는 치장 아이템과 아이템에 특정 능력을 부여할 수 있는 마법 스크롤을 판매합니다. 확률에 따라 출현하는 아이템 등급이 달라집니다.

인벤토리 – 상점에서 구매한 아이템목록을 보여주며, 착용 및 해제가 가능합니다.

인챈트 – 아이템에 특정 능력을 부여하 고 싶을때 마법 스크롤을 이용해 능력을 부여합니다.

컬렉션 – 음식, 아이템 등을 획득했을때 실루엣에 가려졌던 아이템이 오픈되며, 등급에 따라 보상을 얻을 수 있습니다. 사용자로 하여금 달성도 100%을 채우도록 하여 반복플레이를 유도합니다.

도트 변천사

얼마전에 에이스프라이트를 구매했고 그림판 지옥에서 해방되었다. 확실히, 아니 대단히 작업할때 편해졌다.

Isometric Room을 도트로 찍는것도 약간 익숙해졌다. (튜토리얼 보면서 연습했다.)

공간에 배치할 사물을 그리기 전에 크기를 가늠해보기 위해 공간의 크기에 맞게 캐릭터도 함께 그렸는데, 마음에 드는게 나올때까지 계속 반복해서 그리다보니 며칠사이에 캐릭터가 많이(?) 바뀌었다. 캐릭터가 바뀌어가는 과정을 한눈에 보고싶어서 그림들을 한번 올려보았다.

이건 제일 초기에 그렸던 메인 캐릭터. 그림판으로 열심히 그렸다. 이때의 밝은 느낌이 좋았는데…

이건 에이스프라이트를 구매하고 공간에 맞는 캐릭터를 그리기 위해 그려보았다.

튜토리얼을 보며 그린 공간에 배치한 모습. 2배 확대를 해서 게임에 배치해봤는데 너무 고전게임 스러운 느낌이나서 기각.

두번째로 그린 캐릭터. 뭔가 칙칙해보인다.

너무 칙칙하고 침울해보여서 밝은느낌으로 색상을 변경하고, 얼굴을 다시그렸다. 옷은 다시 그려야 한다.

또다시 새롭게 그린 공간에 캐릭터를 배치하고, 재미삼아 애니메이션을 추가해보았다.

+ 확실히 정해진 컨셉같은게 없는 상태로 도트를 찍으니 디자인이 왔다갔다하는게 힘들어서 아이패드로 간단하게 캐릭터 스캐치를 했는데, 도트만 그리다가 오랜만에 손그림을 그리니 너무 재밌었다. 마음에 드는 낙서

세일러문 느낌

집 그리기(도트)

너무 코드에만 집중하는거 같아서 어제오늘은 그림을 좀 그려보았다

요정이 사는 집을 그려야 하는데… 쿼터뷰는 넘 어려움

일단 작은 사이즈로 집과 소품을 샘플로 그려보았는데 그리는데 2시간이나 걸렸다. (손이 너무나 아픔)

그리고 작은 사이즈로 그렸던걸 기반으로 큰 사이즈로 집을 그려보았다.

흠ㅋㅋㅋ…

디테일한 묘사는 일단 나중에 하려고 대충 공간 형태랑 가구만 그려봤는데 (그래봤자 침대 달랑 하나지만) 너무 손이 아프고 이걸 디테일한 묘사를 한다고해도 과연 예쁠까 하는 생각이 드는것이다.

그리고 쿼터뷰로 계속 그리기엔 내 지능이 좀 부족한거같다. 계속 그리다보면 익숙해져서 요령도 생기겠지만 직각직각한 가구는 그렇다치고 캐릭터들을 해당 뷰에 맞게 그리려고 생각하니 벌써부터 머리가 아프다.

내일은 탑뷰로 다시 시도해봐야지.

유니티 안드로이드 빌드가 되지않는 현상

2주동안 개발을 못(안) 했는데 오랜만에 개발을 하려니 갑자기 안드로이드 빌드가 안 됨… ^^

두시간동안 온갖 삽질을 다 한 다음 드디어 해결했다

https://android.stackexchange.com/a/220186

갑자기 빌드가 안 되게 된 이유는 뭔지는 모르겠지만 일단 원인은 usb디버깅 권한 허용이 되지않아 빌드가 되지않고있었다.

권한허용을 하려면 usb디버깅 권한 허용 팝업창이 떠야하는데 뜨질않고있었고… 개발자 옵션에서 몇번이고 usb디버깅 사용을 하고 usb 디버깅 권한 승인 취소를 반복했지만 되지않았다. 하지만 저 방법대로 하니 권한 허용 팝업창이 뜨면서 빌드 성공!!!

.android의 경로는 C:users/username/.android 이다

Visual Studio – 출력형식이 클래스 라이브러리인 프로젝트는 직접 시작할 수 없습니다.

프로젝트 디버깅을 하려는데 계속 위와같은 에러가 발생했다.

찾아봤을때 대개는 이런 해결방법들을 제시했다.

  1. 시작프로젝트 설정
  2. 비주얼 스튜디오 유니티용 툴 설치
  3. edit-Preferences-External Tools에서 External Script Editor 설정 확인 및 수정

하지만 저 셋들 중 하나도 제대로 해결이 되는게 없었다. 애초에 디버깅이 잘 되다가 갑자기 안 되었던거였고, 설치나 설정에는 문제가 하나도 없었다.

혹시나해서 다른프로젝트들을 열어보니 디버깅하는데 이상이 없었다. 너무 이상해서 두 프로젝트를 비교해보니 한 프로젝트는 실행 아이콘 옆이 “시작”으로 되어있었고, 다른한쪽은 “유니티에 연결”로 되어있었다.

“시작”으로 표시된 프로젝트가 디버깅이 되지않는 프로젝트였다. 디버그-Unity디버거 연결을 선택하니 디버거 연결이 되면서 디버깅을 할 수 있게되었다.

잘되던게 갑자기 이러니 너무 이상해서 구글링을 하다가 해결책을 발견했다.

https://forum.unity.com/threads/cant-see-attach-to-unity-button-in-visual-studio.463530/

edit-Preferences-External Tools 에서 Regenerate project files를 하니 해결이 되었다.

지금까지 유니티를 사용하면서 이런일이 한번도 발생한적이 없었는데 참 당황스러웠다. 너무 갑작스럽게 2020으로 업그레이드를 했나싶다. 뭔가 전체적으로 너무 느린느낌이다. 다른작업하다가 유니티로 돌아오면 뭘 자꾸 로딩한다.😡

Flying Poop Bird

◆ 개발기간 : 2017. 7
◆ 개발인원 : 1명
◆ 개발내용 : 기획, 디자인, 전체 프로그래밍
◆ 플랫폼 : PC
◆ 개발환경 : Windows7, VisualStudio 2017, Unity 3D, UGUI
◆ 개발언어 : C#
◆ 요약 : 플래피 버드류의 원 터치 게임

– 처음으로 구글 플레이 스토어에 출시해 본 게임입니다.
– 구글 애드몹 플러그인을 사용하여 게임 중간 중간에 나오는 전면 광고와 뽑기나 구입등에 사용되는 코인을 얻기위한 보상형 광고를 추가했습니다.

https://play.google.com/store/apps/details?id=com.udc.Poopbird

유니티용 비주얼노벨 개발 도구

◆ 개발기간 : 2017. 12 [미완]
◆ 개발인원 : 1명
◆ 개발내용 : 기획, 디자인, 전체 프로그래밍
◆ 플랫폼 : PC
◆ 개발환경 : Windows7, VisualStudio 2017, Unity 3D, UGUI
◆ 개발언어 : C#
◆ 요약 : 구글 스프레드 시트와 연동되는 비주얼노벨 개발도구.

– 위 영상은 위 도구로 만들어본 샘플 입니다.

github https://github.com/SunsetK/UnityVisualNovelMaker

 

정의된 커맨드를 사용하여 스크립트를 작성합니다.

해당 시트를 비주얼노벨용 스크립트로 만들기위해서는, 스프레드 시트를 공유하면 나오는 주소의 d/와 /edit~ 사이의 문자열과 시트 이름을 알아야 합니다.

해당 도구를 임포트하면 유니티엔진 상단에 Tools – VnDataParser메뉴가 생깁니다. 메뉴를 선택하면 다음과 같은 창이 나옵니다.

Original file path & export path

스프레드 시트에서 가져온 스크립트의 원본파일이 저장될 경로와 게임에서 사용될 파싱된 데이터(.vn)가 저장될 경로를 지정합니다. Save Path를 하면 입력한 경로가 저장됩니다.

스크립트 파싱

AddItem버튼을 눌러 추가할 스크립트의 정보를 입력합니다. 첫번째 폼엔 공유링크로 알아낸 문자열, Sheet Name 폼엔 가져올 시트의 이름을 입력합니다. 추가하고 싶은만큼 Add Item버튼을 눌러 추가해 줍니다. 모두 입력 후 Parse All버튼을 누르면 추가 한 모든 아이템에 대한 시트를 불러와 게임에서 사용할 수 있는 형태(.vn파일)로 만들어 저장해 줍니다. Parse를 하면 입력한 시트 정보들이 .Setting파일로 저장됩니다.

파싱된 파일 사용하기

파싱된 파일(.vn)을 사용하기 위해선 미리 정의된 함수를 호출해 사용할 스크립트 파일의 이름을 인자로 넘겨주어야 합니다. VisualNovelManager클래스에 있는 LoadScript(시트명)으로 스크립트를 로드하고, StartStory()를 호출해서 비주얼 노벨을 시작합니다. 비주얼 노벨을 시작하기전, 간단한 씬 작업이 필요합니다. (Sample씬 참고)