fc2ブログ
 

アセット機能 その3 ピンクになるモデルの修正作業

他のゲーム用のアセットをアマレコVR用に移植した際 ピンクで表示されてしまう場面が多々あります。
前回使用したSample_Cube.prefabもピンクでした。今回はこれを修正する「アセットの修正作業」を紹介します。
また、これらの作業で必須の アマレコVRサーバーからアセットファイルを使う方法 も紹介します。

100sample_cube.png



1.ピンクになる主な原因
オブジェクトがピンクになる主な原因は次の3つでしょうか

・シェーダーが含まれていない
・シェーダーが含まれているけど 使えない(機種依存で使えない)
・マテリアルの問題


前回のSample_Cube.prefabではマテリアルそのものが含まれていない為 ピンクで表示されてしまいます。
ですので修正作業は以下のようになります。

【修正作業】
(1) マテリアルを作成する
(2) マテリアルのシェーダーと色を設定する
(3) キューブのゲームオブジェクトへマテリアルを設定する
(4) キューブのプレハブへ変更を適用する
(5) アセットをビルド

※ ピンクになる原因の多くがマテリアルに問題はなくシェーダーによるものですので(1)と(3)は不要です。ピンクになるマテリアルでスタンダードシェーダーを指定することでとりあえず表示できるようになります。




2.修正作業
(1) マテリアルを作成する
前回作成したasset_projectsを開いて、画面下部のAssetsフォルダ内で右クリックのメニューから「Create」→「Material」と選択し、新しいマテリアルを作成します。

200creatre_mat.png


(2) マテリアルのシェーダーと色を設定する
作成したマテリアルのインスペクターでシェーダーを選択し、色を好みで設定します。
シェーダーはとりあえず「Standard」としてください。
新しく作成したマテリアルは最初からStandardとなっていると思いますのでそのままで結構です。色だけ好みで設定してください。

210mat_color.png


(3) キューブのゲームオブジェクトへマテリアルを設定する
ヒエラルキーで「Test_Cube」を選択し、右側のインスペクターのメッシュレンダラーのElementへ(1)で作成したマテリアルをドロップします。

220select_mat.png


これでシーンビューの色が変わります。

230scene_view.png


(4) キューブのプレハブへ変更を適用する
つづいて現在のゲームオブジェクトの状態をプレハブへ適用します。
ヒエラルキーで「Test_Cube」を選択し、インスペクターのPrefabの「Overrides」から「Apply All」を選択します。

300apply.png


これでAssetsフォルダにあるTest_Cube.prefabへマテリアルの修正が適用されます。
※ 今回は異常が解決したからか サムネイル画像が更新されましたが、赤いマテリアルから青いマテリアルに変更するなどでは
サムネイル画像は更新されません。

310ok.png


(5) アセットをビルド
Unityのツールバーの「Window」から「AssetBundle Browser」を表示します。
Test_Cube.prefabを登録しますが、既に登録済の場合はBuildタブでBuildボタンを押すだけで新しいアセットファイルが作成されます。

ビルドの仕方はこちらを見てください。




3.アセットのテストについて
通常はアセットファイルをQuestの内臓ストレージへ転送して使いますが、修正作業などテストのたびに転送するのは面倒ですので 暫定的ですが、AmaRecVR Serverから利用できるようになっています。
また、この方法であればアマレコVRを起動したまま アセットファイルの更新ができます。


(1) AmaRecVR Serverの設定
AmaRecVR Serverの設定で画像ファイルの拡張子に「assetbundle」を追加します。

500server.png


(2) アセットファイルをコピー
サーバーがアクセスできるフォルダ(動画や画像が保存されているフォルダ)へ アセットファイルをコピーします。
このとき、他のファイルと混ざらないよう アセット専用のフォルダを作って管理するのが望ましいです。
また、ビルドした拡張子なしのアセットファイルをサーバーのフォルダへ拡張子を付けてコピーするバッチファイルを作成すると便利です。

【バッチファイルの例】
510copy_bat.png


(3) アマレコVRでアセットを使う
アマレコVRのファイル画面で(2)のフォルダを表示してアセットファイルを再生します。
再生するとアセットメニューが表示されますので 使うスロットを選択するとアセットファイルが読み込まれます。

520asset_load.png



4.AmaRecVR Serverでアセットを使う場合の注意事項
■サムネイルの作成がエラーになる
サムネイルの作成ができないので エラー用の黒いサムネイルになります。

■ファイルサイズが大きいと数十秒読み込むのに待たされる
10MB程度のアセットファイルを読み込むのに1秒程度、それに加え圧縮されている場合はさらに解凍処理に1秒程度かかります。
100MBを超えると10秒以上待たされます。
読込が終わるまで (ファイル画面を閉じるなど)他の操作をしないでください。

■アマレコVRが管理するファイルIDが作成される
アマレコVRサーバーでは動画ファイルや画像ファイルを特定するために ファイルIDを作成して管理しています。
アセットファイルでもファイルIDが作成されますが、同じファイル名でもファイルサイズが異なると別のファイルとして認識される為、何度もアセットファイルをビルドすると その都度IDとサムネイル画像が作成されてしまいます。
基本的に問題はないですが、明らかに無駄なIDですので、必要に応じてdata\AmaRecVRServer.txtをメモ帳で開いて アセットファイルに関するレコードを削除してください。






アセット機能 その2 基本的なアマレコVR用アセットの作成

今回はUnity Editorを使ってアマレコVR用の簡単なアセットファイルを作成し 実際に使うところまで説明します。

Unityのインストールについてはこちらを見てください。
使用するUinityのバージョン 2021.1.1f1



1.新規プロジェクトの作成
Unity Hubの左側で「プロジェクト」を選択して 右上の「新しいプロジェクト」をクリックします。

200create_projects.png


プロジェクトの作成画面が表示されますので、最初にUnity Editorのバージョンから「2021.1.1f1」を選択します。

202create_editor.png


左側で「全てのテンプレート」を選択
中央で「3D」を選択
右側のプロジェクト名は任意ですが ここでは「asset_projects」としました
プロジェクトファイルの保存先を設定して「プロジェクトを作成」をクリックしたら完了です。

