Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Part3 unityを使ったvrアプリ作成入門

9,584 views

Published on

日本Androidの会浜松支部 第49回ミーティング
「スマートフォンで3DVRを楽しもう!」
http://jaghama.connpass.com/event/14645/
パート3の資料。

Published in: Software
  • Be the first to comment

Part3 unityを使ったvrアプリ作成入門

  1. 1. Unityを使ったVRアプリ作成入門 2015.5.9 kinneko@gmail.com 日本Androidの会浜松支部 第49回ミーティング 「スマートフォンで3DVRを楽しもう!」Part3
  2. 2. Part3 はハンズオン形式で行います ビルの林立する街で、定位置でピョンピョン飛び跳ねる アプリを3DVR対応にします。
  3. 3. こんな感じ
  4. 4. ・ターゲット端末はAndroidです。iOSでも同様に使えると思います。 ・Cardboardやタオバイザー、FakeRiftなどの3DVRゴーグルを使って  体験します。 ・3DVRコンテンツ作成時の注意点については、ここでは触れません。 ・Unityはすでに使ったことがある人を前提にしています。 ・使用するアセットの条件で、Unity5.1以降が対象です。 ・Androidアプリケーションがビルドできる設定は事前に行っておいて  ください。 注意点など
  5. 5. ・アセットを使って、簡単なプログラムを作成  Unityの基本については理解済みという前提で、さらっと流して説明します。  3DVR化する前のプログラムは、会場で配布しますので解説だけです。 ・作成したプログラムを3DVR化する:Dive編  Durovis Dive SDKを使って、作成したプログラムを3DVR化します。 ・作成したプログラムを3DVR化する:Cardboard編  Cardboard SDK for Unityで、作成したプログラムを3DVR化します。 ・カスタマイズ・タイム  サンプルのカスタマイズや、自作アプリの3DVR化を行ってください。 本日の内容
  6. 6. ・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム
  7. 7. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・景色があると相対的にジャンプ感が出るので、  ビル街を自動生成するアセットを使う ・自動生成なので、毎回違った景色が楽しめる。  (大差ないけど...)
  8. 8. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・TekitouCityGenerator /          適当な街並みジェネレータ Unity5で適当な街並みを自動で作るサンプル  http://many.chu.jp/Unity/TekitouCityGenerator/  https://github.com/Maruchu/TekitouCityGenerator ・ライセンスがやや運用しにくい ・アセットをダウンロードする やってはいけないのは、オリジナルの unitypackage をそ のまま別のサイトなどで配布することだけです。 各自で改造して作成された unitypackage や zip はご自由 に配布してもらってOKなので是非 色んな物に使って遊んで みてください。
  9. 9. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・Unity5.1で新規プロジェクトを作成  TekitouCityGenerator_ForUnity5.0.1.  unitypackageをロードする ・Sample1を読み込む (2夕方,3夜も試す) ・動かしてみる -> 動きが早い(=酔う)のを確認
  10. 10. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  11. 11. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  12. 12. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  13. 13. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  14. 14. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  15. 15. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  16. 16. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・使用したアセットのサンプルでは、街なかの  空中をぐるぐる高速で回るので、3DVRアプリ  にすると酔います。 ・回転処理しているスクリプトを無効にして、  回転を止めます。 ・設定されたAddRotationスクリプトを無効に  カメラを開いてスクリプトのチェックを外す ・動かしてみる -> 回らなくなったが何も起きない
  17. 17. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  18. 18. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  19. 19. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・カメラにRidgebodyコンポーネントを設定し、  重力をオンにする ・カメラにスフィアコライダーを設定する  ・マテリアルを作成して、Bouncenessを1に  設定する ・スフィアコライダーにマテリアルを設定する  ・動かしてみる -> 床を突き破って無限に落ちる  (床にコライダが設定されていない)
  20. 20. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  21. 21. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  22. 22. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  23. 23. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  24. 24. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・Cubeを作成して薄くして床に貼る  Scale y0.1に。Position y-15にしておく ・Boxコライダーに  マテリアルを設定する(バウンス) ・動かしてみる -> まだ早くて酔いそう
  25. 25. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  26. 26. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  27. 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. 28. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成
  29. 29. ・街を読み込む ・回転を止める ・カメラに重力を  作用させる ・床でバウンスさせる ・重力を月面にする ・その他 アセットを使って、 簡単なプログラムを作成 ・他のサンプルも試してみる (夕暮れ、夜) ・ビルのロゴを浜松支部のアイコンと差し替え(済) ・重力はスクリプトでも変更可能  Physics.gravity = new Vector3(0f, 0f, -9.81f);  範囲を決めて、ランダムに変更してみる。 ・加速度センサの値によってジャンプ開始と、  最初の加速度を変化させる ・カメラ位置の建物との衝突判定
  30. 30. ・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム
  31. 31. ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 作成したプログラムを 3DVR化する:Dive編 ・老舗VRヘッドセットメーカー  Drovis社が提供しているUnity用のSDK  https://www.durovis.com/  ・ライセンス文書  ・3Dカメラ・プレハブ  ・マウス操作スクリプト  ・加速度センサPlugin  ・ロゴ画面 ・Cardboardより早く提供されていたので  多くのアプリケーションで使用されている
  32. 32. 作成したプログラムを 3DVR化する:Dive編 ・https://www.durovis.com/sdk.html ・Dive_Plugin_2.1.unitypackageをダウンロード ・サンプルにアセットをロードする ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  33. 33. ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 作成したプログラムを 3DVR化する:Dive編
  34. 34. 作成したプログラムを 3DVR化する:Dive編 ・3Dカメラをロードする ・単眼カメラを無効にする ・カメラの位置を高く設定する Position y+15 ・先ほどのアセットで使った  リッジボディとスフィアコライダを設定する ・実行してみる ->  ・Mouse Lookスクリプトが   有効なのでカメラをマウスで操作できる  ・センサがないのでGYRO警告が出る ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  35. 35. ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 作成したプログラムを 3DVR化する:Dive編
  36. 36. ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 作成したプログラムを 3DVR化する:Dive編
  37. 37. ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 作成したプログラムを 3DVR化する:Dive編
  38. 38. ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 作成したプログラムを 3DVR化する:Dive編
  39. 39. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  40. 40. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  41. 41. 作成したプログラムを 3DVR化する:Dive編 ・Cubeの位置をy-15からy0に変更 ・重力の設定を月面相当に ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  42. 42. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  43. 43. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  44. 44. 作成したプログラムを 3DVR化する:Dive編 ・ライセンスで、ロゴ表示が義務付けられている ・デフォルトのロゴはSDKに含まれている  3Dカメラを設定すると3D Splashも可能 ・Unity Free版のロゴも出るので  ロゴが2つ出るのは、起動時に煩わしい ・Unityロゴがステレオ対応じゃないのが残念 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  45. 45. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  46. 46. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  47. 47. 作成したプログラムを 3DVR化する:Dive編 ・Android SDKのパスを設定 ・アプリケーション名の設定 ・ビルド後、実機に転送して実行 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  48. 48. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  49. 49. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  50. 50. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド 横固定も入れる →
  51. 51. 作成したプログラムを 3DVR化する:Dive編 ・Dive SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・その他の設定 ・Diveロゴを表示する ・apkのビルド
  52. 52. ・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム
  53. 53. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編 ・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. 54. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編 ・SDKのダウンロード  https://github.com/googlesamples/cardboard-unity/ blob/master/CardboardSDKForUnity.unitypackage? raw=true ・サンプルを開き、SDKを読み込む
  55. 55. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  56. 56. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編 ・機能はプレハブにまとめられているので、  メインカメラにプレハブを追加するだけ ・CardboardHeadプレハブをカメラにドラッグ ・専用のシェーダーが使われ、樽状に変形 ・Unity上の実行では樽変形されない
  57. 57. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  58. 58. 作成したプログラムを 3DVR化する: Cardboard編 ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド
  59. 59. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編 ・File->Build Settingsでターゲットを切り替える ・シーンの追加とテクスチャ圧縮の設定 ・画面を横方向に固定、アプリ名を入れる ・ビルドして、実機にて動作確認
  60. 60. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  61. 61. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  62. 62. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  63. 63. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  64. 64. ・Cardboard SDKとは ・SDKのダウンロード ・3Dカメラを設定 ・apkのビルド 作成したプログラムを 3DVR化する: Cardboard編
  65. 65. ・アセットを使って、簡単なプログラムを作成 ・作成したプログラムを3DVR化する:Dive編 ・作成したプログラムを3DVR化する:Cardboard編 ・カスタマイズ・タイム
  66. 66. ・取り組んできたサンプルのカスタマイズや、  お手持ちの自作アプリの3DVR化を行ってみてください。 ・ここからはフリータイムになりますので、お時間まで自由に  プログラムを行ってください。 カスタマイズ・タイム カスタマイズ・タイム

×