前回Meta Quest 3を買いました。
SNSではカワイイアバターで自撮り写真をアップロードしているVRchat民を見かけますが、せっかくVR環境を手に入れたので、VRchatでサイバー女の子になるまでの話をします。
しかしここに至るまでのハードルが高く、自分で調べないといけないことがすごく多いです。VRchatよりもUnityでアバターいじくり回してる時間のほうが長くなってしまいました。
PCが壊れたら同じUnity環境を作れる気がしないのでメモとしてやったことの記録を残しておくことにします。先駆者が既にまとめているケースが多かったのでURLリンク集みたいになってます。
- 肉体を得る
- 自キャラの色を変える
- 着替える・メガネなどのアクセサリをつける
- 表情操作をする
- 自分をうっすら表示する
- 座る・寝る
- ボイスチェンジャーを入れる
- リアルタイム翻訳する
- VRChat中にPC画面を表示させる
- VRchat中に現実の映像を出す
肉体を得る
まず手始めにVRchatをインストールします。このゲームは1~3日ほど遊ばないとアバターをアップロード可能な「new user」ランクになれません。真の肉体を得るためにいくつかワールドを巡り、基本的な操作方法を覚えます。
アバターをアップロードする権利を得られたら、VRchat公式からVCC(VRchat CreatorCompanion)をダウンロードします。
VCCを起動するのにUnityとUnity Hubが必要です。アップロードまでは以下サイトを見ながら進めればなんとかなります。
アバターはBoothなどからVRchatに対応したものを入手します。
無料のものもあるので、とりあえずグッときたやつを買います。
自キャラの色を変える
デフォルトのアバターだと個性がないので目や髪の色を変えたり、着替えたりします。
テクスチャの色を変える場合はフォトショであったり、GIMPなどのアプリが必要です。
着替える・メガネなどのアクセサリをつける
着替え用の服やアクセサリはBoothなどから入手できます。人気のキャラは専用の服が売られていたりします。
キセテネなど色々なツールがありますが、Moduler Avatarが一番とっつきやすかったです。
VRchat起動中にアクセサリの表示・非表示を切り替えたり、上着や靴を脱いだりするにはUnity側でVRchatに切り替えメニュー(Expressions Menu)を追加する設定や、表示・非表示の状態を定義する作業が必要ですが、上記URLのチュートリアルを見ればだいたいわかります。
動作確認はGesture Manegerというパッケージを入れると楽です。
上記からUnitypackageをダウンロードしてきてインポートするとUnity側でVRchatのメニュー画面を見ながらグラフィカルに動作確認ができます。
全部設定が終わるとVRchat側でもメガネONOFFができるようになります。
メガネはBoothでダウンロードします。
その他上着を脱いだりONOFFする対象が多いのであれば以下のようなツールを活用するのもいいと思います。
表情操作をする
Meta Quest 3のコントローラには各ボタンにタッチセンサーが内蔵されているため、手の動きを判定することができ、VRchatではこれを使って表情の操作を行います。
VRchatで使えるハンドサインは以下の表の通り8パターンありますが、実際両手にコントローラがあるので8x8で64パターンの表情設定ができます。
ハンドサイン | ボタン | トリガー | グリップ |
---|---|---|---|
Neutral(idle) | 触らない | 押す | 触らない |
Fist | 触る | 押す | 押す |
Hand Open | 触らない | 触らない | 触らない |
Finger Point | 触る | 触らない | 押す |
Thumbs Up | 触らない | 押す | 押す |
Victory | 触る | 触らない | 触らない |
HandGun |
触らない | 触らない | 押す |
Rock n Roll |
触る | 押す | 触らない |
買ったアバターによっては最初からいくつかの表情が設定されていますが、このハンドサイン1つ1つに表情を設定していくのは骨が折れるので設定ツールがあります。
追加で表情を作りたい場合は、表情はシェイプキーというものを使ってアバターの形状を変化させたものを、アニメーションとして記録して設定を行います。表情アニメーション自体もFaceEmoの表情エディタで設定できます。
シェイプキー自体を作る話になるとBlenderなどのモデリングツールが出てくるのでここでは話しません。
自分をうっすら表示する
VRchat民は自キャラがどう見えているか気になるので鏡に集まる習性があります。
他の人のVRchatの動画でこんな感じにうっすら自キャラを表示している人を見たことがないでしょうか。SelfViewMonitorを使えば鏡に行かなくても自分の状態を確認することが可能です。
左右に動かせませんが、無料版もあります。
手順書を見ながらVRCAvators3Toolsと、SelfViewMonitorSetterを使うと簡単に導入できます。
座る・寝る
Meta Quest 3ではデフォルトでかなり精度の高い上半身トラッキングが使えますが、下半身はトラッキングできません。
高さの判定はできるので、一定以下の高さになったらアバターを座らせたり寝せるツールを導入すると、フルトラッキングしなくても座ったり寝たりできるようになります。
余談ですがMeta Quest 3でVRchatにログインするとデフォルトでフルトラッキングが有効になります。このままだとごろ寝システムが動作しないのでVRchat側の設定からフルトラッキングを無効化すると座るモーションが使えるようになります。
ログインのたびにフルトラッキングが有効になるので多分VRChat側の病気だと思うのですが…。
有効化するとこうなります。
ごろ寝システムを入れただけでは現実で座らないと座るモーションになりませんが、Steam VR用アプリの「OVR Advanced settings」を使うとY軸を好きな値にできるので現実で椅子に座ったまま寝たりできます。
Motion設定欄のHeight toggle欄の値を0.4~0.5くらいにするとちょうどいい感じの座る高さに変えられます。
コントローラのキーバインドも好きにいじれるようになるので、右と左のボタンを同時押しで高さを調整するように変えてみました。これまた便利。
ボイスチェンジャーを入れる
高いPCスペックが必要ですが、AIによるリアルタイム音声変換によって誰だお前レベルのボイスチェンジャーを使うことができます。RVCとVC Clientという2つのアプリを併用しますが、これを活用すればよりガチの女の子と化すことができます。
上記の記事で収録した音声ですが、男性の地声ボイスを女性に変換した場合のサンプル音声です。
上記の記事で作った仮想オーディオデバイスVB-Audio Virtual CableをVRchatのオーディオ設定画面で選択することで、相手にボイスチェンジャーを通した声を伝えることができます。
リアルタイム翻訳する
VRchatの開発元はアメリカです。ということで海外の方もわんさかいます。
英語で話しかけられてお返事ができるTOEIC満点の人は必要ありませんが、DeepL翻訳APIを使って自分が話す音声と相手の音声をリアルタイムで変換し、チャットボックスに表示するVRCTというツールがあります。
使うには以下からDeepLのアカウントを作ってAPIを使うための認証キーの取得が必要になります。
DeepLのAPIは無料版では1ヶ月で50万文字まで翻訳でき、残り文字数はDeepLのアカウントページから見れます。
自分のマイクを音声認識させて日本語→英語にするのはわりと良い精度でした。
スピーカーからの音声認識は試せる海外フレンズもいないので重い腰を上げパブリックワールドに降り立ち、海外の人たちの雑談を影で取得してみたところ、人によってマイク音質が違うので認識率はまちまちでした。
同じ内容が2回表示されたりして謎ですが、ニュアンスはまあわかりそうでした。
VRChat中にPC画面を表示させる
PC画面を表示させるだけならOculus Linkアプリ起動中にMetaボタンを押すだけで表示できますが、どうせやるならImmersedのようにゲーム画面中にPCを出したい。
そういうときはXSOverlayというアプリを使います。Steam VR専用なのでSteamから買います。
起動順は、Oculus link(またはVirtual Desktop)→Steam VR→XSOverlay→VRChatです。
Steam VRの設定でスタートアップアプリを設定するとXSOverlayをいちいち立ち上げないでよくなります。
XSOverlayを追加すると、VRchatを起動している間も左手首に時計が表示されるようになります。オーバーレイを作成 を選択すると眼の前に追従するモニタ画面を複数召喚できます。モニタの配置は8パターンまで記憶させることができます。
音楽の再生ボタンもついていて、PCでAmazon musicなどを起動しているときに再生を止めたりスキップしたりできます。CPU使用率なんかも見れます。
設定で日本語化したり、時計表示をyyyy/mm/ddに変えられます。
ボタンに触らずにトリガーを引くと左クリックみたいです。ボタンに指を当てながらトリガーを引くと右クリック?です。
こんなところまできてグラブルする人いる?いるんだよなあ…
VRchat中に現実の映像を出す
このやり方はVirtual desktopのVRパススルー機能を使うため、有線ではできないですがこんな感じでVRchat中にパススルーでキーボードだけ映せたりします。
Immersedでは部分的パススルーは標準搭載ですが、VRchatでこれをやるにはひと手間必要です。前提条件として↑で話したXSOverlayが必要です。
PC側の設定
何でも良いのでR0,G255,B0のグリーンな画面を用意します。
私はこれを使ってます。
exeファイルを実行すると、緑色の画面だけが表示されたアプリが起動します。
.NET 6.0がインストールされてないと怒られるのでインストールします。
https://dotnet.microsoft.com/ja-jp/download/dotnet/6.0
緑の画面を右クリックすると大きさを変えられます。16:9がちょうどよかった。
Virtual desktop 側の設定
Virtual desktopのStreaming>VR Passthroughという設定項目があるのでEnabledにします。
Configureでパススルーさせる色を設定できるので、R0,G255,B0にします。
Similarity(類似性?)は適当に30%とします。
Smoothnessは0です。Smoothnessを増やすと全体的にうっすらパススルーになります。
クソ画質で申し訳ないですが画像も一応貼っときます。
こうすることで、XSOverlayでGreenBoardアプリを表示させたときに緑色が透過されるのでそこだけパススルーになります。
透過されるのはGreenBoardアプリだけではなく、RGBが一致していれば透過されるので、VRchatで一面緑のワールドに行けばキャラクター以外は透過された状態になります。
まあここまでやっても私はパブリックワールドには入らずプライベートインスタンスで鏡と格闘してるだけなんですけどね…
パブリックワールドでPC画面を映しながら作業しつつ、話しかけられたら気晴らしに雑談する程度でいいなって思いました。
以上
圧倒的成長。