205create_template.png


数分待つと 照明とカメラだけが配置されたUnity Editorが起動します。

210Unity.png






2.プロジェクトの設定
ツールバーの「Edit」から「Project Settings」を選択して設定画面を表示します。
設定画面の左側で「Player」を選択し 右側のPlayer設定画面でAndroidのタブを選択します。
※ このタブでWindows等を選択していると いくら設定してもアンドロイドの設定ができていないため うまくいきません。確実にアンドロイドを選択してください。

220project_settings.png


■設定箇所
(1) Color Space
「Gamma」から「Linear」へ変更します。
Gammaでも使えますが 明るいとか白っぽい(安っぽい)印象になってしまいます。

222project_settings.png


Color Space以外は初期値でとりあえず機能すると思いますが 一応全体を記載します。また、アマレコVR本体の設定例も記載します。

229project_settings_all.png




3.Asset Bundle Browserのインストール
つづいて、アセットファイルを作成するのに必要なAsset Bundle Browserをプロジェクトへインストールします。
Unityのマニュアルに従ってインストールしますが、私のところでは「5.Add (追加) をクリックします」のところで 「https://github.com/Unity-Technologies/AssetBundles-Browser.git」がエラーとなるため 以下のように手動でインストールしました。

(1) ダウンロードサイトへアクセス
Microsoft Edge等でダウンロードサイトを表示します。


(2) ダウンロード
緑の「Code」から「Download.zip」をクリックしてインストールに必要なファイルをダウンロードします。

230asset_bundles_broeser_download.png


(3) 解凍
ダウンロードした「AssetBundles-Browser-master.zip」を解凍します。


(4) インストール
Unityのツールバーの「Window」から「Package Manager」を選択し Package Managerの左上にある「+」から「Add package form disk」を選択します。

232asset_bundles_broeser_add_package.png


先ほど解凍したフォルダにある「package.json」を選択します。

234asset_bundles_broeser_package_json.png



以上で Asset Bundle Browserがインストールされ Unityのツールバーの「Window」へ「AssetBundle Browser」が追加されます。
Asset Bundle Browserは新しいプロジェクトを作成する度にインストールする必要がありますので、解凍したファイルは分かりやすい場所に残しておくことをお勧めします。

240asset_bundles_broeser.png





4.アセットファイルの作成
【アセットファイル作成の手順】
(1) アセット化したいファイルをダウンロード(Unity用のシーン、プレハブ、FBX等の3Dモデルなど)
(2) Assetsフォルダへコピー(圧縮されている場合は 解凍したものをコピー)
(3) Unityで (2)をヒエラルキーへドロップしてゲームオブジェクトにする
(4) ゲームオブジェクトをAssetsフォルダへドロップしてプレハブ化する
(5) プレハブ化したものを Asset Bundle Browserへ登録
(6) アセットファイルを Build
(7) 拡張子「assetbundle」をつけて QuestのDownload¥assetフォルダへ転送
(8) アマレコVRで確認


(1) アセット化したいファイルをダウンロード
アセットファイルにしたい3Dモデルなどをダウンロードします。
ここでは私が公開したasset_sample_cube20230505.zipを例に説明します。
ダウンロードページ

私が公開するもの以外でもUnity用のシーンファイルやプレハブファイル、一般的な3DモデルファイルのFBXなどをアセットファイルにすることができます。
さらにUnityの機能を拡張すれば 様々な形式の3DモデルをUnityへ読み込んで アセット化することができます。


(2) Assetsフォルダへコピー
「asset_sample_cube20230505.zip」を解凍してできるプレハブファイル 「Sample_Cube.prefab」をasset_projects\Assetsフォルダへコピーします。

250prefab_copy.png


(3) Unityで ゲームオブジェクトにする
Unityを起動して画面下部にあるAssetsから(2)でコピーした 「Sample_Cube.prefab」を選択して ヒエラルキーへドロップします。
既にUnityが起動していてコピーしたプレハブが表示されない場合は Assetsフォルダを指定し右クリックのメニューから「Refresh」することでコピーしたファイルが現れます。

251drop_hierarchy.png


ヒエラルキーへドロップすると自動的にゲームオブジェクトが作成されます。
ゲームオブジェクトの名前がプレハブと同じままだと わかり難いので「Sample_Cube」から 「Test_Cube」に変更します。

252rename.png


作成されたゲームオブジェクトはシーンビューなどで確認できます。
ここで照明を加えたり、全体の向きを調整したりできます。
なにより今回のようにピンクになっている場合は シェーダーに異常があるので修正すべきですが、今回はこのまま次の手順へ進みます。

※ 修正方法はアセット機能 その3 ピンクになるモデルの修正作業を参照してください。

(4) ゲームオブジェクトをAssetsフォルダへドロップしてプレハブ化する
作成したゲームオブジェクトを 画面下部のAssetsフォルダへドロップすると新しいプレハブ「Test_Cube.prefab」が作成されます。

253drop_assets.png


この時 オリジナルのプレハブを作るのか 変更箇所を管理したプレハブを作るか問われます。
今回はオリジナルのプレハブを選択します。

254prefab_original.png


(5) プレハブ化したものを Asset Bundle Browserへ登録
Unityのツールバーの「Window」から「AssetBundle Browser」を表示します。
AssetBundle Browserの「Configure」を選択した状態で Assetsフォルダから「Test_Cube.prefab」をドラッグし AssetBundle Browserのウインドウ上でドロップします。

256dop_browser.png


(6) アセットファイルを Build
AssetBundle Browserの「Build」を選択し、Build Targetを「Android」とします。
最後に下部にあるBuildボタンを押したら アセットファイルが作成されます。

258asset_bundles_broeser_build.png


(7) 拡張子「assetbundle」をつけて QuestのDownload¥assetフォルダへ転送
アセットファイルはプロジェクトのasset_projects\AssetBundles\Androidフォルダに作成されます。
プレハブと同じ名前で拡張子の無いファイル「test_cube」がアセットファイルです。

260asset_file.png


test_cubeへ拡張子をつけて「test_cube.assetbundle」とします。
続いて QuestとPCをUSBケーブルで接続し Quest内のDownloadフォルダへ「asset」フォルダを作成します。

270asset_folder1.png



「test_cube.assetbundle」を「asset」フォルダへ転送します。

272asset_file.png



(8) アマレコVRで確認
QuestでアマレコVRを起動し、アセット画面を表示します。

280console_asset.png


アセット画面からtest_cubeを選択して ピンクの立方体が表示されれば成功です。
表示される位置がHMDの下方1メートルの辺りなので、下の方を向くか、位置Zを調整して下さい。

284load_asset.png 286success.png


【テスト方法】
なんどもアセットの修正、 ビルド、 アマレコVRで確認を繰り返す場合は アマレコVRサーバーからアセットファイルを使う方法 をお勧めします。





5.トラブルシューティング

■「対応していないか 既に読み込んでいる」と表示される
アセットファイルを読み込むとき「対応していないか 既に読み込んでいる」と表示されて読み込めない場合は
アセットファイルを作成しているUnityのバージョンが合っていない可能性が高いです。
2021.1.1f1で作成してください。
また、Android用のアセットでない場合や、同じIDのリソースが既に読み込まれている場合にこのメッセージが表示されます。


■色がおかしい(明るい)
Project Settingsの「Player」のColor Spaceが合っていない。
・「Linear」にする

■照明が反映されない
Project Settingsの「Player」のGraphics APIが合っていない。
・「Auto Graphics API」をOFFにする
・「Graphics APIs」リストを「OpenGLES3」だけにする(Vulkanを削除する)
・「Require ES3.2」をONにする


■normal mapが適用されない(テクスチャの表面がまっ平)
Project Settingsの「Player」のGraphics APIが合っていない。
・「Auto Graphics API」をOFFにする
・「Graphics APIs」リストを「OpenGLES3」だけにする(Vulkanを削除する)
・「Require ES3.2」をONにする


■立体視がおかしい(左右の表示位置がおかしい、片目で見れば正常に見える)
XR Pluginを使う場合は「Stereo Rendering Mode」を「Multi Pass」にしてください。

Oculusの場合を例にすると Project Settingsの「XR Plug-in Management」の「Oculus」にある「Stereo Rendering Mode」が「Multi Pass」になっていないと
アマレコVRのレンダリング位置と アセットのレンダリング位置が合わず 立体視に支障がでます。

■ピンクになる
非対応のシェーダーが使われていると アマレコVR内でピンクになります。
スタンダードシェーダーにすることでとりあえず表示できます。
Sample_Cubeはマテリアルを指定していないためピンクになります。新しいマテリアルを作成しゲームオブジェクトへ割り当てることで改善されます。

■非常に重い(カクカク動く) アマレコVRが落ちる
ポリゴン数が多すぎたり、テクスチャで大量のメモリを消費するとまともに動作しません。
Meta Questはコンピュータ的には非常に低スペックです。
PC向けのアセットをそのままQuestで使おうとするとまともに動かない場合があります。
ポリゴン数を減らしたり テクスチャのサイズを縮小してメモリを節約するなどの調整が必要です。











アセット機能 その1 Unityのセットアップ

アマレコVR用のアセットファイルの制作を中心にUnityやアセットについて連載します。
第一回はUnityのセットアップを解説します。

【連載予定】
・Unityのセットアップ
・アセットファイルの作り方
・映画館の作り方
・キャラクターとアニメーション (mixamo編)
・ステートマシーン
・物理処理
・他のゲーム用のアセットを移植する



1.はじめに

(1) Unityについて
Unity Technologies が開発したゲームエンジンです。

ここで単にUnityと言ったら Unity Editorと呼ばれる主に2D、3DおよびVRのアプリケーション開発に使われる開発環境を指します。
アマレコVRもUnityで開発されており、アプリケーションだけでなく この連載の中心となるアセットファイルもUnityで作成することができます。


(2) アセットについて
ここでは ゲームなどで使う画像や3Dデータ、キャラクター、音声、およびプログラムなどを まとめたものを指します。
主に、開発用のものと 完成したアプリケーションに後から追加するUnity Asset Bundleの2つがあります。
この連載では後者のUnity Asset Bundleが中心となり、アマレコVRへ利用者自身で用意したアセットを追加することができます。



2.Unity Hubのインストール
Unityには様々なバージョンが存在します。必要に応じて新しいバージョンを使ったり、意図的に古いバージョンを使うこともあります。そこで、複数のUnityのバージョンをインストールし管理するのがUnity Hubとなります。

100unity_hub.png


(1) Unity Hubのダウンロード
Unityのダウンロードページ からWindows用のUnity Hubのインストーラー「UnityHubSetup.exe」をダウンロードしてください。

104unity_hub_download.png


(2) Unity Hubのインストール
ダウンロードしたUnityHubSetup.exeを実行してUnity Hubをインストールしてください。


【アカウントとライセンス】
インストールの途中でUnityアカウントとライセンスの選択を求められます。
Unityのアカウントを持っていない場合はアカウントを取得してくしてください。
ライセンスの選択では私はパーソナルライセンスを選択しました。内容をよく見て該当するライセンスを選択してください。



インストールが終わり Unity Hubが起動したら歯車のアイコンのpreferencesから日本語にすることができます。

110unity_hub_preferences_2023051003104705c.png 120unity_hub_preferences_jpanese_20230510031045ba5.png



3.Unity Editorのインストール
Unity Hubの準備ができたら 本題のUnity Editorをインストールします。
インストールするバージョンは アマレコVRの制作に使ったのと同じ2021.1.1f1です。

(1) Unity 2021.1.1f1のインストール
Unity Hubの左側から「インストール」を選択、続いて 右上の「エディターをインストール」をクリックするとインストールするUnityのバージョンが表示されます。
しかし 推奨バージョンに「2021.1.1f1」は無いので、「アーカイブ」タグを選択し 「ダウンロード アーカイブ」をクリックします。

130install_editor.png 134install_archives.png


(2) ダウンロード アーカイブから Unity 2021.1.1f1 を選択
「ダウンロード アーカイブ」をクリックすると UnityのWebサイトが開くので「Unity 2021.x」タブを選択します。
※ UnityのWebサイトが表示されない場合は https://unity.com/releases/editor/archive へアクセスしてください。

140web2021.png


「Unity 2021.x」タブを選択すると 2021年版が大量に表示されますので
Unity 2021.1.1 March 22,2021の項目にある「Unity Hub」をクリックします。
(沢山ありますが 下から2番目です 上から探していくと Ver2021.1.11と間違いやすいです)

142web2021_1_1.png


「Unity Hub」をクリックすると 確認メッセージが表示されますので「開く」をクリックします。

144web_kakuninn.png


(3) インストールするモジュール選択
Unity Hubに戻ると Webサイトで選択したバージョンのインストールの準備が始まります。
モジュールを加える画面が表示されますので「Android Build Support」をONにして「次へ」をクリックします。
※ アマレコVRはAndroid用のアプリとして作られていますので アセットファイルもAndroid用にするために このモジュールが必要となります。

150install_android.png


(4) インストール開始
Microsoft Visual StudioとAndroidの契約画面が表示されますので内容を確認し同意するとインストールが始まります。
インストールには結構な時間がかかりますので待ちましょう(20分から30分くらい?)。

Unity Editorのインストールは以上となります。



【あとからAndroid Buildモジュールを追加する】
既にインストールされているUnity EditorにAndroid Buildモジュールが含まれていない場合でも Unity Hubを使ってあとから 追加することができます。

Unity Hubの左側の「インストール」を選択すると 既にインストールされているUnity Editorの一覧が表示されますので、目的のバージョンの歯車から「モジュールを加える」を選択します。

160add_module.png


モジュールを加える画面が表示されますのでAndroid Build SupportをONにして「次へ」をクリックします。
これで、Android用のアセットやアプリを開発するのに必要なモジュールを追加することができます。

162add_android.png



アマレコVR Ver2.4.0 アッセット機能 アルファ版

Unity AssetBundle(以下 アセット)に対応した実験版です。
Unityで作成した様々なアセットをアマレコVRの世界へ持ち込むことができます。

なお、現状アマレコVR(AndroidのVRアプリ)に対応したアセットはほぼ出回っていないと思われますので 利用者自身でUnity Editorを使って作成する必要があります。ですので、実質 Unityを扱える人が対象の機能となります。

cinema_halls.png
動作確認用のアセット 「サンプルシアター」



1.更新内容
【主な更新内容】
・アセット機能追加
・ミラー機能追加 (リンク機能の後継機能)
・サブ画面をメイン画面の後ろに配置するオプション追加
・ハンドジェスチャーのトラッキング範囲を拡大
手のひらをHMDへ向けた状態(システム操作状態)でもトラッキングするようになった

console_20230506023145eed.png


2.アセット機能の概要
2.1.アセットの例
・3Dで作成された映画館などの3Dオブジェクト
・アバター(人体モデルおよびアニメーション機能)
・音声データ
・ステートマシーン(プログラム制御)
・そのほか コライダー、物理シミュレーション、照明など豊富なUnityの基本機能


2.2.ステートマシーン
Unityのステートマシーンによりゲームオブジェクトやコライダーの衝突判定、音声データを制御できるため かなり広範なことがアマレコVRの機能に依存せずに実現できます。
この「アマレコVRの機能に依存しない」というのが CGやアバターを表示するだけにとどまらない アセット機能の特徴となっています。


state_machine.png
Unityのステートマシーンの例 (コライダーが衝突したら ○○する)



2.3.Unity Editor
アセット機能により様々なことが可能となりますが、アマレコVRは動画を視聴することを目的としたアプリですのでクリエイティブな作業には向いていません。

例えば アマレコVRで映画館のアセットを読み込んで、さらにキャラクターのアセットを読み込んで、座席に移動して、座らせて・・・なども可能ですが、(最初は色々試す意味で大いにやってほしいですが)最終的にはUnity Editor上で映画館の座席にキャラを配置して個別にアニメーションを設定した 「完成したコンテンツ」を用意してご利用ください。
ですので Unity Editorの活用が必須となります。



3.アセット機能の使い方
(1) アマレコVRを起動する前に QuestのDownloadフォルダへassetフォルダを作成する
USBケーブルでPCとQuestを繋ぐか、Quest上のファイラーで操作してください
asset_folder1.png


(2) 一緒に公開しているアセットファイル asset_sample_theater.zip をダウンロードして解凍する


(3) 解凍してできる sample_theater.assetbundle を(1)のassetフォルダへ転送する
asset_folder2.png


(4) アマレコVRを起動して コンソール画面の下部からアセット画面を表示
頻繁にアセット機能を使う場合はボタン設定でアセット画面を割り当てると便利です
console_asset.png function_asset.png


(5) スロット1のファイル名欄をクリックして sample_theaterを選択する
sample_theaterが出てこない場合は (1)-(3)をよく確認してください。
読み込みが終わると 座席等が表示されます。
asset_load.png


(6) アセット画面を閉じてサブプレイヤーで動画を再生すると アセット内のスクリーンへ映像が表示されます
なお、メインプレイヤーはアセットの手前、3rdプレイヤーはアセットの後ろ に表示されるようになっています。
アセットと組み合わせて表示できるのはサブプレイヤーのみとなっています。
sub_player.png


(7) 元に戻したい場合(アセット機能を終了したい場合)は アセット画面のスロットのアセットメニュー▽から 「Remove Asset」



4.アセット画面
asset_setting.png


■位置
各項目を左右にドラックすることで アセットワールド内の視点の移動や向きの調整ができます。
また、ボタン設定で各ボタンへ割り当てることもできます。
現状チルトはうまく機能しません。おかしいなと思ったら「向き リセット」してください。
(表示 位置や向きがおかしい、移動物が動かない ズレるなど)
function_asset_pos.png

■照明
環境光と平行光源のOn/Offができます。

■スロット
各スロットへ アセットファイルをロードして アセットワールドへ追加します。最大4つのアセットを組み合わせて使うことができます。

