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

◆ 개발기간 : 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%을 채우도록 하여 반복플레이를 유도합니다.

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씬 참고)

Project SRTT

◆ 개발기간 : 2015.11 – 2016.02 [미완]
◆ 개발인원 : 1명
◆ 개발내용 : 기획, 아트, 게임 전체프로그래밍
◆ 플랫폼 : Android
◆ 개발환경 : Windows7, Unity 3D 5.1.x, VisualStudio 2012
◆ 개발언어 : C#
◆ 게임요약 : 크리스마스를 소재로 한 방탈출 형태의 복셀기반 3D 어드벤쳐 게임

– 첫 3D 게임 개인 프로젝트 입니다.

PHP를 이용해 사이트 만들기 – 가수 팬페이지

◆ 개발기간 : 2015. 06
◆ 개발인원 : 1명
◆ 개발내용 : 사이트 전체 디자인 & 프론트/백 프로그래밍
◆ 개발환경 : Windows7, VusualStudio2012
◆ 개발언어/DBMS : html5, Java script, css, php, mysql
◆ 요약 : 회원가입을 해야만 사용할 수 있는 4종류의 게시판을 가수 팬 페이지에 적용시켜보았습니다.

– 대학교 전공수업인 웹개발 응용 수업 과제로 개발한 사이트 입니다.

이 사이트는 메인 홈페이지로 돌아갈 수 있는 상단 헤더, 각 페이지로 이동 할 수 있는 네비게이션 메뉴버튼, 그리고 콘텐츠 화면, 그 외의 정보가 표시되는 푸터로 구성됩니다.

헤더 – 사이트 로고를 클릭하면 메인페이지로 이동합니다.

네비게이션 메뉴 – 메뉴를 선택하면 각각 페이지로 이동할 수 있습니다. 오른쪽 가장자리엔 로그인, 회원가입 또는 로그인 했을 경우 회원정보, 로그아웃, 회원정보 수정 메뉴가 표시됩니다.

콘텐츠 화면 – 각 페이지가 표시가 됩니다. 현재 보이는 홈 페이지 에서는 사이트에서 사용되는 게시판 두개가 사용되며, 콘서트와 앨범정보를 표시해줍니다. 이 페이지에서 보여주는 게시판들 중 하나는 갤러리 게시판, 스케줄 게시판 입니다. 갤러리 게시판의 최근 10개의 게시물에 첨부된 사진들을 모아 보여주고, 스케줄 게시판의 최근 4개까지의 게시물을 리스트로 보여줍니다.

 

갤러리 게시판입니다. 이미지를 올릴 수 있으며 첫번째 이미지를 미리보기로 보여줍니다. 최대 3개까지 업로드 가능합니다.

자유게시판입니다.

메시지 게시판으로, 짧은 글 들을 작성할 수 있습니다.

스케줄 게시판입니다. 스케줄을 작성하면 달력에 해당 스케줄이 표시가되고, 표시가 된 곳을 클릭하면 해당 스케줄과 관련된 게시물로 이동합니다.

각각 게시판에 대한 데이터 테이블들은 다음과같이 구성됩니다.

각각 자유게시판, 갤러리 게시판, 멤버정보(회원), 메시지게시판, 스케줄 게시판이고 _ripple이 붙은 테이블은 각 게시판의 리플정보입니다.

 

병아리를 부탁해!

◆ 개발기간 : 2015. 08
◆ 개발인원 : 2명
◆ 개발내용 : 기획, UI 및 인게임 프로그래밍, 최적화
◆ 플랫폼 : Android
◆ 개발엔진 : Unity(C#)
◆ 게임요약 : 일정시간마다 나타나는 굶주린 고양이로부터 병아리를 지키는 게임

– VR게임입니다. (구글카드보드, 키보드 입력)
– 주어진 시간은 5주였지만, 여러 사정에 의해 2, 3주만에 개발했습니다.
– 초반에 근육을 인식하는 웨어러블 입력장치인 Myo를 사용하려 했지만 여러 사정으로 키보드 조작으로 변경되었습니다.

  • 장애물이 파괴되는 효과를주기위해, Bullet이 장애물에 충돌 시 해당 모델을 비활성화 한 후, 여러개의 큐브모델들을 해당위치에 배치 해 파티클 효과와 함께 터지는 효과를 주었습니다.
  • 길을 막고있는 구조물이 파괴되면, 적(고양이)가 최단경로로 병아리까지 도달할 수 있도록 구현되었습니다.
  • VR의 불편한 사항을 해소하기 위해 시야각을 제외한 각도에서 사용자가 고개를 회전하면 자동으로 회전하도록 구현되었습니다.
  • 메모리 최적화를 위해 오브젝트 풀링과 임시객체를 만드는 구문이나 API 등을 확인, 리팩토링했습니다.
  • 모든 저작권은 ETRI에 있습니다.

개인 포트폴리오 홈페이지

◆개발기간 : 2014. 11
◆ 개발인원 : 1명
◆ 개발내용 : 사이트 전체 디자인 & 프론트 프로그래밍
◆ 사용언어 : html, Java script, css
◆ 요약 : 저를 나타낼 수 있는 “게임”을 컨셉으로 만들어본 개인 포트폴리오 홈페이지 입니다.

– 전공수업의 과제로 개발했습니다.
– 개발하는데 2-3주 정도 소요되었습니다.
– 모바일엔 대응하지 않습니다.
– 개인정보가 많은 관계로 주소는 비공개 합니다. (채용 관련으로 문의 시엔 알려드립니다.)

사이트 메인 홈과 전체 모습.  메인 홈 페이지로 돌아갈 수 있는 로고가 있는 헤더, 주요 페이지를 보여주는 콘텐츠 부분, 각 페이지로 이동할 수 있게 해 주는 네비게이션 메뉴로 구성됩니다.

헤더 – 구름들이 오른쪽에서 이동하도록 자바스크립트를 이용해 구현을 했고, 가운데 로고에 호버시 이미지가 좌우로 회전하며 강조됩니다. 클릭시 가운데 콘텐츠 부분이 메인홈페이지로 이동합니다.

콘텐츠 부분 – 주요 콘텐츠들이 표시됩니다. 자바스크립트를 이용해 페이지 이동시 페이드 인- 아웃 효과를 주어 자연스러운 느낌을 주었습니다. 메인페이지에서는 게임의 느낌을 살리기위해 집 아이콘을 선택해 각 페이지로 이동할 수 있도록 했습니다. 집 아이콘에 마우스를 호버하면 이동하게 될 페이지에 대한 설명이 표시됩니다.

네비게이션 메뉴 – 간편하게 페이지들로 이동할 수 있는 메뉴입니다.

프린세스메이커를 컨셉으로 구현한 프로필 페이지 입니다. 간단한 기본 정보를 표시하고, 프로그래밍과 관련된 능력치를 게임의 스탯을 보여주는것 처럼 표시했습니다. 왼쪽의 “주변사람들에게 평가를 듣는다” 메뉴를 선택하면, 프로젝트 팀원, 가족, 친구, 스스로에 대한 “저”의 평가를 들을 수 있습니다. (프린세스 메이커1에서 아이디어를 얻었습니다.)

출신학교와 활동을 보여주는 페이지 입니다. 학교에서 했던 활동들과 2014년 까지 참여했던 프로그램에 대한 정보들을 보여줍니다. Education과 Activity로 나뉘며, 보고싶은 파트에 마우스 호버시 덮고있던 이미지가 사라지며 정보가 표시됩니다. 게임의 느낌을 주기위해 집 아이콘을 배치했으며, 마우스 호버시 아이콘 오른쪽에 설명이 자연스럽게 페이드되면서 표시됩니다.

출생부터 2014년 까지의 저의 삶을 볼 수 있는 페이지입니다. rpg의 전투 필드를 컨셉으로 잡았고, 원 모양 도트 아이콘위에 이벤트가 발생한 연도가 표시됩니다. 아이콘에 마우스 호버시 아래의 대화창에 이미지와 함께 설명이 뜹니다.

Study와 Game페이지입니다. 연도별로 제가 공부한것과 개발한 게임에 대해 이미지와 함께 글로 설명이 되어있습니다.

 

* 위 홈페이지의 이미지 리소스 일부는 구글링을 통해 얻은 리소스들이며, 만약 사용 허가되지 않은 리소스가 이 페이지에서 사용되고있다면 문의를 주시면 다른 이미지로 대체하도록 하겠습니다.

여자아이 키우기

◆ 개발기간 : 2015. 2. 4
◆ 개발인원 : 1명
◆ 개발내용 : 기획 & 게임전체 프로그래밍
◆ 플랫폼 : 엔트리
◆ 게임요약 : 여자아이를 한달간 키우는 게임.

– EBS의 소프트웨어야 놀자 라는 프로그램을 보고 알게된 어린이 코딩 교육 사이트 “엔트리”에서 간단하게 만들어본 육성게임 입니다.

https://goo.gl/toxrf3