ストリートビューをUnityで扱ってみる
利用バージョン
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から画像はとれているのか?→とれてない
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を有効にすることで利用することができる
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だとどこで設定するの?
とりあえずこうした
https://gyazo.com/eb2761408d6f8a6d91b5adae64e7243e
実行するとバラバラだったので実行→調整→実行→調整を繰り返す
https://gyazo.com/a148d78990aa2b521fabc29b26445144
inspectorの座標は、親のオブジェクトの座標系になるようだ(親のオブジェクトがないからワールド座標系)
Gitで管理したくなる
⬜キャラクターモデルを走らせる
キャラクターモデルのロード
テクスチャの修正とかが必要そうだけど、今は知識0なので一旦スルー
光源の設定&Unity chanだけにあたるようにライトのマスクを設定
https://gyazo.com/8702a0c36ddeea20fe492fbbb6cec61b
元記事ではこのdirectional lightしか設定していないように見えるが、キューブの中があらくるならないのでキューブの中にもDirectional lightをおく
iTweenはGCAllocを使って重いので避けたほうが良いらしい
パフォーマンス比較(DoTweenのもの)
⬜キャラクターモデルをHMDで操作する
気づき
RenderSettingsのAmbient Lightは白にしておきます。
? どこ?
planeは3D
planeは10x10のサイズ
? どちらが裏側
透明になる方が裏側のはず(Cull)
GCPのリソース管理