FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム »2018年08月
2018年08月の記事一覧

【VRMLiveViewer】VRM(VRoid)をライブステージで踊らせるアプリを作ってみた  


 VRM には Unity で動的にモデルをインポートできる「UniVRM」というオープンソースが公開されているので、そのサンプルビューワと「ユニティちゃんライブステージ!」「ミライ小町」プロジェクト(オープンソース)を組み合わせて、VRMVRoid)を動的に読み込んでダンスさせるアプリを作ってみた。一応、音楽も BVH/VMDモーションファイルも動的に読み込めるので、やろうと思えば自由な曲でダンスもできるかも知れない。

 アプリは当初、プラグイン利用の実験も兼ねて、Android で作っていたのだが、よく考えたら VRMVRoid)自体の利用が PC 中心(主に VRChat や バーチャルキャスト)であろうと考えて、急遽 PC でも見れるように Windows版 もビルドしてみた(Mac は持ってないので、iPhone版も作れない。スマン(笑))。

 VRM は「VRoid Hub」や「ニコニ立体」「BOOTH」などでダウンロードしたり、「VRoid Studio」「VRoid Mobile」「セシル変身アプリ」などで自分で作ったモデルでも、踊らせてみるだけなら十分可能なので、色々試して遊んで貰えると嬉しい(※スクショや動画などご自由にどうぞ。また、ハッシュタグ「#VRMLiveViewer」はどなたか付けてくれたので、私も便乗させて貰ってます。感謝!)。


プリセットにミライ小町の「ミライ」が加わりました!
VMDモーションにも対応したよ!
色々なVRMを踊らせて楽しんで下さい!

(「#ミライ小町 #miraikomachi」のタグを付けると良いかも?)
(※β版からそのまま移行可能です)

VRM Live Viewer ver.1.18
× VRoid Hub    




◆アップデート(修正) 情報◆
1.18動画素材を360度・2D固定背景に利用できる機能を追加
音楽・モーションの再生情報(時間・フレーム)モニターを追加(巻き戻し・早送り・モーション同期のUIも追加)
モーション設定パネルにも再生中のフレームを表示するように変更
音楽の遅延再生設定パネルにもモーション同期ボタンを追加
ツールパッド系(小さいパネル)の表示状態を起動時に復元するように変更
BVHの再生速度の精度を向上(データパースでの精度落ちを見つけたので修正)
1.17.1・(PC)CamaraSettingが起動時に反映されてなかった不具合をFix
1.172D画像を背景(固定背景)にする機能を追加
3Dオブジェクトの配置パネル内:Scaleプリセット値の一部を inch(インチ)→m(メートル) 単位変換係数(0.0254, 0.254)に変更
1.16・1フレームのVMD(ポーズ)にも対応
VMDの再生設定(ループ/速度/回転/位置)パネルを追加
1.15VMDモーションの再生に対応 (※ただし、現時点では試験実装[Experimental])
(PC)mp3の再生に対応 (Android は元から再生可)
1.14・VRoidHubモデルの Model Property にも「ファイルサイズ」情報を追加
・床に「クリスタル円」「クリスタル(平)面」を追加
1.13VRoidHubの詳細パネル作者ごとのアートワークの一覧を追加(最新9件)
・VRoidHubの詳細パネルにも「Model Property」情報を追加
・Model Propertyパネルにローカルファイルのみ「ファイルサイズ」項目を追加
・Model Propertyパネルに「ノード数」(Node/GameObject)項目を追加
1.12・シーンLoadパネルにて、ダブルクリックで読み込み確認(オプション選択)を開けるように変更
・(PC)シーンLoadパネルにて、選択中シーンをマウスの進むボタンで読み込み確認(オプション選択)を開けるように、確認ダイアログにて進むボタンでロードできるように変更(進むボタン×2回で簡単にロードできる)
・その他パネル内の入力で Enterキー確定や Tabキー移動、プリセット値ボタンの追加などUIの操作性向上
・VRMFolderBrowserでフォルダアイコンから既存のパスを開いた時、パス表示が更新されなくなっていた不具合をFix
1.11モデルの詳細プロパティの表示機能(Model Property)を追加
・MakeAvatarモデルもブレンドシェイプの自動バインドに対応(基本的にJoy→Fun,Sorrow→Sorrowとなる)[※Experimental]
・TGAの読み込み(フルカラー,無圧縮のみ)に対応[360度,スカイドーム※Experimental]
・テンキーの機能反転キー(Ctrlキー)が効かなくなっていた不具合をFix
1.10内部ライブラリを更新(UniVRM0.55, VRoidSDK0.0.21)。GLTFでもアニメーションが使えるように。
・VRoidHubのタブを「All」→「Pickup」に変更
pixivサービスの利用規約・ガイドライン更新に合わせて、他者のモデルと自分のモデルの利用条件/UIの表示方法を変更
1.9色付きの空(Skybox)を3つ追加
・オートセーブを、シーンロード時には現在の状態を1度だけ保存するように変更(←素材を入れ替えるとオートセーブが働くため、シーンロード中はあまり意味のない連続保存が多かった)
1.8「桜の花びら」エフェクトを追加
「ファンタジー夜」の空(Skybox)を追加
・ミニパッドと設定パネルの表示順(重ね順)をクリックで前面に移動するように変更
1.7・(PC)カメラの第1キーと第2キーの動作を「Camera Setting」で別々に設定できるように変更
・(PC)カメラのジョイスティックの動作設定を追加&右スティックに対応
・(PC)ショートカットキーの一覧をヘルプの基本操作に追加
1.6・VRoidHubで「403 Forbidden」が出たとき、最新情報をダウンロードするように変更
・VRoidHubのAllタブでキャラが重複表示されていた不具合をFix
・VRM Folder Browserで「Cecil」のデフォルトタイトルのときはファイル名を表示するように変更(既にキャッシュされているものは一度ロードすれば更新されます)
FPSモニターを追加 (設定ボタン>下へスクロール>FPSモニター)
1.5カメラの位置と回転を保存/移動できる「Camera Switching」機能を追加
・(PC)右ドラッグを視点移動に変更(中ボタンドラッグもそのまま視点移動可)
パネルのロック状態を保持するように変更(ロックしたまま閉じた場合、ロックしたまま開ける)
1.4.1・特定のOS言語環境下において、BVHロードに失敗する不具合をFix
・日本語以外のOS言語環境下において、ヘルプがデフォルトで日本語になってしまう不具合をFix
1.4ブレンドシェイプのバインド(割り当て)を一時的に変更、または無効化することができる「BlendShape Binding」機能を追加
1.3・各ブレンドシェイプの値(Weight)に0が設定されている場合、除外するように変更
・特定のブレンドシェイプ設定間に競合があった場合、優先度の低い方を無効化するように変更(優先順位:Blink>Joy>Sorrow)
1.2プリセットステージに「Crystal Stage」を追加
360度画像をプリセットステージにも適用できるように変更
・環境光に反射光が入るように変更(GLB/GLTFなどが明るくなる:Unity2018以前のライティング設定を最新にアップデート)
・VRoidHubのリストでグループ追加時(選択状態)のとき「See more」ボタンを無効化するように変更(誤押下防止)
1.1・VRoidHubのセシル変身モデルでデフォルトのメタ情報の場合、VRoidHubの情報を優先するように変更
・VRoidHubパネルでハートを外すと一定条件下で次のリスト(「See more」)がリクエストされたままになる問題を一部Fix(アプリとブラウザで同時に操作すると、サーバとの不整合が起こるのはある意味仕様なので、なるべくリロードして情報を同期して下さい)
1.0・3DエンジンをUnity2019にアップグレード&システムアップデートしたことにより、スマホ対応がAndroid5.0(API21)以上に変更されました
プリセット曲に「Mirai(ミライ小町)」を追加
・プリセットモーション選択でリップシンクと音楽が自動変更されるオプション(リンクアイコン)を追加
・プリセット曲のブレンドシェイプの自動バインドを「セシル変身アプリ」にも対応させました(今まではVRoidのみ)
・プリセットステージに「Mirai Stage」を追加
・「雪の結晶」と「雨」エフェクトを追加(エフェクトパネルの配置も多少変更されてます)
・スカイボックス(空)に「不気味空」を追加
・GLTF で Fade モードを使っている素材が透過されてない問題をFix
・GLTF で Emission を使っている素材が表示されてなかった問題をFix
・Android版のみVRoidHubのキャッシュを10→5個に変更(10個だと結構ストレージ容量を喰うため)
・PC版もESCキー2回押しで終了するように変更
→ バグ報告は Twitter などでお気軽にどうぞ!(超助かります👍)

その他、細かい変更点などは「補足説明」「バージョンによる差異について」にあります。


表情(ブレンドシェイプ)の対応などは
「プリセットモーションと表情(VRMのブレンドシェイプ)の対応について」
を参照して下さい。






(Google Drive を利用)


Android 5.0以上 (※6.0以上推奨)
※「提供元不明アプリのインストール」許可が必要です。



>>アクシアVRM(縞パンver.)は、Google Drive からもDLできます。


 簡単な操作説明やヘルプはアプリにも入れてあるが(ボタンを押すと出る)、既知の不具合なども一緒に、マニュアル代わりにここにも載せておこう。今後のオープンソースプロジェクトのバージョンアップやバグフィックスなどによっても修正は入るとは思うが、現在までの状態を確認するのにも良いかも知れない。


■アプリのダウンロード

■操作説明
 ●基本操作(キー・マウス[PC] / タッチ[Android])
 ●キーボードでのカメラの操作(PC)
 ●ジョイスティックでのカメラ操作(PC)
 ●カメラ切り替えのキー操作(PC)
 ●ショートカット (PC)

■サイドパネル
 ●ファイルの読み込み
 ●モーション
 ●ブレンドシェイプ
 ●背景(ステージ)
 ●音楽
 ●その他
 ●モデル情報

■ファイル関連(ファイル / シーン / 音楽)
 ●各種ファイルを開く (Open File)
 ●VRM のフォルダーブラウズ(VRM Folder Browser)
 ●VRM のファイル移動(VRM File Move)
 ●シーンの読み込み/保存(Scene Load/Save)
 ●シーンの削除(Scene Delete)
 ●曲リスト(Music Select)
 ●音楽の遅延再生(Music Start Timing)
 ●曲リストから削除(Remove Songs)

■各種設定/ツール
 ●マイク感度の設定 (Mic Sensitive)
 ●エフェクト切り替え (Effect Select)
 ●BVH / VMDモーションの再生設定 (BVH / VMD Play Setting)
 ●3Dオブジェクトの配置 (3D Object Transform)
 ●床のサイズ変更 (User Object Size)
 ●360度画像/動画の設定 (360deg Image/Video Setting)
 ●2D(背景)画像/動画の設定 (2D Image/Video Setting)
 ●カメラの設定 (Camera Setting)
 ●カメラ切り替え (Camera Switching)
 ●ブレンドシェイプのバインド設定 (BlendShape Binding)
 ●モデルプロパティ (Model Property)
 ●FPS モニター (FPS Monitor)
 ●再生情報モニター (Play Monitor)
 ●オプション設定等

■背景を変える
 ●背景の3Dモデルを読み込んでみる
 ●360度, スカイドーム(全天球)画像読み込んでみる
 ●エフェクト(パーティクル)を入れてみる

■試験的に実装している機能 (Experimental)
 ●ショートカット的なもの
 ●ブレンドシェイプのキー操作

■プリセットモーションと表情(VRM のブレンドシェイプ)の対応について

■バージョンによる差異について
 ●過去バージョンのダウンロード

■補足説明
■既知の問題(不具合など)

■VRoid Hub 連携
 ●VRoid Hub について(連携方法)
 ●VRoid Mobile で作ったキャラを使う
 ●フィルタの使い方
 ●グループの使い方

■各種素材について/入手方法
 ●VRM(3Dキャラクター)の入手方法
 ●VRMファイルを作ってみたい
 ●GLB(3Dモデル)の入手方法
  ●GLBで背景モデルを自作する
 ●GLTF(3Dモデル)の入手方法
  ●背景GLTFの設定リスト(使用例)
 ●360度, スカイドーム(全天球)画像の入手方法
  ●日本列島360 紹介
  ●++skies; 紹介
 ●動画素材(背景)の入手方法
 ●BVH(モーションファイル)の入手方法
  ●使用できる BVH を作る(変換する)
 ●VMD(モーションファイル)の入手方法

■利用したオープンソースプロジェクト・素材など

(※) VRoid Studio 0.10.1 / VRoid Mobile 1.12 / Windows10(x64) / Galaxy S7 Edge (Android 7.0/8.0) で確認
(※) 内部ライブラリ・SDKバージョン: Unity 2019.2 / UniVRM 0.55 (MToon 3.2) / VRoid SDK 0.0.21
(※) スクリーンショット/仕様はリリース当時のバージョンのものなので、現在のバージョンとは異なってる場合があります。



■操作説明

●基本操作(タッチ[Android] / キー・マウス[PC])

(Android 版)
[ドラッグ] カメラ回転
[ピンチ] カメラ遠近
[指2本 or 3本でドラッグ] カメラの視点移動 (※3本の場合、先に中指と薬指を画面に置き、人指し指でドラッグすると細かい操作がしやすい)
[画面端でスワイプ] サイドパネルの開閉
[バックキー] アプリ終了(3秒以内に2回押しで終了)

(PC 版)
●マウス
[ドラッグ] カメラの回転
[ホイール] カメラの遠近
[右/中ボタンでドラッグ] カメラの視点移動
[画面端でスワイプ] サイドパネルの開閉
[進むボタン] ダイアログ等でのOKに相当するボタン押下(※削除/上書きなどの操作は除く。ボタンによります)
[戻るボタン] パネルを閉じる, キャンセルに相当するボタン押下(※ボタンによります)

●キーボード
[←][→][↑][↓] カメラの視点移動
[Ctrl]+[←][→][↑][↓] カメラの回転
Camera Settingで[Ctrl]ボタン動作を反転可
[+][-](テンキー) カメラのズームイン/アウト
[Tab] サイドパネルの開閉
[Space] 音楽の再生/停止
[Enter] ダイアログ等でのOKに相当するボタン押下(※削除/上書きなどの操作は除く。ボタンによります)
[Esc] パネルを閉じる, キャンセル(※ボタンによります)/アプリ終了(3秒以内に2回押しで終了)

[Z][C][S][X] カメラの視点移動 第2キー
[Ctrl]+[Z][C][S][X] カメラの回転 第2キー
Camera Settingで[Ctrl]ボタン動作を反転可
[A][D] カメラのズームイン/アウト 第2キー

●ジョイスティックでのカメラ操作(PC 版のみ)
[方向スティック] カメラの視点移動
[A]ボタン+[方向スティック] カメラの回転
Camera Settingで[A]ボタン動作を反転可
[X]ボタン カメラのズームイン
[B]ボタン カメラのズームアウト
[Y]ボタン 音楽の再生/停止 (※変更される可能性があります)
※機器によっては、アプリ起動時の [Configuration] の [Input] 設定で、右スティックを使える場合があります。その場合は、水平方向は[HorizontalStickR]、垂直方向は[VerticalStickR]をダブルクリックし、利用する方向にスティックを倒せば登録されます(HorizontalStickR は右, VerticalStickR は上など)。
 右スティックの動作は Camera Setting の設定(左スティック)の逆になります。



Logicool Rumble Gamepad F510 での設定例
(※開発のテストにも使っている機器なので、デフォルトのままでも可)


●カメラ切り替えのキー操作(PC 版のみ)
(テンキー)
[0]~[9] カメラ位置の移動
[Alt]+[0]~[9] カメラ位置の保存
[.] (ピリオド) カメラをホーム位置へ移動 (起動時のカメラ位置)
[*] (アスタリスク) カメラを中央位置へ移動 (ステージの中央に寄せ、真正面or背面に移動)
[/] (スラッシュ) カメラを反転位置へ移動 (ステージの中央に対して、回転とX軸[真横]の値を反転した位置)
※v1.4 以前のブレンドシェイプのキー操作は [Ctrl]押下 または [CapsLock]オンにすることで利用できます。

※カメラの移動速度は「カメラの設定(Camera Setting)」で変更できます(シーンごとに保存・読み込みもできます)。
※暫定的ではありますが、「ショートカット」もあります(※機能追加・変更などで、大幅に変わる場合があります)



■サイドパネル

●ファイルの読み込み [左パネル]

[ファイル読込] 対応している素材のローカルファイルをアプリにロードします。

※アプリによってはダウンロードしたファイルは専用フォルダに保存されることがあります(Chromeなどデフォルトの場合)。仮想フォルダやクラウドストレージでも同じようにそのアプリ専用アクセスになることがあります(※Android の場合「ダウンロード」フォルダが内部・外部ストレージ両方の仮想ダウンロードフォルダとなっているため、ファイルの情報が取得できない→直接フォルダアクセス("/storage/emulated/0/Download"等)した場合は読み込める)。その場合他のアプリからはアクセスできないことがあるので、別のフォルダに移動して読み込んでみて下さい。

VRoid Hub に接続し、直接キャラクターをロードできます(※連携設定が必要です)。
※スマホで利用する場合は、モデルのサイズが大きい場合もあるので、なるべくWIFIを使って下さい。

各種類ごとにファイルを開きます(PC版 / Android 8.0 以上のみ)。
シーンの読み込み/保存を開きます。
VRM フォルダブラウザ (VRM Folder Browser) を開きます。


●モーション [右パネル]

[BVH] or [VMD] 最後に読み込んだ BVH または VMD を再生します。デフォルトではテスト用の「test.bvh」が使われます。

※現在VMD再生は試験実装(Experimental)です。不具合が出る可能性もあります。
また、このVMD再生はシュミレート的なものであり、完全な再現ができるものではありません。意図しない動作や不自然な関節の動きなどが出る場合があります(特に足や手首など)。
現在わかっている不具合など

※VMD, その他素材利用の注意事項など → 「各種素材について」も合わせてご覧下さい
* VMD and other material usage precautions → See also "About various materials"

BVH or VMD(モーション)をアプリにロードします。ただし、BVH は「Y-up 右手座標系」(OpenGL系、Maya, Daz3D など)の座標系になります。「Z-up 右手座標系」(3ds Max など)の場合は、見た目がおかしくなります。[>>3Dツールごとの座標系など]
  BVH or VMDモーションの再生設定(BVH / VMD Play Setting)を開きます。
※処理落ちなどでモーションが遅れた場合は、再度クリックすると再計算されます(Sync Start がオンのとき)。

※表情はVRM 自身が持つブレンドシェイプ設定の定義が反映されるため、モデルによって異なる場合があります。また「VRoid」や「セシル変身アプリ」はデフォルトの場合、一定のパターンで動的にブレンドシェイプが割り当てられます。詳しくは「プリセットモーションと表情(VRM のブレンドシェイプ)の対応について」を参照して下さい。

[T-Pose] Tポーズに固定します。

[ドロップダウン] プリセット曲のモーション
├ [CRS] プリセット曲(Unite In The Sky)のモーションを再生します。ユニティちゃんライブステージ -Candy Rock Star- のダンスです。
 余談ですが「CRS」(Candy Rock Star の略)はユニティちゃんのライブステージでの衣装の名前ですが、
 「CRS」という略記はプロジェクト名などにも使われているため、関連するものにはよく利用されます。
└ [Mirai] ミライ(Mirai) / ミライ小町 のモーションを再生します。
※処理落ちなどでモーションが遅れた場合は、再度クリックすると再計算されます(Sync Start がオンのとき)。
※再クリックではタイミングによっては位置や回転が少しずれてしまうことがあります。

プリセット曲とブレンドシェイプの連動のオン・オフを切り替えます。
 緑のときは連動状態(オン)で、モーション変更でプリセット曲とブレンドシェイプが連動して再生されます。
 グレーのときはオフでモーションの選択だけになります。
 クリックしてオンにしたときにも適用されます。


●ブレンドシェイプ [右パネル]

(リップシンク)
┌ [None / Key] なし / キーボードで口パク操作できます(PC版のみ)。
├ [Preset / Aiueo] プリセット曲(Unite In The Sky または Mirai)が再生されているときは該当曲のリップシンクが再生されます。
 プリセット曲以外のときは"あいうえお"の口パクをします。
├ [Mic LipSync] マイクから音声を認識して口パクします。
└ [Audio LipSync] 再生中の音源(音楽)から音声を認識して口パクします。楽器音なども混ざるため、正確さには欠ける事はご了承下さい(かなり曲[ボーカル]にも依存します)。マイク入力の調整をすれば、少しだけましになります(笑) [※ストリーミング再生でのリアルタイムな認識のため、毎回必ず同じ認識になるとは限りません]。

※[Preset / Aiueo] 以外のとき、ブレンドシェイプのキー操作もできます。

マイク感度設定を開きます。
[Auto Blink] 目パチをします。
※「Mirai」モーションにはブレンドシェイプ(表情)も含まれているので、効きません
[Look At Me] 目でカメラを追います(※目のボーンが入ってるモデルのみ。T-Pose だとわかり易い)。
※「Mirai」モーションにはブレンドシェイプ(表情)も含まれているので、タイミングによっては効きません


●背景(ステージ) [右パネル]

(ドロップダウン) 背景を変更します。

[プリセット背景の変更] 何も無い(Plane)、ユニティちゃんステージ(CRS Stage)、浮遊(Floating)、ミライステージ(Mirai Stage)、クリスタルステージ(Crystal Stage)が選択できます。これら背景は 3Dモデル(gltf/glb)360度(全天球)画像/動画などをロードすることで内容を入れ替えることもできます。ドロップダウンを切り替えると内容はリセットされます(背景のベースとなります)

[床の変更] 主に透明な床のようなものを変更できます。360度(全天球)画像/動画を読み込んだときなどに良いかも知れません。プリセットの Plane の床と同じものも入っていますが、こちらはサイズの変更ができます(Plane では背景となっていてサイズは固定されてます)。3Dモデル(gltf/glb)とは排他的で、モデルを読み込んだときは「(床なし/3D)」(=床なし、または3Dモデル)に、逆に床を切り替えると、モデルは消去されます(どちらか1方のみ表示可)。

[空の変更] 主に空の画像を変更します。360度(全天球)画像/動画とは排他的で、360度画像/動画を読み込んだときには「(空なし/360)」(=空なし、または360度画像/動画)に、逆に空を切り替えると、360度画像/動画は消去されます(どちらか1方のみ表示可)。

360度(全天球)画像(jpg, png, bmp)/動画(mp4)、または 3D背景モデル(gltf/glb)を読み込みます。
3Dモデル(gltf/glb)がロードされているとき、オブジェクトのサイズや回転、位置などが編集できます。
を使用しているとき、サイズを変更できます(元のサイズが1)。床のサイズは各床ごとに保持されます。
360度画像/動画がロードされてるとき、全天球を回転/サイズ変更ができます。
2D画像/動画がロードされてるとき、サイズ変更ができます。

エフェクトの切り替えを開きます。




●音楽 [右パネル]

[Start] (= Sync Start) オンになっているとき、音楽再生ボタンを押すとモーションを最初から再生します。また音楽に合わせてモーションの再生位置を同期します。
[Stop] (= Sync Stop) オンになっているとき、音楽停止ボタンを押すとモーションを停止し、最初のフレームに戻します。音楽なしでモーションを再開したいときは、モーションの[BVH / VMD]または[CRS](トグルボタン)をもう一度押すと再開できます(CRSの口パクのみはCRS楽曲再生で再開されます)。

音楽を再生します。
音楽を停止します。
曲リストを開きます。再生する曲・再生方法などを選択できます。
※[曲リストに追加][曲リストから削除][再生モード][遅延再生の時間設定]などは、曲リスト内に移動しました。


●その他 [左パネル or 各パネル]

オプション設定を開きます。パネルの不透明度、マイク感度、3Dオブジェクトの配置などの各設定へ移動できます。
「操作説明/ヘルプ」が出ます。
パネルなどを閉じます。
パネルの表示をロックできます。グレー状態のときは通常の状態で、パネル外をクリックするとパネルが閉じられます。青のときはロック状態で、パネル外でカメラを操作できます。
※ただし、パネルの切り替え、モデルロードなどアプリの作業中は閉じられます。


●モデル情報 [左パネル]

 モデルに設定されている各項目(メタデータ)が表示されます。内容によってブラウザやメーラーなどを起動できるアイコンが横に表示されます。
 また VRoid Hub からロードされた場合、情報が追加表示されることもあります(その場合、[*VRoid Hub] が付きます)
※VRoidHubモデルの場合、詳細画面(利用条件)に表示されるライセンスは「追加ライセンス」となるため、サイドパネル上では各種類の「その他の条件」のリンクから確認できます。また特定のキャラクターライセンスなど(例:ユニティちゃんライセンス)も「その他の条件」に設定されていることもあります。

ブラウザでWebページを開きます
Googleで検索します(ブラウザ)
メーラーを起動します

 内容の検出は "http://" または "https://" の場合、URLと認識されます。VRoid Hub モデルの場合、タイトル・作者のページが開きます。
 また連絡先では、Twitter アカウントの場合(@fantom_1x または Twitter: fantom_1x など)はツイッターのURLを開きます。メールアドレスの場合はメーラーが起動します。
 その他の語句はGoogle検索となります。



■ファイル関連(ファイル / シーン / 音楽)

●各種ファイルを開く (Open File) [から]

 各種類ごとにファイルを開きます。これは [ファイル読込] がファイル種類を問わずに共通でフォルダを開くことに対し、種類ごとに最後にアクセスしたフォルダを記憶しておけるものです。ただし、フォルダの記憶はPC版とAndroid 8.0以上のみの機能になります(Android 7.0以前ではどのボタンでも共通になります[=OSが対応してないため])。
VRM フォルダブラウザ (VRM Folder Browser) を開きます。


●VRM のフォルダーブラウズ(VRM Folder Browser)

 開いたフォルダからVRMファイルを検出し、サムネイルの一覧を作成します。サムネイルをクリックすることにより、VRMをロードできます([ファイル読込]でVRMを読み込むのと同じになります)。サムネイルは縮小してキャッシュされ、2回目以降の表示はキャッシュが使われます。キャッシュは元VRMのファイル名と更新日付に依存します。VRMにサムネイルが設定されてない場合は、白い画像になります。

※アプリによっては専用フォルダにダウンロードされることがあります(Chromeなどデフォルトの場合)。仮想フォルダやクラウドストレージでも同じようにそのアプリ専用アクセスになることがあります(※Android の場合「ダウンロード」フォルダが内部・外部ストレージ両方の仮想ダウンロードフォルダとなっているため、ファルダ内の情報が取得できない→直接フォルダアクセス("/storage/emulated/0/Download"等)した場合は読み込める)。その場合他のアプリからはアクセスできないことがあるので、別のフォルダに移動して読み込んでみて下さい。

 一度開いたフォルダはドロップダウンに登録され、ドロップダウンから選択でもフォルダを移動できます。登録されているフォルダパスは、存在しないか、VRMファイルが1つも見つからなかったときに、自動的にドロップダウンから削除されます(※次回起動時に削除)。

フォルダを開きます。
VRM ファイル移動 (VRM File Move) を開きます。(※現在、Android には実装されてません)


●VRM のファイル移動(VRM File Move)(※現在、Android では利用できません)

 VRM Folder Browserで開いているフォルダの VRMファイルを「移動先」フォルダへ移動します。
チェックして、[移動]ボタンでファイルを移動できます。

[移動先を開く] ファイル移動の実行後、移動先のフォルダを VRM File Browser で開きます。

フォルダを開きます。
VRM フォルダブラウザ (VRM Folder Browser) を開きます。


●ファイルのドラッグ&ドロップができます(※PC版のみ)

 ドロップされたファイルは順次ロードされます。同種類のファイルでは意味がありませんが、例えばキャラクター(vrm)&モーション(bvh/vmd)&背景モデル(gltf/glb)&音楽(wav)を同時にドロップすると順次ロードされていきます。


●シーンの読み込み/保存 (Scene Load/Save) [から]

 現在の各種データ(キャラクター, モーション, 背景モデル, 空, エフェクト, 音楽, ブレンドシェイプ, マイク感度など)の設定を1つの「シーン」という単位で保存/読み込みを行います。

 ロードは順次読み込みとなり、現在の状態に追加で読み込まれます([ファイル読込]で1つ1つ読み込むのと同じ動作になります)。
 ただし、背景モデル(gltf/glb/プリセット背景/床など)や空(360度画像or動画/プリセット空)などは排他的となります(最後に読み込まれたものが表示されます)。
 また、ステージ(Plane / CRS Stage / Floating など)は背景のベースとなり、読み込むとプリセット背景の初期状態にリセットされます。

※ver.1.1以前は360度画像をプリセット背景に適用できません。1.2以降で保存したデータを1.1以前で読み込んだ場合、見た目が変わることがあります。なるべく保存したバージョン以降のアプリで読み込んで下さい。

 各確認ダイアログには付加機能があり、[読み込み]では各種類ごとでのロードすることができます。

[読み込み] 選択したシーンをロードします。
 確認ダイアログでは読み込む種類を選択できます。ステージ(背景ベース)以外は現在の状態に追加となります。
 例えば「キャラクター(VRM)」のみチェックを外して、背景のみを現在と入れ替える、なんてこともできます。
 "Plane"ステージの床は初期状態では「ステージオブジェクト」の一部です。ロードオプションは「床」ではなく「ステージ」の方になります(手動で床を変更した場合、「床」がロードオプションになります)。
※VRoid Hubのキャラクターをロードするには予めログインしておく必要があります(VRoid Hub からロードした場合は、デフォルトではタイトルに "(VRoid Hub)" が付いています)。
※VRoid Hubのキャラクターはリアルタイムにダウンロードされるため、なるべく高速な回線/WIFI等を使って下さい。通信状態により、繋がらない場合もあります。


[名前変更] 選択したシーンの名前を変更できます。
 設定内容は変更されません。

[新規保存] 現在の状態をシーンとして保存します。
 確認ダイアログでは名前を自由に付けられます。[自動生成]は"曲名 / キャラクター in 背景"になります。

[上書き保存] 選択したシーンに現在の状態を上書きします。また名前の変更も同時にできます。
 確認ダイアログでは名前を変更できます。[上書き保存]では名前と設定が保存されます。
 [名前変更]ボタンは名前だけの変更になります。設定は保存されません。
 デフォルトでは選択したシーンの名前になります。[自動生成]ボタンを押すと、現在の曲名、キャラクター、背景などから自動で生成します。

[Auto Save] オートセーブされているシーンをロードできます。
 シーンやファイルの読み込み、背景ベース変更、アプリの終了時など大きな変更がある前に自動バックアップとして保存されています。ただし、あくまでも変更前の状態だけなので、履歴を遡るようなことはできません。
 これも [読み込み] と同じように確認ダイアログが表示され、種類を選択して一部のみを読み込むこともできます。

シーンの削除(Scene Delete)へ移動します。
データをファイル(.json)から読み込みます。
データをファイル(.json)に保存します。

シーンのデータにはサムネイルや素材自体は含まれません。ファイルの絶対パスとアプリでの設定値のみが記録されています。従ってファイルを移動したときなどは「ファイルが見つかりません」等のメッセージがでます。その場合は元のパスに素材ファイルを置くか、一度読み込んでから保存し直せば利用できます(※PC 版と Android 版で互換性はありますが、パスが変わってしまうので注意して下さい)。
※サムネイルはロード時や「VRMフォルダブラウザ(VRM Folder Browser)」等を使ったときに生成(キャッシュ)されます。ただし、VRoidHub のモデルを利用してる場合、VRoidHub にログインしておく必要があります(ログインしてからロード画面等に行けば、自動生成されます)。


●シーンの削除 (Scene Delete) [から]

 保存されているシーンを削除します。削除されたデータは元に戻せません。
 [削除]ボタンで実行されます。
シーンの読み込み/保存(Scene Load/Save)へ移動します。


●曲リスト (Music Select) [から]

プレイリストに曲を追加します。対応するファイルの種類は「wav」「mp3」「ogg」です。
「曲リストから削除(Remove Songs)」へ移動します。
曲の再生モードを切り替えます。「1曲停止」は曲が終わると停止、「1曲ループ」はループ再生(シームレスループ曲に向いています)、「全曲ループ」は曲が終わるとプレイリスト中の次の曲へ行き、全曲終わるとリスト最初の曲へ行きます。「シャッフル」は曲が終わるとプレイリスト中の曲でランダムに再生されます。
再生ボタンを押してから遅延して開始する時間を設定します(秒)。設定は曲のファイル名ごとに記憶されます。BVH / VMD モーションなどにタイミングを合わせたいときなどに使います。
[連続/シャッフルでプリセットを除く] 再生モードが「全曲ループ(連続)」「シャッフル」のとき、プリセット曲(Unite In The Sky)を除いて再生します。ただし、追加された曲がない場合は無効です。


●音楽の遅延再生 (Music Start Timing) [から]

 再生ボタンを押してから、遅延して開始する時間を設定します(秒)。BVH / VMD モーションなどにタイミングを合わせたいときなどに使います。実際には処理の負荷などにより、わずかにずれることがあります。
設定は曲のファイル名ごとに記憶されます。
※プリセット曲は設定できません。
(Sync)Start がオンになっているとき、音楽に合わせてモーションの同期を行います。停止しているとき(白黒アイコン時)は最初から再生します。


●曲リストから削除 (Remove Songs) [から]

曲リストから選択されたファイルを削除します。ファイル自体は削除しません。
[削除]ボタンを押すと実行されます。



■各種設定/ツール

●マイク感度の設定 (Mic Sensitive) [ or から]

[Level] マイクまたは音源(音楽)からの入力値がリアルタイムで表示されます (0~1)。バーが赤いときは認識されない音量で、緑で認識されます。それらは以下の「Threshold」の値で分別されます。
※「Mic LipSync」「Audio LipSync」のとき測定可能です。
※ハードウェア(PC等の録音[マイク]レベル)の設定にも依存します。音源入力のときはハードウェア音量には依存しませんが、音楽ファイル自体の音量には依存します。
[Threshold] このレベルより下の場合、認識しません。主に雑音のカットに使います。
[Gain] 元のレベルを定数倍します。元の入力レベルが小さすぎたり大き過ぎたりする場合など調整するのに使用します。

※スマートフォンの場合はマイクとスピーカーが一体となっているので、購入時付属の「マイク付きイヤホン」またはヘッドホン等を利用すると声を認識しやすくなります(「Threshold」を調整すれば、ある程度は音楽付きでも認識できます)。



●エフェクト切り替え (Effect Select) [orから]

 エフェクト(パーティクル)を選択できます。背景(ベース)を切り替えるとリセットされます。

[Emission] 効果量を調整できます。1が基準量です。0.5で半分、2.0で2倍のパーティクルが生成されます。
※パーティクルの量が多くなるほど、重くなることがあるので注意して下さい。





●BVH / VMDモーションの再生設定 (BVH / VMD Play Setting) [orから]

 ロードされているBVH / VMDモーションのループ再生/速度/回転/位置を変更できます。

[Loop] オンでループ再生します。オフでは1回再生で停止します。
[Speed] 再生速度を変更できます(元の速度は1)。例えば、30fpsのデータを再生すると早送りのように見えるので(アプリでは60fpsが基準)、その場合は、0.5 にするとちょうど良い感じに見えます。
[Rotation] 向きの回転をします(-180~180度)。
[Position X] ワールド座標X方向(横)に移動します。
[Position Y] ワールド座標Y方向(縦)に移動します。
[Position Z] ワールド座標Z方向(奥)に移動します。
※位置(Position)はスライダーの範囲より大きい値または小さい値をテキストボックスに入力できます。
※設定値は"ファイル名"(拡張子を含む)で保存されます。
※"01.vmd", "test.bvh" など、重複しやすい名前だと、設定が上書きされてしまうので注意して下さい
※フレーム情報は内部処理での単位であり、元データのフレーム位置・数とは一致しない場合があります。

モーションを再生します。(Sync)Start がオンになっているときは音楽に同期し、停止しているとき(白黒アイコン時)は最初から再生します。
設定値をファイル(.json)から読み込みます。(※ファイルのドラッグドロップでも可)
設定値をファイル(.json)に保存します。



●3Dオブジェクトの配置 (3D Object Transform) [orから]
(※この機能は仕様・UI等が大幅に変更される可能性があります)

 「モデル読込」から読み込んだ ".gltf" または ".glb" のモデルデータ(GLTF: Sketchfab 等で配布されている形式)の配置・回転・サイズを変更/消去できます。読み込まれたモデルは背景オブジェクトとして扱われます。

[Position X] オブジェクトをワールド座標X方向(横)に移動します。
[Position Y] オブジェクトをワールド座標Y方向(縦)に移動します。
[Position Z] オブジェクトをワールド座標Z方向(奥)に移動します。
[Rotation] オブジェクト回転します(-180~180度)。
[Scale] オブジェクトのサイズを変更します(元サイズは1)

※回転以外はスライダーの範囲より大きい値または小さい値をテキストボックスに入力できます。
※設定値は".gltf"のとき"フォルダ/ファイル名"で(Sketchfab では "フォルダが名前/scene.gltf" となってるため。ファイルのあるフォルダのみ)、".glb"のとき"ファイル名"で内部保存されます。

現在ロードされているオブジェクトを消去します。
設定値をファイル(.json)から読み込みます。(※ファイルのドラッグドロップでも可)
設定値をファイル(.json)に保存します。

>>背景の設定方法



●床のサイズ変更 (Floor Size) [orから]

 プリセットの床(右パネルの背景の床)を使用しているとき、サイズを変更できます。

[Scale] 床のサイズを変更します(元サイズは1)



●360度画像/動画の設定 (360deg Image/Video Setting) [orから]

 読み込まれた360度(全天球)画像/動画の回転・サイズを変更/消去ができます。

[Mode] "2D"にすると、2Dモードに切り替わります。
[Rotation] 360度(全天球)画像/動画を回転します(-180~180度)。
[Scale] 全天球のサイズを変更します(1が元のサイズ)。
(動画)
[Loop] オンでループ再生します。オフでは1回再生で停止します。
[Speed] 再生速度を変更できます(元の速度は1)。

※設定値は"ファイル名"で保存されます。

動画を再生します。ループオフで停止しているとき(白黒アイコン時)などに使います。
現在ロードされている画像/動画を消去します。





●2D(背景)画像/動画の設定 (2D Image/Video Setting) [orから]

 読み込まれた2Dの(背景)画像/動画のサイズを画面にフィットすることができます。

[Mode] "360"にすると、360度モードに切り替わります。
[Fit Size]
├ [Width] 画像/動画を画面の幅に合わせて伸縮します。
└ [Height] 画像/動画を画面の高さに合わせて伸縮します。
(動画)
[Loop] オンでループ再生します。オフでは1回再生で停止します。
[Speed] 再生速度を変更できます(元の速度は1)。

※設定値は"ファイル名"で保存されます。

動画を再生します。ループオフで停止しているとき(白黒アイコン時)などに使います。
現在ロードされている画像/動画を消去します。





●カメラの設定 (Camera Setting) [から]

 カメラの動きなどを調整できます。ただし、速度が一定であっても、背景やモデルの負荷によって、体感速度が違う場合があります。システムでは最後の値を記憶してますが、シーンごとにも保存できます。

デフォルト動作 (PC)
 キーボードまたはジョイスティックの通常状態の動作を選択できます。非選択側は装飾キー(Ctrl)またはジョイスティックAボタンで動作切り替えできます。
[1st key] キーボード[←][→][↑][↓], 右[Ctrl] の動作
[2nd key] キーボード[Z][C][S][X], 左[Ctrl] の動作
[Joystick] ジョイスティック(左スティック), Aボタンの動作
(R stick) 右スティックが使える場合、水平方向(X), 垂直方向(Y)の入力を反転する ※機器によって方向の正負が異なる場合、このオプションで反転します
※右スティックの利用は機器によってデフォルトのアサインが異なるため、起動時の Configuration で設定する必要があります。
Logicool Rumble Gamepad F510 なら、開発のテストにも使っている機器なので、デフォルトのまま使えます。

移動・回転速度
[Speed] カメラの移動/回転速度を調整できます(1が基準の速度で、0.1~3倍)。マウス/キーボード/ジョイスティック共通です。



●カメラ切り替え (Camera Switching) [から]

 現在のカメラの位置と回転を10個まで保存/移動することができます。番号[0]~[9]はキーボードに対応しており(PCのみ)、UIでは各番号への保存やカメラの移動、デフォルトやプリセット状態へのリセット、ホームポジション・反転位置・中央位置への移動などの機能が使えます。
 また主に移動(&保存[PC])のみのミニパッドも利用することができます。
 設定はシーンにも保存することができ、よく使う設定はデフォルトとして保存/復帰することができます。

(番号)
保存されてるカメラ位置(&回転)へ移動
 └ (PCのみ) テンキー[番号]
現在のカメラ位置(&回転)を番号へ保存
 └ (PCのみ) [Alt] + テンキー[番号]
デフォルト(未保存はプリセット)にリセット

(Default Set)
全ての番号をデフォルトとして保存
全ての番号をデフォルトにリセット
全てをプリセットにリセット

(移動機能)
中央へ移動し、回転を真正面/背面にする
 └ (PCのみ) テンキー[*] (アスタリスク)
現在の位置の回転とX座標を反転して移動
 └ (PCのみ) テンキー[/] (スラッシュ)
ホームポジション(起動時の位置)へ移動
 └ (PCのみ) テンキー[.] (ピリオド)
ミニパッドを開く

※(PCのみ) [CapsLock]はオフにして下さい。[CapsLock]は[Ctrl]代替キーとして、ブレンドシェイプのキー操作([None / Key]モード)に使われます。
>> ブレンドシェイプのキー操作
>> キーボードでのカメラの操作

ミニパッド
[番号] 保存されてるカメラ位置(&回転)へ移動
 └ (PCのみ) [Alt] + [番号]クリック 現在のカメラを番号へ保存
ホームポジション(起動時の位置)へ移動
カメラ切り替えのパネルを開く




●ブレンドシェイプのバインド設定 (BlendShape Binding) [から]

 プリセットモーション再生中に使われるブレンドシェイプのバインド(割り当て)を一時的に変更、または無効化することができます。この設定はキーボード操作(PC)には適用されません。

 設定の反映はモーションデータ(CRS, Mirai)に依存するため、バインドによっては自動で無効化されることがあります。特にMiraiではブレンドシェイプが競合、またはバインドが重複している場合、優先度に従って、低い方が一部無効化される場合があります。
(優先順位: Blink>Joy>Sorrow)

>>プリセットモーションと表情(VRM のブレンドシェイプ)の対応について

※競合: 複数のブレンドシェイプで同じ対象を利用
(例) Blink で「eye_close」(100%)が定義されており、Sorrow でも「eye_close」(50%)が定義されている 等

※重複: バインド先が同じ
(例) Joy ⇒ Fun, Sorrow ⇒ Fun 等

※「Joy ⇒ Fun」はモーションデータで "Joy" が使われたとき、"Fun" のブレンドシェイプ設定が反映されるという意味

 また、Blink(目閉じ,まばたき)はモーションに含まれている箇所のみ [Disable] で無効化できます。完全にまばたきを止めるには右サイドパネルの [Auto Blink] もオフにする必要があります(CRSのとき)。

 利用されるブレンドシェイプ(名前)の検出はモデルの種類によって異なります。

VRoid, セシル: 一定パターンの名前から検出
その他, フルスクラッチ等: 口と認識できる名前を除いたものを利用
競合, 重複, 無効化しているとき(一部無視される)
※検出できなかった場合は、元の設定が使われます。

[T] T-Pose にして現在の設定を確認できます(左は元の設定、右は検出された設定=プリセットモーションに使われる表情)
[Play Preset] プリセットモーションの再生に戻る
[Default Bind] 自動検出の初期状態に戻す

※設定はモデルごと(ファイル名、またはVRoidHubのID)ごとにローカルに保存されます。VRMファイルに書き込まれることはありません。
※設定はシーンごとにも保存できます。読み込みはロードオプションで「ブレンドシェイプ」にチェックが付いていて、かつ同じモデルが対象の場合、適用されます。





●モデルプロパティ (Model Property) [から または サムネイルをクリック]

 現在ロードされているVRMモデルのプロパティを表示します。ローカルファイルとVRoidHub連携モデルでは表示できる情報が異なります(VRoidHub連携モデルはサーバーからデータをダウンロードし、ローカルファイルはVRMの内部データから取得します)。

[Bounds] は全てのAABB(軸に平行のバウンディングボックス)の最大境界となります。メッシュよりも大きくとってある境界や非表示になっているメッシュの境界(ギミック等)も含まれます。
 また、境界サイズ取得はモデルがロードされた瞬間のものであり(モーションが当てられてない初期状態:通常はT-Pose)、変形するメッシュ(髪など)の影響等により、計算誤差が出ることもあります(小数点の四捨五入でも僅かに誤差が出ます)。
 Top, Bottom, Right, Left, Front, Back は原点からの絶対座標になります。Height, Width, Depth はそれらの差分になります(例えば、Bottom が僅かな負の値になっている場合、少し地面に埋まっていることになる=靴底など)。

※スクショは開発用エディタ画面です

●Bounds は境界の最大・最小位置の差分なので、帽子やリボン、猫耳などの装飾物も含みます。
また、揺れものなど(後ろ髪、スカートなど)変形するメッシュが突出している場合、僅かに誤差が出ることがあります。
特定の操作で出てくるギミックなど(例えば、ブレンドシェイプで剣が出てくるなど)、見えてないものも含まれます。





●FPS モニター (FPS Monitor) [から]

 Frame Per Secondを表示します。最大は約60fpsです(僅かな計算誤差が出ます)。ロードされているVRMや背景3Dモデルの重さの目安になります。
 30fpsを下回るとフレーム落ちが目立つようになります。



●再生情報モニター (Play Monitor) [から]

 再生中の音楽とモーションの情報を表示します。
音楽の場合は時間単位で、"再生位置 / 曲の長さ (+遅延再生時間)"
モーションの場合はフレーム単位で、"再生位置 / 全フレームの長さ"
と表示されます。
※フレーム情報は内部処理での単位であり、元データのフレーム位置・数とは一致しない場合があります。
 また、±10秒の早送り・巻き戻しができます。(Sync)Start がオンのときはモーションの再生位置も修正されます。
※時間・モーションが満たないときは無視されます。タイミングにより、位置がずれてしまうことがあるので、その場合は [モーション同期] ボタンで修正して下さい。

音楽 or モーションを巻き戻しします。(※[PgUp]キーと同じです)
音楽 or モーションを早送りします。(※[PgDn]キーと同じです)
(Sync)Start がオンになっているとき、音楽に合わせてモーションの同期を行います。停止しているとき(白黒アイコン時)は最初から再生します。(※[Home]キー, または各モーションのトグルボタン(●)を再度押すのと同じです)


●オプション設定等 (Setting) [から]

 各設定パネルを開きます。PC版の場合は、一部ショートカットを試験的に定義しています(ショートカットは変更される可能性があります)。

[パネル位置のリセット] 全パネルの位置をリセットします。各パネルは上部(タイトル文字の上あたり)をドラッグすると移動できます。




■背景を変える

 ここではチュートリアル的に背景を変える方法を書いておきます。背景モデルには Sketchfab などで配布されている 3Dモデル(.gltf)またはニコニ立体などで配布されている背景モデル(.glb)を読み込んで配置することができます(※自作もできます)。また RICOH THETA など360度カメラで撮影・保存した画像や、フリー素材として配布されている全天球画像も背景(主に空)として利用することができます。これらは別々に配置され、「3Dオブジェクトの配置 (3D Object Transform) 」と「360度画像の設定 (360deg Image Setting)」で大きさや回転、位置などを調整できます。

GLBで背景モデルを自作する
背景GLTFの設定リスト(使用例)

 また、0.38β 以降からは設定値をファイル(.json)へ保存・読み込み機能ができるので、同じオブジェクトでも設定を瞬時に切り替えて利用することも可能です。設定ファイルはPC/スマートフォンで共有できるので、PCで調整した設定をスマートフォンで読み込むこともできます(ただし、シェーダの関係で色や光沢など見た目は変わることがあります。またスマートフォンはPCに比べてメモリ/CPUが弱いので、あまり大きなデータを読み込むとフリーズすることがあります)。

 今回は一般配布されているフリー素材を利用して、背景を変えてみたいと思います。素材自体の作り方は作者によってまちまちなので、設定値は任意で構いません。あくまで調整する方法として理解して下さい。

※各素材の著作権は著作者に帰属します。各素材についての利用方法などは、各著作者が提示されてる利用規約などをご確認下さい。


●背景の3Dモデルを読み込んでみる

 背景モデルの例として Sketchfab から 3Dモデル(.gltf ファイル)を読み込んでみます。ニコニ立体からダウンロードした背景モデル(.glb)を使うときも全く同じ手順になります(置き換えて考えて下さい)。ロードした後は大きさ・回転などを調整する必要がありますが、ここでは簡略のため、0.38β 以降の「設定値の読み込み(.json)」を使って、私が実際にデモで使った設定を利用します。

 元の背景は空の変化をわかりやすくするため「Plane」を使います。「CRS Stage」でも構いませんが、オブジェクトを配置したとき、空が無く真っ暗な背景となります。




1.Sketchfab で 3Dモデルをダウンロードするには会員登録する必要があります(無料)。面倒ならツイッターなどソーシャルアカウント利用もできるので、ページの右上にある「SIGN UP」からソーシャルアイコンをクリックで登録しておきます。既に登録してある場合は「LOGIN」でログインします。




2.今回は例として「Islands(@pravsha)」モデルをダウンロードしたいと思います。作者アイコンすぐ下の「Download」を押すとダイアログが出るので「Autoconverted format (gltf)」の方の「Download」ボタンを押してダウンロードして下さい。




Author: pravsha
License: CC Attribution-ShareAlike Creative Commons Attribution-ShareAlike

※検索ボックスでキーワードを入力して「Downloadable」にチェックを入れると、ダウンロードできるモデルを探すこともできます。


3.ダウンロードしたら zip を解凍し、ファルダにある「scene.gltf」を VRMLiveViewer にドラッグ&ドロップします。Android 版の場合は SDカードなどにコピーし「モデル読込」から」同じように読み込むことができます(スマホでは読み込みに結構時間がかかります)。




4.無事読み込むことができたら(スマホの場合、フリーズすることもあります。その場合はなるべく他のアプリを終了させ、メモリなどを確保して下さい。あまりに大きなデータは何度やっても読み込めない場合があります)、設定()から「3Dオブジェクトの配置(3D Object Transform)」を開き、大きさや回転を調整します。ここでは簡略のため、私がデモで使用した設定値ファイル(.json)を用意しておくので、それを利用することにします。


※このモデルは小さいですが、逆に大き過ぎてロードした状態では見えないものもあります。その場合は「Scale」を適当にいじって大きさを確認して下さい。



5.以下から設定値ファイル(.json)をダウンロードして下さい。ファイルは端末のデフォルトの「ダウンロード」フォルダなどに保存されるので、それを VRMLiveViewer にドラッグ&ドロップ、または「3D Object Transform」パネル上のフォルダアイコン()から読み込めます。するとすぐに設定が反映され、モデルの大きさや回転、配置などが変更されます。

(Islands の設定ファイル)
islands_scene.json(右クリックで「名前を付けてリンク先を保存」)


※自分で値を調整したものをディスクアイコン()で保存することもできます(現在の値はアプリ内部でも保存されているので、毎回ファイルに保存する必要はありません。どちらかというとデータエクスポート用です)。スライダー値はある一定範囲に制限されていますが(あまりに幅が大きいと細かい値が調整できないため)、テキストボックスの方では制限値を超えた値を入力できます。自由に調整しても構いません。

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



●360度, スカイドーム(全天球)画像読み込んでみる

 背景の3Dモデルを読み込んだだけでも十分ですが、ここではついでに 360度(全天球)画像を読み込んで調整する方法もやってみます。全天球画像は jpg や png ファイルで画像の縦横比が 2:1 のものが使えます。3840x1920[px] が最適です(Android の場合、あまりに大きい画像だとフリーズすることがあります)。


1.ここでは @VoxelKei さんが配布されている「日本列島360の静止画」を使ってみたいと思います。ダウンロードするには BOOTH に会員登録する必要があります(無料)。BOOTH は pixiv が運営してるサイトなので、pixiv アカウントでもログインできます。



2.ログインしたら、@VoxelKei さんの「ボクスケショップ」にお邪魔します。「日本列島360 全天球静止画9枚セット」は無料で配布されているので、そちらのページへ移動します。右側にある「無料ダウンロード」をクリックすると画像がダウンロードされます。今回サンプルに使っている夜の画像は9番目(JPN360_9.jpg : 2018/10現在では一番下)になります。



3.全天球画像をダウンロードしたら、VRMLiveViewer にドラッグ&ドロップします。または右パネルの山アイコン()を押し、ここからファイルを選択します。


4.画像がロードされたら、「設定」ボタン()を押し「360画像の回転」パネルを開きます。ここで「Rotation」で回転を調整します(任意で構いません。ここでは約 -70度くらいです)。


※全天球画像(空)を消したい場合は×アイコン()を押せば消えます。



●エフェクト(パーティクル)を入れてみる

 右パネルにあるキラキラアイコン()を押すか、設定()から「エフェクトの切り替え」でパーティクルを入れることができます。また「Emission」で放出量を調整できます(基準量を1として0.1~3倍)。これらは任意で構いません。




 後はモーションを「CRS」や「BVH」にし、音楽を再生します。カメラをズームアウトすると、遠くから眺めることもできます(更に遠くへ行くと、全天球で囲まれていることがわかります)。

 PC版ではジョイスティックにも対応しているので、まるで空中遊泳でもしてるように楽しむこともできます。




●全天球で囲まれた空中庭園みたいになる(笑)

Author: VoxelKei
License: クリエイティブ・コモンズ 表示-非営利 4.0 国際 (CC BY-NC 4.0)



■試験的に実装している機能 (Experimental)

 掲載時点での試験的に実装している機能です。これら機能は今後、大幅な仕様変更や削除される場合もあります。


●ショートカット的なもの(※PC版のみ)[※0.94βで大幅に変更されました]

 以下のキーはショートカットキーのように利用できます。何らかの設定パネルが開いているとき、またはデータなどのロードしているときは無視されます。
 ※機能の追加・変更・削除などにより、大幅に変更される場合があります。

[V] VRoidHub 連携を開く
[F] VRM Folder ブラウザを開く
[R] シーン の読み込み/保存を開く
[M] 曲リストを開く

[E] エフェクト切り替えを開く
[J] 音楽の遅延再生の時間設定を開く ※プリセット曲を除く
[G] BVH / VMDモーションの再生設定を開く
[,] (カンマ) マイク感度の設定を開く
[T] 3Dオブジェクトの配置を開く
[U] 360度/2D - 画像/動画の設定を開く
[Y] 床の設定を開く
[N] ブレンドシェイプのバインド設定を開く
[P] モデルプロパティを開く
[K] カメラの設定を開く
[L] カメラ切り替えを開く

フルキー[/] (スラッシュ) カメラ切り替えのミニパッドを開く
フルキー[-] FPSモニターを開く
フルキー[.] (ピリオド) 再生情報モニターを開く

[Q] ファイルパネル(Open File)を開く
[B] BVH / VMD 読み込み(ファイル選択)を開く (※削除される可能性があります)
[I] 全天球(360度画像/動画) 読み込み(ファイル選択)を開く (※削除される可能性があります)

[H] 操作説明・ヘルプを開く
[O] パネルの透明度設定を開く
[W] 設定(Setting)パネルを開く
[[] クレジットパネルを開く (※削除される可能性があります)

[Ctrl]+テンキー[0] 音楽の再生
[Ctrl]+テンキー[.] (ピリオド) 音楽の停止
[Ctrl]+テンキー[*] (アスタリスク) CRS の楽曲とモーションの再生
[Ctrl]+[PgUp] 曲リストで前の音楽を再生する
[Ctrl]+[PgDn] 曲リストで次の音楽を再生する
[PgUp] モーションと音楽を10秒巻き戻す (満たないときは無視) ※タイミングにより、位置がずれてしまうことがあるので、その場合は [Home] キーで修正して下さい)
[PgDn] モーションと音楽を10秒進める (満たないときは無視) ※タイミングにより、位置がずれてしまうことがあるので、その場合は [Home] キーで修正して下さい)
[Home] モーションを音楽に合わせる ※要:(Sync)Startオン (サイドパネルでモーション選択の再クリックと同じ)

[F1] リップシンクを「None / Key」にする
[F2] リップシンクを「Preset / Aiueo」にする
[F3] リップシンクを「Mic LipSync」にする
[F4] リップシンクを「Audio LipSync」にする
[F6] モーションを「BVH」 or [VMD] にする
[F7] モーションを「T-Pose」にする
[F8] モーションを「Preset/Aiueo」にする

●ブレンドシェイプのキー操作(※変更される可能性があります)

※プリセットモーション再生中(ブレンドシェイプ「Preset / Aiueo」)のときは利用できません
(ブレンドシェイプ「None / Key」、モーション「T-Pose」にすると確認しやすい)。

(テンキー) ※[CapsLock]で[Ctrl]押下の代替ができます
[Ctrl]+[1] あ (A)
[Ctrl]+[2] い (I)
[Ctrl]+[3] う (U)
[Ctrl]+[4] え (E)
[Ctrl]+[5] お (O)
[Ctrl]+[6] デフォ表情 (Neutral)
[Ctrl]+[7] 目閉じ (Blink)
[Ctrl]+[8] 右目閉じ (Blink_R)
[Ctrl]+[9] 左目閉じ (Blink_L)
※[CapsLock]はオンのとき、[Ctrl]を押している状態と同等になります。また[CapsLock]がオンで[Ctrl]を押した場合、[Ctrl]を押してない状態と同等になります(つまり[Ctrl]押下を反転します)。ただし、カメラ操作(Ctrl+矢印キーなど)には効きません。
(フルキー)
[1] 喜 (Joy)
[2] 怒 (Angry)
[3] 哀 (Sorrow)
[4] 楽 (Fun)
[5] 視線上 (Look_Up)
[6] 視線下 (Look_Down)
[7] 視線右 (Look_Right)
[8] 視線左 (Look_Left)
[9] 目にっこり [※プリセット曲用(表情)に自動検出したブレンドシェイプ]
[0] 目(or 眉)しょぼん [※プリセット曲用(表情)に自動検出したブレンドシェイプ]

●TGA ファイルの読み込み(360度画像,全天球,スカイドーム)

 現在、フルカラー無圧縮の .tga ファイルのみロードできます。
「Only Full-color Uncompressed is supported.」と出た時は圧縮形式であり、
「TGA texture had non 32/24 bit depth.」と出た時はフルカラーではないファイルです。
その場合、画像変換ソフトでフルカラーにすれば使えますが、png に変換した方がファイルサイズが小さくなって使いやすいかも知れません。

●MakeAvatar モデルのブレンドシェイプの自動バインド

 現在、スマホアプリで自分で作成し、VRoidHub にアップロードしたもののに、自動バインドに対応しています(基本的に Joy→Fun, Sorrow→Sorrow となる)。マーケットに販売されているカスタマイズ的な素材を使っている場合は検出できるかどうかわかりません。その場合、「ブレンドシェイプのバインド設定 (BlendShape Binding)」で手動で設定することができます。

●VMDの再生機能

 まだ不具合があることを確認してます。ただし、シミュレート的な再生なので、完全な再現は保証できません。できる限りの調整はしたいと考えてます。またエラーが出るものは対応が難しいのでご了承下さい。

>>現在わかっている不具合など



■プリセットモーションと表情(VRM のブレンドシェイプ)の対応について

 プリセットモーションには表情が入っています。使われる表情は各VRM のブレンドシェイプ設定の定義が利用されますが、設定によっては不都合なことがあります。

ブレンドシェイプの設定

 例えば VRoid の Joy, Angry, Sorrow, Fun 設定はデフォルトで口のブレンドシェイプも含まれていますが、プリセット曲のリップシンク(口パク)が同時に適用されると、口だけ2重に変形してしまいます

 ちなみに、プリセットモーションで使われるブレンドシェイプ設定は以下の通りです。

・CRS
「Joy」:にっこり
「Blink」:まばたき(両目)
「Blink_L」:ウインク(左目)
「A」「I」「U」「E」「O」:口パク(リップシンク)

・Mirai
「Joy」:にっこり
「Sorrow」:しょんぼり
「Blink」:まばたき(両目)
「LookLeft」「LookRight」「LookUp」「LookDown」:視線(左右上下)
「A」「I」「U」「E」「O」:口パク(リップシンク)


 そこで VRM Live Viewer では一定のパターンを持つブレンドシェイプ名から、プリセット曲に合うものを検出して使っています。例えば「VRoid」や「セシル変身アプリ」などはデフォルトでは一定のパターンで作られているので、自動で他のブレンドシェイプが動的に割り当てられます。

(VRoid)
目にっこりの表情:Joy 設定 (デフォではブレンドシェイプ名:「~ALL_Joy」)
 → 目のみ(ブレンドシェイプ名:「~Eye_Joy」) を検出して使われる
※「CRS」「Mirai」で使われます。

●Joy 設定の対応

デフォルトでは
「~ALL_Joy」が設定されている

プリセット再生中は
「~Eye_Joy」に置き換えられる


目がしょんぼりの表情:Sorrow 設定 (デフォではブレンドシェイプ名:「~ALL_Sorrow」)
 → 目のみ(ブレンドシェイプ名:「~Eye_Sorrow」) を検出して使われる
※「Mirai」で使われます。

●Sorrow 設定の対応

デフォルトでは
「~ALL_Sorrow」が設定されている

プリセット再生中は
「~Eye_Sorrow」に置き換えられる



(セシル変身アプリ)
目にっこりの表情:Fun 設定から、ブレンドシェイプ名:「Nico_L」「Nico_R」 (目) を検出して使われる
※「CRS」「Mirai」で使われます。

●Joy 設定の対応

デフォルトでは
驚いた感じの表情

プリセット再生中は
「Fun」から「Nico_L」「Nico_R」を取得


目がしょんぼりの表情:Sorrow 設定から、ブレンドシェイプ名:Yowa (眉のみ) を検出して使われる(※通常はデフォルト)
※「Mirai」で使われます。

●Sorrow 設定の対応

デフォルトでは
「Yowa」(眉のみ)が設定されている
※通常そのまま使われる


※VRoid も セシル変身アプリもカスタマイズしている場合には上手く検出できない場合があります(フルキーの[9][0]で確認できます)。

※検出は成功していても、他の設定と競合してる場合、上手く表情が反映されない場合があります。特に「Mirai」では複数のブレンドシェイプ設定が同時に適用されるため、個々のブレンドシェイプが複数に跨って使用されている場合、2重に変形してしまうかも知れません(理想は個々のブレンドシェイプが独立している方が良い=モーフィング的な変化が可能なため)。
(例えば、Joy 設定「にっこりでまぶたを20%閉じる」と、Blink 設定「まぶたを100%閉じる」が使用されている場合、まぶたが競合するので、見た目がおかしくなる[→通常、JoyとBlinkは両方同時に使用できないので、表情変化には「Joy=0%, Blink=100%」または「Joy=100%, Blink=0%」のように使われるが、Miraiは時間軸でどちらも使用されるため、競合しやすい(変化で表情が更新されるため中間値を持ち、ヌルヌル動く)。※CRSはオン・オフだけなので中間値を持たず、あまり競合しない(排他的な変化のため、ヌルヌル感は無い)])


※[CRS] オン・オフのみで中間値が存在しないため、競合はしにくいが、リアルな動きにはならない(しかし、曲のテンポが速いので気にならない)。
※[Mirai] 複数のブレンドシェイプが同時に適用され、中間値が存在するため、競合はしやすいが、リアルな動きになる(モーフィング的な変化になる)。
 → v.1.3 以降では「Blink」「Joy」「Sorrow」に設定されているブレンドシェイプ名から競合を検出し、優先度の低い方を無効化します。

優先順位:Blink>Joy>Sorrow
(例)
・ 「Blink」と「Joy」の設定に競合があった場合、「Joy」は無効化され、「Blink」だけが使われる。
・ 「Blink」と「Sorrow」の設定に競合があった場合、「Sorrow」は無効化され、「Blink」だけが使われる。
・ 「Joy」と「Sorrow」の設定に競合があった場合、「Sorrow」は無効化され、「Joy」だけが使われる。

※各ブレンドシェイプの Weight 値(設定値)が 0 で定義されているものがあると、不具合を起こすことがあるようです(Weight = 0 は強制的に無効にしてしまうため?通常 Weight×n% で使われるが、0 定義だと常に計算値が 0×n% = 0 になってしまう → 複数のブレンドシェイプが混合して使われている時、意図しないタイミングで無効化されてしまう)。
 → v.1.3 以降では値が 0 で設定されているブレンドシェイプは除外して利用します。

※ブレンドシェイプ名の検出は大文字小文字を区別しません。

 また VRoid, セシル変身アプリ以外のモデル(フルスクラッチ作品など)の場合は以下の名前をブレンドシェイプの口と認識して、口だけを除外したブレンドシェイプを動的に使います

(口として認識するブレンドシェイプ名)
・「あ」「あ2」など、頭が「あ」で後に 0~1文字(※「い」「う」「え」「お」同様)
・「ワ」「ワ2」など、頭が「ワ」で後に 0~1文字
・「にま」「にま2」など、頭が「にま」で後に 0~1文字
・「にやり」「にやり2」など、頭が「にやり」で後に 0~1文字
・「口」「口あ」「デフォ口」など "口" を含む名前
・「mouth」「_mouth_」「mouth_a」など "mouth" を含む名前
・「mth_a」「_mth_」など "mth_" を含む名前
・「say_a」「say_yo」など "say_" を含む名前
・「vrc.v_aa」など「vrc.v_」で始まる名前
・「A」「a」など1文字のみ(※「I」「U」「E」「O」同様)

※大文字小文字は区別しません。
※今後のバージョンアップで追加・改修する場合があります。

 そのため、独自カスタマイズしている場合は上手く検出ないことがあります。その場合は、現在設定されている Joy, Sorrow などがそのまま使われます

 理想は「Joy」は「口のブレンドシェイプを含まないにっこり」で、「Sorrow」は「口のブレンドシェイプを含まないしょんぼり」となります。

 特に「Joy」と「Fun」はモデルによって設定がまちまちなので(「Joy」が驚きの表情で「Fun」or「Angry」がにっこり、「Sorrow」が驚き or にっこり 等様々…)、プリセットモーションで表情も揃えたい場合は、設定を変更してみるのも良いかも知れません

>>ブレンドシェイプのバインド設定 (BlendShape Binding)



>> セシル変身アプリ
(※登録すれば、無料会員でもアプリをダウンロードできます)




■バージョンによる差異について

 内部ライブラリである UniVRMやシェーダ(MToonも含む)、3Dエンジン Unity 更新により、バージョンによって見た目が大きく異なる場合があります。

※ヘルプ[]ボタン>クレジット 画面で内部ライブラリのバージョンが見れます

VRM Live ViewerUniVRMMToon影響のある修正内容備考
0.51β以前0.421.3 -- --
0.52~0.54β0.46c1.7UniVRM ReleaseNote v0.44(ja)
UniVRM ReleaseNote v0.45(ja)
--
0.55~0.74β0.491.7 (*1)UniVRM ReleaseNote v0.49(ja)(*1) 本来なら1.8だが、光源反映の影響範囲が大き過ぎるため、ダウングレードで対応。
0.75~0.86βPC版のCRS Stageの一部影を無くし、軽量化(Android版は元から影処理が軽量)
0.87~0.99β0.533.2UniVRM ReleaseNote v0.52(ja)
UniVRM ReleaseNote v0.53(ja)
MToon が v3.2 となり、環境光の反映や影の感じが変わりました。Issue 等を見てみると、環境光反映との相殺で影が打ち消されている可能性があります。今後のバージョンアップで対応されるか否かはわかりません。
1.0~1.1Standard Shader の Fade モードと Emission が反映されなかった不具合が Fix されました。
1.2~1.9Unity2018以前のライティング設定を最新にアップデートしたことにより、GLB/GLTFなど Standard Shader を使っている素材に環境反射光(拡散光)が入るようになりました(屋内でも明るくなる)。
1.10以降0.553.2UniVRM ReleaseNote v0.54(ja)
issue #301 / PR #339
issue #375


 特に Android をご使用の方は試用版を用意しましたので、アップデート前に試用版で動作確認後、本アプリをアップデートするか否かを検討して下さい。Android は上書きのダウングレードができないため、以前のバージョンに戻すことができません。十分注意してインストールして下さい(OSの仕様)。必要であれば、過去のバージョン(試用版)も使って下さい(※別のアプリとしてインストールされます。Trial となってますが、内容は通常版と同じです)。

 Windows の場合は、別フォルダを作って使用すれば、過去のバージョンも併用して使えます。
※ただし、1.0以降と0.99β以前とは内部データの実装が異なるため、併用して使った場合、0.99β以前と1.0以降で別々に保存されるものがあります(シーン、フォルダブラウザの履歴、個々のBVH, GLTF/GLB, 360度画像, 音楽の遅延再生設定など)。1.0以降は0.99β以前のデータを自動変換して扱います。


(Google Drive を利用)


Android 5.0以上 (※6.0以上推奨)


●環境光の反映などのため、陰影の感じが変わっています[※PC, Android 版両方]
v0.51β以前
v0.52~0.86β

v0.87β以降

●シェーダーの追加/環境光の変更などにより、影の付き方や、一部表現されてなかったものが表示されます
[※PC, Android 版両方]
v0.51β以前
v0.52~0.86β

v0.87β~1.1

v1.2 以降

●CRS Stage を軽量化するため、一部影の処理を無くしました(影の処理は負荷が高いため)
[※PC版のみ (Android版は元から軽量)]
v0.74β以前
v0.75β以降

●環境光の影響を軽減するため、光源色を Unity のデフォルトに変更しました(以前は少し青みがかっていたが、白っぽくなった)。
また、1.0以降では StandardShader の Emission / 1.2以降では拡散光が反映されるようになりました。
[※PC, Android 版両方]
v0.86β以前
v0.87~0.99β
v1.0以降 (Emission を使ってる部分が光る)
v1.2以降 (環境反射光[拡散光]が入るため明るくなる)


●シェーダーが環境光の影響を強く受けるようになったため、影が薄くなる(消える)場合があります。
[※PC, Android 版両方]
v0.86β以前
v0.87β以降
・rurimira / @thanlore

v1.9以前
v1.10以降
v1.9以前
v1.10以降

sea of star / Hedgehog Boo (CC BY 4.0)
3D 背景設定ファイルsea_of_star_scene.json (※名前を付けてリンク先を保存)
Hampton Lake Dam (Post Hurricane Irma) / likeonions (CC BY 4.0)
3D 背景設定ファイルhampton_lake_dam_post_hurricane_irma_scene.json (※名前を付けてリンク先を保存)


 特に VRoid に関しては「既知の問題」にあるように、VRoid Studio 0.1.x でエクスポートしたものはかなりギラ付くようです。その際は最新版の VRoid Studio で再エクスポートすれば、修正されます。同様に UniVRM 0.42以前にエクスポートしたものは、最新の UniVRM でエクスポートすれば、ある程度修正されます。



●過去バージョンのダウンロード

 過去バージョンも置いておきますので、必要な方はダウンロードして使って下さい。
 Android は OSの仕様上、ダウングレードができないので、試用版となります(※別のアプリとしてインストールされます。Trial となってますが、内容は通常版と同じです)。

[Windows 版] (※別フォルダに分ければ共存できます)
>>Windows 0.99β をダウンロード
※1.0以降と0.99β以前とは内部データの実装が異なるため、併用して使った場合、0.99β以前と1.0以降で別々に保存されるものがあります(シーン、フォルダブラウザの履歴、個々のBVH, GLTF/GLB, 360度画像, 音楽の遅延再生設定など)。1.0以降は0.99β以前のデータを自動変換して扱います。

>>Windows 1.1 をダウンロード
※ver.1.1以前は360度画像をプリセット背景に適用できません。1.2以降で保存したシーンデータを1.1以前で読み込んだ場合、見た目が変わることがあります。なるべく保存したバージョン以降のアプリで読み込んで下さい。

>>Windows 1.9 をダウンロード

[Android 版] (※別アプリとしてインストールされますが、内容は通常版と同じです)
>>Android 0.99 試用版をダウンロード ※Android 4.4以上 (※5.0以上推奨)


>>Android 1.1 試用版をダウンロード ※Android 5.0以上 (※6.0以上推奨)


>>Android 1.9 試用版をダウンロード ※Android 5.0以上 (※6.0以上推奨)




■補足説明

※量が多くなったため、こちらのページに分離しました。



■既知の問題(不具合など)

 現在わかっている不具合を挙げておきます。しかしながら、仕様上アプリからは修正できないものもあるので、その場合はご了承下さい。

※仕様変更などの情報は「バージョンによる差異について」や「補足説明」にまとめられているので、参照してみて下さい。


※分類
[×] 仕様上、修正は難しい
[△] 修正には調査が必要(場合によっては修正できるかも?)
[-] それは仕様だ。問題ない(笑)
[○] 解決済み


[△] VMD 再生で足が寄り気味になる。
モデルの足の付け根の初期角度(T-Pose 時)など、ボーンの構造等により、足が寄ってしまうことがあるようです(なるべく、初期角度は垂直な方が良いらしいです)。
 この辺りの問題はライブラリの開発者様に相談し、調整していこうと考えてます。

[△] VMD 再生で足や手首が不自然な動きになる。
足や手首のIKの計算などによる問題と思われます(一応目立つ部分はリリース時点で無効化してますが、VMDデータによっては出るようです)。また一部のモーションデータで足が不自然に開いたり浮いたりする現象も確認しています。
 シュミレート的なものであり、完全な再現は難しいのですが、できる限りこの問題もライブラリの開発者様に相談し、調整していこうと考えてます。

[△] VMD 再生で表情が反映されない。リップシンク(口パク)ができない。
MMDとVRM のブレンドシェイプは互換性がないため、現在無効化してます。リップシンクに関しては [Audio LipSync](または [Mic LipSync])モードにすれば、ある程度音源から音声認識で口パクできます。
 この辺りの問題は今後の研究課題として、可能な部分だけでも実装していこうと考えてます。

[×] VMD を読み込もうとするとエラーが出る。
VMD の内部ファイルフォーマットのバージョンの違いのせいか(?)(何度か内部的なフォーマットは更新されているため)、稀にエラーで読み込めないものがあります。過去すべてのバージョンに対応するのは難しいので、最新のバージョンで保存し直してみるなど試してみて下さい(修正できない場合もあります)。
 この辺りの問題は修正できる可能性は低いのでご了承下さい。

[×] mp3 を読み込もうとするとエラーが出る。
mp3 の再生は、実際には mp3 → wav に動的に変換して再生してます。そのため、変換に失敗した場合は利用できません(何らかのバイナリデータが不正である可能性があります)。その場合は、変換ツールなどで保存し直すと使える場合もあります。

[×] モーションを途中で切り替えると位置や回転がずれる、タイミングが遅れる。
→ プリセットのダンスモーションは相対的に移動してるため、タイミングによっては位置や回転がずれることがあります(特に重い処理などで一時的に止まってしまう時間が長いときなど)。その場合は曲を最初から再生するか、プリセットモーションのトグルボタン(●)を押すと(ドロップダウンを押しても同じ)、音楽の再生時間に合わせたモーションに修正されます。計算で位置や回転を割り出しているため(モデルの足の長さにも依存する)、完全に正しい位置にはならないのでご了承下さい。

[△] プリセットモーション再生で表情がおかしい/意図したものと違う。[ver.1.3 にて、不正値(0)や競合を除外する仕組みを導入]
ブレンドシェイプの設定を独自カスタマイズしている場合、名前や設定値によって上手く機能しない場合があります。特に各ブレンドシェイプの値に0を設定すると、常に無効化する挙動となり、不具合になるようです(例えばBLINK:「目を閉じる100%に目を開く0%」設定と、NEUTRAL:「目を開く100%に目を閉じる0%」設定を定義すると、互いに打ち消し合いタイミングによってはおかしくなる、等)。
利用するブレンドシェイプの検出や注意点などについては「プリセットモーションと表情(VRM のブレンドシェイプ)の対応について」を参照して下さい。

[×] モデルの一部のテクスチャが読み込まれない。テクスチャが破綻している。360度画像が読み込まれない。
アプリでは特に素材のサイズ制限を設けてないため、巨大な 360度画像、GLTF/GLB などで大きなテクスチャを使っているものなどがロードされている、VRoidHub連携で大量のサムネイルをロードしているなど場合、メモリ不足で後から読み込んだ素材がロードできない場合があるようです(エラーは出ないで、一部が欠けてしまう、見た目がおかしくなる。または無視される等)。その場合は素材のサイズを小さくするか、または一旦アプリを終了し、他のアプリなども落としてメモリを確保してから試してみて下さい。特にスマホはPCよりもメモリが小さいことが多いため、ものによっては読み込めない場合もあります(スマホの場合、デフォルトでディスプレイが高解像度になってる事が多いので、解像度を下げることでメモリ確保や描画速度を軽くする方法もあります)。特に PC 用の360度画像はとても高い解像度になってる場合があるため、3840x1920以下に縮小して使うとロードしやすくなります。

[×] VRM/GLTF/GLB のロード(ビルド)中にフリーズする/読み込めない。
→ モデルによっては巨大なテクスチャや大量のメッシュ(ポリゴン)で作成されているものがあります。その場合は動的にモデルを生成するのにかなりのメモリやCPUパワーを必要とします。また新しくモデルが入れ替えられる直前までは、既に読み込まれているモデルがメモリを使っています(つまり消去されるまでは約2倍のメモリを喰う)。端末のキャパをオーバーした場合、フリーズすることもあるようです(またはとてつもなく重くなる)特にスマホではその傾向が顕著のようです(シーンを連続で読み込んでいると大抵フリーズします..)。スマホの場合、デフォルトでディスプレイが高解像度になってる事が多いので、解像度を下げることでメモリ確保や描画速度を軽くする方法もあります。またエラーが出るものは何らかが原因で対応できないものなのでご了承下さい。

[△] VRoid Hub からモデル読み込みが止まってしまう。
→ 通信状態やキャッシュの状態によって(?まだ調査中。なせがエラーが出ないことがある)、ごく稀に上手く読み込めないことがあるようです。しばらくしてエラーが出た場合は、ログウィンドウを閉じて再度試してみて下さい。出ない場合は、アプリを再起動してみて下さい。
 特にスマホで利用する場合は、なるべくWIFI等、高速な回線を使って下さい。

[×] アプリの VRoidHubパネルとブラウザの VRoidHubページ(Web) で同時に操作してたら、次のリストボタン「See more」押下でリクエストされたまま(アプリは動いているが、戻って来ない)になった。
→ アプリとブラウザで同時に操作すると、サーバとのデータ不整合が起こる場合があります。なるべくリストをリロードして情報を同期して下さい。

[×] ダウンロードした VRM が読み込めない。VRM Folder Browser で何も表示されない。
→ アプリによっては専用フォルダにダウンロードされることがあります(Chromeなどデフォルトの場合)。仮想フォルダやクラウドストレージでも同じようにそのアプリ専用アクセスになることがあります(※Android の場合「ダウンロード」フォルダが内部・外部ストレージ両方の仮想ダウンロードフォルダとなっているため、ファルダ内の情報が取得できない→直接フォルダアクセス("/storage/emulated/0/Download"等)した場合は読み込める)。その場合他のアプリからはアクセスできないことがあるので、別のフォルダに移動して(確実なのは内部ストレージ)読み込んでみて下さい。

[×] GLTF/GLB モデルの色合いが違う。一部欠けたり描画順がおかしかったりする。
→ シェーダ等の違いにより、見た目がどうしても変わってしまいます。また透過や発光などのシェーダは無視されることがあります(シェーダ[=Standard Shader]が対応できないとき)。完璧な再現はできないのでご了承下さい。

UniVRMで使えるシェーダー

[△] GLTF/GLB を v1.10以降でロードすると、色が白っぽくなったり、黒っぽくなったりする
→ GLTF/GLB ローダーとして利用している UniVRM のベースカラーの変換挙動が修正されたため、当アプリの v1.9以前と v1.10 で色が異なってしまう現象が起きています。
ライブラリ提供元にイシューを立ててあるので、今後修正が入るか、何らロードオプション機能を追加しようかと考えてします。しばらくお待ち下さい。

UniVRM0.54以降でGLTF/GLBをロードすると、白っぽくなったり、黒っぽくなったり、見た目が以前と異なってしまうものがある

[△] GLTF でアニメーションが上手く反映されない、点滅する
→ 原因はわかりませんが、ものによっては上手くアニメーションができない(動いてはいるが、なぜかチラつく)ことがあるようです。この辺りの機能は内部ライブラリである UniVRM に完全に依存してしまっているので、今後のバージョンアップに期待するしかありません。

[×] 音楽ファイルがエラーで読み込めない
→ ファイル名に記号が入っているとき、読み込みに失敗することがあります。その場合は記号を削除(リネーム)すれば、読み込めるようになります。内部のフォーマットが対応できない場合は読み込めません(他のフォーマットに変換すれば使える場合もあります)。

[△] [CapsLock]が効いてない
→ [CapsLock]はアプリからフォーカスが外れて変更されると、上手く認識できない場合があります。その場合は、再度[CapsLock]をオフ→オンなどしてみて下さい。

[×] VRoid を読み込むとギラギラする(VRoid Studio 0.1.x~0.2.12 で作られたモデル)。
VRoidVRM が利用してる NormalMap やシェーダーの差異のようです。VRoid のバージョンアップに伴い、少しずつ良い感じに変換されるようになっています(特に VRoid Studio 0.1.x で作ったものは、かなりギラつく→ 0.2.13 以降で再エクスポートすると良くなる)。

[-] サイドパネルに表示されている「モデル情報」とVRoidHubパネルの「利用条件」に表示されているライセンス情報が違う
→ サイドパネルに表示されている情報は基本的に VRM モデルに埋め込まれているメタデータが表示されます。ただし、VRoidHub からロードしたモデルの場合、メタデータが空 or デフォルトになっている項目を VRoidHub に登録されている情報で補完します(その場合、[*VRoid Hub] が付きます)
 VRoidHubモデルの場合、詳細画面(利用条件)に表示されるライセンスは「追加ライセンス」となるため、パネル上では各種の「その他の条件」のリンクから確認できます。また特定のキャラクターライセンスなど(例:ユニティちゃんライセンス)も「その他の条件」に設定されていることもあるので、必要であればリンク先を確認して下さい。

[-]「Look At Me」が効いてない気がする
→ ダンスのように大きく首を動かすモーションでは特にわかりずらいです。「T-Pose」にして試してみて下さい。
また、目にボーンが入ってないモデルでは視線を動かせません。あと、常に「こっちを見る」ギミックが入っているモデルも効果がありません(その場合は逆にオフにしても「こっちを見る」感じになります)。

[○] モデルによっては一部欠けて表示される(特にバックスクリーンカメラ)。[ver.0.19 にて Fix]
→ モデルによってはメッシュの連結(親ボーンのリンク)とバウンズが上手くマッピングできず、各パーツの bounds がカメラの表示領域から外れ、カリングされてるようでした。少し負荷は上がりますが、カメラ領域外にいるときもカリングされないように修正しました(このアプリでは1体なので、負荷より表示を優先すべきと考えた)。

[○] BVH モーションがだんだん音楽から遅れていく。[ver.0.22 にて、再生速度調整機能を追加]
→ 特に他の形式から BVH に変換した場合など、フォーマットによる誤差(BVH はフレームベース[1フレームごとにデータがある]だが、フォーマットによっては時間ベース[一定間隔ごとにデータがあり、間は自動補間する]で作成されているデータもある。MMDなど)、ものによっては実機との負荷の影響もあり、少しずつ遅れていくようです(例えば BVH が 60fps で作られていたとしても、実機で確実に 60fps 出るわけではないので、少しずつずれていく)。再生システムを変更することも考えましたが、既存のデータの見え方も変わってしまうため、独自に再生速度を調整できるようにし、より汎用的に利用できるようにしました(再生速度操作によってスローモーションや早送り再生も表現できる)。BVH のデータと現実時間の遅延誤差は実機の処理能力にもよりますが、再生速度(Motion Speed)を約 1.01~1.018 倍くらいにしておくと、音楽とも合うようです(内部処理が55fpsくらい出ている場合。実際には端末ごとに平均的な値を見つけるしかない。私がテストしている実機の場合 1.016 倍くらいが丁度良いことが多い)。再生速度はファイル名ごと(フォルダ名を含まない)に記憶されるので、ちょうど良い値を見つけておけば、いつでも再現できるようにしてあります。

[○] BVH を読み込んだが、動かない。[ver.0.24 にて Fix]
→ エクスポートした3Dツールの座標系の違いで読み込めなかったり、見た目がおかしくなったりするようです。当アプリで読み込める BVH は「Y-up 右手座標系」(OpenGL系、Maya, Daz3D など)の座標系になります。「Z-up 右手座標系」(3ds Max など)の場合は、見た目がおかしくなります。[>>3Dツールごとの座標系など]
また内部ライブラリのバージョンアップでも修正されました(当アプリでは v0.24β以降)。
参考までに初期に読み込まれている BVH ファイル(「test.bvh」)を同梱して置きます(このファイルと同じ座標系)。
[>>現在、読み込み可能が確認されているもの]

[○] 表情が反映されないものがある。少しおかしくなることがある。[ver.0.28 にて、一定パターンのみ Fix(ユーザー定義のため、全てはカバーできない)]
→ VRM のプリセット表情として使えるものが、キャラによって定義されてない場合があります。定義されてないものは無視されます。
「あいうえお」が揃ってない、片目を閉じる(ウインク)などが定義されてない、等のモデルも多くあります。
また、笑顔のブレンドシェイプ(プリセットの Joy)が「目のにっこり+口を大きく開けて笑う」のようになっているとき、リップシンクの「あいうえお」が実行されると、2重に口のモーフがブレンドされておかしくなることがあります。

※CRS では VRM のプリセット表情の「Joy」(にっこり), Blink_L」(ウィンク),「Blink」(目閉じ)と口パクに「A, I, U, E, O」(あいうえお)を使っています。当アプリでは 0.27β以降、VRoid に関しては Joy のデフォルト定義「~_ALL_Joy」の代わりに「~_EYE_Joy」を使用することによって、リップシンクとの2重モーフにならないように対処しています(VRoid Studio 0.2.8 までで生成された VRM で確認済み)。また、VRoid 以外では Joy に定義した各ブレンドシェイプの名前に "mouth", "あ", "ワ" が含まれている場合、口のブレンドシェイプとみなして無視するようにしています。

[○] 最新バージョンのモデルが VRoid Hub からロードできない。[ver.0.86 にて Fix]
VRoid Hub システムは最新10個のローカルキャッシュを保持しています。これは利用頻度の高いモデルを何度もダウンロードしないようにするためです。キャッシュが無効になった時点で新しいバージョンがダウンロードされます(→ 内部 SDK のアップデートにより、自動的に最新版がダウンロードされるようになりました)。

[○] シェーダーの Fade モードが反映されなくなった? [ver.1.0 にて Fix]
→ GLTF を読み込んだ際に Fade モード(アルファで透明になる素材)が反映されてないことを確認しています(0.87~0.99β)。この問題は v1.0 以降を利用することで解消されます。

●Fade モードを使っている素材が透過されてない
v0.86β以前
v0.87~0.99β



[○] VRoid Hub の Group を開くと「403 Forbidden」が出る。 [v.1.6 にて Fix]
→ Group 機能は登録した時点の情報が保存されています。登録されているキャラクターが更新された場合、サムネイルが古いものを参照している場合があります。まだサーバー(Hub)に残ってる場合は問題ありませんが、削除(参照不可)されている場合エラーが出るようです(白い画像になっている)。その場合はリロードボタンを押すか、クリック可能なら(「削除された」エラーが出ないなら)詳細画面の表示で更新されます。
 v1.6 にて、「403 Forbidden」が出たときは、VRoidHubから最新情報をダウンロードし、サムネイルキャッシュを自動更新するようにしました(1回のみ)。キャッシュが原因でない場合、サーバーからモデル自体が既に削除されている可能性があります。

[○] VRoid Hub の All タブでキャラが重複して表示される [v.1.6 にて Fix]
v1.6 にて不具合が確認されたため、修正を入れました。



■VRoid Hub について(連携方法)

 VRoid HubVRMフォーマットで作られた 3Dモデルの共有プラットフォームです。pixiv が運営しており、同社が提供しているVRoid Studio を使えば、誰でも簡単に3Dモデルを作成/アップすることができます。

 また VRoid Hub には連携機能があり、このアプリではサイトでハートを付けたもので、他の人の利用OKのモデル、または自分でアップロードしたモデルであれば、直接アプリにロードすることができます。



●VRoid Hub との連携方法

1.初回時は [VRoid Hub に接続] でブラウザが開きます。



2.「あなたのアカウントをVRM Live Viewerを連携しますか?」で [連携する] を押します。



3.連携許可すると認可コードが発行されるので、PCの場合はコピーして、アプリの入力ボックスに入力して下さい。スマホの場合は自動で入力されます。



 これで連携完了になります。次回以降は接続するだけでOKです(※ログアウトした場合は同じ手順をします→認可コードは毎回変わります)。
※ログインに失敗したときは、何度かやり直してみて下さい(特にスマホではなぜか上手くログインできないことがあります)。


●VRoid Mobile で作ったキャラを使う

VRoid Mobile
VRoid Hub

 VRoid Mobile で作ったキャラ(キャラクター)なら、VRoid Hub 連携でアプリにロードして使えます。

 「Yours」タブには VRoid Hub へアップロードしたキャラのみが表示されるので、「利用する」でアプリにロードして踊らせて下さい。



●フィルタの使い方

 現在表示されているリスト(Pickup / Yours / Liked タブごと)に表示されているサムネイルの中から、条件に合ったモデルだけを抽出できます。ちなみに「Yours」タブは自分のアップロードしたモデル、「Liked」タブは VRoidHub (Web)でハートを付けたモデル、「All」タブはその両方となります(v1.9以前)。
 v1.10i以降からは「All」→「Pickup」タブに置き換わり、VRoidHub のピックアップから、アプリで利用できるモデルのリストが表示されます(更新は不定期だそうです。アプリ連携OKのみ表示となるため、あまり変わりませんね…|||orz)。

 フィルタの種類は以下の3種類となり、種類を選択すると、その内容をドロップダウンで選択できます。

[Tag] タグの中から検出します。ただし、VRoidHub (Web) とは少し異なり、大文字小文字を区別しません(1つにまとめられます)。
[Author] 作者から検出します。同名であっても別々になります。
[Name] モデル名から検出します。別のモデルで同名の場合も検出されます。

[☆/★] お気に入りのオフ/オンを切り替えます。リストに表示されてないものは表示されません([See more] で対象となるサムネイルが表示されると出てきます)。
[×] フィルタ解除、または一番上の空白で解除となります。
リロードは1度全てをリセットし、サーバーから最新の情報を取得し直します(詳細画面[利用条件]でハートを外してもリストに残ってますが、リロードすると消えます)





 また、利用条件(モデルの詳細画面)からもフィルタを利用できます。モデル名をクリックすると [Name] フィルタが、作者名をクリックすると [Author] フィルタが実行されます。左にある アイコンでは VRoidHub (Web) でのページがブラウザで表示されます。


 タグをクリックすると、「タグを選択」(Select Tag)が開きます。このダイアログのオプションが「フィルタ」(Filter)の場合、フィルタで実行されます。

 「Web (VRoidHub)」を選択した場合は VRoidHub で検索されます。「ダウンロードOK」にチェックを入れた場合は、ダウンロード可能なものに絞り込みされます。

VRoidHub 上の検索とアプリ内でのフィルタの検出結果は少し異なります。例えば VRoidHub 上では「VOCALOID」と「vocaloid」は別々の結果が出ますが(2019/9 掲載時点)、フィルタでは同じものとして検出されます(大文字小文字違いは1つにまとめられます)。

●リストの中からフィルタで見つける場合


●Web (VRoidHub) でタグ検索する場合
(「ダウンロードOK」をオンにすると、絞り込み検索ができます)



●グループの使い方

 グループとは自由に分類わけできるフォルダのようなものです。各モデルごとにグループへ登録することができ、複数のグループにまたがることも可能です。

 リスト画面ではサムネイルの下に表示されるバーでグループへの操作ができ、詳細画面(利用条件)では右上にあるアイコンからポップアップで登録と削除ができます。

 グループ自体の編集は「Group」タブで、右端の [Group Edit] ボタンから新規作成 / 名前変更 / 削除ができます。
※デフォルトグループ「(Default)」は常に存在し、名前変更・削除などの編集はできません。また、ドロップダウンでは常に最上位に表示されます。

※サムネイルを含むモデルの情報は登録した時点のものになっている場合があります。その場合はリロードボタンを押すことにより、最新情報を取得できます。

(リスト画面)
グループ登録モード オン/オフ 切り替え
 グループに追加モード
 別のグループへ移動モード(Groupタブのみ)
 グループから削除モード(Groupタブのみ)

グループ編集画面へ

リストのモデル情報の再取得(リロード)



(詳細画面 [利用条件])
グループへ登録/削除 ポップアップ表示


※グループ機能はこのアプリ独自のものであり、データはローカルに保存されています。そのため、例えば PC 版と Android 版の両方を使っている場合、データは別々に保存されます(サーバーを介しません)。





■各種素材について/入手方法 (About various materials / How to get)

 アプリ本体は基本的に制限がある素材は使ってませんが、一般配布されている素材をロードして利用する場合、各素材ごとに利用制限がある場合があります。VRM, BVH, VMD, GLB, GLTF, 画像, サウンドなど素材自体の制限等は、その素材の利用規約に従って下さい。

※VMDなどMMD素材の別ソフト利用はMMD開発者自ら全面的に許可されてますが、各素材ごとの利用許諾範囲は確認する必要があります。各素材の添付Readmeや、Webサイトなどに提示してある利用規約、または直接著作者に問い合わせる等、別途確認して下さい。

 素材の利用は、自己責任で権利者の方々の迷惑にならないよう常識の範囲内でお願いします(多くの場合、クレジット表記しておくと良いです)。

>>VMDの利用可能確認済みのリスト (使用例)

 The application itself does not basically use restricted materials, but when loading and using the materials that are generally distributed, there may be usage restrictions for each material. For restrictions on the material itself, such as VRM, BVH, VMD, GLB, GLTF, Images and Audio files, follow the rules for the materials.

* The use of other software for MMD materials such as VMD is completely permitted by the MMD developer, but it is necessary to confirm the usage permission range for each material.
Please check the attached Readme of each material, the terms of use presented on the website, etc., or contact the Author directly.

 Please use the materials within your common sense so that you do not inconvenience the rights holders at your own risk (In many cases, it is good to write credits).

>>List of availability confirmed (Example of use)



■VRM(3Dキャラクター)の入手方法

 一般的に Web で配布されているものを利用できます。各モデルの利用方法はその規約に従って下さい。


VRoid Hub
VRoid Mobile


ニコニ立体ちゃん
ニコニ立体で "vrm モデル配布" を検索


 BOOTHとはコミケなどのように、個人の創作活動でも販売できるネットショップサービスです。最近ではVRM, VRoidモデルやカステム用の素材なども販売されています。無料の素材などもあるので、色々覗いてみるのも良いかも知れません。


BOOTHで "vrm" を検索
BOOTHで "vroid" を検索
BOOTHで "vroidテクスチャ" を検索 (衣装などのカスタマイズ素材)


 アプリのヘルプボタンから「ダウンロード&リンク」でも利用できる VRM などを紹介しています。
東北ずん子
アクシア[縞パン ver.]アリシア色改変モデル。@不沈空母ニコニ立体ちゃんライセンス


(c) SSS LLC.(ず・ω・きょ)
(c) DWANGO Co.,Ltd. ニコニ立体ちゃんライセンス


●VRMファイルを作ってみたい

 VRM は3Dエンジン「Unity」で、「UniVRM」というオープンソースライブラリから出力することで作成できます。元のモデルは FBX でも他の形式でも構いません。Unity に取り込んで変換できれば利用できます(既存の VRM を取り込んで編集することもできます)。

VRMファイルを作ってみたい
※アクシア(縞パン ver.) は実験用にこの手順に従ってコンバートしたものです(テクスチャ:@不沈空母)。

 しかしながら、Unity のようなツールを使いこなすのはなかなか難易度が高く、ブレンドシェイプや揺れものなどセットアップするのはとても大変です。

 そこで、現在では直感的に3Dキャラクターモデル(アバター)を作成できるツールが配布されています。最近ではプリセットの素体などもバリエーション豊富なので、少し手を加えるだけでも個性的なキャラクターを作成することもできます。



VRoid Studio

 pixiv が開発している3Dキャラクターモデリングツールです。同社が運営している VRoid Hub へもそのままアップロードできるので、毎日非常にたくさんのモデルが作成されています。また同社の BOOTH にも素材が出品されていることが多く、既存のモデルを元にカスタマイズすることもできます(素材の利用規約にもよりますが、改変・再配布可のものも多くあります)。

 また、スマホ専用になりますが、VRoid Mobile では衣装セットやパーツ編集で簡単にモデルを作ることができます。作ったモデルは連携アプリで利用することも可能です(VRM Live Viewer で踊らせることもできます)。



セシル変身アプリ (Fantia)

 VTuber のアバターとして使える、3Dアバター作成支援ツールですが、VRM 出力機能も備えています。こちらもプリセットが豊富で、衣装だけでなく、ケモミミやバニー、しっぽなど、コスプレっぽい素材も入っています。Fantia にて「セシルちゃんファンクラブ」となっていますが、誰でも登録することができ、無料会員でもアプリをダウンロードすることができます。会員になれば、直接開発者にメッセージを送ることができるので、色々リクエストしてみるのも良いかも知れません(コミッションでそういった事もやってます)。



■GLB(3Dモデル)の入手方法

 ニコニ立体など、3Dモデル共有サイトで入手できます。各モデルの利用方法はその規約に従って下さい。


ハグレ王国.glb / 流転 (ニコニ立体)

ニコニ立体で "Vキャス背景" を検索
※検索キーワード:"glb" でも出てきますが、まだほとんどのモデルがダウンロードできないようです(2018/10 時点)。

GLBで背景モデルを自作する
glbファイルの作り方

 ちなみに GLTF と GLB は内部的には同じものです。GLB は GLTF の一連のファイルをアーカイブ(圧縮)したものらしいです。しかし、GLB はバーチャルキャストでの使用が考えられていることが多いため、スケールが等倍(Unity の1ユニット=1m 基準。1ユニットの値が3Dモデルツールによって違うため、3Dモデルを他のソフトで用いると、スケールが異なってしまう問題が出る)で作られていることが多く、VRM系のアプリでは扱いやすいメリットがあります(もっと流行って欲しいですね(笑) ← 今は配布されているものがあまりにも少ない |||orz)。



■GLTF(3Dモデル)の入手方法

 Sketchfab など、3Dモデル共有サイトで入手できます。各モデルの利用方法はその規約に従って下さい。

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


Author: Hedgehog Boo
License: Attribution 4.0 International (CC BY 4.0)

(sea of star の設定ファイル)
sea_of_star_scene.json(右クリックで「名前を付けてリンク先を保存」)

Sketchfab
「Search」で検索し、オプション(OTHERS)で「Downloadable」にチェックを入れると、ダウンロード可能なものに絞れます。各モデルページの「Download」を押すと「Autoconverted format (glTF)」があるので、ダウンロードして「モデル読込」から "~.gltf" を読み込みます(※シェーダ等の違いにより、完璧な再現はできないのでご了承下さい)。
Sketchfab のモデルは各作者のモデリングツールに依存するため、あまり等倍(1ユニット=1m)は無いようです。ほとんどの場合、「3Dオブジェクトの配置 (3D Object Transform)」を使ってサイズや位置を調整することになります(※大き過ぎたり、小さ過ぎたりすると見えないので、その場合はスケールを適当に変えてみると元サイズがわかります)。



■360度, スカイドーム(全天球)画像の入手方法

 RICOH THETA など360度カメラで撮影・保存した画像や、フリー素材として配布されている全天球画像を利用できます。各素材の利用方法はその規約に従って下さい。


日本列島360 全天球静止画(BOOTH)

※「日本列島360 全天球静止画」は無料でダウンロードできます。


Author: VoxelKei
License: クリエイティブ・コモンズ 表示-非営利 4.0 国際 (CC BY-NC 4.0)

>> BOOTHで "全天球" を検索


++skies;

 超高解像度のスカイドーム(全天球)が多数配布されています。
 利用規約ガイドラインを見てみると「商用・非商用に関わらず使用可」「制作物の形態,用途を問わず,自由に使用できる」とあるので、問題なくアプリで利用できます。
 また、「素材へ加工(リサイズ,トリミング,色調補正,合成等)」もOKでクレジット表記も任意なので、かなり自由に使えると思います。

利用規約
利用ガイドライン

 私が試してみた所、最小サイズの「PNG8」でも 8000x4000 px という十分過ぎるくらいの解像度なので、4000x2000 px または 3840x1920 px にリサイズして使う方が良いかも知れまぜん(ちなみに2のn乗倍にするとメモリ効率が良くなる。スマホの場合 2048x1024 まで落としても良い=あまり大きいとフリーズしてしまうため)。
 360度画像の設定 (360deg Image Setting)Rotation (回転) を -90 度にすると、ちょうど良い感じになるものが多いです。


Author: aokcub (BOOTH / FANBOX)


音街ウナ公式

 本来は動画/2D素材ですが、壁紙素材を360度画像として全天球に貼り付けて、回転やサイズを調整すれば、簡単なドーム状のステージになります。シームレスなものは特に使いやすいです。

>> 音街ウナ キャラクター使用に関するガイドライン(※配布はニコニ立体, ニコニ・コモンズ)


RICOH MIKU THETA (ハードウェア)

 言わずと知れた、超有名360度カメラ。専用アプリも配布されています。

RICOH THETA Type HATSUNE MIKU(アプリ)



■動画素材(背景)の入手方法

音街ウナ公式

 本来は2Dの動画素材ですが、アプリでは全天球に貼り付けて回転などを調整すれば面白い効果が得られる場合があります。

>> 音街ウナ キャラクター使用に関するガイドライン(※配布はニコニ立体, ニコニ・コモンズ)
※基本的に音街ウナのキャラやイメージイラストなどの商用利用以外は、自由に使っても問題ないようです。



■BVH(モーションファイル)の入手方法

 一般的に Web で配布されているものを利用できます(データによっては読み込み失敗するものもあります)。各モーションファイルの利用方法はその規約に従って下さい。

>>使用できる BVH を作る(変換する)

Live Animation モーションライブラリ
 各サンプルの「BVHサンプルXX」(XX:番号)を右クリックで「名前を付けてリンク先を保存」でダウンロードできます。
BVHモーションの再生設定 (BVH Play Setting) で [Rotation] を 180度回転して再生した方が良いものがほとんどです。

音街ウナ公式
 VMD/BVH のモーションデータがニコニ立体で配布されています。残念ながら BVH をそのまま使うことはできませんでしたが(たぶん MMD の座標系(左手系)?)、VMD を「Live Animation」で BVH 変換したら使えました。「あざとかわいいターン」や「オーディエンスのループ」あたりは色々使えそうですね。
>> 音街ウナ キャラクター使用に関するガイドライン(※配布はニコニ立体, ニコニ・コモンズ)



The Daz-friendly BVH release of CMU's motion capture database
 カーネギー・メロン大のデータベースのモーションキャプチャーデータをBVHに変換したものらしいです。各 zip のリンク(「Zip file for BVH directories 01-09」など)をクリックすると、緑色のダウンロードボタンが出るので、それを押すと zip がダウンロードできます。ボタンを押すと、海外らしい結構うざい広告(笑)が出ますが、閉じてしまって構いません。現在 2548 ものモーションキャプチャーデータを利用できます(>>モーションリスト)。特に使用に制限はなく、商業利用も可能のようです。元々学術研究用でもあるので、割と好きに使っても問題ないと思われます。

 また、少しページの下へ行くと「SECONDARY RELEASE: Daz-friendly hip-UNCORRECTED BVH files release.」というのもあります。こちらは「Hips」のオフセットが0でない(補正されてない)データのようです。「フットスリップの問題が発生した場合にのみ、これらのファイルを選択して使用してください」と書いてありますが、読み込んでみると、少しスムーズな動きをする気がします。ただし、いきなりコマ飛びのような動きも多いです。

 他のサンプル(3dsMAX用など)を試してわかったんですが、エクスポートした3Dツールの座標系の違いで読み込めなかったり、見た目がおかしくなったりするようです。使用ライブラリの BVH インポータは OpenGL系(「Y-up 右手座標系」:Daz3Dも同じ)なので、例えば 3dsMAXなど「Z-up 右手座標系」の場合は見た目がおかしくなります

Perfume Global Site
 Projectページの「DOWNLOAD」から BVH と音楽ファイルがダウンロードできます。「Terms of use」(利用規約)にチェックを入れるとDLできるようになります。音楽もダウンロードできるので(※配布終了してしまったようです。残念… |||orz)曲リスト(Music Select):から [プレイリストに追加]:で読み込みできます(※PC版の場合、エクスプローラからアプリにファイルをドラッグ&ドロップしても追加できます)。
BVHモーションの再生設定 (BVH Play Setting) で [Rotation] を 180度回転して再生した方が良いです。

※直接読み込める BVHファイルの情報などありましたら、ツイッターでもメールでも教えて貰えると嬉しいです。このページにまとめて掲載させて頂きます(「BVHモーション配布」みたいのはあまり無いんですよね…)。



■VMD(モーションファイル)の入手方法

 主に ニコニコ動画BowlRoll で「MMDモーション配布あり」などのタグが付いている場合が多いです(BowlRoll の DLパスがニコ動に記載されていることが多い)。または「VPVP wiki」などを参照するのも良いかも知れません。

 zipで配布されていることが多く、中身には大抵 readme.txt などの利用規約(条件)が書かれたテキストファイルが添付されているので、制限事項などを確認して下さい。アプリで再生して自分ひとりで観る分にはそれほど利用法を気にする必要ありませんが、動画にして配信したり、データを改変して利用する場合は制限があるかも知れません。

 また、「MMDやMMMのみ利用可」というものもあるので、その場合は利用しない方が良いでしょう。よくわからない場合は作者様に直接聞いてみるのが良いと思います(きちんと利用法や非商用などを伝えれば、許可が頂けることも多いです)。

 使用の際は、利用条件範囲内で権利者の方々の迷惑にならないよう常識的な使い方でお願いします。通常の再生だけなら、特に問題にはならないでしょう(そもそも MMD素材の別アプリ利用は、MMD開発者(樋口M)様が全面的に許可してるため、色々なツールが生み出され、発展してきたわけで)。多くの場合、クレジットを書いておくと良いです

●既に利用確認済みのリスト(使用例)

 以下は、VRM Live Viewer での利用をあらかじめ確認できたものです。改めて権利者様方々に問い合わせる必要はありません。

利用条件:
・非商用目的・個人利用に限る
・クレジットを記載して下さい(英表記があるものは、それも添えて下さい)

(※正確には、全ての素材の利用条件を包括できる条件です)

 言い換えると、商用目的・法人利用でこれらのモーション使用はご遠慮下さい
 または、別途モーション権利者様に問い合わせて下さい(アプリ自体は特に制限してないので、許可済みなら構いません)。


●XYZの魔法
モーションデータ:hino 様 [ニコ動] [BowlRoll]
振付:足太ぺんた 様 [ニコ動]
楽曲:Nia 様 [piapro] (piapro ライセンス)
※2.3秒くらい遅延再生すると良いです。
(Music Select:画面右下 アイコンから、楽曲を選択し、のアイコンから「Music Start Timing」で調整できます)

●WAVEFILE
モーションデータ:hino 様 [ニコ動] [BowlRoll]
振付:一杯くらい良いじゃないですか 様 [ニコ動]
楽曲:ラマーズP 様 [ニコ動] (*full) [piapro] (piapro ライセンス)
※5.2秒くらい遅延再生すると良いです。
フルバージョンは楽曲のリンクが切れてたので割愛。

●ねこみみスイッチ
モーションデータ:hino 様 [ニコ動] [BowlRoll]
振付:アグー 様 [ニコ動]
楽曲:daniwellP 様 [ニコ動] [HP] [利用規約]
※1秒くらい遅延再生すると良いです。

●シュレディンガイガーのこねこ
モーションデータ:hino 様 [ニコ動] [BowlRoll]
振付:アグー 様 [ニコ動]
楽曲:daniwellP 様 [ニコ動] [HP] [利用規約]

●どうでもいい!
モーションデータ:hino 様 [ニコ動] [BowlRoll]
振付:子森久伊亜(Komori Queer)様 [ニコ動] (*削除済み)
楽曲:ぶりる 様 [ニコ動] [piapro] (piapro ライセンス)
※5秒くらい遅延再生すると良いです。
※再生すると、足が不自然な動きになることを確認してます(最初で足が開いたり、途中足が浮いたりする ※調査中)。

●千本桜 (IAカバー)
モーションデータ:あやめ 様 [ニコ動] [BowlRoll]
振付:紫音リア 様 [ニコ動]
楽曲:Spiel 様 [IAカバー] [piapro] (piapro ライセンス)
原曲:黒うさP 様 [ニコ動] [HP/利用規約]

●普通の撮影ポーズ/いろいろ撮影ポーズ など
ポーズデータ:KEITEL 様 [ニコ静] [BowlRoll]


※リストは追加・変更・削除されることがあります。
※リンク切れになった場合はご了承下さい。


 基本的にモーションデータ作者の hino 様, KEITEL 様からは「非商用であれば利用可」(クレジットを添えて) と確認済みです(※ただし、各素材の使用条件は readme で確認して下さい)
(※正確には、全ての素材の利用条件を包括できる条件です)
>> hino 様 BowlRoll のリスト
>> KEITEL 様 BowlRoll のリスト

 また、振付作者の 足太ぺんた様, 一杯くらい良いじゃないですか様, アグー様, 子森久伊亜(Komori Queer)様, 紫音リア様方々も同様に「非商用なら利用可」(クレジットを添えて) と確認済みです(※正確には、全ての素材の利用条件を包括できる条件です)。

 上記以外でもその組み合わせなどで、利用条件内であれば問題ありません。上記のリストは現在でもなるべく揃っていて、すぐに利用しやすいものをピックアップしたものです。

 また、各自で確認や許可を得ている場合は、この限りではありません。自己の責任において利用して下さい。

 利用条件を守って正しく使用する分には、普通に利用して貰っても大丈夫と確認済みなので(クレジットさえ記載して貰えば、動画投稿など、どんどん使ってもOK。作者様方々には前もってアプリによる利用を承認して頂いているので、もしかしたら作者様も観てくれるかも知れません)、楽しんで下さい!





■使用できる BVH を作る(変換する)

 現在の所、ヒエラルキーによるボーン構造やオフセット値など(?)、VRMLiveViewer で利用できるものとそうでないものがあるのがわかっています(使用ライブラリの BVH インポータは OpenGL系(「Y-up 右手座標系」:Daz3Dも同じ)なので、例えば 3dsMAXなど「Z-up 右手座標系」の場合は見た目がおかしくなります)。

 なので、非常に大雑把で正しいやり方とは言えないと思いますが、以下に簡単に利用できる方法を書いておきます。それは「Live Animation」(掲載時点:β4.65)というアニメーション(モーション)作成ソフトを使うことです。このソフトはキネクト(モーションキャプチャー)を取り込んだり、他のモーションファイル形式を変換したりできるソフトです。動作確認はフリー版(β4.65)でしてます。

1.Live Animation を起動したら、キャラクターの中から「johnny」君を選択します。他のキャラでも試してみましたが、「johnny」君以外は上手く行かないようです(追加キャラクターも試しましたが、見た目がおかしくなるようです) BVHインポータのバージョンアップにより修正されました(当アプリでは v0.24β以降)。



2.次に再生するモーションファイルをドラッグ&ドロップします(形式は何でも構わないが、BVHエクスポートしても、読み込めるのとそうでないものがあるので注意)。例えば「モーションライブラリ」で配布されている「~.lam」なども利用できます。必要あればアニメーションを編集しても構いません。



3.メニューから「ファイル>エクスポート>BVH」をすると、BVHエクスポートのダイアログが開きます。ファイル名以外の項目では赤で囲んだ「右手座標系」と「基本ポーズの反転」をチェックする必要があるようです。他のオプションは任意で設定して下さい。



 あとはエクスポートした「~.bvh」を VRMLiveViewer に読み込みます。何らかが原因で使用できない場合は、エラーログが表示されます([×]ボタンで閉じることができます)。fbx や他の BVH 配布サイトの bvh も試したことがありますが、利用できないものも多くあります(→ BVHインポータのバージョンアップで修正されました(当アプリでは v0.24β以降)。ただし、3dsMAXでエクスポートしたものなど「Z-up 右手座標系」の場合は見た目がおかしくなります)。

 また、BVHフォーマットは1フレームのデータを列挙した方式であり(パラパラアニメのようなイメージ)、例えばVMDのようなキーフレーム方式(一定時間ごとにデータがあり、その間はコンピュータで補間する)とは異なるため、再生速度に誤差が出ます(1フレーム:1/60 = 0.0166666…(無理数) だが、コンピュータ内では 0.0166667 となるため、僅かな誤差が積もって遅延となる。またPCのスペックにも依存する)。
 その場合はBVH Play Setting」で Speed を調整すれば近い感じにできます(プリセット値の「1.016」(倍) にすると誤差の少ない速度になります。ただしその分、音楽とは頭が少しずれてしまうので、「Music Start Timing (音楽の遅延再生)」で調整した方が良い場合があります。これらもPCのスペックに依存するので、微調整した方が良い場合があります。
 また、通常VMDは補間曲線も入ってる場合も多いですが、BVHでは補間というもの自体がないため、直線的な動きになってしまうことが多いようです(変換ツールの計算精度にも依存します)。



■利用したオープンソースプロジェクト・素材など

[VRMビューワ/VRMインポーター]
VRM
UniVRM

MIT License
Copyright (c) 2018 DWANGO Co., Ltd. for UniVRM
Copyright (c) 2018 ousttrue for UniGLTF, UniHumanoid
Copyright (c) 2018 Masataka SUMI for MToon

[VRoid SDK / VRoidHub, BOOTHロゴ]
Copyright (c) pixiv All Rights Reserved.

[ライブモーション&ステージ&楽曲]
ユニティちゃんライブステージ!
ユニティちゃんライセンス(UCL)
(c) Unity Technologies Japan/UCL

ミライ小町 Unity プロジェクト
(ミライ小町ライセンス)
(c) BANDAI NAMCO Studios Inc.

[ニコニ立体ちゃん(アリシア)]
(c) DWANGO Co.,Ltd. ニコニ立体ちゃんライセンス

[アクシア(アリシア改変モデル)]
(c) 不沈空母

[リップシンク]
Oculus Lipsync
Oculus VR, LLC Software Development Kit License
Copyright (c) 2015 Oculus VR, LLC. All rights reserved.

AniLipSync
MIT License
Copyright (c) 2018 XVI Inc.

[UniRx / UniTask]
MIT License (UniRx) / MIT License (UniTaask)
Copyright (c) 2018 Yoshifumi Kawai
Copyright (c) 2019 Yoshifumi Kawai / Cysharp, Inc.

[UnityWindowsFileDrag&Drop / BMPLoader]
MIT License
Copyright (c) 2017-2018 Markus Göbel (Bunny83)

[TGA Loader]
Copyright (c) 2014 mikezila
[Original code] (c) 2013 aaro4130

[LoopScrollRect]
(MIT License)
Copyright (c) 2017 Kanglai Qian

[UnityCipher]
MIT License
Copyright (c) 2018 TakuKobayashi

[UnityVMDPlayer]
MIT License
Copyright (c) 2019 hobosore

[NAudio]
Microsoft Public License (Ms-PL)


[東北ずん子アイコン]
(c) SSS LLC.(ず・ω・きょ)

[音街ウナアイコン/ロゴ]
(c) MTK / INTERNET Co., Ltd. All rights reserved.

[Snow Effect]
ZENRIN City Asset Series
(MIT License)
Copyright (c) ZENRIN CO.,LTD. All Rights Reserved.

[Sphere100.fbx(全天球メッシュ)]
MIT License
Copyright (c) 2015 Makoto Ito

[日本列島360アイコン]
(c) VoxelKei

(※敬称略)

※各素材の著作権は著作者に帰属します。各素材についての利用方法などは、各著作者が提示されてる利用規約などをご確認下さい。









(関連記事)
【Unity】【VRMLiveViewer】GLBで背景モデルを自作する
【VRMLiveViewer】背景GLTFの設定リスト(使用例)
【Unity】【C#】Android で VRM(VRoid)を動的に読み込む
【Unity】VRoid(VRM)をインポートして動かす
【Unity】Androidのトーストやダイアログ、通知、音声認識、ハード音量操作など基本的な機能を使えるプラグインを作ってみた


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



category: アプリ

thread: ソフトウェア開発

janre: コンピュータ

tag: VRoid  VRM  サンプル  VRMLiveViewer 
tb: 0   cm: --


プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR