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