-
UniRx에서 여러개의 Observable을 합성하는 방법
UniRx에서 여러개의 Observable을 합성하는 방법
비단 UniRx 뿐만 아니라 Rx로 프로그래밍을 하다 보면, 필연적으로 여러 개의 Observable을 동시에 구독하는 것처럼 동작하게 만들어야 할 필요가 있습니다. 예를 들어 비밀번호 확인을 위해 2개의 input필드가 있고, 그 값이 바뀔 때마다 비밀번호가 유효한 규칙으로 작성되었는지 확인하고 싶을 때를 생각해봅시다. 2개의 input 필드를 각각 구독하고 유효한 규칙인지 판단해도 되지만, 2개의 input Observable을 합성하고 그..
-
티스토리에 Github 그래프 위젯 만들기
티스토리에 Github 그래프 위젯 만들기
기획서 쓰다가 딴짓하고 싶어서 쓰는 간단한 포스팅이다. 얼마 전에 프라치노의 공간이라는 Tistory 유료 테마를 적용했다. 그래서 블로그에 이것저것 다시 꾸미기 시작했는데, 그중 하나가 Github Contribute 위젯이다. 깃허브는 자신이 언제, 얼마나 Github 커뮤니티에 기여했는지 위 그림처럼 도식화해준다. 팬 게임 제작에 들어간 순간부터 1일 1커밋 운동을 하고 있어서 그런지, 블로그에 해당 그래프를 간단하게 보여줬으..
-
예능 자막의 재구성 - 마리텔편 [인물 대사 자막]
예능 자막의 재구성 - 마리텔편 [인물 대사 자막]
유튜브 영상을 편집하는 데는 대략 3가지 과정이 필요합니다. 전체 영상에서 유튜브 하이라이트에만 사용할 부분을 잘라내는 '컷편집'과 상황에 대한 설명이나, 인물의 대사를 강조 혹은 시청자를 웃게 하기 위한 드립 멘트 등을 넣는 '자막 작업' 그리고 자막과 같은 효과를 얻기 위해 효과음이나 추가 외부 영상을 넣어 편집하는 '효과음&효과 영상 작업'이 있습니다. (*물론 위 3개 작업은 영상 편집 독학을 하면서 작성자..
-
출장 다녀와서 쓰는 산업 기능 요원 훈련소 이야기
출장 다녀와서 쓰는 산업 기능 요원 훈련소 이야기
일정이 훈련소 퇴소 후 바로 출장이 잡혀있었기 때문에 출장을 다녀와서야 후기를 남겨봅니다. 훈련이나 생활하는 건 연대나 중대별로 살짝 다르다고 알고 있고, 시간이 지나면서 바뀌는 것들도 있기 때문에 그런 것보다는 한 달 동안 훈련소 생활하면서 필요하거나 정말 도움이 되었던 꿀팁들을 위주로 써볼까 합니다. # 챙기면 좋은 것들 (준비물) - 칫솔(세면도구) ★★★★ 칫솔이나 세면도구 외에도 기본적인 것들은 전부..
-
Unity에서 iPhone X를 대응하는 간편한 방법
Unity에서 iPhone X를 대응하는 간편한 방법
시작하면서 얼마 전까지 iOS에서 가장 핫한 이슈였으며 골칫거리였던 주제는 iPhone X의 탈모 디자인이었다. 각진 사각형이거나 살짝 라운드가 들어간 기존의 안드로이드나 iOS의 화면과는 다르게 화면 상단 부분에 1)M자 탈모처럼 생긴 검은 영역이 생겼기 때문이다. 탈모도 문제였지만 2)물리 홈버튼을 제거하면서 생겨난 홈바가 터치 화면의 일정 영역을 차지했고, 이 영역 또한 고려해 프로그램을 작성해야 했다. 우리는..
-
UniRx에서 ObjectPool 사용하기
UniRx에서 ObjectPool 사용하기
2019.12.14object pool 패턴은 게임을 제작할 때 자주 사용하는 패턴 중 하나입니다. 프로그램에서 인스턴스를 생성할 때에는 생각보다 많은 비용이 듭니다. 특히, 큰 크기의 Prefab들을 그때그때 새로 생성해서 사용하는 것들이 그렇지요. 큰 용량의 Prefab을 한 프레임 안에서 여러 번 생성하게 되면, 한 프레임 안에서 많은 CPU 자원을 사용하게 된다는 의미이고, 이것은 프레임 저하와 잦은 생성(Instantiate)과 파괴(Destroy)를 통한..
-
UniRx에서 First()와 Take(1) 중 어느 것을 써야하는가
UniRx에서 First()와 Take(1) 중 어느 것을 써야하는가
2019.10.13개인 프로젝트를 하던 중, 다음과 같은 에러를 만났습니다. InvalidOperationException: sequence is empty System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0) UniRx.InternalUtil.ExceptionExtensions.Throw (System.Exception exception) (at Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs:10) UniRx.Stubs+<>c.<.cctor>b__3_1 (System.Exception ex) (at Assets/Plugins/UniRx..
-
UniRx에서 여러개의 Observable을 합성하는 방법
UniRx에서 여러개의 Observable을 합성하는 방법
2019.09.11비단 UniRx 뿐만 아니라 Rx로 프로그래밍을 하다 보면, 필연적으로 여러 개의 Observable을 동시에 구독하는 것처럼 동작하게 만들어야 할 필요가 있습니다. 예를 들어 비밀번호 확인을 위해 2개의 input필드가 있고, 그 값이 바뀔 때마다 비밀번호가 유효한 규칙으로 작성되었는지 확인하고 싶을 때를 생각해봅시다. 2개의 input 필드를 각각 구독하고 유효한 규칙인지 판단해도 되지만, 2개의 input Observable을 합성하고 그..
-
어느날 Unity 패키지 의존성이 박살났다
어느날 Unity 패키지 의존성이 박살났다
2019.08.11회사일이 너무 바빠서 한동안 개인 프로젝트를 진행하지 못했었습니다. 잠을 좀 줄여서라도 다시 진행해보려고 묵혀둔 프로젝트를 오픈했는데... 시작부터 에러 메시지가 저를 반겼습니다. (이상한 일이죠... 그냥 나는 저장했던 프로젝트를 다시 켰을 뿐인걸??) 대략 무슨 내용인고하니, 프로젝트가 valid하지 못한 디펜던시를 가지고 있다는 것. 나는 그간 프로젝트의 세팅을 건든 적도 없고, 추가적인 플러그인을 받지도 않..
-
티스토리에 Github 그래프 위젯 만들기
티스토리에 Github 그래프 위젯 만들기
2019.06.10기획서 쓰다가 딴짓하고 싶어서 쓰는 간단한 포스팅이다. 얼마 전에 프라치노의 공간이라는 Tistory 유료 테마를 적용했다. 그래서 블로그에 이것저것 다시 꾸미기 시작했는데, 그중 하나가 Github Contribute 위젯이다. 깃허브는 자신이 언제, 얼마나 Github 커뮤니티에 기여했는지 위 그림처럼 도식화해준다. 팬 게임 제작에 들어간 순간부터 1일 1커밋 운동을 하고 있어서 그런지, 블로그에 해당 그래프를 간단하게 보여줬으..
-
Unity MonoBehaviour에서 유용하게 쓰는 Attribute 정리
Unity MonoBehaviour에서 유용하게 쓰는 Attribute 정리
2019.05.26*너무 포스팅을 안 해서 느끼는 죄책감에 작성하는 포스팅 최근 팬 게임을 본격적으로 만들기 시작했다. 보너스 받은 걸로 와콤 액정 태블릿도 구입해서 진행 중인데, 아직은 시스템을 제작하고 있는 상황이다... 기반을 닦고 있다 보니 나중에 아트 + 세팅 작업에 필요한 도구들을 만들거나, Component에 박혀있는 변수들을 정리하는 일이 많다. 옛날부터 몇몇 유용한 Attribute들을 이용하여 작업했었는데 오랜만에 기반 작업..
-
출장 다녀와서 쓰는 산업 기능 요원 훈련소 이야기
출장 다녀와서 쓰는 산업 기능 요원 훈련소 이야기
2019.04.01일정이 훈련소 퇴소 후 바로 출장이 잡혀있었기 때문에 출장을 다녀와서야 후기를 남겨봅니다. 훈련이나 생활하는 건 연대나 중대별로 살짝 다르다고 알고 있고, 시간이 지나면서 바뀌는 것들도 있기 때문에 그런 것보다는 한 달 동안 훈련소 생활하면서 필요하거나 정말 도움이 되었던 꿀팁들을 위주로 써볼까 합니다. # 챙기면 좋은 것들 (준비물) - 칫솔(세면도구) ★★★★ 칫솔이나 세면도구 외에도 기본적인 것들은 전부..
-
Unity iOS Could not produce class with ID 에러 해결법
Unity iOS Could not produce class with ID 에러 해결법
2018.10.19회사에서 신규 슬롯을 제작하고 iOS로 빌드를 한 뒤 해당 게임을 들어갔는데 AssetBundle을 로드하다가 크래시가 나는 상황이 벌어졌다. Console App을 이용해 디바이스 로그를 확인해보니 다음과 같은 메시지가 찍혀있었다. 뒷 문장을 읽어보면, 플레이어 세팅에서 'Strip Engine Code'를 비활성화 시켜봐라 라는데... 일단 Strip Engine Code라는 기능이 무엇인지 몰랐기 때문에 찾아보니 IL2CPP를 사용하면서 iOS에서 빌..
-
Script compilation and assembly definition files을 사용해보았다
Script compilation and assembly definition files을 사용해보았다
2018.08.05Unity 2017.3의 새로운 피쳐 중 스크립트 컴파일 및 어셈블리 정의 파일(Script compilation and assembly definition files 이하 SCADF)이라는 것이 생겼습니다. 이 시스템을 도입한 이유는 '유저에게 스크립트가 어셈블리로 컴파일되는 방법을 정의하게 하고, 컴파일 결과물을 분리할 수 있게 만들어 결과적으로 컴파일이 필요한 구획만 컴파일해 컴파일 시간을 줄이고 싶다!'라는 이유입니다. 일단 말로 들었을 때 정말..
-
[번역] Unity 2018.2 2D관련 업데이트
[번역] Unity 2018.2 2D관련 업데이트
2018.07.14Unity 2018.2가 열렸습니다. 여기를 참고해보면 자세한 내용을 확인해 볼 수 있습니다. 지금 2D게임을 만들고 있고, 앞으로도 아마 혼자 개발할때는 2D 위주로 개발하게 될 것 같으니, 2D관련 업데이트 내용만 잠깐 훑어보도록합시다. Pixel Perfect Camera (Preview package) Pixel Perfect 카메라가 프리뷰 패키지로 추가되었습니다. 먼저 원문을 잠깐 읽어봅시다. Try the Pixel Perfect Preview package to stay true to y..
-
아이패드와 리디북스 덕분에 책읽는 빈도가 늘었다
아이패드와 리디북스 덕분에 책읽는 빈도가 늘었다
2018.07.13최근 아이패드 6세대를 구입했다. eBook 리더를 하나 구입하기 위해 여러 기종을 구경하던 중에는 '리디북스 페이퍼 프로'[이하 리페프]가 눈에 들어왔지만, 아무래도 소설책과 기술 서적을 병행해서 이용할 것 같아 태블릿으로 눈을 돌렸다. (e-ink를 사용하는 eBook 리더는 특성상 PDF를 읽는 데는 적합하지 않은 것 같다) 논문을 읽을 수 있을 정도의 e-ink eBook 리더도 있긴했지만.... 가격이 미쳐있었다. 거진 100만원 정..
-
UniRx Operator 관련 정리
UniRx Operator 관련 정리
2018.06.19Observable Operator Operator When Description Observable.Return 값을 하나만 발행 Observable.Repeat 값을 반복해서 발행 Observable.Range 지정한 범위의 수치들 발행 Observable.Empty 더미 스트림을 만들어 사용하고 싶을 때 OnCompleted를 즉시 발행하게됨 Observable.EveryUpdate Observable.EveryFixedUpdate (etc...) Life cycle에서 Update 부분의 로직을 작성하고 싶을 때 MainThreadDispatcher에서 코루틴이 돌..
-
개발자를 위한 디자인 관련 자료 모음
개발자를 위한 디자인 관련 자료 모음
2018.06.17대학교에서 모델링 수업을 들었을 때와 개구멍 노동부에서 영상 편집을 했을 때를 제외하고는 아트쪽 관련 공부를 재대로 해본적이 없다. 개발 공부만 해도 빡시긴하지만 조금 조금씩 꾸준히 해서 병특이 끝날즘에는 어느정도 아트도 커버할 수 있게 만들어보려고한다. 그런김에 이 포스팅에 디자인 관련 자료들을 정리해보려함 (Github에 하려고 했지만 추가할 때마다 커밋으로 묶여서 그냥 블로그에....) 0. 개발자를 위한..
-
Unity할 때 외워두면 유용한 Mathf 함수들
Unity할 때 외워두면 유용한 Mathf 함수들
2018.06.17유니티를 사용하다 보면 숫자를 계산할 때가 많습니다. 이 숫자들을 다룰 때 자주 사용하는 클래스가 Mathf 클래스입니다. 레퍼런스가 잘 되어있다고 하더라도 자주 사용하는 함수들을 외워두면 코드를 작성하는 시간을 크게 줄일 수 있을 것입니다. (무엇보다 구글 켜서 검색하는게 귀찮음...) 그래서 이번에는 알아두면 좋고, 나의 삽질 시간을 줄여줄 수 있는 유용한 Mathf 함수들을 정리해보려고 합니다. 0. 절댓값 Mathf.A..
-
수학으로 곡선을 그려보기 Part.1 [Hermite Curve]
수학으로 곡선을 그려보기 Part.1 [Hermite Curve]
2018.06.09학교에서 들었던 컴퓨터 그래픽스 수업은 정말 지루했습니다... (지금까지 대학교생활에서 가장 재미없던 강의로 손에 꼽을 듯) 그래도 그중에서 재미있었던 파트를 꼽자면 <좌표계 변환>과 <커브>를 고를 수 있을 것 같습니다. 좌표계 변환은 이다음에 알아보기로 하고 지금은 <커브>에 관련해서 정리해보려 합니다. 수학적인 곡선 곡선은 수학적으로 어떻게 표현할 수 있을까요? 꺼무위키를 인용해 보면 다음과 같습니다. ...
-
예능 자막의 재구성 - 무한도전편 [형이 왜 거기서]
예능 자막의 재구성 - 무한도전편 [형이 왜 거기서]
2018.04.03윈도우 데스크탑에 용량이 좀 부족해서 이리저리 폴더를 정리하다가 옛날에 사용했던 자막 파일들이 눈에 들어와서 포스팅을 새롭게 해보려 합니다. 포스팅을 안한 두세가지 정도의 자막 템플릿이 있는 것 같은데 레이어 좀 다듬는 데 시간이 걸릴 것 같습니다. 일단 가장 추가 변경 없이 사용할 수 있는 '형이 왜 거기서 나와…? 재구성해보도록 합시다. 살펴보기 '형이 왜 거기서 나와...?' 자막을 살펴보면 핑크색 계열의..
-
Javascript 정규식(Regex) 분석기
Javascript 정규식(Regex) 분석기
2018.04.03최근 플러그인이나 툴을 만들때 사용자가 입력한 string을 일정 규칙에 따라 파싱할 일이 생겨서 정규식에 대해 좀 뒤적거려봤다. 정규식에 익숙하지 않다면 정규식을 활용한 소스코드를 읽고 이해하기는 힘들 겠지만, 정규식을 알고 있다면 작성해야하는 소스코드라인이 확 줄어버리기 때문에 대량의 문자열을 처리하는 웹이나 데이터 사이언스 분야에서는 필수가 아닐까 싶다. 하지만, 가독성만큼은 거의... 멸망에 가깝다고할..
-
GDC18 기념 무료 게임 사운드 30GB 모음집
GDC18 기념 무료 게임 사운드 30GB 모음집
2018.03.26다운로드 : https://goo.gl/nDyRgX 올해 GDC18에서도 SONNISS에서 무료로 30GB 상당의 사운드 파일을 배포하고 있다. 다운로드 링크와 드랍 박스, 구글 드라이브, Torrent로도 배포하고 있으니 저장공간이 여유가 있다면 쟁여두고 찬찬히 살펴보는 것도 좋을것 같다. 매년 GDC 마다 이렇게 30GB씩 배포하는데 그동안 받았던 것들도 정리해 놔야 될 것 같다. // 뭔가 길게 쓸까 했다가 작년이랑 같은 내용이 될 것같아 이만 생략!
-
[번역] 유니티의 예약 폴더들이 가지고 있는 기능들
[번역] 유니티의 예약 폴더들이 가지고 있는 기능들
2018.03.18원문: http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder 유니티 에셋 폴더의 예약된 이름들 유니티에서 몇몇 폴더 이름은 특별한 속성을 가지고 있다. 숨겨진 폴더들 - 점(.)으로 시작하는 폴더(ex. “.UnitTests/”, “.svn/”)는 유니티에 의해 무시된다. 이 폴더에 들어 있는 어떠한 에셋도 임포트되지 않으면 어떠한 스크립트도 컴파일되지 않는다. 또한 프로젝트 뷰에서도 보이지 않는다. 1..
-
[번역] 유니티의 Resource Folder에 관하여
[번역] 유니티의 Resource Folder에 관하여
2018.03.14The Resource folder 이건 Unity5에서 에셋, 리소스 그리고 리소스 관리에 관한 아티클 스리즈의 세 번째 챕터입니다. 이 챕터에서는 리소스 시스템에 관해 설명합니다. 리소스 시스템은 개발자가 "Resource"라는 이름의 하나 이상의 폴더에 Asset을 저장하고 Resource API를 사용하여 런타임에 이러한 Asset에서 개체를 로드하거나 언로드 합니다.. 2.1 Resource System에 대한 모범 사례 쓰지마세요! 이렇게 말하는데에는 몇..
-
Unity VideoPlayer가 Gradle 빌드에서 작동하지 않는 이슈
Unity VideoPlayer가 Gradle 빌드에서 작동하지 않는 이슈
2018.02.12요즘 어느 정도 볼륨이 있는 게임을 하다 보면 AssetBundle을 다운받는 동안 해당 게임 관련 동영상을 틀어준다거나 튜토리얼, 세계관 같은 것들을 영상으로 틀어주는 경우가 가끔 있다. 그 외에도 학부 프로젝트를 하다보면 유니티 안에서 동영상으로 대략 때우거나 VR 관련 영상을 재생 해야 하는 경우가 생기는데 이때 유니티 내장 Video Player를 사용하곤 한다. 회사에서도 라이브 운영 중 바뀐 시스템에 대해서 간단하게..
-
Unity에서 iPhone X를 대응하는 간편한 방법
Unity에서 iPhone X를 대응하는 간편한 방법
2018.01.05시작하면서 얼마 전까지 iOS에서 가장 핫한 이슈였으며 골칫거리였던 주제는 iPhone X의 탈모 디자인이었다. 각진 사각형이거나 살짝 라운드가 들어간 기존의 안드로이드나 iOS의 화면과는 다르게 화면 상단 부분에 1)M자 탈모처럼 생긴 검은 영역이 생겼기 때문이다. 탈모도 문제였지만 2)물리 홈버튼을 제거하면서 생겨난 홈바가 터치 화면의 일정 영역을 차지했고, 이 영역 또한 고려해 프로그램을 작성해야 했다. 우리는..
-
iOS 빌드할 때 Your development team has reached the maximum number of registered iPhone devices. 문제
iOS 빌드할 때 Your development team has reached the maximum number of registered iPhone devices. 문제
2017.12.272년 만에 핸드폰을 iPhone으로 교체했다. 요즘 iPhone X에 대응하게 해주면서 Editor 안에서 테스트를 해볼 수 있게 해주는 Unity 플러그인을 하나 제작 중이다. 제작을 어느정도 끝내고 당연하게도 iOS를 빌드 하는 순간 다음과 같은 매세지를 던졌다. Your development team has reached the maximum number of registered iPhone devices. 해석할 필요도 없이 그냥 '네가 사용할 수 있는 iPhone 디바이스 개수를 초과했다'..
-
Unity3d 스크린 캡쳐 후 Slack로 보내주는 Plugin 제작기
Unity3d 스크린 캡쳐 후 Slack로 보내주는 Plugin 제작기
2017.12.24작업을 하다 보면 Unity에서 세팅한 오브젝트나 씬이 실제 디바이스 위에서는 어떤 느낌으로 보일지 궁금해진다. 만들어진 아트 작업물을 Unity 에디터 위에 그대로 올렸다 하더라도 실제 디바이스 위에 결과물을 올려두면 에디터에서는 느끼지 못했던 느낌들이나 개선점이 있기 마련이다. 그 때문에 나는 작업 중간중간 스크린샷을 통해 그런 느낌들을 하나하나 체크해가면서 작업하고 있다. 실제로 이 작업은 크게 3-step으로..