実質2日間でOculusRift(DK2)対応のコンテンツを作っていました.
このレベルなら文系の私でもモデリング含めて2日(徹夜なし)で作れるので,卒研とかはこんなレベルじゃダメですよ〜
(ていうか,そもそも組み立てただけで研究でもなんでもない,,,)
そもそもOculusって何かってっつーと,PSVRのようなものです.
Oculus Riftはコケられない、だから値段も高くなる|WIRED.jp
製品版「Oculus Rift」の予約受付がはじまり、その価格の高さに驚いた人も多いだろう。しかしソニーやHTCといった手ごわいライヴァル企業と競わなければならないOculusにとって、いちばんの問題はその価格ではないようだ。
このOculus社がDK1を出したのはずいぶん前です.当時は衝撃でしたね.私はジェットコースターで酔ってOculusは触らないことにしました.
でもこのあたりの衝撃が現在のVRブームを作ったとも言えます.
さて,このVRコンテンツ,作るのは超簡単です.
どのくらい簡単かというと,ドライバなどインストールしてれば,見るだけなら3分くらいで作れます.
研究室に前の住人が残しておいたエアロバイクがあったので,ちょいと分解.データが取れそうでした.
そこで,,,,
Arduinoでちょいちょいといじって,
こんなものができました.
八事の空を空中散歩♪
オーキャンで高校生が絶叫していました〜(それを見てる方が楽しい)
センサのデータ変換にはAruinoを使っています.
今回書いたプログラムは全部で200行以下です.
そのうち,エアロバイクのセンサをArduinoからシリアルで送るプログラム
unsigned long mytime = 0; unsigned long hittime; unsigned long duration; boolean sensorBool = true; int input_value; void setup(){ Serial.begin(9600); mytime = millis(); } void loop(){ input_value = analogRead(3); if(sensorBool == true){ if(input_value < 200){ sensorBool = false; hittime = millis(); duration = hittime - mytime; mytime = hittime; send(); } }else if(!sensorBool){ if(input_value > 500){ sensorBool = true; } } } void send(){ Serial.println(duration); }
これをUnityに送って,コースのスプラインを走るだけです.
うん,簡単ですね.
Unity側のプログラムは別記します
なお,数値変化をやさしくするために,
Mathf.LerpUnclamped
を使っています.
Mathf.Lerpでもいいのですが,これは0から1でしか動作しません.
Splineは0(始点)から1(終点)で動くので,1を入れると1周します.Mathf.Lerpですと,1周しかしません.
Mathf.LerpUnclampedにすると,1を越えても数値補完してくれるので2周3周したいお客さんがいるときにも対応できます.
もちろん,適宜データのリセットは大事ですが,,