프로그래밍/VR 2017. 7. 27. 00:31

기본적으로 Unity5.x, Unity2017에서는 VR을 자동으로 지원해 준다.  Edit -> ProjectSetting -> Player -> Other Setting -> Virtual Reality Supported 라는 체크박스를 체크해주면 끝이다.


문제점은 메인 카메라를 직접 움직일 수가 없다. 따라서 편법 아닌 편법 (유니티에서 권장하는 방법)으로 좌표용으로 쓸 GameObject 한 개를 만들고 그것의 자식으로 Main Camera를 넣어준다. 그다음 GameObject의 좌표를 변경하면 MainCamera도 같이 변경된다. 


VR FPS를 만들 경우 카메라를 캐릭터의 자식으로 붙이고 회전을 마우스로 줘도 된다. ( 헤드 트래킹에 따라서 회전을 시킬 경우 캐릭터가 엎드리거나 누울 수 있으니 헤드 트레킹을 사용할 경우에는 더미 GameObject를 만들어서 캐릭터를 따라다니게 하고 Y축만 따로 가져와서 캐릭터에 적용시키면 된다.

posted by 천마서생
:
NDC2017 2017. 5. 18. 14:11

더 좋은 코드를 위한 함수형 프로그래밍

순수함수와 불변성

순수함수 : 함수의 겨로가값이 오직 입력 인자 값들에 의해서만 결정.
- 특정 입력값에 대해서 결과값이 결정적으로 대응되는 함수
- 부작용이 없는 함수.

부작용 : 상태에 영향을 받거나 변화를 주는 모든 동작
 -화면 출력
 -소켓통신
 -디스크 I/O
 -예외 catch

참조 투명성
-> 어떤 표현식을 그 표현식의 결과값으로 교체해도 전체 프로그램의 실행결과에 영향을 주지 않는 성질
-> 컴파일러에게 다양한 최적화 기회를 제공

기억 - memoization
- 입력값 / 함수명을 알면 결과값은 항상 같음
지연 연산 - Lazy evaluation
- 실제로 결과값이 필요할 때만 함수를 평가
불변성


위 사진은 ranges다.




posted by 천마서생
:
NDC2017 2017. 5. 18. 14:03

게임 bot 탐지 모델 구현 및 응용사례
ex) 3초 안에 10개의 스테이지를 연속으로 클리어하면 어뷰저에요.
-> 군맹무상 : 자기의 좁은 소견으로 진실이라고 믿는다.

모바일 게임은 주 계정에서 봇을 사용한다. - 스스로 게임 플레이를 할 때도 있다.

기존 rule로 1주일 간의 최신 데이터를 확인해 보면 정확도도 낮고 높은 오진률 발생.

문제를 해결하는 가장 첫 번째 단계는 우리 스스로 문제가 있다는 것을 인식하는 것.

ex) 라인레인져스
레벨업 = 경험치 획득량 / 플레이 횟수 (X)
레벨업 = 경험치 획득량 / 경험치 획득 횟수+1

box plot
1사분위수 3사분위수 : 비교하는 그룹의 제 1사분위수와 제 3사분위수 사이의 구간이 완전하게 분리 된 것이 좋다.

feature selection이 필요한 이유
1. 관련 없는 데이터 제거
2. 모델 정확도와 관련된 feature 중요도 파악
3. feature는 꼭 필요한 것만 선택하는 것이 중요.

RFE를 꼭 알아두자..

RF Classifier / SVM Classifier

RFE는 feature를 재귀적으로 제거하고 남은 feature만으로 모델 정확도를 계산하여 목표 변수에 대한 예측에 기여하는 속성의 조합

PCA(Principal Component Analysis)는 왜 사용 안함?
1. 탐지 모델 생성과 검증을 위해 데이터 분할

2. Train data의 비율은 임의로 설정
- Undersampling 방식을 이용하여 80 : 20으로 조정 (Sampling, Cost-sensitive, Hybrid methods)

XGBOOST 알고리즘.
1. Computation in C++
2. R/Python 라이브러리(인터페이스) 제공
3. Tree-based 모델.

Ramdom Forest vs XGBoost


posted by 천마서생
: