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.

Unityを使ったVRアプリ作成入門 ABCD2015金沢編

1,953 views

Published on

11/22に開催されるハンズオンの資料です。
Android Bazaar & Conference Diverse 2015 Kanazawa - #ABCD2015K
http://connpass.com/event/21874/

Published in: Education
  • Be the first to comment

Unityを使ったVRアプリ作成入門 ABCD2015金沢編

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

×