アウトドアとかゲーム開発とか

ロードバイクやキャンプなどアウトドアとUnityでの開発とか

【Unity】Camera Path Animatorで鈴鹿を走る

来たる5/29のスズカエンデューロに向け、VRサイクリングを鈴鹿対応すべくリメイク中。

とりあえずUnityでスズカのコースをCamera Path Animatorで走ってみた。

f:id:vrcycling:20160311001550p:plain

鈴鹿のモデルデータは以下で購入。

3D suzuka Models max 3ds c4d fbx obj

250ドルだが十分元は取れる。
ただ見たとおり、テクスチャのアルファが抜けきれてなかったり、木々が板ポリ丸わかりなのでその辺りは直す必要あり。

細かいところも直す必要がありそうなので、3D触れないとUnityでの使用は難しいかも。

 

 Camera Path Animatorもこれに合わせて購入してみたが、まだ使い方を把握しきれていないので覚えながら。

f:id:vrcycling:20160301220618j:plain

 

参考:

 

 

GGJ 2016 京都でGearVRゲームを作った

GGJでGearVRゲームを作った。

Rock Shooter | Global Game Jam

f:id:vrcycling:20160131225748j:plain

ゲームとしてはいたってシンプル。
ターゲットの球がランダムで配置されるので、フォーカスを合わせて撃つ、というVRゲーム。

f:id:vrcycling:20160131230436j:plain
球を撃つごとにレベルが上がっていき、制限時間が短くなるお邪魔ブロックが増えたり、ターゲット自体が動いたり。
そのほか色々レベルデザインに凝ってみたけど、その分メインゲームがちょっと薄くなってしまった感あり。

今回のメインの目的は『GearVR用ゲームの開発』ということで、もくもく作業するためにソロで参加。2日目は荷物受け取りのため12時から、3日目は洗濯のため11時からと時間もわりとルーズな感じで。
それでも何とかタイトルからリザルトまでそこそこ遊べるものが出来た。
手ごたえは十分。今後のGearVRゲームの足がかりになった。

京都会場はサウンドが二人もいて複数のチームのサウンドを作ってくれた。
このゲームにもぴったりなサウンドをつけてくれてすごい良くなった。

・京都会場の様子

f:id:vrcycling:20160131230417j:plain
国際色豊かで日本人が少数派。でも日本語しゃべれる人多いから安心。
タイムラプスでも見れるみたい。

www.youtube.com

・他のチームのゲーム(一部)

f:id:vrcycling:20160131230604j:plain

The labyrinth of Kawarigami | Global Game Jam
ボンバーマンライクな3人対戦ゲーム。
お供え物を同じ色の神様に渡していくのが目的。
他の神様に当たったり、障害物にあたったら死亡。
サウンドを除き2人での開発ながらクオリティ高し!

f:id:vrcycling:20160131231135j:plain

King's Nu-dignity | Global Game Jam
裸の王様をモチーフにしたゲーム。
自動で進む裸の王様を、子供の視線から防ぐ。
世界観のよさと遊び応えのあるレベルデザインが良かった。
企画はゲームジャム初参加の非ゲーム系デザイナーさん。イイネ!

やっぱりチーム作品はクオリティ高いし華があるね。今度はチームで参加するぞ。

 

今回作成したゲームは2月中旬に大阪、京都合同のお披露目イベントをやるらしいのでそちらにも持ってく予定。

そして来月末にはゲームエンジンの勉強会も!

やっぱりちゃんとUnityを勉強しとくとゲームジャムでも強いね!

www.amazon.co.jp

 

UnityでGearVRのゲームパッド入力の設定

ゲームパッドを使ったGearVRコンテンツを作りたかったので色々調べてみた。

ゲームパッドの購入

まずはゲームパッドの購入。Androidに対応したBluetoothゲームパッドが必要になる。
微妙に選択肢の無い中、下記を購入。

 

 到着後接続したが特に問題なし。
タッチパッドは腕が疲れるのでゲームパッドの方が断然ラク。

 

1/26 OVRInputは廃止される模様

Developer Center — Documentation and SDKs | Oculus

1/25 以下は怪しいので再度調査中

やっぱり以下でも動くけど、通常のInputでも動いた。(Unity5.2.4f1)

 Oculus Utilities for Unity 5のインポート

