Unityを使ったVRアプリ作成入門

687 Views

May 09, 15

スライド概要

Unityを使ったVRアプリ作成入門
2015.5.9
日本Androidの会浜松支部 第49回ミーティング 「スマートフォンで3DVRを楽しもう!」Part3

profile-image

とりあえず登録。 数年後、Slideshareからデータ移行。 ただし、一部ファイルは移行できず。無念。

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

Unityを使ったVRアプリ作成入門 2015.5.9 kinneko@gmail.com 日本Androidの会浜松支部 第49回ミーティング 「スマートフォンで3DVRを楽しもう!」Part3

2.

Part3 はハンズオン形式で行います ビルの林立する街で、定位置でピョンピョン飛び跳ねる アプリを3DVR対応にします。

3.

こんな感じ

4.

注意点など ・ターゲット端末はAndroidです。iOSでも同様に使えると思います。 ・Cardboardやタオバイザー、FakeRiftなどの3DVRゴーグルを使って 体験します。 ・3DVRコンテンツ作成時の注意点については、ここでは触れません。 ・Unityはすでに使ったことがある人を前提にしています。 ・使用するアセットの条件で、Unity5.1以降が対象です。 ・Androidアプリケーションがビルドできる設定は事前に行っておいて ください。

5.

本日の内容 ・アセットを使って、簡単なプログラムを作成 Unityの基本については理解済みという前提で、さらっと流して説明します。 3DVR化する前のプログラムは、会場で配布しますので解説だけです。 ・作成したプログラムを3DVR化する:Dive編 Durovis Dive SDKを使って、作成したプログラムを3DVR化します。 ・作成したプログラムを3DVR化する:Cardboard編 Cardboard SDK for Unityで、作成したプログラムを3DVR化します。 ・カスタマイズ・タイム サンプルのカスタマイズや、自作アプリの3DVR化を行ってください。

6.

・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム

7.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・景色があると相対的にジャンプ感が出るので、 ビル街を自動生成するアセットを使う ・自動生成なので、毎回違った景色が楽しめる。 (大差ないけど...)

8.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・TekitouCityGenerator / 適当な街並みジェネレータ Unity5で適当な街並みを自動で作るサンプル http://many.chu.jp/Unity/TekitouCityGenerator/ https://github.com/Maruchu/TekitouCityGenerator ・ライセンスがやや運用しにくい やってはいけないのは、オリジナルの unitypackage をそ のまま別のサイトなどで配布することだけです。 各自で改造して作成された unitypackage や zip はご自由 に配布してもらってOKなので是非 色んな物に使って遊んで みてください。 ・アセットをダウンロードする

9.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・Unity5.1で新規プロジェクトを作成 TekitouCityGenerator̲ForUnity5.0.1. unitypackageをロードする ・Sample1を読み込む (2夕方,3夜も試す) ・動かしてみる -> 動きが早い(=酔う)のを確認

10.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

11.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

12.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

13.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

14.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

15.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

16.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・使用したアセットのサンプルでは、街なかの 空中をぐるぐる高速で回るので、3DVRアプリ にすると酔います。 ・回転処理しているスクリプトを無効にして、 回転を止めます。 ・設定されたAddRotationスクリプトを無効に カメラを開いてスクリプトのチェックを外す ・動かしてみる -> 回らなくなったが何も起きない

17.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

18.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

19.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・カメラにRidgebodyコンポーネントを設定し、 重力をオンにする ・カメラにスフィアコライダーを設定する ・マテリアルを作成して、Bouncenessを1に 設定する ・スフィアコライダーにマテリアルを設定する ・動かしてみる -> 床を突き破って無限に落ちる (床にコライダが設定されていない)

20.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

21.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

22.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

23.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

24.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・Cubeを作成して薄くして床に貼る Scale y0.1に。Position y-15にしておく ・Boxコライダーに マテリアルを設定する(バウンス) ・動かしてみる -> まだ早くて酔いそう

25.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

26.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

