FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム »
最近の記事

【VRMLiveViewer】補足説明  




※このページは「VRM Live Viewer のメインページ」から分離したページです。
主に「アップデート情報」には書かれてない、細かい修正や仕様変更などの情報を掲載しています。

それ以外の使用方法(ヘルプ)などはメインページの目次から探してみて下さい。
>> VRM Live Viewer メインページ目次




■補足説明

・v0.32βにおいて、曲リストの UI が PC版 と Android版で共通化されました。
[曲リストに追加][曲リストから削除][再生モード][遅延再生の時間設定]などは、「曲リスト(Music Select)」内に移動しました。



・v0.37βにおいて、右パネルにあったBVHモーションの回転([Y:180]),ループ設定( [Loop]),再生速度設定( [Speed])は「再生設定パネル(BVH Play Setting)」にまとめられました。



・v0.42βにおいて、[VRM 読込] ボタンが [ファイル読込] に統合されました。また [BVH 読込] ボタンも に変更されました。実際にはどのボタンからも種類に関係なく読み込むことができます(ただし、各ボタンによりデフォルトのフィルタ[=拡張子]や最後にアクセスしたフォルダなどの保存状態が違います。※PC, Android8.0以上のみ)。



・v0.52βにおいて、内部ライブラリである UniVRM を 0.46c へアップグレードしました。
 それに伴い、シェーダーやノーマルマップの更新・修正等の影響で、v0.51β以前とは見た目が大きく異なってしまう場合があります(v0.51β以前の内部ライブラリバージョンは UniVRM 0.42)。
 詳しくは「バージョンによる差異について」にて確認して下さい。



・v0.81βにおいて、「360度画像の回転(360deg Image Rotation)」に全天球のサイズ変更も加わり、「360度画像の設定(360deg Image Setting)」に名前が変更されました。



・v0.87βにおいて、環境光の影響を軽減するため、光源色を Unity のデフォルトに変更しました(以前は少し青みがかっていたが、白っぽくなった)。
 詳しくは「バージョンによる差異について」にて確認して下さい。



・v0.94βにおいて、「一度読み込んだファイルの記憶機能」は廃止されました。「シーンの読み込み/保存」でも現在読み込んでいるファイルや設定を記録できるので、そちらを使って下さい(読み込みのオプションでキャラクター/モーション/音楽等、別々にロードすることもできます)。



・v0.95βにおいて、「常にダウンロード」オプションは削除されました。内部 SDK のアップデートにより、オプション不要で自動的に最新版をダウンロードするようになりました。



・v1.0において、UI や一部表記が変更されました。
- プリセットモーション選択 UI としてドロップダウンを追加
- モーション種類の UI の並びを「BVH, CRS, T-Pose」→「BVH, T-Pose, Preset」に変更
- プリセット曲が複数になったことにより、ブレンドシェイプの「AIUEO/CRS」モードの表記を「Preset/Aiueo」に変更(Preset では音楽に合わせてリップシンクが自動変更されます)
- アイコンをいくつか変更(内容は変わってません)
  - Music Select パネルのファイル追加アイコンをフォルダアイコンに変更
  - Music Select パネルのゴミ箱アイコンの配置を右端に変更
  - VRM Folder Browser のファイル移動アイコンをチェックアイコンに変更
  - Music Select の Except Presets のチェックボックスをアイコンに変更
  ※ヘルプも同様
- 表記をいくつか変更(内容は変わってません)
  - Scene Load/Save パネルでの "アバター" → "キャラクター"
  - User Object Transform → 3D Object Transform
  ※ヘルプも同様

3DエンジンをUnity2019にアップグレード&システムアップデートしたことにより、スマホ対応がAndroid5.0(API21)以上に変更されました。
・Android版のみVRoidHubのキャッシュを10→5個に変更しました(スマホの場合、10個だと結構ストレージ容量を圧迫してしまうため)。