UnityでGearVR用の入力を取得する「OVRInput」を使うためにインポートが必要。

Developers — Build The Future | Oculus

スクリプト

「OVRInput.Get」などで入力を取得する。UnityのInputと使い方はそんなに変わらない。
オブジェクトを回転させたい場合は、

transform.Rotate( 0, OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick).x, 0);

のように記述する。

ただし、このまま実行した場合はエラーになる。
シーン内のオブジェクトに[Assets] - [OVR] - [Scripts]内の「OVRManager」を追加する。

以上

参考

OVRInput (GearVR + Unity) のまとめ | TaoVisor

UnityによるGearVRアプリの起動確認

UnityでGearVR用アプリの起動までの手順についてのメモ

・参考サイト

Unity5でGear VR用アプリの開発方法 | Psychic VRラボの殴り書き

Unity+Gear VR開発メモ - フレームシンセシス 技術ブログ

 

微妙にツールなどが更新されていたので補足と、Androidへの転送は久しぶりだったので、ほぼ1からの手順として記録を残すことにする。

1.Unity5のインストール

使用したUnityのバージョンはVersion 5.2.2f1 Personal

2.JDKのインストール

Java SE Development Kit 8 - Downloads

 「Java SE Development Kit 8u66」の方の「jdk-8u66-windows-x64.exe」をインストール。

3.Android Studioのインストール

Android Studio と SDK Tools のダウンロード | Android Developers

上記からAndroid Studioをインストール。

4.Android SDKのインストール

Android StudioをインストールしたらSDKのインストールが自動で行なわれたようだが、参考サイトにしたがって下記も追加でインストールしておいた。

[Android Studio起動] - [Configure] - [SDK Manager]

f:id:vrcycling:20160119225810j:plain

f:id:vrcycling:20160119225819j:plain

5.Unity側の設定

 [Edit] - [Preferebces]

 AndroidSDKJDKのパスを設定する。
・デフォルトパス
SDK C:\Users\xxxxxxxxx\AppData\Local\Android\sdk
JDK C:\Program Files\Java\jdk1.8.0_66

f:id:vrcycling:20160119225830j:plain

6.Unityプロジェクトの作成

ここはお好きなように作ってね

7.UnityのBuild Settings

[File] - [Build Settings]

PlatformをAndroidに変更する。

f:id:vrcycling:20160119005743j:plain

「Player Settings」を選択し、Androidの設定の「Other Settings」を選択する。
「Verrual Reality Supported」にチェックを入れる。
「Bundle Identifier」を適当に変更する。※最後を自分の名前に変更してみた
「Minimum API Level」を「API level 19」にする。

f:id:vrcycling:20160119010212j:plain

8.Oculus Signature Fileの設定

Oculus Signature Fileという署名ファイルを用意。
署名ファイルは下記からダウンロード。

Tools | Oculus

ダウンロードのためにはOculus公式へのログインと、デバイスIDの入力が必要。
デバイスIDは参考サイトと同じように下記アプリで確認。

SideloadVR DeviceID - Google Play の Android アプリ

ファイルをダウンロードしたら、Assetsフォルダ以下に[Plugins] - [Android] - [assets]フォルダを作成して入れる。

9.端末の開発者設定

端末を開発者モードに変更。
[設定] - [端末情報] の「ビルド番号」を何回かタップすると開発者モードになる。

その後、[設定] - [開発者向けオプション] の「USBデバッグ」にチェックを入れる。

10.ビルド

端末をUSBでPCと接続した後、Unity側に戻り「Build&Run」により端末に転送する。
問題なく転送できればGearVRに接続して確認してくれ、というメッセージが出るので接続して確認する。

以上。

エラーなど

Unityのビルド時のエラー原因

・USBケーブルがデータ転送ケーブルじゃなく充電専用ケーブルになっている
・端末が開発者モードになっていない
・開発者向けオプションの「USBデッグ」にチェックが入っていない

GearVRで確認時のエラー「thread priority security exception make sure apk is signed」

・デバイスIDが間違っている

 

参考サイトを作ってくれた人、ありがとうございました。
この記事もだれかの助けになれば幸い。
間違ってる部分があればコメントください。

GearVRの購入と導入

GearVRをついに購入。