■ファイル名
アセットファイルを選択します。
アセットファイルは QuestのDownloadフォルダへassetフォルダを作成し、そのassetフォルダへ転送してください。
asset_folder1.png asset_folder2.png


■アセットメニュー▽
アセットファイルに含まれるプレハブを選択したり、読み込んだアセットをアセットワールドから削除できます。
また、向きとチルトをリセットできます。
アセットに視点情報が含まれる場合は視点を選択することができます。

■リロード
アセット(プレハブ)を初期状態に戻します。重力により奈落の底に落ちてしまったり コリジョンにより爆発した場合などに位置や状態を回復します。

■アニメーション
アセット内の人型のゲームオブジェクトへアニメーションを適用します。
現状、複数の人が含まれる場合 全員に同じアニメーションが適用されます。
assetフォルダ内にanimatorフォルダを作成し、アニメーション用のアセットファイルを転送して使います。

■照明
アセットに照明が含まれる場合に On/Offします。

■体、顔
アセット内の人型のゲームオブジェクトの体や顔をHMDの方へ向けます。
現状、複数の人が含まれる場合 全員に適用されます。

■位置、向き、チルト
アセット毎にローカル位置を調整します。
現状チルトはうまく機能しません。
アセットメニュー▽で向きとチルトをリセットできます。

■視点
スロット1のアセットに視点情報が含まれる場合に その位置へアセットワールドを移動します。
sample_theaterでは 前の方の席、後ろの方の席、横の席の3か所が選べます。
スロット1以外や 視点が4以上の場合はアセットメニュー▽で選択できます。

■頭コライダー
HMDの当たり判定を有効にします。キャラクターの内部へ侵入したり すり抜けを防止するのに使います。

■プリセットメニュー
現在のアセット構成をAmaRecVR Serverへ保存したり 読み込むことができます。
現状 暫定機能です。とりあえず使っているアセットファイルやプレハブと位置情報を保存するようになっています。
Questの機種を変更した場合に、アセットファイルに差異があると 機能しない可能性があります。




5.その他
5.1.光源とパフォーマンスについて
sample_theaterには点光源が含まれます。
点光源はパフォーマンスの低下(fpsの低下)を招くので、アセット側の光源はOffにして環境光と平行光源だけで使うことをお勧めします。

■Quest1の場合
sample_theaterで点光源を使うと60fpsを下回る場合があります。環境光と平行光源だけで使ってください。

■Quest2の場合
sample_theaterの点光源と環境光、平行光源の3つ全てをOnにすると60fpsを下回る場合があります。点光源か平行光源のどちらか1つで使ってください。
環境光はパフォーマンスに影響しないと思われます。

サブプレイヤーはもともと60fpsでの動画再生ができません。60fpsできっちり再生できるのはメインプレイヤーでAmaRec Playerを使った場合だけです。



6.アセットファイルについて
【主な適合条件】
・比較的新しいUnityで作成されたもの(2021.1.1f1 推奨)
・android用に作成されたもの(Windows用は不可)
・Graphics APIs OpenGLES3.2
・VR用に作成されたもの(Stereo Rendering Mode が Multi Pass)
・プレハブのみ対応?(シーンは不可?)


6.1.アセットファイルの作成方法(要点のみ)
ここではUnityを使ったことがある人を対象に要点だけ示します。

Unityのバージョンは2021.1.1f1を使っています。これより新しければ大抵大丈夫だと思いますが、上手くいかない場合は2021.1.1f1を用意してください。
また、ここではUnityのasset bundles browserを使います。インストールされていない場合は Unity Editorを起動してパッケージマネージャからインストールしてください。

新規で3Dプロジェクトを作成しアセット化したいプレハブをassetsフォルダ配下に用意した後
Project SettingsのPlayerとXR Plug-in ManagementのAndroidタブを以下のように設定します。

project_setting.png




ツールバーのWindowからAssetBundl browserを表示して
Configureタブで アセット化したいプレハブを登録した後
Buildタブを以下のように設定し Buildします。

asset_bundles_browser.png

AssetBundles\Androidフォルダへ拡張子なしのファイルが作成されます。
拡張子 assetbundleを付けて 完成です。





7.ダウンロード
アマレコVR Ver2.4.0 アルファ版 for Quest
アマレコVRサーバー Ver2.21


【アセットファイル】
アセット asset_sample_theater20230505.zip
動作確認用の映画館

アセット asset_sample_cube20230505.zip
立方体1つだけの最小構成のアセットファイル
アセットファイルの作成が上手くできない場合に参考にしてください






アマレコVR gQuest Ver1.13 ベータ版公開 3DoFモード対応

■更新内容
(1) Oculus Questの3DoFモード(トラッキングの無効化)へ対応しました
(2) GOリモコンやQuestコントローラーでもスクリーンの回転操作ができるようになりました
(3) 魚眼スクリーンの形状を修正(ポリゴン分割数の増加)しました。
(4) メイン・サブ切り替え時にチャンネルも切り替えるようになりました
(5) サブ画面の位置を動かした際に回転を自動修正するように(カメラの方を向くように)になりました
(6) ファイル画面のスクロールバーの挙動がおかしくなるのを修正しました

■主な内容
3dof.png

先日のOculus Questのアップデートで追加された3DoFモードにする(Oculus Quest設定のデバイスから「トラッキング」を無効にする)ことでポジショントラッキングの為の画像処理やガーディアンの処理を行わなくなるためバッテリーの持ちが良くなるのではないかと思われます。
アマレコVR gQuestではこれらの処理は不要ですので3DoFモードで利用することをお勧めします。

3DoFモードの利点
・バッテリーの持ちが良くなる気がする(検証はしていません)
・部屋が暗くても使える
・動画視聴中にガーディアンに邪魔されない


GOのリモコンやQuestのコントローラーでスクリーンを回転できるようになりました。
GOの場合はパッドの上を押しながら、Questの場合はグリップボタンを押しながら上下左右へ回転します。
回転操作中にトリガーを押すと今向いている方向を正面(視点リセット)にします。

サーバーアプリはVer1.10に同梱していたものと同じですので、すでにVer1.10を使っている場合は今回公開するサーバーアプリは不要です。


■ダウンロード
アマレコVR gQuest Ver1.13

アマレコVR サーバー Ver1.00
(gQuest Ver1.10に同梱されているのと同じ)


アマレコVR gQuest その6 Ver1.10 ベータ版

1.更新内容
■アマレコVR gQuest アプリケーション
(1) Oculus Quest / Go / Gear VR Build 7.0へ対応
(2) 動画再生負荷の軽減(GOの発熱軽減)
(3) YUV・RGB変換のリミテッド、フルレンジの設定を追加
(4) ファイル画面にバッテリーの温度を追加
(5) デバイス設定にアンチエリアシングを追加
(6) マウスで操作する場合に プレイ画面のシーク動作の開始位置がずれるのを修正

■アマレコVR サーバーアプリ
(1) 更新なし


2.ダウンロード
AmaRecVR gQuest Ver1.10


YUV・RGB変換
console_yuv.png
「Lmt」リミテッドレンジ、「Full」フルレンジ、通常はリミテッドレンジを使います。
白飛びするような場合はフルレンジに切り替えてください。



アマレコVR gQuest その5 使い方(サブ画面再生)

アマレコVR gQuestのサブ画面再生機能を紹介します。

1.サブ画面再生とは
背景となるVR動画とは別に手前に2D(3Dも可)のスクリーンを用意して2つの動画を同時に視聴する機能です。
アマレコVRでは手前に表示する2Dスクリーンをサブ画面と呼び、VR空間内の自由な位置へ配置することができます。

2.使い方
ファイル画面の右にあるメニューで「サブ画面」を選択してから再生すれば手前の小さいスクリーンで動画が再生されます。
また、「メイン画面」を選択すれば背景となる大きなスクリーンで動画が再生されます。
file_submain.png

シーク操作も「メイン画面」、「サブ画面」で選択しているほうの動画を操作することになります。
「メイン画面」、「サブ画面」の選択はコンソール画面でもできます。
console_submain.png

サブ画面を終了するには、ファイル画面のメニューから「サブ停止」をクリックします。
file_substop.png

3.調整方法
コンソール画面の下側にサブ画面のコンソールがあります。
console_sub.png

「位置」、「回転」、「ズーム」は左ドラッグ(横方向)で調整します。
「クリア」は初期位置へ戻します。
「Save」は現在の位置を保存します。
「Load」は最後に保存した位置を復元します。

音量調整はメインとサブで別々にあります。コンソール画面の上にあるボリュームでメイン画面のボリューム、コンソール画面の下にあるボリュームでサブ画面のボリュームを調整してください。

3D映像をサブ画面で視聴する場合は「SBS」または「OU」を選択します。

音量、アスペクト比、2Dレイアウト、リピート再生の設定はメイン画面とば別に、サブ画面専用のコンソールが用意されています。


4.調整のコツ
サブ画面の調整で最も重要なのが「位置 Z」の調整です。
これはサブ画面を自分に近づけるか、遠ざけるかを調整するもので、自分の顔の前に指を置いて、近づけたり、遠ざけたりするのと同じ作用があります。
指を顔に近づけると寄り目で見ることになり、とてもきついのと同様に、サブ画面も位置Zを近づけすぎるときつくなりますので、なるべく遠くに配置して「ズーム」で大きくするのが基本となります。

ただし、VR動画と一緒に視聴する場合はVR動画の「視差」というものが影響してきます。
先ほどの指で例えると、二本の指を同時に見る場合に相当します。
顔から二本の指が同じ距離にあれば無理なく二本の指を同時に見ることができますが、片方が近く、もう一方が遠いと、うまく見ることができないのと同様に、VR動画と、サブ画面の位置関係も視差が合うように調整しないと同時に見ることができません。
VR動画の視差については、おそらく撮影の時点で決まってしまい、視聴時に調整することができないと思われますので、サブ画面の座標Zで調整することになります。
VR動画の中には非常に近い位置を撮影していて視差がきつい場合がありますので、その場合はサブ画面も極端に座標Zを近づける必要があります。
また、サブ画面を近づけると非常に大きく見えますので、「ズーム」で縮小してください。

サブ画面を初めて使う場合に二重に見えたりするのは視差が合っていないのが原因(視差闘争)ですので、座標ZでVR動画の視差と合うようにサブ画面の位置を調整してみてください。


5.ヒント
VR動画ではなく、2D(または3D)の動画を視聴する場合はファイル画面のメニューから「メイン停止」ボタンを押してメイン画面を非表示にした状態で、サブ画面で再生すると、スクリーンの位置や大きさを調整できますのでお勧めです。(メイン画面は位置や大きさの調整ができません)

サブ画面が表示されない(音だけ聞こえる)場合は、サブ画面が非常に遠くに配置されていて、メイン画面のスクリーンの外に出てしまっている可能性があります。
「クリア」ボタンを押してみてください。

「VR動画内にテレビがあって、そこにサブ画面をはめ込みたい」という場合も、「座標Z」が重要です。
奥行きが合っていない状態で、ズームで大きさを合わせ、XとYで位置を合わせたとしても、右目と左目の両方で位置を合わせることができません。
まず、コンソール画面の下にある「Stereo」を押して、立体視の状態にしてから座標Zを調整し、右目でも左目でもズレない位置へもっていってからX,Yとズームを微調整するのがコツです。
また、VR動画の正面にあるものへは合わせることができますが、90度真横にあるものへは右目と左目を同時に合わせることができません。正面以外はある程度の妥協が必要です。


アマレコVR gQuest その4 Ver1.00 ベータ版公開

アマレコVR gQuestのベータ版を公開しました。
下記よりダウンロードしてください。

title240.png

1.主な内容
(1) Oculus GO、Oculus Quest両対応
(2) 2D、3D、180度、360度、円形魚眼、サイドバイサイド、OUなど大抵のVR動画形式に対応
(3) Oculus GOリモコン、Oculus Touch、および、PC マウスによる操作が可能
(4) 専用のサーバーアプリを使ってPC内に保存されている動画を再生可能
(5) お気に入りリスト
(6) マーカー機能
(7) サブ画面再生機能
(8) プレイリスト機能
(9) スクリーン回転機能 (天井方向を正面にするなど)

