カテゴリー別アーカイブ: Unity

Map for AR

標準

「UnityによるARゲーム開発 」(O’Reillyの書籍 日本語訳バージョン)

ポケモンGOのような地図上ARゲームの作り方解説本。ただ、Google Maps APIを使っているため、2018以降のAPIキー対応用にはいろいろ変更しなくてはならない

また、クレジットカードなどによる、支払い請求情報を入力する必要がある
(いきなり課金されることはない。最初の1年間は34000円ぐらい(300$)使えるらしい)

これらは、Google Cloud Platform上で設定する 

https://console.cloud.google.com

プログラム(GoogleMapTile.cs)の修正

APIKEYをpublic string で入力できるようにする

public GPSLocationService gpsLocationService; //この行の後ろに↓
public string API_KEY; //★追加

queryString += “&sensor=” + (usingSensor ? “true” : “false”); //この行の後ろに↓
queryString += “&key=” + API_KEY; //★追加

//yield return req.Send(); ←req.Send()が古くて使われていないそうなので
yield return req.SendWebRequest(); //★追加(こちらに替える)

サービスの導入(CUDLRとGPS)

CUDLR(Console for Unity Debugging and Logging Remotely)
初期設定で、ポート55055を使う設定になっているので、Chromeなどで
http://<デバイスのIPアドレス&gt;:55055/

を見ると、デバイス上のオブジェクトの動きなどがわかる(最終製品からは削除すべき)

GPS
デバイスのほうで、GPS有効にする
Mapタイルにスクリプト設定

スタンダードアセットから

イーサン ThirdPersonのプレファブから これをPlayerという名前にする

カメラ FreeLookCameraRigをプレイヤーの子として設定 Playerを自動で追尾

crossplatform タッチパッドなどを追加してくれる ここではDualTouchControlsから不要なJumpやタッチパッドを削除

コンパスの利用

CharacterGPSCompassControllerスクリプトの作成
Start() 内で、 Input.compass.enabled=true;
Update() 内で、コンパスの磁北に180°足して反転させ、コンパス角度を足したものを
rotationとして取り出し、クォータニオン変換して、ゆっくりその角度まで変化するように設定

イーサンの最初からついていたコントローラを削除し、上記スクリプトを追加。
(このあたりは、メモになってます。詳細は、書籍参照)

Unity Editor上でも、モバイル上でも動いたー 嬉しい
フォーラムに投稿してみようと思う

 

オープンデータ

WRLD

https://mapdesigner.wrld3d.com/

今注目中。無料バージョンでどこまで出来るか検証中

Mapbox 

https://www.mapbox.com/unity/

どんぴしゃ。Maps for Unityというキャッチでサービスしている

 

先行参考記事

「2017年10月12日に更新 [Unity] WRLD Unity SDKで地図情報に基づいた建物を表示する」

https://qiita.com/lycoris102/items/f9edd8728c1f2966debb

広告

Live2DとUnityとVRと

標準

ダウンロードしたもの(2018/7/23現在)

Live2D Cubism 3.2 http://www.live2d.com/ja/products/cubism3#dl

Live2D Cubism3 SDK for Unity R8  (上記同じリンクより、Github経由で)

Cubism3 Viewer for Unity Cubism3 Viewer (for Unity)