ノートPCではDK2が実質動かせなくなり、気軽に体験会が開けなくなったことやRift CV1の価格が発表され、高価なため気軽にお客さんに貸し出すことが難しいことがきっかけとなった。

購入

必要なものはGearVR本体と、対応端末。

端末はGalaxy S6 edgeを選択した。

本体、端末ともにAmazonで購入可能だったのですぐに注文。

   

 端末は au Galaxy S6 edge SCV31 32GB を白ロムで購入。

端末の購入価格は38,000円也。

もうすぐS7も出て値下がりするだろうけど、そこまで待てなかった。

導入

流石Amazon。注文の翌日には到着。

f:id:vrcycling:20160116124601j:plain

設定方法は聞いていたとおり、いたって簡単。

1.端末の設定

基本的にスキップでOK。
Wi-Fiのみきちんと設定。

2.GearVRアプリのインストール

GearVRに端末を挿すと「端末を外してアプリをインストールしてください」的なアナウンスが流れるので、端末をを外す。

端末にはすでにGearVRセットアップウィザードが起動しているため、手順に沿って進めるだけ。

途中でOculusアカウントを求められる。既にRiftなどを過去にOculus公式から注文している場合は、その際のアカウントが使える。
※むしろ新規作成で同じメアドを使おうとしたとき「既にアカウントが存在しています」でエラーになる。

そのまま進めて行くと「端末に取り付けてください」というアナウンスが流れるため端末に取り付けて、いざVRの世界へ!

 

所要時間30分もかからず導入完了。

そこそこのお値段はするが、お手軽に高品質なVR体験ができるとすれば安いもの。
VRアプリ販売で多少回収できないか画策中。

 

やはりVRはいいものだ!

Final IKのRotationLimitで可動範囲を設定

Final IKを設定しただけだと関節が反対方向に曲がってしまったりするため、RotationLimitで可動範囲を設定する。

腕関節用の設定

 

設定したいオブジェクトに下記コンポーネントを追加する。

f:id:vrcycling:20160114000636j:plain

腕の関節に設定したいため、1軸のみ制限する「RotationLimitHinge」を使用する。

f:id:vrcycling:20160114000812j:plain

X軸方向に回転制限するので他の値を0にする。

Min、Maxは曲げたい範囲を設定する。

f:id:vrcycling:20160114001012j:plain

水色の範囲が可動域。Min、Maxのアンカーを引っ張っても変更可能。

f:id:vrcycling:20160114001154j:plain

各関節に設定することで反対方向に曲がったりめり込んだりしなくなる。

頭部用の設定

頭部もターゲットの方向を向くようにする。

f:id:vrcycling:20160114001718j:plain

CCDIKは複数設定可能。

f:id:vrcycling:20160114001743j:plain

f:id:vrcycling:20160114001751j:plain

頭部は「RotationLimitPolygonal」を使用する。

ポリゴンの範囲が可動範囲になる(たぶん)。

オレンジの頂点を移動させると範囲を変更できる。

f:id:vrcycling:20160114002103j:plain

f:id:vrcycling:20160114002126j:plain

だいたいOK。

Final IKでターゲットへのエイム設定

Final IKを利用したターゲットへのエイム設定について

Finak IK

 

ロボットモデル(非ボーンモデル)への設定

1.アセットをインポートする

2.ロボットモデルのルートオブジェクトに「CCDIK」コンポーネントを追加する

f:id:vrcycling:20160113013514j:plain

3.ターゲットと稼動させたいオブジェクトを設定する

Targetにはターゲットとなるオブジェクトを設定。

Bonesを追加していき、上から肩、肘、銃口となるように設定。

f:id:vrcycling:20160113013742j:plain

f:id:vrcycling:20160113013817j:plain

図のように水色の線で結ばれればOK。※右のキューブはターゲット

f:id:vrcycling:20160113013926j:plain

4.実行確認

ターゲットを動かすとターゲットに向けて動けばOK。

f:id:vrcycling:20160113014027j:plain

f:id:vrcycling:20160113014106j:plain

実行画面

f:id:vrcycling:20160113014419j:plain

モーションが変わってもエイムを維持

f:id:vrcycling:20160113014437j:plain

 

可動範囲の設定をどこでするかは今後の調査対象。
Final IKの解説サイトが少ないのでオフィシャルサイト見ながらなんとなくやってくしかないみたい。