2.ダウンロード
AmaRecVR gQuest Ver1.00

3.主なファイル
・AmaRecVRgQuest.apk
アマレコVR gQuest アプリケーション本体 (Oculus GO,Quest共通)

・AmaRecVRServer.exe
アマレコVR サーバーアプリ (Windows10 64bit版)

4.インストール
インストーラーはありません。
Oculus GO,Questへは同梱のinstall.batを参考にadbコマンドで導入します。
わからない方は「oculus go apk インストール」で検索してください。
サーバーアプリはAmaRecVRServer.exeを実行してください。

5.アンインストール
アンインストーラーはありません。
解凍したファイルやコピーしたファイルを手動で削除して下さい。
レジストリは使っていません。
Oculus GO,Questは同梱のuninstall.batを参考にadbコマンドで削除してください。


6.注意事項
・アマレコVR gQuestの実行はOculus GO、Questの[ライブラリ]の[提供元不明のアプリ]からできます。

・アプリケーションのインストール、アンインストールのために別途adbコマンドやドライバの導入が必要です。
わからない方は「oculus go apk インストール」で検索してください。

・初回起動時Oculus GO、Questで内部ストレージへのアクセスを許可する必要があります。
「許可しない」になってしまった場合は、一度アンインストールしてから、再度インストールしてください。

・ネットワーク機能を使うにはWindowsのファイヤーウォールの設定等が必要です。
通常は初回起動時に許可するかどうか尋ねられるので、そこで許可してください。

・ファイル画面の「アプリ終了」からアマレコVRを終了しないとお気に入りリスト等の変更を保存できない場合があります。
ホームボタンを押してプラットフォームからアプリを終了する場合はご注意ください。

・ファイル画面左下のアクセスランプ(緑)が点灯している状態では動画の再生開始などができません。
ランプが消灯するのを待ってください。

・サーバーアプリの設定を反映させるには「適用」をする必要があります。
設定画面の変更もメイン画面へ戻ってから「適用」してください。
ポート番号の変更を反映させるにはサーバーアプリを再起動させる必要があります。


7.未実装
・YUV・RGB変換の設定 (リミテッド、フルレンジ等)
・ファイル検索機能
・ファイル移動の移動先メモリ機能
・ファイル名編集機能
・ファイル捜索機能
・ファイルソート 昇順降順、日付順など
・エクスプローラーモード(フォルダ移動)
・複数のネットワークアダプタへ対応
・リストの取得処理が非常に重いので改善したい
・リストのスクロールが非常に重いので改善したい
・アクセスランプが点灯していてもファイルの再生を開始できるようにしたい
・使用するポートの数を減らしたい

8.既知の不具合
・メイン画面が真っ黒になって映像が表示されなくなる場合があります (音は再生されているけど映像が表示されない、サブ画面は問題なし)。
アマレコVR gQuestを再起動しないと回復しません。




アマレコVR gQuest その3 使い方(各画面)

アマレコVR gQuestの各画面を紹介します。

1.アマレコVR gQuest ファイル画面
file_20190719221824ec3.png

アマレコVR gQuesrのメインとなる画面です。
動画ファイルを選択して再生します。その他、お気に入りリストの並べ替え、ファイルを別のフォルダへ移動、ファイル名の編集(未実装)、ファイルを検索(未実装)することができます。
また、アプリケーションを終了することができます。

画面上方でチャンネルを選択します。
画面左で主に各チャンネルに登録されているフォルダを選択します。
中央で再生するビデオファイルを選択します。
画面右側にサブメニュー(選択したファイルへの操作)があります。

■動画の再生方法
リスト項目をダブルクリックするか、リストの左にある三角ボタンを押して再生します。
また、右にあるメニューから「メイン画面」または「サブ画面」を一度選択してから、もう一度押しても再生することができます。


2.アマレコVR gQuest コンソール画面
console_2019071922182297a.png

視聴中の動画に対する操作、および設定を行います。
主に、シーク操作とマーカーの設定、および180度や魚眼スクリーンなどのVR Formatを設定します。
その他、ボリューム設定、ABリピート設定、アスペクト比、YUVリミテッドレンジ(未実装)、サブ画面の調整、画面の明るさ調整ができます。


3.アマレコVR gQuest 設定画面
config_20190719221822794.png

デバイス設定とネットワーク設定です。
ディスプレイ周波数の設定が反映されるかどうかは機種により異なります。

TiledMultiResLevelは画面外側の画質を落として負荷を軽減します。Offは画質を落としません。レベルが上がるに従い広範囲で強く画質を落として負荷を軽減します。

eyeTextureResolutionScaleは数値を大きくすると高精細に画面を描画します。

ネットワーク設定を反映させるにはアマレコVR gQuestを再起動する必要があります。
デバイス設定は「OK」ボタンを押した時点で反映されます。


4.アマレコVR サーバーアプリ メイン画面
server_main.png

チャンネル設定とアマレコVR gQuestとの通信履歴を表示します。

「ビデオフォルダ」はOculus GO、Questの内部ストレージのMoviesフォルダ内の動画を視聴します。
「PCフォルダ」はPC上のフォルダを単独で指定し、視聴します。
「プレイリスト」はPC上の複数のフォルダをプレイリストへ登録して視聴します。
「検索リスト」は検索結果を表示するのに使います。(未実装)
「お気に入りリスト」はお気に入りに登録されているファイルを視聴するのに使います。


5.アマレコVR サーバーアプリ 設定画面
server_config.png



何事もなければ、7月20日(土)にブログで公開予定です


アマレコVR gQuest その2 使い方1

今回はアマレコVR gQuestの簡単な使い方を紹介します。

アマレコVR gQuestにはOculus GOおよびOculus Questで動作するアマレコVR アプリケーションと
Windows10で動作するサーバーアプリの2つのプログラムが含まれます。
また、アプリ単体で動作する「スタンドアローンモード」とサーバーアプリと連携する「ネットワークモード」があります。