Live2D Euclid (SDK込み、こちらは90日間お試しバージョン

※試用や開発の段階ではSDK利用に伴う料金は発生いたしません。ただし、お客様がLive2DのSDKを利用し作成したゲームやアプリなどをリリースする際は、Live2D Proprietary Software 使用許諾契約書に含まれる条項に基づき、SDKリリースライセンス契約 (正式名称:出版許諾契約)の締結と出版許諾ライセンス料金のお支払いが必要となります。
ただし、「一般ユーザー」直近売上高が 1,000 万円未満の個人・学生・サークル・その他の団体 を除く。(リリースライセンスページより)

Cubismは基本、一枚絵を立体的に見せるソフトであるが、他に、Euclidというのがあり、比較が下のとおり

(引用元 http://www.live2d.com/ja/products/euclid

CubismとEuclidの比較

仕様

特長 一枚絵を平面上で立体的に動かす 複数の原画を組み合わせて3D空間で表現する
最適な表現範囲 左右40°程度 上下左右すべての角度
書き出したファイルの用途 ムービー、ゲームなど 3Dゲーム、VRコンテンツなど(※)
必要なファイル 画像ファイル(.psd, .png) 画像ファイル(.psd, .png), 3Dモデルファイル (.fbx)
書き出せるファイル Cubism SDK用ファイル、画像ファイル Euclid SDK用ファイルのみ

※Euclid Editorで出力したデータは、Euclid SDKから利用する必要があります。
※Euclid Editorから映像を出力する機能はありません。
※また、 SDKを使った出版には出版許諾契約が必要になる場合があります。

 

Euclid SDK 動作環境

対応バージョン 対応出力プラットフォーム
Live2D Euclid SDK for Unity Unity 5.x (5.4以降) ・Windows7 SP1以上(Oculusを使用する場合はWindows8.1以上)

(対応予定)
・PS4 / PSVR
・Android
・iOS

Live2D Euclid SDK for UE4 開発作業中

Euclid Editor 動作環境

OS: Windows7 SP1 (64ビット版), Windows10 (64ビット版、デスクトップモードのみ)
CPU: Intel® CoreTM i7シリーズを推奨
RAM: 16GB以上を推奨
GPU: OpenGL4.3 以上
Screen: ディスプレイ 1,360 x 768 ピクセル以上、32ビットカラー以上

Euclidは、FBXと組み合わせてUnityで立体にアニメーション表示する総合開発環境っぽいところあり。

無料で使える、ということでひとまずはCubism3を使って、UnityでVR立体視まで持っていくことを考える。

1.マニュアル

http://docs.live2d.com/cubism-editor-manual/top/

Cubism2のものとCubism3のものがあるので、基本、Cubism3を見る。
テンプレートはCubism2のものも使えるそうである。

2.サンプルモデル

Cubism2用のものとCubism3用のものがあるが、上位互換のようであるからCubism3では両方開ける
また、PRO用は保存できないが構造勉強用に見ることができる(らしい)

Cubism2用モデルデータ http://sites.cybernoids.jp/cubism2/samples

Cubism3用モデルデータ http://docs.live2d.com/cubism-editor-manual/sample-model/

 

3.Unityで動かすチュートリアル

公式(Cubism2用)http://sites.cybernoids.jp/cubism2/lets-do-it/my-first-lapp

 

VRTKとOculus Goと(未解決)

標準

無料で使えるUnity Asset Storeに出ている、VRTKは基本Oculus でもOculus Rift対応のようですが、ツールは使えるのではないかと検索。

まず、こちらの「たこやき部屋」様のを参考に。

1.新規プロジェクトに、まずOculus Utilities for Unityインストール。

2.Oculus AvatarのUnity Packageをインストール。

3.VRTKインストール。

ここで、「Unity 2018.1.0b12: Can’t create empty Texture (not allowed, needs to be subclass) 」のようなエラーメッセージが出るので、該当の場所をコンソールダブルクリックで開き、

VRTK/Assets/VRTK/Scripts/Interactions/Highlighters/VRTK_MaterialColorSwapHighlighter.cs

スクリプトの146行あたり

renderer.material.SetTexture(“_MainTex”, new Texture());
となっているところを、

renderer.material.SetTexture(“_MainTex”, new Texture2D(0,0));

に変更する。

参考 https://github.com/thestonefox/VRTK/issues/1758

4.Unityに新規シーンをつくり、

Empty2つを親子関係にして、名前変更

VRTK>Oculus

などに

5.Oculusプレファブ2つを上記、Oculusオブジェクトの子供としてアタッチ

VRTK>Oculus >OVRCameraRigとLocalAvatar※

※「OvrAvatar」→「Content」→「Prefabs」→「LocalAvatar」

6.OVRCameraRigインスペクターで、OVRManagerスクリプトのTracking Origin Typeのところを、EyeLevelからFloor Levelに変更する

7.元のヒエラルキーにMain Cameraがあった場合は、削除

8.Projectの「VRTK」→「Scripts」→「Utilities」→「SDK」の「VRTK_SDKManager」を、Hierarchyの「VRTK」

9.同上、「VRTK_SDKSetup」を「Oculus」にドロップ。

10.Oculusにいれた、VRTK SDKSetupのインスペクターにある、SDK SelectionをOculusにする。

自動的に入力されないので、同じインスペクターにある、Auto Populateのチェックをはずし、4つのActual Objectsにひとつづつ、ドラッグドロップする

11.Hierarchyの「VRTK」インスペクターで、「VRTK_SDKManager」の「SDK_OCULUS_AVATAR」をチェック、これでアバターが使えるようになる。
また、「Auto Populate」のボタンを押すと、「AutoLoad」に「Oculus(VRTK_SDK_Setup)」が追加される。上部のpersist on Loadのチェックもいれる。

12.実行時にエラーが出た場合、SceneManager.LoadSceneのところで引っかかっている可能性あり。たぶん、SceneChanger.csのスクリプトで、上記コマンドの前に、VRTK_SDKManager.instance.UnloadSDKSetup(); を入れるとFixされる。

参考 https://github.com/thestonefox/VRTK/issues/1210

13.Errorが多いと思ったら、VRTKはアセットストアではなく、Githubから直接ダウンロードしたほうが、バグフィックスなどがされていてよさそう。

ここに来てのエラー

Assets/VRTK/Source/SDK/Oculus/SDK_OculusController.cs(692,32): error CS0122: `OvrAvatar.AssetsDoneLoading’ is inaccessible due to its protection level

Oculus Utilities v1.25.2
Oculus Platform v1.24
Oculus Avatar v1.24

だと解決するらしい

参考 https://github.com/thestonefox/VRTK/issues/1819

※途中→未解決

 

 

Mirage Solo 開発

標準

Oculus Goが、Oculus Utilities for Unityを最初にダウンロードするのに対し、Mirageの場合は、

Google VR SDK for Unity をダウンロードして使う。

https://github.com/googlevr/gvr-unity-sdk/releases

Unity Packageを使うのがよさそう (2018/7/9現在バージョン1.15)

こちらの方の記事も参考に
@JackMasaki さん2018年05月15日 Mirage Soloから始めるDaydream開発

 

Mirage Soloの開発者設定
Mirage SoloでDaydreamダッシュボードを開き、右上の設定->すべての設定->システム->端末情報からビルド番号を7回押す

Unity設定では、

BuildシステムをInternal にし、最小APIレベル7.0 VR追加ではRayDream選択

開発者モードが有効にした後、
設定->すべての設定->システム->開発者向けオプション内にある”USBデバッグ”を有効