형평성은 결과의 평등이 아니다

직장 생활하는 동안 형평성이라는 말을 꽤 많이 들었다.  형평성이라는 말은 은근히 많은 문제를 넘어가게 만든다.  물론 그로 인해 이익을 보는 사람과 피해를 보는 사람이 존재하게 된다.  하지만, 형평성이라는 잣대에 제대로 대응을 하지 못하는 경우가 많다.  왜냐하면 자칫 이기적인 사람으로 보일 수 있기 때문이다.  형평성의 사전적 의미를 찾아보았다.   ‘형평성이란 동등한 자를…

블랜더에서 언리얼 마네킨을 리깅한다면

언리얼 샘플에 있는 마네킨을 fbx로 익스포트하고, 블랜더에서 그 fbx를 임포트 해보면 이렇게 나온다. 블랜더 초보라서 열심히 구글링을 해봤더니, 대략 알아낸 것은 이렇다.  이건 Maya에서 만들어진 것이라서 블랜더에서는 이렇게 나온다는 것 (왜 3D툴들은 제각각인지…), 저 본들의 위치와 로테이션을 임의로 돌려서 스킨에 맞춘다 하더라도 언리얼엔진에서 제대로된 애니매이션이 나오지 않을 수 있다는 것,…

[Unity] 에디터 프로그래밍 – 탭(Tab) 기능

Editor window에 버튼이나 레이블등 콘트롤을 추가하다 보면 UI 공간이 부족하게 된다.  이때 탭을 넣어 화면을 전환시킨다면 하나의 윈도우에서 더 많은 UI 공간을 확보할 수 있다.  크롬 브라우저의 탭처럼 말이다.   탭만 넣는 것은 생각보다 간단하다.  GUILayout.Toolbar API만 이용하면 간단히 탭 버튼을 추가할 수 있다.  탭 버튼을 추가했으니, 화면을 전환하는 코드만 추가하면 기능상에 추가할…

Xcode 멀티 버전 설치 & Command-line Default 버전 세팅

우선 필요한 버전의 Xcode를 찾아 다운을 받는다. https://developer.apple.com/download/more/?name=Xcode (로그인 필요) 원하는 버전을 클릭하고, 다운 로드 후, 압축을 풀면 Xcode.app가 생성된다.  파일 명을 버전에 따라 바꾸면 좋을 것이다 (Xcode_버젼.app). 그리고 응용 프로그램(Applications) 디렉토리 아래 Xcode 버전에 따라 나란히 배치해보자.  간단히 여러 버전의 XCode를 설치하였다.   이제 Command-line으로 Xcode를 실행할 때, 어떤 버전으로 실행할 지…

Kickstarter에는 한국이 포함되어 있지 않다.

외국의 유명한 클라우드 펀딩 사이트인 킥스타터(이하 Kickstarter).  나도 언젠가 크리에이터가 되어 제품을 출시해 보고자 하는 마음에 몇 년전부터 관심이 많았다.  가장 큰 클라우드 펀딩 사이트이거니와 성공한 게임 프로젝트도 종종 나왔기에 어떠한 절차가 있는지부터가 나에겐 큰 관심사였다 간단히 소개를 하자면 all-or-nothing형식의 펀드를 조성하는데, 목표한 모금액에 달성하면 모금액을 모두 가져갈 수 있지만,…

[Unity] 에디터 프로그래밍 – 게임 오브젝트에 이름표(Name Tag) 달아보기

위의 이미지와 같이 Scene view에서 게임 오브젝트의 이름 정보가 UI로 표시되도록 구성해보려고 한다.  이를 위해 3단계로 나누어서 구현해 보았다. 게임 오브젝트 생성 이름표 정보 GUI 표시 이름표와 게임 오브젝트사이에 연결선 그리기 첫번째인 게임 오브젝트 생성은 상황에 따라 다르겠지만, 여기서는 단순하게 Resources 폴더에 있는 MyCube.prefab을 로드하여 생성하는 것으로 해보았다.  자, 이제…

[Unity] 에디터 프로그래밍 – 데이터 저장

에디터 윈도우를 통해 얻은 input 데이터들은 어떻게 저장을 해야할까.  예전에 커스텀 에디터 윈도우를 띄운 후 변수와 컨테이너에 열심히 값을 담았는데, 다시 에디터 윈도우를 열었을 때 모두 사라져 버려 당황한 적이 있다.  에디터 윈도우를 닫고, 새로 열때 마다 다른 인스턴스가 만들어지기 때문에 에디터 윈도우 클래스에서 선언된 변수는 이전 변수를 가리킬 수…

[Unity] 에디터 프로그래밍 – Drag and Drop UI 구현

에디터 윈도우를 하나 띄워보고, 프리팹을 드래그 앤 드랍하여 해당 오브젝트를 사용해보자.  우선 BEditorWindow.cs 스크립트를 만들고, OnEnable, OnDisable, OnGUI 함수를 추가하였다.   파일을 드래그하여 놓을 위치는 GUI.Box를 이용하여 영역을 잡아보았다. using UnityEngine; using UnityEditor; public class BEditorWindow : EditorWindow { [MenuItem(“Tools/DragNDropWindow”)] static void Init() { EditorWindow.GetWindow(typeof(BEditorWindow)).Show(); } protected void OnEnable() { }…

[Unity] 에디터 프로그래밍 – 한글폰트 적용하기

에디터 윈도우를 하나 띄워보고, 간단한 레이블을 추가해보자.  AEditorWindow.cs를 만들어, Editor 폴더 안에 위치시키는 것으로 시작할 수 있다.  (Editor 폴더는 스페셜 폴더로서 Editor 나 EditorWindow를 상속받은 스크립트는 이 폴더 아래에 위치해야 한다.) AEditorWindow.cs에 기본 골격을 갖추기 위해 Init, OnEnable, OnDisable, OnGUI을 추가하였다. 컴파일이 잘 되었다면, 유니티 탑 메뉴에서 Tools 아래에 My Editor Window를 선택하여…

[UE4] 발사체를 날린 후, 방향과 도착지점을 예측해 보았다

물리가 적용된 물체에 AddImpulse로 힘을 가하여 물체를 날려보낼 경우, 그 방향과 도착지점을 계산하여 예측해 보았다.  이전에 글에서 발사체를 궤적에 따라 날려보내는 방식을 소개한 적이 있는데, 이 글에서는 매 Tick에서 얻을 수 있는 물체의 속도로 부터 최종 위치를 예측해 보는 방식으로 테스트하였다. 제한 사항으로는 물체가 날아가는 동안 Linear Damping을 0으로 하였고, 중력가속도는…