ストリートビューをUnityで扱ってみる
from MacでUnity開発 1日目
Google mapsで小旅行するアプリではGoogle street viewを利用したい
UnityでGoogleストリートビューを使ったハコスコ対応アプリを作る - QiitaがGoogle Street Viewの映像を描写する参考になりそうなので試す
利用バージョン
Unity 2019.3.13f1
StreetViewImageLoader.csをつくる
Game Objectを選択してInspectorからAdd component > New script
実行すると警告が出る
https://gyazo.com/302a44cb76f8bdba619f8aff206aa1ef
自動変換してくれるようだ。
code:変換後.cs
private IEnumerator GetStreetViewImage(double latitude, double longitude, double heading, double pitch) {
// 略
GetComponent<Renderer>().material.mainTexture = www.texture;
}
実行
https://gyazo.com/51beda0fc2689c9c8d48f5c2b4167bb6
マリオか?
怪しいところは色々ある
GoogleのAPIから画像はとれているのか?→とれてない
http://maps.googleapis.com/maps/api/streetview?size=640x480&location=139.667431,35.697408&heading=0.0&pitch=0.0&fov=90&sensor=false にアクセス
The Google Maps Platform server rejected your request. You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account
APIキーを発行する必要がある
取得方法
key=YOUR_API_KEYを追加してアクセスする
? 料金は?
keyをつけて叩くもエラー
The Google Maps Platform server rejected your request. This API project is not authorized to use this API.
GCPのプロジェクト側でどのAPIを許可するのか設定する必要がある
https://maps.googleapis.com/maps/api/streetview?parametersはStreet View Image requestだ。これはStreet View Static APIを有効にすることで利用することができる
Street View Publish APIというものがあるがこれはStreet viewに360°の写真をアップロードするためのAPIで別物
Developer Guide  |  Street View Static API  |  Google Developers
Before you start developing with the Street View Static API, review the authentication requirements (you need an API key) and the API usage and billing information (you need to enable billing on your project).
TODO:アプリにする際にはアプリ上の制限とGCP上での上限をつけておくべき
とりあえず自宅IPからしか利用できないようにした
GCPで確認したが、制限していないキーだった
なぜ?
キーの有効とは別にAPIが有効かどうかの設定がある
https://gyazo.com/e8afe0f094ea9dedfcedd38624ff5c73
https://gyazo.com/3ae94c86c972ff2f38727fe9fc2043c9
これを有効にする
APIキーを付けて叩くようにコードを改変
https://gyazo.com/6cddf57f6fedefbaa53855ee6de80eab
Ambient color暗すぎ問題
directional lightがあたっていない一部の面を見ることができない
https://gyazo.com/292e733666e73a9a7b7e643d40b9cd8e
Ambient ilghtというのがシーン全体のライトらしい。2019.3だとどこで設定するの?
Unityのライトと環境光
とりあえずこうした
https://gyazo.com/eb2761408d6f8a6d91b5adae64e7243e
実行するとバラバラだったので実行→調整→実行→調整を繰り返す
https://gyazo.com/a148d78990aa2b521fabc29b26445144
inspectorの座標は、親のオブジェクトの座標系になるようだ(親のオブジェクトがないからワールド座標系)
Gitで管理したくなる
UnityプロジェクトをGitで管理する
⬜キャラクターモデルを走らせる
キャラクターモデルのロード
Masscatをimportしたら真っ黒になってしまった
テクスチャの修正とかが必要そうだけど、今は知識0なので一旦スルー
Unity-chanを利用した
光源の設定&Unity chanだけにあたるようにライトのマスクを設定
https://gyazo.com/8702a0c36ddeea20fe492fbbb6cec61b
元記事ではこのdirectional lightしか設定していないように見えるが、キューブの中があらくるならないのでキューブの中にもDirectional lightをおく
Tween系のライブラリのデファクトはいまはDoTweenらしい
iTweenはGCAllocを使って重いので避けたほうが良いらしい
DOTweenとは?Mecanim(Animator)との違い|アマガミナブログ
パフォーマンス比較(DoTweenのもの)
DOTween (HOTween v2)
⬜キャラクターモデルをHMDで操作する
気づき
RenderSettingsのAmbient Lightは白にしておきます。
? どこ?
planeは3D
planeは10x10のサイズ
? どちらが裏側
透明になる方が裏側のはず(Cull)
adrenak/unimap: Google Maps wrapper for Unity
GCPのリソース管理
https://console.cloud.google.com/cloud-resource-manager?folder=&organizationId=0