※v1.0以降とv0.99β以前とは内部データの実装が異なるため、併用して使った場合、v0.99β以前とv1.0以降で別々に保存されるものがあります(シーン、フォルダブラウザの履歴、個々のBVH, GLTF/GLB, 360度画像, 音楽の遅延再生設定など)。v1.0以降はv0.99β以前のデータを自動変換して扱います(既に変換したものがある場合はそちらを優先します。

※AmazonApp版はどちらかと言うと海外の人が入手しやすくするためでもあるので、0.99β以前から使っている場合はインストールしない方が良いでしょう(AmazonAppの仕様上、別アプリとしてインストールされます)。



v1.2 において、360度画像がプリセット背景にも適用できるようになりました。
 v1.1 以前で作ったシーンデータを v1.2 以降で読み込んでも変わりはありませんが、v1.2 以降で作ったシーンデータを v1.1 以前で読み込んだ場合、再現できないことがあります(v1.1 以前は 360度画像を読み込むとプリセット背景はクリアされます)。なるべく保存したバージョン以降のアプリで読み込んで下さい。



・v1.4 において、「ブレンドシェイプのバインド設定 (BlendShape Binding)」機能が追加されました。
 v1.3 以前で作ったシーンデータを v1.4 以降で読み込んだ場合は、現在の設定が使われます。逆に v1.4 以降で作ったデータを v1.3 以前で読み込んだ場合は無視されます(デフォルトの自動バインドと同じになります)。



・v1.5 において、「カメラ切り替え (Camera Switching)」機能が追加されました。
 v1.4 以前で作ったシーンデータを 1.5 以降で読み込んだ場合は、現在の設定が使われます。逆に v1.5 以降で作ったデータを v1.4 以前で読み込んだ場合は無視されます。
 また、v1.4 以前のブレンドシェイプのキー操作は [Ctrl]押下 または [CapsLock]オンにすることで利用できます。
 [CapsLock]はオンのとき、[Ctrl]を押している状態と同等になります。また[CapsLock]がオンで[Ctrl]を押した場合、[Ctrl]を押してない状態と同等になります(つまり[Ctrl]押下を反転します)。ただし、カメラ操作(Ctrl+矢印キーなど)には効きません。
※[CapsLock]はアプリからフォーカスが外れて変更されると、上手く認識できない場合があります。その場合は、再度[CapsLock]をオフ→オンなどしてみて下さい。



・v1.7 で以下のショートカットが削除されました。
[L] モデル(VRM/GLTF) 読込(ファイル選択)を開く
[N] 音楽 読み込み(ファイル選択)を開く

 また、以下のショートカットが変更されました。
[,] → [N] ブレンドシェイプのバインド設定を開く
[.](フルキー) → [L] カメラ切り替えを開く
[^] → [-](フルキー) FPSモニターを開く
[W] → [P] マイク感度の設定を開く
[P] → [W] 設定(Setting)パネルを開く



・v1.8 において、「Camera Setting」の「デフォルト動作 (PC)」設定:1st key, 2nd key, Joystick, R stick の保存をシステム用に変更し、最後の設定が保持されるようになりました(v1.7 では Speed を含めて1つのデータとなっているため、シーンにも保存されてましたが、あまりメリットがないため、分離しました)。従って v1.8 以降では v1.7 のシーンデータに保存されている設定は無視されます(Speed は従来通り適用されます)。



v1.10 において、VRoidHub パネルのタブ(分別)が「All」→「Pckup」に置き換わりました。
「Pckup」タブとは VRoidHub のピックアップから、アプリで利用できるモデルのリストになります。

 また、v1.10以降は2020/3/30 に施行された VRoidHub, VRoidSDK の利用規約・ガイドライン更新に合わせた作りになっています。アプリ内では他者のモデルを利用する場合は「利用条件に従って利用する」に同意(チェックボックスをオン)することで利用できるようになります。自分のモデルは利用条件は表示されず(デフォルト状態のとき)、「利用する」ボタンのみとなっています。
 言語対応も VRoidHubパネル内は日本語・英語のみとなりました(新ガイドラインに「VRoidHubと表示を合わせる」とあったため [=VRoidHubには中国語・韓国語はないため])。



・v1.11 で以下のショートカットが変更されました。
[P] → [,] (カンマ) マイク感度の設定を開く
[P] モデルプロパティを開く (※新規)



・v1.12 において、シーンLoad/Save パネルの並びのデフォルトが昇順[▲](古いもの順)から降順[▼](新しいもの順)に変更されました。
まだ一度も[▲][▼]ボタンを押したことがない場合、デフォルトで降順[▼]になりますが、昇順に戻したい場合は昇順[▲]ボタンを押せば、元の順になります(一度押せば設定として記憶されます)。

 また、「Settings/Tools」パネルにおいて、「パネル透明度」と「パネル位置リセット」が一番下に移動されました。スクロールすれば利用できます。



・v1.13 において、Model Property の「Spec-Version」が非表示になっています(ほとんどの場合 "0.0" であり、最新の VRoidStudio, VRoidHub 等でも記録されてない[=空も多く存在する]ようなので意味を持たないため)。ただし、UniVRM 1.x以降で有用性があるなら、復活するかもしれません(現在の UniVRM 0.x ではほとんど使われてない(?))。



・v1.15 において、ヘルプの「ダウンロード&リンク」→「素材について&リンク集」にタイトルが変更されました。

 シーンロードオプションの「背景ベース」→「ステージ」と表記変更しました(ヘルプも同様)。内容は変わってません(初期の頃、Plane, CRS Stage しかなかったため、そう呼んでいた)。

 また、「アクシア(Axia)」と「東北ずん子」のVRMのダウンロードリンクが削除されました。これらを入手したい場合はこちらからダウンロードして下さい(リンク切れになった場合はご了承下さい)。

 mp3 の再生は、実際には mp3 → wav に動的に変換して再生してます。そのため、変換に失敗した場合は利用できません(ツールなどで保存し直すと使えることがある)。また変換された wav は一時ファイルと作成されるため、初めの再生には時間がかかることがあります(一時ファイルはアプリ終了で削除されます)



・v1.17 において、360度と2D背景画像の切り替えが実装されたため、アイコンがに変更されています。設定パネル内では Mode 切り替えが追加されただけで、内容は変わってません。

 3Dオブジェクトの配置 (3D Object Transform)での Scale のプリセット値の x1000倍, x0.0001倍 が削除され、代わりに inch(インチ)→m(メートル) 単位変換係数(0.0254, 0.254)が追加されています(モデリングツールによってはインチで作られているものもあるため、これらの定数倍でちょうど良いサイズになることも多い)。スライダーでは一定値までしか設定できませんが、テキストボックスに直接入力すれば、x1000倍, x0.0001倍も利用できます。



・v1.18 において、全天球のデフォルト状態の回転を +3.5度しました(90度のとき、丁度両端のつなぎ目になるため。これまでは僅かにずれていた感があった)。
 また、今後のバージョンで -90度の位置を 0度に変更しようと考えています(2D←→360度の切り替えで不便なため。この場合は保存されたバージョンによって、自動変換するつもり)。

BVH 再生において、オリジナルライブラリの UniVRM で小数点第3位以下の精度落ちを見つけたので、独自に改良して小数点第7位まで[単精度実数最大]で計算するように変更しました(簡単に言うと、元:0.016 → 改良後:0.0166667 で計算。精度としては誤差 1/1000 から 1/10万 以下になったことになる)。
 従って、v1.17 までは 60fps の BVH の場合、Speedを「1.016倍」でおおよそ音楽に合う感じでしたが、v1.18 以降では「1.0」で合う感じになりました。しかしながら、BVH はフレームアニメーション(パラパラアニメみたいなもの)なので、再生時間が長くなると、最後の方は僅かな誤差が積り、遅れてしまう場合があることはご了承下さい(60fps は 0.0166666…[無理数] だが、コンピュータ内部処理では 0.0166667 のように、一定の値でしか計算できないため)。






(関連記事)
【VRMLiveViewer】VRM(VRoid)をライブステージで踊らせるアプリを作ってみた
【VRMLiveViewer】背景GLTFの設定リスト(使用例)
【VRMLiveViewer】【Unity】GLBで背景モデルを自作する


関連記事
スポンサーサイト



category: アプリ

thread: ソフトウェア開発

janre: コンピュータ

tag: VRMLiveViewer 
tb: 0   cm: --

【VRMLiveViewer】背景GLTFの設定リスト(使用例)  


 本来なら VRM Live Viewer やその他の VRM アプリでの 3D背景モデルの利用は、Unity でスケール等倍で作られることが多い GLB 形式を利用する方が簡単なのだが、なかなか一般的に配布される機会が少ないようなので、主に海外で配布されることの多い GLTF 形式の3Dモデルの設定のリストを代わりに載せておこう。

 これらは私が Twitter上のデモやスクショで実際に使用していた設定だ。ただし、キャラの身長やモーションの動き回る範囲などの関係で、その都度位置(Position)など再調整していることも多い。なので、その辺りは自由にやって欲しい。


(※) VRM Live Viewer 1.16 / Windows10(x64) で確認



■Sketchfab について

 Sketchfab とは海外の 3Dモデル共有プラットフォームである。配布形式は「Original format」で fbx や blend など色々な形式があるが、「Autoconverted format (gltf)」では GLTF に自動変換されたものがあるので、こちらをダウンロードすれば、VRM Live Viewer で直接読み込める。
※ただし、ものによっては上手く読み込めず、テクスチャが真っ白になったりするので、その場合は一旦諦めて下さい(Unity や Blender が扱えるなら、Original からシェーダ/マテリアルを再設定すれば、いけるかもですが…)



 Unity が扱えるなら、「Original format」の fbx などを落として、GLB に変換して扱う(スケールや回転を自分好みにしてしまう)方が簡単なこともあるが、ここではデモで使った設定ファイル(json)を掲載しておくので、3Dモデルを読み込んだ後に、適用して欲しい(解凍した .gltf と DLした .json をアプリにドラッグドロップするのが簡単)。

 キャラの身長などによって、位置などは各自で微調整した方が良いかもだが、調整した値は「シーン」として保存しておくと、いつでも再現できるので簡単だ。また設定自体は各素材ごとに記憶されているので(設定パネルの「FileName」ごとに保存)、2回目以降は最後の設定値から編集できるようになる(シーンをロードした場合は各シーンに保存されている値が反映される)。





■背景GLTFの設定リスト

※設定ファイルは右クリックで「名前を付けてリンク先を保存」し、背景モデルをロードした後に、ドラッグドロップなどして適用して下さい。
※初回ロードでは、設定を適用するまで、スケールが大き過ぎて見えないことがあります。
※キャラの身長や、使っているモーションなどによって、位置などは再調整した方が良い場合があります。
※リンク切れになってしまった場合は、ご了承下さい。
※リストは追加・変更・削除される場合があります。
※Android ではメモリが足りなくなる場合が多いので、注意して下さい。


●Portal (First experiment)


Model: Portal (First experiment)
Author: shindiego.ds
License: CC BY
設定ファイル: portal_first_experiment_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等


●Portal (Night version)


Model: Portal (Night version)
Author: shindiego.ds
License: CC BY
設定ファイル: portal_night_version_scene.json (右クリックで名前を付けてリンク先を保存)
※基本的には Portal (First experiment) と同じ
>> デモ・スクショ等


●Imitation classroom stage (Fun made)


Model: Imitation classroom stage
Author: NewDOF
License: CC BY
設定ファイル: imitation_classroom_stage_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等


●Tropical Island


Model: Tropical Island
Author: Elin
License: CC BY
設定ファイル: tropical_island_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等


●Beat Saber Menu (Fun made)


Model: Beat Saber Menu
Author: Elin
License: CC BY-SA
設定:「3Dオブジェクトの配置」で 180度回転のみ



●VR Alien Forest


Model: VR Alien Forest
Author: FDU_oficial
License: CC BY
設定ファイル: vr_alien_forest_with_download_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等
※かなり重いので、Android では落ちる可能性があります。


●Positano Cityscene


Model: Positano Cityscene
Author: Mathis Nowak
License: CC BY-NC
設定ファイル: positano_cityscene_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等
※かなり重いので、Android では落ちる可能性があります。


●3d Video Mapping Stage


Model: 3d Video Mapping Stage
Author: danartri
License: CC BY
設定ファイル: 3d_video_mapping_stage_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等


●Endless Floor VR


Model: Endless Floor VR
Author: CG Daniel Glebinski
License: CC BY
設定ファイル: endless_floor_vr_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等


●Japanese Room


Model: Japanese Room
Author: Hedgehog Boo
License: CC BY
設定ファイル: japanese_room_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等


●Fantasy Game Inn


Model: Fantasy Game Inn
Author: pepedrago
License: CC BY
設定ファイル: fantasy_game_inn_scene.json (右クリックで名前を付けてリンク先を保存)
>> デモ・スクショ等






(関連記事)
【Unity】VRM(VRoid)をライブステージで踊らせるアプリを作ってみた
【Unity】【VRMLiveViewer】GLBで背景モデルを自作する


関連記事

category: アプリ

thread: ソフトウェア開発

janre: コンピュータ

tag: VRMLiveViewer  背景3Dモデル  GLTF 
tb: 0   cm: --

【Unity】【C#】オーディオ再生でのエラー:An invalid seek position was passed to this function の対処法  

 ↓こんな感じのエラー

C:\buildslave\unity\build\Modules/Audio/Public/sound/SoundChannel.cpp(512) : Error executing channel->setPosition(position_pcm, FMOD_TIMEUNIT_PCM) (An invalid seek position was passed to this function. )

※行番号は Unityバージョンによって違うらしい

 なぜかググっても日本語記事が無かったので、備忘録として残しておく。

(※) Unity 2019.2.21f1 / Windows10(x64) で確認



 結論からと言うとこのエラーは「オーディオデータの長さより大きい再生位置へ移動(シーク)したためエラー」というものだ。

 特にシーク機能(早送り/巻き戻し)などを付けた場合、気をつけないと、AudioClip を変更したときに長さが足りず、再生でエラー出たりする。よくあるのが、AudioSource.Stop() を実行して、AudioClip (AudioSource.clip) を入れ替えて再生しようとすると、エラーが出てしまうものだ。これは AudioSource.Stop() ではシーク位置はリセットされないので、入れ替えた AudioClip の長さが、現在の再生位置より小さい場合、エラーが出てしまうからだ。

 なので、対処法はいくつかある。

●AudioClip の長さを調べてから再生する
if (audioSource.time < audioSource.clip.length)
{
audioSource.Play(); //この場合、途中から再生となる
}


●再生位置をリセットしてから Play する
audioSource.time = 0;  //先頭位置へ移動(シーク)
audioSource.Play(); //この場合、最初から再生となる

 など…。知っていればなんてことない事だが、AudioSource.Stop() では再生(シーク)位置がリセットされないため、不具合に気が付かないってことあるんだよね。エラーが出ても最初から再生されてしまうので、見た目上手く行ってるように感じてしまうしね。それでもエラーは出さない方がやっぱりシステム的にも安定すると思う。





(関連記事)
【Unity】【C#】Windows で mp3 をランタイムで再生する
【Unity】【C#】動的にオーディオファイルの読み込みと再生をする


関連記事

category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityトラブルシューティング  オーディオファイル 
tb: 0   cm: --


プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR