EasyVLv1.0.0
VirtualLens2 の操作をアシストするツールです。
1EasyVLとは
VirtualLens2 のよく使う機能を、Expression Menu からではなく手元で操作できるようにします。また、公式カメラの動きに合わせて VirtualLens2 のカメラが動きます。これにより、カメラの位置の調整や自撮りがより簡単になります。
できること
カメラ追従
公式カメラを開くと自動で VirtualLens2 が起動し、公式カメラと同じ位置・向きに移動します。
レンズ切替
焦点距離・F値を、手元に追加される UI から簡単に選択できます。
OSC 経由での VirtualLens2 制御
VirtualLens2 の制御(AutoLeveler、AFMode、PreviewHUD など)を EasyVL App から行えます。Unity で VirtualLens2 の設定を変えて再アップロードする手間を省けます。
しくみ
EasyVL は「アバターに入れるギミック」と「PC で動かすアプリ(EasyVL App)」の 2 つで動きます。使うときは EasyVL App を起動しておく必要があります。
2動作環境・同梱物
動作環境
| OS | Windows 10 / 11(64bit) |
| Unity | Unity 2022.3(VRChat 推奨バージョン) |
| 必要なもの | VRChat SDK3 Avatars / Modular Avatar / VirtualLens2(アバターに導入済みであること) |
| 動作確認 | Modular Avatar 1.18.7 / VirtualLens2 2.12.4 |
VRChat SDK・Modular Avatar・VirtualLens2 は同梱していません。先にそれぞれ導入してください。
パフォーマンスランクへの影響
切替方式で変わる項目は「選択バー(順送り)」の形で書いています。
| Skinned Mesh Renderer | 1 |
| マテリアル | 1 |
| ポリゴン数 | シンプル 782(770)/サイバー 34(22)/かわいい 874(770) |
| テクスチャ | 1 枚(2048×128px) |
| PhysBone | 0 |
| Contact | Receiver 4(1)/Sender 0 |
| Constraint | 1 |
| Audio Source | 1(切替音OFFの場合:0) |
| FX レイヤー | 18(14)(切替音OFFの場合:17(13)) |
| Expression Parameters | 同期 0bit(同期しないパラメータ 21(14))(切替音OFFの場合:20(13)) |
同梱物
├ EasyVL_1.0.0.unitypackage… Unity に入れるもの
├ EasyVLApp/… PC で使うアプリ
│ ├ EasyVLApp.exe… アプリ本体
│ └ EasyVLApp.config.json… 設定ファイル
├ README.html… この説明書
├ LICENSE.txt… 利用規約
└ THIRD_PARTY_NOTICES.txt… 第三者のフォント・ソフトウェアのライセンス
3セットアップ
1Unityunitypackage をインポートする
- アバターの Unity プロジェクトを開きます。
EasyVL_1.0.0.unitypackageを Project ウィンドウにドラッグ&ドロップし、Import を押します。Assets/Kagyo/EasyVLフォルダができれば完了です。
2Unityアバターに追加する
- ヒエラルキーで、VirtualLens2 をセットアップ済みのアバターを右クリックし、Kagyo > EasyVL を追加 を選びます。
- アバターの中に
EasyVLが追加されます。VirtualLens2 の External Pose Source の設定と、切替球の配置は自動で行われます。 - 追加された
EasyVLを選ぶと、インスペクターで設定を変えられます(あとからいつでも変えられます)。変えた内容はシーンビューの表示にすぐ反映され、アップロードするとアバターに反映されます。
| 項目 | 内容 | 初期値 |
|---|---|---|
| カメラを持つ手 | 公式カメラを持つ手。切替球はこの手についていき、反対の手で切り替えます。変えると切替球が初期位置に置き直されます。 | 右手 |
| 切替方式 | 順送り(切替球):触れて離すたびに次の段へ 選択(選択バー):バーの触れた位置の段を選ぶ (→ レンズの切り替え方)。変えると切替球が初期位置に置き直されます。 | 選択 |
| 向き・長さ | 選択方式のときだけ表示されます。選択バーを VirtualLens2 のプレビュー画面の下の辺(横)か横の辺(縦)に沿わせます。長さはプレビュー画面に合わせて自動で入ります(プレビューに合わせる で入れ直せます)。 | 横 |
| 焦点距離を切り替えるハンドサイン F値を切り替えるハンドサイン | 切り替えるときに作るハンドサイン(パー / 指さし / ピース / ロックンロール / ハンドガン)。焦点距離と F値で同じものは選べません。 | 指さし ピース |
| 見た目 | 切替球・選択バー・数字のデザイン(シンプル / サイバー / かわいい)。切り替え音も見た目に合わせて変わります | シンプル |
| マテリアル | 色を変えたいときに使います。マテリアルを生成 を押すと、今の見た目の色のマテリアルが作られて、ここに設定されます。マテリアルを選んで色を変えると、シーンビューの表示にすぐ反映されます。空にすると、見た目の色に戻ります | なし |
| 切替球の半径 (m) | 切替球の大きさ | 0.025(2.5cm) |
| 文字の大きさ (m) | 焦点距離・F値の表示の大きさ | 0.012 |
| 切り替え音・音量 | 段を切り替えたとき・選択バーで段が変わったとき・表示を切り替えたときに鳴る音。自分にだけ聞こえます | あり・0.6 |
| VirtualLens2 | External Pose Source の設定の状態。設定されていないときは 紐付ける を押してください | — |
初めて追加したときに、
Assets/Kagyo/EasyVL_Generated/EasyVL.prefab が作られます(メニューの Tools > Kagyo > EasyVL > Prefab を作成 でも作れます)。この Prefab をアバターにドラッグ&ドロップして追加した場合は、インスペクターの 紐付ける と 初期位置に戻す を押してください。EasyVL は 1 体のアバターに 1 つだけ入れてください(2 つ以上あるとアップロード時にエラーになります)。
インスペクターに「手動で設定してください」と出たときは
EasyVL/WorldOrigin/PosX/PosY/PosZ/RotY/RotX/RotZ/Offset/PoseTarget3Unity切替球と情報表示の位置を調整する(任意)
EasyVL を導入すると、ゲーム内で使う UI(切替球・選択バー・情報表示)が追加されます(詳しくは使用方法を参照)。必要に応じて、UI の位置を調整してください。
切替球は自動で置かれます(順送りはカメラを持つ手の少し下、選択は VirtualLens2 のプレビュー画面の下の角。プレビュー画面がカメラを持つ手と反対の手の側にあるときは、カメラを持つ手で持ったときの位置)。お好みの場所に移動してください。焦点距離・F値の表示(情報表示)は切替球に重なる位置に置かれます。
切替球と情報表示は、EasyVL(またはその中のオブジェクト)を選んでいる間だけ、シーンビューに表示されます。表示のオン/オフはインスペクターの シーンビューに切替球と情報表示を表示する で切り替えます(初期状態はオン)。オンのままアップロードしても問題ありません。
| やりたいこと | 操作 |
|---|---|
| 球と表示(と選択バー)をまとめて動かす | EasyVL/LensSwitch を移動。選択バーは LensSwitch の向きに沿って伸びるので、向きがずれていたら LensSwitch を回して合わせます |
| 表示だけを動かす | EasyVL/LensSwitch/Body/InfoBoard を移動 |
| 文字の大きさを変える | インスペクターの 文字の大きさ のスライダー(すぐ反映) |
| 対象を探す | インスペクターの LensSwitch を選択 / InfoBoard を選択 で、対象を選んでシーンビューに映します |
| 最初の位置に戻す | インスペクターの 初期位置に戻す(切替球と情報表示の両方が戻ります。Ctrl+Z で元に戻せます) |
4Unity / VRChatアップロードして、VRChat の OSC を有効にする
- いつもどおりアバターをアップロードします。
- VRChat で Action Menu(Expression Menu)を開き、Options > OSC > Enabled をオンにします。
5PCEasyVL App を準備する
EasyVLAppフォルダを、書き込みできる好きな場所に置きます(例:ドキュメント)。
Program Files の中は設定やログを保存できないため避けてください。EasyVLApp.exeをダブルクリックすると、設定画面が開き、タスクトレイにアイコンが出ます。
4使用方法
1ゲーム内での使い方
公式カメラに追従させる
EasyVL App を起動した状態で、EasyVL を入れたアバターで公式カメラを開きます。自動で VirtualLens2 が起動し、公式カメラの位置に VirtualLens2 のカメラが追従します。特に設定する必要はなく、自動で動作します。
飛行モードで公式カメラを離れた場所に動かしたときや、自撮りのときも、VirtualLens2 のカメラは公式カメラと同じ位置・向きについてきます。公式カメラを閉じると、VirtualLens2 も終了します。
レンズ(焦点距離・F値)を切り替える
VirtualLens2 が起動している間だけ使えます。カメラを持っていない方の手でハンドサインを作り、選択バー(順送り方式では切替球)に触れて切り替えます。切替方式は EasyVL のインスペクターの「切替方式」で選びます(初期値は選択)。
選択方式
ハンドサインを作ると、選択バーに区切りが表示されます。ハンドサインを維持したまま選択バーに触れて離すと、触れた段の焦点距離・F値に切り替わります。
順送り方式
ハンドサインを作り、切替球をすり抜けるように手を動かすと、EasyVL App で設定した順番に焦点距離・F値が切り替わります。
ハンドサインで切り替える内容が変わります(ハンドサインは EasyVL のインスペクターで変えられます)
| ハンドサイン(切り替える手) | 切り替わるもの | 初期設定の段階 |
|---|---|---|
| 指さし(初期設定) | 焦点距離 | 30 → 50 → 80 → 100 → 120 mm |
| ピース(初期設定) | F値 | 1.8 → 3.3 → 5.6 → 22 |
- 太字は初めて公式カメラを開いたときの値(50mm / F5.6)です。
- 段階・順番・初めの値は EasyVL App のレンズ切替タブで変えられます。
- VirtualLens2 の最大F値と同じ段(初期設定では F22)は、ボケ無効になります。
切替球・選択バー・数字を隠す
切替球に指で触れ続けると、UI の表示/非表示を切り替えられます。
隠している間はレンズを切り替えられません。表示を切り替えたときは、レンズは切り替わりません。触れ続ける時間は レンズ切替タブで変えられます。
2EasyVL App について
EasyVL App は EasyVL を使うときに PC で起動しておくアプリです。VRChat と OSC でやり取りして、公式カメラの位置や切替球・選択バーの操作を受け取り、VirtualLens2 を動かす値をアバターに送ります。VRChat との接続状態の確認や、レンズの段階、VirtualLens2 に送る設定の変更も、EasyVL App で行います。
タスクトレイのアイコン
起動すると、画面右下の通知領域(^ の中に隠れていることがあります)にアイコンが出ます。色で状態がわかります。右クリックメニューの一番上にも、今の状態が出ます。
| 操作 | 動作 |
|---|---|
| アイコンをダブルクリック | 設定画面を開く(右クリック → 設定を開く でも開けます) |
| 右クリック → 終了 | VirtualLens2 の追従を解除してから終了します |
| 設定画面の × / 最小化 | 終了せず、タスクトレイに戻ります |
| exe をもう一度起動 | 二重には起動せず、設定画面が開きます |
設定画面の見かた
設定を変えたら 適用 を押すとすぐ反映され、保存されます。入力に誤りがあると、その欄の下に赤字で理由が出て、タブに ⚠ が付きます。
| 場所 | 内容 |
|---|---|
| 1 状態 |
VRChat:接続中(OSCQuery を使わないときは受信中)/ 起動待ち / エラー(マウスを乗せると理由が出ます) アバター:EasyVL 検出(切替方式も表示)/ 未確認 公式カメラ:開いている / 閉じている 現在のレンズ:今の焦点距離と F値 |
| 2 タブ | 基本 / レンズ切替 / VirtualLens2 連動 / ログ |
| 3 ボタン | 適用:反映して保存 / 変更を破棄:適用前の入力を元に戻す / 既定に戻す:入力欄を初期値にする |
基本タブ
| 項目 | 内容 | 初期値 |
|---|---|---|
| レンズの位置 | 公式カメラを閉じたとき、VirtualLens2 が最後の位置に留まるか、手元に戻るか | 留まる |
| 起動 | Windows の起動時に EasyVL App を起動する(タスクトレイに格納した状態で起動) | オフ |
| 設定ファイル | 設定ファイルの場所。「フォルダを開く」で開けます | — |
EasyVLApp.exe は、中身が書き換えられているおそれがあります。本物か確かめたいときは、PowerShell で Get-FileHash EasyVLApp.exe を実行し、表示された値が BOOTH の商品ページに載せている SHA-256 と同じかを見比べてください。「詳細設定」は通常は変更する必要はありません。VRChat に接続できないときに見直してください。
| 詳細設定 | 内容 | 初期値 |
|---|---|---|
| OSCQuery を使う | オンのとき、他の OSC アプリと同時に使えます(受信ポートは自動で決まります) | オン |
| 受信ポート | 「OSCQuery を使う」がオフのときに使うポート(→ ポートが使用中のとき) | 9001 |
| 送信ポート | VRChat の受信ポートが自動でわからないときに使うポート | 9000 |
| 再接続 | VRChat が見つからないときや、他の OSC アプリを終了した後に試してください | — |
レンズ切替タブ
| 項目 | 内容 | 初期値 |
|---|---|---|
| レンズ切替を使う | オフにすると切替球・選択バーが反応しなくなります | オン |
| 焦点距離 [mm] | 焦点距離のハンドサイン(初期設定は指さし)で切り替える段階 | 30 / ★50 / 80 / 100 / 120 |
| F値 | F値のハンドサイン(初期設定はピース)で切り替える段階。VirtualLens2 の最大F値の段はボケ無効になります | 1.8 / 3.3 / ★5.6 / 22 |
| 表示/非表示までの時間 | 切替球にこの時間触れ続けるたびに、切替球・選択バー・数字の表示/非表示を切り替えます | 500ms |
| 情報表示 | 焦点距離と F値を球のそばに表示する | オン |
| 連続切替の無視時間 | 前回の切り替えからこの時間内の切り替えは無視します(1 回触れただけで 2 段進むのを防ぎます) | 200ms |
段階の編集のしかた
- 順送りでは左から順に切り替わり、最後の次は先頭に戻ります。選択バーでは、左の段ほど切替球の近くに並びます。
- 選択バーは段の数で等分されるので、段が多いと 1 段が狭くなります。7 段を超えると注意が表示されます(そのまま適用もできます)。
- 値をクリックすると、初めて公式カメラを開いたときの値(★)になります。
- × で削除、入力欄に値を入れて Enter(または 追加)で末尾に追加します。
- 値をドラッグするか右クリックメニューで並べ替えられます。小さい順に並べる もあります。
VirtualLens2 連動タブ
VirtualLens2 の範囲
アバターの VirtualLens Settings にある Min / Max Focal Length、Min / Max F Number と同じ値にしてください(初期値 12〜300mm / F1〜22)。ずれていると、切り替えた後の実際の値が表示とずれます。
公式カメラの開閉時に送るパラメータ
OSC 経由で VirtualLens2 を制御するパラメータを設定できます。公式カメラを開いたとき・閉じたときに、それぞれ設定したパラメータを上から順に送信します。
| やりたいこと | 操作 |
|---|---|
| パラメータを足す | プルダウンから選んで 追加(パラメータ名と値を手入力して追加も可)。同じパラメータは 1 行だけです |
| 値を変える | 各行の ▲▼。パラメータごとに決まった範囲の中でだけ変わります |
| 意味を知る | 値の右に意味が出ます。行にマウスを乗せると説明が出ます。VirtualLens2 公式マニュアル(開発者向けガイド)を開く で詳しい説明も見られます |
| 消す・並べ替える | 行をクリックして 削除、↑ 上へ / ↓ 下へ で並べ替え |
設定例:公式カメラを開いたときに AutoLeveler と PreviewHUD を有効にする
- 「開いたとき」の下のプルダウンから [位置と向き] 自動水平 (AutoLeveler) を選び、追加 を押します。
- 同じように [画面表示] プレビューHUD (PreviewHUD) を選び、追加 を押します。
- 一覧に追加された行の ▲▼ で値を変えます。この例では自動水平を 3(30°刻み)、プレビューHUD を 1(オン)にします。
- 適用 を押します。
プルダウンの一覧は EasyVLApp フォルダの VL2_OSC_LIST.json です。VirtualLens2 の更新でパラメータが増えたときは、ここに追記して EasyVL App を再起動してください。
ログタブ
動作の記録が表示されます。うまく動かないときの確認に使ってください。詳細ログ をオンにすると送受信をすべて表示します(アプリを終了すると元に戻ります)。ログをコピー でコピー、フォルダを開く でログと設定ファイルのあるフォルダを開けます。ログは EasyVLApp フォルダの EasyVLApp.log にも保存されます。
設定ファイル(EasyVLApp.config.json)を直接編集したい
設定ファイルを消してしまった場合は、EasyVLApp.exe を起動すると初期値で作り直されます。
5困ったときは
公式カメラを開いても VirtualLens2 が動かない
- EasyVL App が起動していて、EasyVL App の設定画面で VRChat が「接続中」になっているか
- VRChat の Action Menu で Options > OSC が Enabled になっているか
- EasyVL App の設定画面で アバター が「EasyVL 検出」になっているか(「未確認」なら、アバターのアップロード後に VRChat で OSC の Reset Config を実行)
- Unity で、アバターの VirtualLens Settings の External Pose Source に PoseTarget が設定されているか
VRChat が「起動待ち」のまま変わらない
それでも変わらない場合や、公式カメラを開いてもレンズが追従しない場合は、EasyVL App の「詳細設定」の OSCQuery を使う をオフにして 適用 してみてください(この場合、9001 番ポートを使う他の OSC アプリとは同時に使えません)。
「受信ポート 9001 を開けません」と出る(アイコンが赤い)
オフのまま使う場合は、EasyVL App の基本タブの詳細設定で受信ポートを別の番号(例:9011)に変えて 適用 し、VRChat の起動オプションに次を追加してください。
--osc=9000:127.0.0.1:9011レンズが切り替わらない
- EasyVL App のレンズ切替タブで レンズ切替を使う がオンになっているか
- ゲーム内で VirtualLens2 が起動しているか(起動中だけ切り替わります)
- ゲーム内で切替球・選択バーを隠していないか(隠している間は切り替わりません。切替球に指で触れ続けると表示されます)
- ゲーム内で作っているハンドサインが、EasyVL のインスペクターで選んだものと合っているか(初期設定は 焦点距離 = 指さし、F値 = ピース)
- EasyVL のインスペクターの カメラを持つ手 が、実際にカメラを持つ手と合っているか
- ゲーム内で手を離したか(順送りは切替球から、選択はバーから手が離れたときに切り替わります)
- ゲーム内で連続して触れていないか(0.2 秒以内の切り替えは無視されます)
選択バーで狙った段にならない
VirtualLens2 が途中で止まって追従しなくなる
切替球・選択バー・数字が見えない(または消したい)
切り替え音が鳴らない・大きすぎる
タスクトレイにアイコンが見つからない
設定ファイルを直接編集したら「読み込めません」と出た
6アップデート・アンインストール
アップデート
- 作業前に、必ず Unity プロジェクトのバックアップを取ります。
- 新しい unitypackage をインポートします(上書きで大丈夫です)。
- EasyVL App を終了してから(アイコンを右クリック → 終了)、
EasyVLApp.exeを新しいものに置き換えます。設定ファイルは更新履歴に指示がない限りそのまま使えます。 - アバターをアップロードし直すと、新しい EasyVL がアバターに反映されます。
アンインストール
Unity
- アバターから EasyVL オブジェクトを削除します。
- アバターの VirtualLens Settings の External Pose Source を空にします。
Assets/Kagyo/EasyVLとAssets/Kagyo/EasyVL_Generatedを削除します。
EasyVL App
- 「Windows の起動時に EasyVL App を起動する」をオンにしていた場合は、設定画面(基本タブ)でオフにして 適用 を押します。
- EasyVL App を終了し(アイコンを右クリック → 終了)、
EasyVLAppフォルダを削除します。
7利用規約
本ツール(Unity 用のファイル、PC アプリ「EasyVL App」、説明書を含みます)を購入・ダウンロードした方に適用されます。全文は同梱の LICENSE.txt をご覧ください。
できること
- ご自身のアバターに導入して VRChat で使うこと(導入するアバターの数に制限はありません)。
- 本ツールを入れたアバターを使った配信・動画・撮影・イベント出演など(営利目的を含みます)。
- 本ツールの改変。ご自身で手を加えた改変版は、配布・販売もできます(下の「お願い」をご覧ください)。
禁止事項
- 本ツールを、そのまま、または名前・設定値の変更など軽微な変更だけを加えた状態で、再配布・共有・販売・譲渡すること。
- EasyVL App(
EasyVLApp.exe)の配布。改変版に含める場合も同じです。 - 法令、公序良俗、VRChat の利用規約に反する使い方。
お願い
- 自作発言はご遠慮ください(ご自身で手を加えた改変版の配布は可能です)。
- 改変版を配布する際は、改変版である旨と配布元(本商品ページの URL)の記載、および「VirtualLens2 公式及び当ショップへの問い合わせは行わないこと」の明記をお願いします。改変版に関するお問い合わせには対応できません。
注意
- 当ショップは改変版に関与しません。改変版の不具合や、改変版によって生じた損害について、当ショップは責任を負いません。
- 改変版を使う場合も、EasyVL App は本商品から入手してください。
- 本ツールに含まれる第三者のフォント・ソフトウェアは、それぞれのライセンスに従います(
THIRD_PARTY_NOTICES.txt参照)。 - 本ツールが依存する第三者アセット(VirtualLens2、VRChat SDK、Modular Avatar など)は本規約の対象外です。それぞれの利用規約に従ってください。
- 本ツールは生成 AI を利用して制作しています。
- 本ツールの導入・更新・使用により生じたいかなる損害についても、当ショップは責任を負いかねます。
- 規約は予告なく変更することがあります。変更後の規約は、変更後に配布するバージョンから適用します。
8クレジット
EasyVL には次の第三者のフォント・ソフトウェアが含まれています。ライセンス全文は同梱の THIRD_PARTY_NOTICES.txt をご覧ください。
| 名前 | 使っている場所 | ライセンス |
|---|---|---|
| Inter | 数字(見た目:シンプル) Copyright (c) 2016 The Inter Project Authors — github.com/rsms/inter | SIL Open Font License 1.1 |
| Orbitron | 数字(見た目:サイバー) Copyright 2018 The Orbitron Project Authors — github.com/theleagueof/orbitron | SIL Open Font License 1.1 |
| Fredoka | 数字(見た目:かわいい) Copyright 2016 The Fredoka Project Authors — github.com/hafontia/Fredoka-One | SIL Open Font License 1.1 |
| .NET Runtime / Windows Forms | EasyVLApp.exe Copyright (c) .NET Foundation and Contributors | MIT License |
| VRChat.OSCQuery | EasyVLApp.exe(VRChat との接続) Copyright (c) 2022 VRChat Inc. — github.com/vrchat-community/vrc-oscquery-lib(依存ライブラリ MeaMod.DNS・Newtonsoft.Json・Microsoft.Extensions.Logging.Abstractions も MIT License) | MIT License |
9更新履歴
- 初回リリース