27.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・重力加速度を変更する ・Edit -> Project Settings -> Physics Gravityで値を変更 デフォルト:x: 0 y: -9.81 z:0 水星 3.70、金星 8.87、地球 9.80、 火星 3.71、木星 24.79、土星 10.44、 天王星 8.87、海王星 11.15、冥王星 0.58、 月 1.62 m/s^2 ・変更して動かしてみる -> 月面くらいがいい感じ

28.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他

29.

アセットを使って、 簡単なプログラムを作成 ・街を読み込む ・回転を止める ・カメラに重力を 作用させる ・床でバウンスさせる ・重力を月面にする ・その他 ・他のサンプルも試してみる (夕暮れ、夜) ・ビルのロゴを浜松支部のアイコンと差し替え(済) ・重力はスクリプトでも変更可能 Physics.gravity = new Vector3(0f, 0f, -9.81f); 範囲を決めて、ランダムに変更してみる。 ・加速度センサの値によってジャンプ開始と、 最初の加速度を変化させる ・カメラ位置の建物との衝突判定

30.

・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム

31.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド ・老舗VRヘッドセットメーカー Drovis社が提供しているUnity用のSDK https://www.durovis.com/ ・ライセンス文書 ・3Dカメラ・プレハブ ・マウス操作スクリプト ・加速度センサPlugin ・ロゴ画面 ・Cardboardより早く提供されていたので 多くのアプリケーションで使用されている

32.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド ・https://www.durovis.com/sdk.html ・Dive̲Plugin̲2.1.unitypackageをダウンロード ・サンプルにアセットをロードする

33.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

34.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド ・3Dカメラをロードする ・単眼カメラを無効にする ・カメラの位置を高く設定する Position y+15 ・先ほどのアセットで使った リッジボディとスフィアコライダを設定する ・実行してみる -> ・Mouse Lookスクリプトが 有効なのでカメラをマウスで操作できる ・センサがないのでGYRO警告が出る

35.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

36.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

37.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

38.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

39.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

40.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

41.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド ・Cubeの位置をy-15からy0に変更 ・重力の設定を月面相当に

42.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

43.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

44.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド ・ライセンスで、ロゴ表示が義務付けられている ・デフォルトのロゴはSDKに含まれている 3Dカメラを設定すると3D Splashも可能 ・Unity Free版のロゴも出るので ロゴが2つ出るのは、起動時に煩わしい ・Unityロゴがステレオ対応じゃないのが残念

45.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

46.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

47.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド ・Android SDKのパスを設定 ・アプリケーション名の設定 ・ビルド後、実機に転送して実行

48.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

49.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

50.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 横固定も入れる →

51.

作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド

52.

・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム

53.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド ・GoogleがCardboard向けに提供している SDKのうち、Unity用の部分 (Nativeもあり) Google Cardboard SDK for Unity https://developers.google.com/cardboard/unity/ ・コードはGitHubで公開されている https://github.com/googlesamples/cardboard-unity/ ・リリースノート https://developers.google.com/cardboard/unity/release-notes ・次のGoogle I/Oで何かアップデートが?

54.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド ・SDKのダウンロード https://github.com/googlesamples/cardboard-unity/ blob/master/CardboardSDKForUnity.unitypackage? raw=true ・サンプルを開き、SDKを読み込む

55.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

56.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド ・機能はプレハブにまとめられているので、 メインカメラにプレハブを追加するだけ ・CardboardHeadプレハブをカメラにドラッグ ・専用のシェーダーが使われ、樽状に変形 ・Unity上の実行では樽変形されない

57.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

58.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

59.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド ・File->Build Settingsでターゲットを切り替える ・シーンの追加とテクスチャ圧縮の設定 ・画面を横方向に固定、アプリ名を入れる ・ビルドして、実機にて動作確認

60.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

61.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

62.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

63.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

64.

作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド

65.

・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム

66.

カスタマイズ・タイム カスタマイズ・タイム ・取り組んできたサンプルのカスタマイズや、 お手持ちの自作アプリの3DVR化を行ってみてください。 ・ここからはフリータイムになりますので、お時間まで自由に プログラムを行ってください。