テレポをラーニング
今週は夏休みなので帰省しようとしてたのですが、台風で飛行機飛びませんでした。(結果帰省せず)
5月のゴールデンウィークに帰省した時も、帰りの便が強風で飛びませんでした・・・
何故か続けて飛ばなかったわけですが、ま、そんなんどうでもよくって今回はドローンを飛ばしてみます。
現実の世界では広い場所も無し、気軽に飛ばせる所も無し、せめてVRの世界では広いところで飛ばしたいので、自分の位置もテレポートで移動できるようにしてみます。
ドローンのモデルは、ユニティちゃんの友達の「ゆうこ」を使用しました。
では、モデルを配置して、空を飛ぶのでうつ伏せになるよう回転・・・
あれ? これ中心がモデルの足元にあるんじゃないっすか。
確かに立ってる時の中心は足元が便利だけど、今回は飛んでもらうから中心はお腹のところが良いなぁ。
じゃあ、一旦別のオブジェクトを作って、その中に入ってもらおう!
Cubeを使って箱入り娘にし、箱は表示しないよう「Mesh Renderer」をOFFに。
これで中心が扱いやすい位置にきました。
箱を表示するとこんな風
続いて、コントローラ用のスクリプトを作成。
左のコントローラ前後左右上下移動用、右のコントローラは左右スライドとテレポ用。
スクリプトの中で左右どちらを使っているかによって挙動を変えたいので、publicにしたbool型の「Move_ctrl」の変数を作って、左をON。
右はOFF、これで処理を分岐させよう。
ドローン用のスクリプトも作って、ドローンにくっつける。
ついでに地面に落ちた時「ビターン!」ってならないよう、体がぽよぽよ弾むMaterialを設定。
ドローンの移動はここまでで今度は自分自身の移動、テレポを実装しよー。
Asset Storeにある
1. Vive Input Utility
Copyright 2016, HTC Corporation. All rights reserved.
2. VRTK-SteamVR Unity Toolkit
Sysdia Solutions Ltd
のどちらかでできそう。どちらもテレポ以外にも色々便利な機能が入ってるので一度目を通して後々また使わせていただきます。
んで、今回は「Vive Input Utility」を使用します。
Import後は、Examplesの中にテレポの例があるのでそれに沿って設定。
Prefabsの「VivePointers」をドロップ、テレポ可能なオブジェクトを「Teleportable」にして、TargetとPivotを入れてあげる。
あと「Teleportable.cs」ではトラックパッド押下でテレポだけど、トリガで移動したいので、ボタンの書き換えしてます。
左のテレポは使わないのでOFFっておく。
完成! 実行するでー!!
おおー、ポインタでてる。移動も出来る。
でも、 風景がないからどこ飛んでるかわかんねー!
殺風景だったマップに彩りをつけるため、「Low Poly: Free Pack」を使用させていただきました。
どこ飛んでいるか分かるようにもなったー
出来上がった動画はこちら。
ホントのドローンの挙動や操作方法は、今回作ったものとかなり違います。
プログラムのダウンロードはここ。
https://dl.dropbox.com/u/110351779/app/Drone.zip
この作品はユニティちゃんライセンス条項の元に提供されています
最後に、作ったスクリプトです。(UnityもC#も初心者なので、間違っている可能性が大いにある点、注意してください)