카테고리
Unity Android 블루투스 플러그인 제작 & 사용법
2017. 10. 8.지난번에 해커톤 때 사용하다 남은 아두이노를 이용하여 간단하게 DIY 할 수 있는 VR 컨트롤러를 제작해보았고, Unity와 연동해서 사용할 수 있도록 Bluetooth 플러그인을 제작했었다. 그런데 기록용으로 블로그에 글을 남겼었더니 생각보다 많은 사람(?)들이 질문을 남겨주었고, 돌이켜보니 내가 하던 프로젝트에 굉장히 의존적으로 제작되었기 때문에 다른 사람들이 코드를 가져다가 사용하기가 좀 불편했었다. 그래서 이번 길었던 연휴에 틈틈이 짬을 내서 다시 코드를 수정했고 기존에 Java 단에서 처리되었던 패킷 검사 기능들을 Unity C# 스크립트와 에디터 상에서 어느 정도 간단하게 컨트롤 할 수 있는 방식으로 개선되었다. (오래전에 만든 코드이고 그냥 훅~하고 짜서 주석이 없어서 그런지 코드가 엉망진창..
FSM이 우리를 구원하리라
2017. 9. 17.게임 프로그래밍을 공부했다면, 혹은 CS를 2학년까지 수료했거나 이산수학같은 과목을 들었다면 FSM이라는 친구를 한번 쯤은 들어봤을 것이다. FSM은 무신교가 종교를 강요하고 다니는 사람을 비꼬기 위해 만든 날아다니는 스파게티 괴물(Flying Spaghetti Monster)라는 친구도 있지만 CS에서, 수학에서는 유한 상태 기계(Finite State Machine)이라는 친구이다. 앞으로 주변에있는 Sample 크기 이상의 게임을 만들때는 FSM이라는 개념을 알아두면 게임을 구성하고 진행하는데 많은 도움이 될 것이고, 이미 어느정도 만들어져있는 프로젝트에 참여하게된다면 이미 FSM을 적극적으로 활용하고 있는 경우가 많을 것이다. 때문에라도 FSM을 배우고 이것을 게임엔진에서 어떻게 구현할수있는 지를..
UniRx 활용하기(3) - 변수의 변화를 관찰하자
2017. 8. 5.UniRx에서는 여러가지 애플리케이션 패턴 중에서도 MV(R)P 패턴을 권장한다. 다른 서드파티 라이브러리를 통하여 MVVM을 활용하는 방법도 있는 것같지만 일단 공식 Github Readme에서 추천하는 패턴은 MV(R)P이다. 안드로이드나 WPF 개발에 대해서 다루어보았다면 MVP패턴과 다른 패턴들에 대해서 들어보았을 것이다. 기본적인 지식은 Realm의 기술 블로그에서 알아 볼 수 있다.MV(R)P?!위 그림은 공식 Github Readme에 사용된 그림이다. 게임을 UI를 통해 유저와 게임을 이어주고 게임에 관련된 정보들(점수, 적, 아이템 등)을 컨트롤하는 과정이라고 생각하면 View를 통해 Input을 받고, Model 값을 표시해 줄 수 있다. 그 중간에서 Presenter는 View와 Mo..
Unity를 Visual Studio for Mac 와 함께 사용하기
2017. 7. 28.몇 번 블로그에 언급했듯이 요즘 병역 특례를 구하고 있고, 면접 일정도 몇 개 잡혀서 준비하고 있다. 노트북을 지참하라고 하길래 Unity와 기타 코딩 테스트를 볼 수 있는 환경으로 세팅했다. 원래는 Unity와 Visual studio Code를 연동하고 Unity를 서포트해줄 수 있는 익스텐션들을 설치하여 사용했다. 개인적으로 모노 에디터를 싫어하는 편이고(워낙 안 좋은 기억이 많아서...) 세팅 방법도 포스팅했던 적이 있었던 만큼 편리하게 사용했던 기억이 있다. 최근에는 Windows 위에서 작업하느라 그냥 Visual Studio를 이용했는데 노트북은 MacOS라 다시 세팅했다. 서론이 좀 길었던 것 같지만 요점은 드디어 Visual Studio for Mac이 나왔더라는 점이다. 조금 지난 이야..
Cocos2d-x 시작하기 - 설치 및 생성
2017. 7. 20.최근 병역특례를 보충역 TO로 알아보고 있다. 사실 특정한 대회나 외부활동에 참여하기 위해 자소서를 쓰고, 면접을 보고하는 일은 익숙하지만 이렇게 직접 회사들에게 이력서를 돌리고 결과를 기다리는 일은 처음이라 살짝 막막하기도 하고 취준생의 마음을 조금 이나마 이해할 수 있을 것 같아졌다. 그래도 보충역이라 그런지 아니면 타이밍이 좋았던 거인지 생각보다 몇 군데에서 면접을 보자고 연락이 왔고 덕분에 요즘은 면접공부 중이다. 포트폴리오에는 Unity나 C#에 관한 내용을 위주로 작성했다. (실제로 대외 활동에서 빠르게 결과를 내는 게 Unity가 쉬우니까...) 연락이 온 업체들은 전부 Unity를 쓰지 않는다...?! 출시한 게임들이 주로 Cocos2d-x 위주인 것이다. 지금 신작은 어떤 것을 이용하여 ..
UniRx 활용하기(2) - A와 B 사이의 일 처리하기
2017. 7. 8.이벤트를 처리하다 보면 A가 일어난 후에 B가 일어나기까지 반복작업해야 하는 일을 만들어야 할 때가 있다. 예를 들어 (예제의 내용이지만) 마우스 드래그를 표현할 때 마우스 버튼이 눌리고 때어질 때까지 마우스의 움직임을 캡처하여 오브젝트의 회전에 반영하는 상황이나 특정 조합키를 입력해서 캐릭터의 춤동작 애니메이션을 재생하고 다른 특별한 입력이 있을 때까지 애니메이션을 반복 재생하는 상황이 있을 수 있겠다. 우선 기존의 프로그래밍 방법을 유니티 초심자의 입장에서 생각해보자. 마우스 드래그를 보게 되면 (1)오브젝트의 Update 문에 마우스의 위치와 오브젝트의 Rotation을 연동시키는 코드를 삽입하고 또, (2)마우스 버튼이 눌렸을 때와 릴리즈될 때를 캐치하여 bool 변수(isDraged 정도)를 통..
언리얼 엔진 Actor와 Pawn과 Character의 차이점
2017. 7. 6.언리얼 엔진을 사용해보기 시작하면서 가장 불편했던 점은 첫째로 자료가 거의 대부분 블루프린트 샘플들 위주이고 구성 요소들이 유니티와 뭔가 비슷하면서도 다른 느낌을 받았기 때문이다. 나와 같은 사람들을 위해 언리얼을 공부하기로 마음먹었지만 처음에 햇갈려서 개념이 잡히지 않았던 요소들을 하나하나 포스팅해가며 공유해볼까한다. 유니티 vs 언리얼놀랍게도 언리얼 공식문서에서 "유니티 개발자를 위한 언리얼 엔진4"라는 탭을 만들어 유니티 개발자들이 유니티에서 사용하던 개념들을 언리얼에 있는 개념과 매핑할 수 있도록 친절하게 만든 문서가 있다. 일단 여기에서 설명된 표를 따르면 다음과 같다. 카테고리 유니티 언리얼 4비고 게임 플레이 유형 Component Component Game Object Actor / Paw..
UniRx 활용하기(1) - Where과 Select 사용하기
2017. 7. 3.저번 포스팅에서는 UniRx가 모든 것을 스트림으로 보는 프로그래밍 방식이고, 스트림을 어떻게 만들고 사용하는지에 대해서 공부했었다. UniRx는 이렇게 만든 스트림을 여러가지 오퍼레이터를 통해 필터링하여 원하는 데이터들만 가지고 원하는 타이밍에 원하는 작업을 수행할 수 있도록 만들 수 있다. 사실 얼마나 이 필터링 작업을 자유롭게 하는지에따라 UniRx를 다루는 실력이 나누어질거라고 생각한다. (물론 나는 초짜) 이번에는 스트림을 필터하는 친구들 중에서도 가장 기본이되는 Where과 Select에 대해서 알아보도록하자. Where조건에 맞는 메세지만 필터링하는 오퍼레이터 무작정 구독한 스트림에서 오는 모든 메세지를 원하는 것은 아닐 것이다. 만약 0~9까지의 숫자들이 넘어 오는 스트림에서 5 이상의 숫..
Unreal Engine 안드로이드 라이브러리 적용법
2017. 7. 2.언리얼이 확실히 무료화를 선언한 뒤 학생이나 인디게임 개발자가 좀 더 쉽게 접근할 수 있게 된 것은 사실이지만 경쟁 엔진인 유니티보다 자료를 찾는 것에 있어서 힘이든 것이 사실이다. 지금까지 주류 사용처가 기업이었기 때문인게 아닌가 싶다. 특히 모바일 자료는 정말 찾기 힘든데 Android에서 Bluetooth를 이용하기 위해서 여러 자료를 찾아보았지만 쉽게 자료를 찾을 수는 없었다. (구글을 사용하면 원하는 자료가 적고, 엔진소스를 읽으면서 공부하자니 광활한 소스코드에 우주미아가 된 것 같았다.) 사실, 결국 알아내었고 플러그인을 만들어서 경험과 코드를 공유하려 하고 있지만, 이것이 현업에서 사용하거나 언리얼 엔진이 권장하는 통상적인 방법인지는 아직 잘 모르겠다. 여튼 나처럼 언리얼 엔진은 초심자이지만..
UniRx 입문하기 - 기본적인 사용법
2017. 7. 1."아 이런 것이 있구나"하고 접했던 것은 오래되었지만 최근 들어 천천히 공부를 시작한 것이 UniRx이다. 일본인이 만든 Unity용 Reactive 프로그래밍 라이브러리 같은데 Unity는 .NET 버전도 낮고, .NET용 Rx는 무거운 감이 있어서 Unity에서 사용할 수 있게끔 만들었다고 한다. (일본에서 만들어서인지 검색하면 절반은 일본어 자료라 일본어를 읽지 못하는 입장에서는 대략 난감....) Reactive Programming(Rx)이란?이쪽 분야 프로그래밍은 많이 접해본 것이 아니지만, 초심자의 눈으로 보기에는 객체지향(OOP)이 모든 것을 "객체"로 보고 객체를 만들고 이용해서 프로그래밍했다면, Rx는 모든 것을 "스트림"으로 보고 스트림을 만들고 구독해서 데이터가 어떻게 변하고 어떤 ..
유니티 Monobehaviour 생명주기(Life cycle)
2017. 6. 28.저번 주에 소프트웨어 마에스트로에서 만난 사람들과 술자리를 가졌었다. 다들 오랜만에 보는 얼굴들이었는데 문득 1단계 때 옆자리였던 형을 보니 '유니티 생명주기'에 대해 알려주면서 트러뷸 슈팅을 도와주었던 기억이 났다. 생각도 다시 한번 정리해볼 겸 간단하게 포스팅해볼 생각이다. 유니티에서 생명주기?유니티에서 자신이 제작한 스크립트의 대부분은 'Monobehaviour'라는 친구를 상속받아 만들어진다. 스크립트를 만들면 자동으로 상속받는 형태이니 유니티의 기본 클래스 형태라고 봐도 좋을 것이다. 이 'Monobehaviour'가 Scene에서 살아가는 일정한 흐름이 있다. 엔진에서 자동으로 호출해주는 함수들인데 이 패턴의 흐름을 모아 '생명 주기(Life cycle)'라고 한다. 일단 그림으로 먼저 알아보..
소프트웨어 마에스트로 프로젝트 발표 PPT 공유
2017. 6. 23.우연히 NDC PPT 자료를 찾아보기 위해 슬라이드 쉐어를 방문했다가 내가 만들었던 소프트웨어 마에스트로 프로젝트 PPT를 발견했다. 사실 일 년은 더 지난 자료지만 발견한 김에 결과물 갤러리에 간단하게 공유하고자 한다. (PPT를 보고 있자니 PPT 만들면서 연습하면서 했던 고통들이 떠오른다...) 01. 얼굴인식 스마트 도어락 : KICOM SW Maestro 프로젝트 발표 : Kinect를 이용한 도어락 시스템 Kicom from 상현 김 첫 프로젝트, 고재관 멘토님과 서로 다른 분야의 팀원들과 모여서 처음으로 Kinect도 처음 해보고, WPF도 처음 해봤던 프로젝트 02. 체험형 융합 교육 게임 : 태권도 SW Maestro 프로젝트 발표 : Kinect를 이용한 태권도 게임 TaekwonMae..