実質2日間でOculusRift(DK2)対応のコンテンツを作っていました.
このレベルなら文系の私でもモデリング含めて2日(徹夜なし)で作れるので,卒研とかはこんなレベルじゃダメですよ〜
(ていうか,そもそも組み立てただけで研究でもなんでもない,,,)
そもそもOculusって何かってっつーと,PSVRのようなものです.
Oculus Riftはコケられない、だから値段も高くなる|WIRED.jp
製品版「Oculus Rift」の予約受付がはじまり、その価格の高さに驚いた人も多いだろう。しかしソニーやHTCといった手ごわいライヴァル企業と競わなければならないOculusにとって、いちばんの問題はその価格ではないようだ。
LINK: wired.jp/2016/01/11/oculus-rift-price/
この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周したいお客さんがいるときにも対応できます.
もちろん,適宜データのリセットは大事ですが,,