기본 콘텐츠로 건너뛰기

aframe 일기 - controller는 중구난방

webVR 쪽 일을 할 수도 있을 거 같아 들이대보려는 중.
aframe 이 확 끌린다.
x3dom은 솔직히 너무 구렸어. 그리고 느렸어. 별로야.
https://jsbin.com/suloji/edit?html,js,output
비슷한데 쉽다. korat을 사용해서 코드는 좀 독특한데 어쨌든.

https://aframe.io 는 데모도 좋고
ctrl+alt+I로 전용 inspector가 열리는 것도 좀 신박했어
내가 좋아하는 MagicaVoxelBlender도 지원하는 로더들이 있고
무엇보다 컨트롤러 지원이 있었어.
그래, 컨트롤러가 VR에서 반 이상은 되지.
원래 또 내가 한 컨트롤러 좋아하지.
난 gaze control이 너무 싫어.
정말 멍청한 생각이야.
도구를 쓰라고 도구를!

보니까 가격이 비싸든 싸든 헤드기어 쪽은 어느 정도 수준이 올라온 것 같은데 가격대비 공신력(?)에서 Daydream이 좀 끌리긴 했다.
싸고 가볍고 간편하고 구글이고 훌륭하지. 듀얼콘은 아니고 Wii 컨트롤러 같은데 감도도 그렇고 좋아보인다.
근데, 화웨이, 에이수스, 모또롤라, ZTE 미만 잡이래.
S7이 있음 뭐하나 제기랄.
https://github.com/domination/gvr-services-emulator/blob/master/apks/README.md
보니까 gvr-service를 손봐서 일반 폰에서 쓸 수 있게 한게 있는데 페인트 예제 앱 두 바퀴 빙빙 칠하다가 주저앉고 나서 더 해볼까 싶어도 결국 Daydream은 시작조차 해볼 수 없더라.

가지고 놀아보고 싶었는데 노는 건 나중에.
자료를 찾아보면 이젠 거의 자동인데 https://github.com/aframevr/awesome-aframe 시리즈 먼저 체크.
https://proxy-controls.donmccurdy.com/ 라는 훌륭한 것이 있군.
두개의 웹브라우저.
하나는 컨트롤러, 하나는 뷰어. 그리고 webRTC datachannel까지.
완벽해! 테스트해보자.

음? 좋긴한데 데스크톱에서 키보드나 게임패드로 폰을 제어하는 리모트라 내가 생각하던거랑은 반대.

https://github.com/ryanbetts/dayframe
오히려 이게 찾던 것.
데모는 웹소켓이로 Heroku라 엄청 느리다. 개량을 하던 새로 만들던 해야겠구만.
소스 코드를 보니

            window.addEventListener('devicemotion', handleMotionEvent, true);
            window.addEventListener('deviceorientation', handleOrientationEvent, true);
            // prevent the remote from moving around on the page
            window.addEventListener('touchstart', function (evt) {
                evt.preventDefault();
            });
            trackpadEl.addEventListener('touchstart', function (evt) {
                socket.emit('trackpad:touchstart');
                trackpadContactEl.classList.remove('hidden');
            });
            trackpadEl.addEventListener('touchmove', function (evt) {
             trackpadEl.addEventListener('touchend', function (evt) {
                socket.emit('trackpad:touchend');
                trackpadContactEl.classList.add('hidden');
            });
            trackpadHammer.get('swipe').set({ direction: Hammer.DIRECTION_ALL });
            trackpadHammer.on('doubletap', function (evt) {
                socket.emit('trackpad:click');
            });
            trackpadHammer.on('swipeleft', function (evt) {
                socket.emit('trackpad:swipeleft');
            });
            trackpadHammer.on('swiperight', function (evt) {
                console.log('swiperight');
                socket.emit('trackpad:swiperight');
            });
            trackpadHammer.on('swipeup', function (evt) {
                console.log('swipeup');
                socket.emit('trackpad:swipeup');
            });
            trackpadHammer.on('swipedown', function (evt) {
                console.log('swipedown');
                socket.emit('trackpad:swipedown');
            });
            homeBtnHammer.on('tap', function (evt) {
                socket.emit('home:tap');
                orientationCenter = lastOrientation;
            });
            appBtnHammer.on('tap', function (evt) {
                socket.emit('app:tap');
            });
이정도가 핵심 코드인가 봄.

댓글

이 블로그의 인기 게시물

cURL로 cookie를 다루는 법

http://stackoverflow.com/questions/22252226/passport-local-strategy-and-curl 레거시 소스를 보다보면 인증 관련해서 cookie를 사용하는 경우가 있는데 가령 REST 서버인 경우 curl -H "Content-Type: application/json" -X POST -d '{"email": "aaa@bbb.com", "pw": "cccc"}' "http://localhost/login" 이렇게 로그인이 성공이 했더라도 curl -H "Content-Type: application/json" -X GET -d '' "http://localhost/accounts/" 이런 식으로 했을 때 쿠키를 사용한다면 당연히 인증 오류가 날 것이다. curl의 --cookie-jar 와 --cookie 옵션을 사용해서 cookie를 저장하고 꺼내쓰자. 각각 옵션 뒤엔 저장하고 꺼내쓸 파일이름을 임의로 지정하면 된다. 위의 과정을 다시 수정해서 적용하면 curl -H --cookie-jar jarfile "Content-Type: application/json" -X POST -d '{"email": "aaa@bbb.com", "pw": "cccc"}' "http://localhost/login" curl -H --cookie jarfile "Content-Type: application/json" -X GET -d '' "http://localhost/accounts/" 이렇게 사용하면

MQTT Broker Mosquitto 설치 후 설정

우분투 기준 $ sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa $ sudo apt-get update 하고 $ sudo apt-get install mosquitto 으로 설치하면 서비스까지 착실하게 올라간다. 설치는 간단한데 사용자를 만들어야한다. /etc/mosquitto/mosquitto.conf 파일에서 권한 설정을 변경하자. allow_anonymous false 를 추가해서 아무나 못들어오게 하자. $ service mosquitto restart 서비스를 재시작. 이제 사용자를 추가하자. mosquitto_passwd <암호파일 경로명> <사용자명> 하면 쉽게 만들 수 있다. # mosquitto_passwd /etc/mosquitto/passwd admin Password:  Reenter password:  암호 넣어준다. 두번 넣어준다. 이제 MQTT 약을 열심히 팔아서 Broker 사글세방 임대업을 하자.

OS X 터미널에서 tmux 사용시 pane 크기 조절

http://superuser.com/a/660072  글 참조. OS X 에서 tmux 사용시 나눠놓은 pane 크기 조정할 때 원래는 ctrl+b, ctrl+↑←→↓ 로 사이즈를 조정하는데 기본 터미널 키 입력이 조금 문제가 있다. 키 매핑을 다시 하자 Preferences(cmd+,) > Profile >  변경하고자 하는 Theme 선택 > Keyboards 로 들어가서 \033[1;5A \033[1;5B \033[1;5C \033[1;5D 를 순서대로 ↑↓→←순으로 매핑이 되도록 하면 된다. +를 누르고 Key에 해당 화살표키와 Modifier에 ctrl 선택 한 후 <esc>, [, 1, ;, 5 까지 한키 한키 입력 후 A,B,C,D를 써준다. 잘못 입력했을 땐 당황하지 말고 Delete on character 버튼을 눌러 수정하도록 하자. 그리고 다시 tmux에서 ctrl+b, ctrl+↑←→↓로 사이즈를 조절해보자. 잘 된다.