1.動作モード
■スタンドアローンモード
・アマレコVR アプリ単体で動作します。
・GO、QuestのMoviesフォルダにある動画のみ視聴できます。
・マーカーの設定はできますが、保存されません。
・お気に入りリストは使えません。
・ほぼ動作確認のためのモードです。

■ネットワークモード
・サーバーアプリと通信しながら動作します。
・マーカーやお気に入りリストなどはサーバー側で管理、保存します。
・PC上の動画とGO、QuestのMoviesフォルダ内の動画を視聴することができます。


初期状態ではスタンドアローンモードで起動します。
ネットワークモードにするには次の手順になります。

2.ネットワーク設定
(1) サーバーアプリを起動、表示されるサーバーアドレスを確認
server_addr.png

(2) サーバーアプリのチャンネル設定で「PCフォルダ」を選択して、隣で視聴したい動画のあるフォルダを指定
server_folder.png

以上でサーバーアプリの設定は終了です。

(3) Qculus GOまたはQuestのアマレコVRを起動

(4) ファイル画面の設定ボタンを押して設定画面を表示
file_config.png

(5) 「ネットワーク機能を使う」をOn、「サーバーアドレス」へ(1)で確認したIPアドレスを入力
config_network.png

(6) アマレコVRを再起動
再起動後ファイル画面の左下に「Connected」と表示されたら成功です。
file_connected.png

サーバーアドレスが一致しなかったり、サーバーアプリが起動していない場合は数分待たされてエラー表示が出ます。


3.基本操作
アマレコVRはPCマウスで操作するのが基本となりますので、サーバーアプリの設定画面で「PCマウスを使う」をOnにしてください。
server_config_usemouse.png


なお、PCマウスを使う場合はアマレコVR起動中PCの方のマウス操作が一切できなくなります。
アマレコVR上からアマレコVRを終了するか、マウスの右と左ボタンを10秒間押し続けてアマレコVRを終了してください。
また、キーボードのCtrl+Shift+Altを押しながら'D'キーでもマウスの操作がPCへ戻ります。

PCマウス操作
操作主な働き
左ボタン選択、決定、コンソール画面表示、ダブルクリックでファイル画面表示
右ボタンキャンセル、画面非表示
ホイール指定秒送り、リストスクロール
右+ホイール次のファイルを再生
右押しながら
左クリック
向いている方向を正面にする
左ドラッグシーク、ドラッグ中に右クリックでシーク操作をキャンセルできます。
右ドラッグスクリーン回転、ドラッグ中に左クリックで向いている方向を正面にします。
右と左を
10秒間押す
アマレコVRを終了します。



GO、Quest VRコントローラー操作
操作主な働き
トリガー選択、決定、コンソール画面表示
Bボタン今、向いている方向を正面にする(視点リセット)
GOではパッドの下クリック
Aボタンコンソール画面表示、ファイル画面表示、画面非表示
GOでは戻るボタン
トリガーを
引きながら
左右
シーク、ドラッグ中にBボタンでシーク操作をキャンセルできます。
スティック左右指定秒送り
GOではパッドの左右をクリック
スティック上下リストスクロール
GOではパッドをスワイプ
グリップボタングリップボタンを押しながらコントローラーの上下左右でスクリーンを回転します。グリップを押しながらトリガーで今、向いている方向を正面にします(視点リセット)。
GOではパッドの上を押しながら上下左右。

※ アマレコVR Ver1.13以降で利用可能
トリガーとBボタンを
10秒間押す
アマレコVRを終了します。


※ 現在VRコントローラーによるスクリーン回転はできません(後日対応予定)。
※ 「次のファイルを再生」はコンソール画面から行ってください。
※ ファイル画面でファイルを再生するにはトリガーを二度引くことで再生できますがとても操作しにくいので、
リストの左にある三角ボタンを押すか、右にあるメニューから「メイン画面」または「サブ画面」を一度選択してから、もう一度押して再生してください。
file_play.png


PCマウスからVRコントローラーへ操作を切り替える場合は、GOではトリガー、QuestではBボタンを押します。
VRコントローラーからPCマウスへ切り替える場合はマウスを左クリックします。




 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
04 | 2023/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ アマレコVR AMVコーデック Oculus Quest アマレココ アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト プラグイン G2 AMV4 oculus Unity SC512 ライブ機能 パススルー機能 デスクトップキャプチャ AVX2 Passthrough FAQ リモートソフト 質問コーナー ニコニコ動画 HDキャプチャ DirectShow 120Hz 背景透過 遅延 可変再生速度 レゴ 解説動画 Meta 組み換え VR LEGO XL2420T GV-USB2 2 アセット機能 液晶モニター 倍速液晶 デインターレース PS4 ベンチマーク アマステ AMV2MT Asset Intensity Pico4 MetaQuest Pro VRonVR MonsterX3A designs VideoKeeper2 AVX Alternate XCAPTURE-1 SD-USB2CAP4 GV-USB インストール RDT233WX-Z 32ZP2 31006 ffmpeg WindowsMR Rift 画像処理 31024 T2 60fps RGBキャプチャ UtVideo Shadow Play RYZEN 電源オプション HDCP Haswell HDMI 音遅延 QSV MonsterXU3.0R LameACM MP3 31021 フィギュア 音ズレ 録画 ゲームスムーズモード HT OBS MPC ハイパースレッディングテクノロジー NVEnc 液晶テレビ DirectShowFilter プレビュー 擬似NTSCキャプチャ SD-USB2CUP4 Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント IntensityPro DC-HD1 額縁遅延 REGZA ZP3 32ZP32 オーバーレイ リプレイ機能 モノステ 倍速駆動 倍速補完処理 キャプチャカード Robust Video Matting API APIパススルー機能 60Hz 検証 passthrough python pytorch ハンドジェスチャー パカラーススルー機能 AssetBundle 2.0 Tracking ファイルマネージャプラス SkyBox Hand AMPlayer 新プレイヤー機能 GPU使用率 LAVFilters Preferred 可逆圧縮 GV-USB3 Kabelake SSE SKnet Filter Tweaker Windows 90Hz 新アマレコVR MR VRコントローラー SteamVR VR動画 フレーム間圧縮 XCapture-1 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面