Oculus Rift + Unity 画面上に文字を表示する
Unityで画面上にスコアや”Gameover”みたいな文字を表示するとき、
普通だと”GUI Texture” とかを使いますが、Oculus Riftでそれをやるとちゃんとステレオに表示されない、、、
3D Textを使えばOK
どうすればいいのか調べると "3D Text"を使えばよかった。
3D TextをPlayerの配下に置けば、常に視界に表示されるので、スコアなどを表示するのはこれでOKですね。
で、3D Textを使った時のその他Tipsを以下にメモメモ、、、
3D Textぼやける問題
デフォルトの設定だとボヤけてます。なんだこりゃ。
これは、Character Sizeを小さくして、Font Sizeを大きくすればOKの模様。
【before】Character Size = 1, Font Size = 0
↓ 【after】Character Size = 0.1, Font Size = 200
するとこんな感じでクッキリと!
文字をプログラムから変える
スコアとか表示するなら、プログラムから文字を変更したくなります。 TextMeshのtextを変更すればOKそう。
# Inspectorで3D Textを渡しておく public GameObject messageText; void Update () { messageText.GetComponent<TextMesh>().text = score + "Pt"; }
(2015.1.31追記)
3D Textを隠すのはこんな感じ
messageText.renderer.enabled = false; // 非表示にする
Oculus Riftでメーヴェを作ろう(11)機体の手摺りを作ろう!苦悩の末...
そろそろメーヴェ機体を作り始めます。
まずは手摺りをどうするか?です。
あれやこれや苦悩の末、こんな感じになりました。
以下、その苦悩の遍歴です(笑)
鉄パイプを外注
そこそこ力がかかるので、ある程度の強度が必要です。
鉄パイプなら安心だろ!てことで業者に見積を出してみました。
こんな感じの図面で見積依頼してみました。手書き(笑)でOKみたいです。
...しかし、見積りの結果、費用が思ったより高かった。
左右の2本合わせると3〜4万円!んー、ちょっと躊躇する。
そこで別の方法を考えることにしました。
塩ビパイプを組み合わせる
市販の塩ビパイプとジョイント部品を使って何とかできないかと考えました。
...で、出来たのがコレ。
んー、なんかイマイチ!
配管っぽさ満点すぎる(笑)
なのでコレもやってみたけどボツ。材料無駄になっちゃったな。
塩ビパイプを曲げる
色々調べると、塩ビパイプは熱で割りと簡単に曲げ加工が出来るようです。
塩ビ管の加工
早速トライ!
キャンプ用のバーナーで熱します。
熱湯でも一応出来ましたが、手間がかかるのでバーナーを使いました。
結構難しいです。一つ目はちょっと不格好になりました。2つ目はちょっと慣れてそこそこ綺麗に出来ました。
コツは引っ張りながら曲げること、ちょっとずつ根気よく曲げること、のようです。
完成品はこんな感じ。
それを土台に差し込むと、、、
お!なんかメーヴェっぽいですよ!
右側がはじめに作った方。ちょっとデコボコしててイマイチですね...
パイプのカットとか、木版の穴あけはホームセンターの工作室でやってもらいました。
1箇所あたり100円で穴あけ、カットしてくれるので助かります。
ファブラボとか行かなくてOKですね(笑)
ルンバを自作するのに必要な部品アレコレ集
以前に作った自作ルンバの反響が結構あります。
「 製作のために買った部品は? 」
という質問を頂いたので、主なものをリストアップしてみました。
全部、千石通商でネット購入できます♪
実際には他にも細々とした部品を使ってますが、そのへんは作りながら空気感で揃えてもらえればと ^^;
電子回路
arduino
ロボット制御の脳ミソ。マストアイテム
ARDUINO-A000066 Arduino Uno R3
モータドライバ
モータの速度や反転の制御に使います。ルンバではタイヤx2、ブラシx1で合計3つ使っています。
東芝 TA7291P DCモータ用
赤外線距離センサ
壁際走行に使いました。
シャープ GP2Y0A21YK0F 測距センサユニット
マイクロスイッチ
バンパー衝突の検知用
オムロン D2F-L 極超小形基本スイッチ(ヒンジ・レバー形/基板用)
足回り
ギアボックス
走行用とブラシ用です。モータも付属しています。
タミヤ ダブルギヤボックス(左右独立4速タイプ)
タイヤ
これを使いましたが、キャタピラとかも走破性能が高くて良さそうですね。
タミヤ ナロータイヤセット
スプロケ&ラダーチェーン
ブラシの駆動伝達に使っています。はじめは輪ゴム&プーリーで試したけど、空回りしてNGでした。
パワーが必要な場合はこれがオススメ。
タミヤ ラダーチェーン&スプロケセット
筐体
筐体はユニバーサルプレートを駆使して。
タミヤ ユニバーサルプレート2枚セット
その他
電池BOX
スイッチ
Oculus Riftでメーヴェを作ろう(9)Aruduino用シールド基板作成
いままでブレッドボードでやってたのを、ちゃんとハンダ付けして基板を作りました。
Arduinoにピタッと装着できるように、Arduino用のユニバーサル基板を使いました。
サンハヤト UB-ARD03 Arduino用ユニバーサル基板
GNDとかVCCとかがいい感じに1列ズラ~って並べてあるので便利。 あと仕上がりもなんかスマートになるし。
前よりだいぶスッキリしました。
動作も一発でちゃんと動きました♪
しかし、その後問題発覚、、、!
この前買ってきた基板ケースに入りません!
ちょっと背が高すぎました。
そこで、、、近所のスーパーに走ってタッパーを入手。
いい感じです(笑)ちゃんと収まりました。
これをメーヴェ筐体の上に装着して、筐体の傾きを計測するつもりです。
Oculus Riftでメーヴェを作ろう(8) フットペダルでターボ加速!
飛行スピードをコントロールする手段は、現状ありませんでした。
けど実際試してみると、ビューンって加速したくなったりします。
そこでナウシカの映画を見たところ、足元のペダルでビューンって加速していました。
ペダルを踏むとエンジンで加速するらしいです。
ふむ、これそのまま実装してみましょう(笑)
工作
秋葉原でフットスイッチを買ってきました。700円くらいでした。
ソッコー切断します。
単純に2本のケーブルがあります。仕組みは普通のスイッチですね。
電子回路
回路はコチラ↓を参考にプルダウン回路で組みました。
http://baticadila.dip.jp/arduino_002.html
プルアップorプルダウンのどちらにするかの判断は
- 通常時ON→プルアップ 回路
- 通常時OFF→プルダウン回路
って考えでよいみたいですね。
普段はターボ加速しない想定なのでプルダウンでいきます。
プログラム
今回もUnityアセットのUNIDUINOを使ったプログラムです。
Arduinoの8番ピンをデジタル入力として使います。
reportDigital()
のところがちょっと謎な気配ですが、チュートリを読んだ所
(byte)(FOOT_SWITCH_PIN/8)
はピンのportを調べるロジックのようです。要はどのピンだろうと、こう書いておけばOKそうです。
int FOOT_SWITCH_PIN = 8; void Start( ) { arduino = Arduino.global; arduino.Setup(ConfigurePins); } void ConfigurePins( ) { arduino.pinMode(FOOT_SWITCH_PIN, PinMode.INPUT); arduino.reportDigital((byte)(FOOT_SWITCH_PIN/8), 1); }
デジタル入力の読み取りはこんな感じです。
スイッチが押されたら、メーヴェを加速させます。
void Update () { if(arduino.digitalRead(FOOT_SWITCH_PIN) == 1){ speedUp(); // 飛行速度の加速メソッド } }
実行
足元にフットスイッチを置きます。
最終的にはメーヴェ筐体(現状でいうダンボール...)の上に装着するつもりです。
フットスイッチ踏んで、、、
ターボ加速!画像じゃわかりませんね(笑)
ターボ加速中は、機体後ろから火炎のようなものを排出します。
振り返らないと見えないけど、火炎が空中に尾を引く感じは爽快です。
Oculus Riftでメーヴェを作ろう(7) Unity free版でもOculus開発が可能に!
Unityの公式blogでUnity free版でもOculus Riftの開発が出来るようになると報告がありました! 今まではpro版が必要で、そのコストも16万円と個人にはかなり高価だったので、これはビッグニュース!
Unity公式blog http://blogs.unity3d.com/2014/09/20/expanded-oculus-rift-support-in-unity/
That means whether you’re using the free version of Unity or Unity Pro, you’ll be able to create awesome VR experiences for the Oculus Rift and the Oculus VR Store for free!
なるほど、確かにfree版でも開発可能になるようです。
The Oculus add-on will include stereo imaging optimizations, 3D audio support, deeper Unity editor integration, inclusion of the Oculus Rift in the Unity development and debugging workflow, integration of Oculus-specific APIs within Unity, and direct publishing to the Oculus platform.
Unity側が公式アドオンを開発してるとか。よりUnityエディタと統合された形でOculus対応ソフトがつくれるようになる感じでしょうか。
To that end, we’re working with Oculus to make the current Oculus plug-in, one that has been available for free for Unity Pro users, also available for those making games with the free version of Unity. This new plugin version will be made available for free download on the Oculus developer site as soon as possible.
さらに、現行のOculusが出してるUnityプラグインも、Unity free版で使えるようになるとのこと。 いまコレ使ってるから、まずはコレを待ちかな。ASAPらしいけどいつだろう、、?楽しみ!
無料のOVR agentにいくつか不都合があり、先日からUnity proの1か月体験版を始めたとこ。 Maker Faire Tokyoまで持たないからpro版購入を覚悟してただけに、これは嬉しい!