Virtual Reality Portal Network VRM Uploader

Document

Prefab Auth

VRPNのEmail/Password認証やファイルのダウンロード、アップロードをする際に使うPrefabです

このPrefabには(String)Email,(String)Password,(Input Field)EmailField, (Input Field)PasswordFieldが必要です

(String)email,passwordに格納されている値を使用し認証を開始しします

ScriptEmailAuth.cs

Functionvoid CreateAccountProcess()

(String)email,passwordを用いて新規ユーザーの登録を行います

Functionvoid SignInProcess()

(String)email,passwordを用いてサインイン処理を行います

Functionvoid CopyEmail()

実行時に(Input Field)EmailFieldに入っている文字列を(String)emailにコピーします

Functionvoid CopyPassword()

実行時に(Input Field)PasswordFieldに入っている文字列を(String)passwordにコピーします

Functionvoid SignOutProcess()

実行時に認証情報を削除して非認証状態にします

Functionvoid ShowUserInfo()

実行時にでコンソール上に認証したアカウントの情報を表示させます

Functionvoid LoadModelFromServer()

実行時に認証情報を使い、ユーザーが登録しているモデルのリスト取得、モデルデータのダウンロードを実行します.対象モデルがダウンロード中、またはダウンロード済みの場合はきゃんせるされます

Functionvoid UploadModelToFirebase()

実行時に"Application.data/upload"内にあるvrmファイルをサーバーにアップロードします


Prefab ModelStorage

VRPNのモデル登録呼び出しを行うPrefab

このPrefabには(Int)storeNumがあり、どれだけのモデルが格納されているかを見ることができます.またここからUIリストへの出力、他者モデルのモデル格納数も確認できます((Int)Player Store Num)

ScriptModelStorage.cs

Functionvoid StoreModels(string name, byte[] data, bool isMine)

(byte[])dataを(String)nameとヒモ付をします。この処理後、登録した名前を使ってモデルをシーンに呼び出すことができます。(bool)isMineがTrueでユーザー用ストレージ(Dictionary)storageに、falseで他者モデル用ストレージ(Dictionary)playerStorageに格納されます

FunctionGameObject LoadSceneModel(strig name,bool isMine)

(String)nameを使い、現在呼ばれているシーンに対象モデルのGameObjectを生成します。生成についてはUniVRMの"バイト列から非同期にVRMを開く"をしています.(bool)isMineがTrueで手持ちのモデルを、falseで他者モデルのロードを行います.

Functionvoid RemoveModel(string name,bool isMine)

実行時に(String)nameと紐付いているモデルのデータを削除します。これはDBから削除するものではなく、実行環境下で保持しているデータを削除する操作です。(bool)isMineがTrueで手持ちのモデルを、falseで他者モデルの削除を行いますもう一度使用したい場合は、再度ダウンロードを行ってください。

Functionvoid AddList()

ユーザーが保有しているかつ、すでにダウンロード済みのモデルをUIリストに登録するための関数です


Prefab AuthFirebaseDownloader

サーバ上にあるVRMモデルを回収するPrefab

ScriptAuthFirebaseLoader.cs

Functionasync void firebaseModelLoader(FirebaseUser users, string url, string path)

認証情報(FirebaseUser)usersとサーバのURL(String)urlを使用して(String)pathで書かれているファイルのダウンロードを行う。ダウンロード完了後はModelStorage.csのStoreModels関数で保存処理を行い自身はDestoryする。


Prefab Uploader

サーバにVRMをアップロードするPrefab

ScriptAuthFirebaseUploader.cs

Functionasync void firebaseModelUploader(FirebaseUser users)

認証情報(FirebaseUser)usersを使いサーバにAssets/uploadフォルダ内にあるVRMファイルをアップロードする。また同時にDBへの書き込みを行う


Prefab Node

ダウンロードしたモデルの一覧の要素Prefab、Container.csに情報を格納

ScriptContainer.cs

Functionvoid SetUUID(string id

対象のContainerに(String)idを保存します

Functionstring GetUUID()

対象のContainerが保有するuuidを返します

Functionvoid SetName(string name)

対象のContainerに(String)nameを保存します

Functionstring GetName()

対象のContainerが保有するnameを返します

Functionvoid ShowQRCode()

対象のContainerが保有するuuid,nameをもとにQRコードを発行し、RawImageに表示させます


Prefab OMLoader

OtherModelLoader、自分以外のユーザのモデルをダウンロードする際に使うPrefab

ScriptOtherModelLoader.cs

Functionasync void PlayerModelLoader(string url, string targetUUID, string path)

対象のVRPNサーバー(String)urlに格納されているユーザー(String)targetUUID保有のモデル(String)pathをダウンロードし(Script)ModelStorageにある(Dictionary)playerStorageに格納します.なお、同じファイルがダウンロード中、ダウンロード済みの場合はキャンセルされます


ScriptVRPQR.cs

2次元コードの生成、読み取りを司るスクリプトです

Functionstring Read(WebCamTexture webCamTexture)

Webカメラの(WebCamTexture)webCamTextureの映像から2次元コードを読み取り、その結果をString型で返します、読み取れない場合はNullを返します

FunctionTexture2D Create(string content, int width, int height)

指定された高さ(Int)heightと幅(Int)widthで2次元コードを生成します.なお高さ、幅に関しては2で割り切れる数でなければいけません

FunctionColor32[] Write(string data, int width, int height)

(string)dataを使い2次元コードの画像を生成します、なお高さ、幅に関しては2で割り切れる数でなければいけません


ScriptWebCamReader.cs

Webカメラから2次元コードの読み取りを行うスクリプトです

Functionvoid OnPlay()

Webカメラの画像更新を開始します

Functionvoid OnStop()

Webカメラの画像更新を停止します

Functionvoid Update()

読み取り可能な2次元コードを検知した際に読み取りと検証を行い、検証の結果、VRPNからの生成物であればそのDataをもとにモデルのダウンロードを開始します