如雨露の日記

学んだことを適当に書いていくサイト

Unity+Oculus+ArduinoでVRホラーゲーム用の懐中電灯型コントローラーを自作した話

この記事は Aizu Advent Calendar 2014 の25日目の記事です。
==============
@xxxx_un ← 前の人
==============

Aizu Advent Calendar初参加です。

書いていた記事が一回消えてツライ。

クリスマスだったので最初はOculusで嫁と過ごすとか考えてたのですが、先日このような本(Oculus Riftでオレの嫁と会える本)が出版されて私が書く必要はほとんどないなぁと思ったので、私が作った自作コントローラーの話をします。

先にコントローラーとしての完成形をみせると

f:id:ninataka_japan:20141226014916j:plain

 こんな感じです、見た目としては懐中電灯にコードが付いたくらいの変化です。

中身はこのようになっています。

f:id:ninataka_japan:20141226014928j:plain

 使ったのはArduino nano + MPU-6050です。

Arduinoの導入とコードの基本部分はこちらのサイト(http://urx2.nu/fCqp)を参考に作りました。

躓いた点としてはArduinoのドライバーをインストールするところです。こちらの動画の通りに行ったらインストールが出来ます。(これは2014年12月時点での話です)


Unbrick Arduino FTDI Driver Update Win7 Arduino ...

 上のサイトを参考にArduinoでUnity上のオブジェクトが動かせるようになったら本物の懐中電灯と接続しましょう。懐中電灯の回路をいじって懐中電灯のライトがつかないようにして、半田付けでArduinoと接続します。

このときにはプルダウン抵抗というものを作成するようにしてください。これは入力がないときにLowレベルの電圧が流れるようにするために使われ、作成していないと入力がないときに回路が不安定になります。

f:id:ninataka_japan:20141226080209j:plain

こんな感じに。

あとはArduino側でスイッチを押している、押していないの判定をしてそれをUnityに渡すようにコードを書き、Unity側のスクリプトで受け取れば完成です。

私の場合ですと、下のような感じでArduino側でOK/NOでスイッチの判定を送信してそれをUnity側でif文で判定しています。

これで懐中電灯のスイッチ機能を追加することが出来ます。これがあるとゲームでの懐中電灯の電源のON/OFFが作れますし、電池の残量が設定できるのでゲーム性が上がると思います。

Arduinoに関しては初心者ですが、誰かの役に立てれば幸いです。