VRCで遊んだワールドとフレンドの履歴を見る
この記事はVRChat Advent Calendar 2018の21日目の記事です。
昨日の記事はあきら@sh_akiraさんの「VRChatからVRC_Panoramaを使いESP-WROOM-02経由で外部機器を操作する」です。
さっそくですが、VRCから抜けていざ楽しげなスクショをついったに貼ろうとしたときに「あっこれ誰だっけ」ってなること、ありますよね。ネームタグも撮っとけばよかった、、と思っても後の祭りですよね。
フレンドに連れて行ってもらったワールドの名前をど忘れして、「あのきれいなワールド!」って言って何も伝わらなかったりすること、ありますよね。
そんなとき、VRChatのログファイルが手掛かりになります。Joinしたワールドやフレンドの名前が記録されているからです。ログファイルは、「C:/Users/(ユーザ名)/AppData/LocalLow/VRChat/vrchat/output_log.txt」とかにあります。でも見てみたらわかるように、ほとんどが無駄な情報なので、目で見ていくのはつらいです。
そこでJoinしたワールドとフレンドの情報だけを抜き出すツールをつくりました。下記の実行ファイルをダウンロードしてきて、上記のログファイルをドラッグ&ドロップします。
すると、ログファイルのフォルダに「VRChat_usrlog.txt」というファイルができて、こんな感じの内容になります。単純ですが、役に立つのではないでしょうか。何時頃誰と同じワールドにいたとかの記録もわかります。
2018.12.16 22:36:07 World: 入ったワールド1 2018.12.16 22:36:10 User: 自分 2018.12.16 22:40:22 User: フレンドさん1 2018.12.16 22:45:38 User: フレンドさん2 (つづく)
VRChatのログファイルはVRCを起動したときに上書きされるので、VRCを抜けたときにやっておくとよいと思います。このツールの出力は、「VRChat_usrlog.txt」ファイルの末尾に追記されていきます。
たぶんだけど、いま同じVRChatにいて、どんな世界を誰と見ていたかという記憶は、いつか宝になりそうですよね。
なお中身はPythonでre.searchしてるだけなので、他の情報を拾うのにも使えるかと思います。(技術よわよわでごめんね、まにあわんかったの)
Boothにもおきました。 sandbox.booth.pm
あとついったとかで見かけた、VRCユーザ向けの便利そうなツールとかを下記にまとめてるのでよかったら見てください。情報公開下さっている皆様ありがとうございます。
明日22日の記事は、@synqark さんの「VRChatの皆に手軽に綺麗になってほしくて作ったシェーダーの話 - Qiita」です。
暗すぎる画像をGIMPで一括補正・変換する
GIMPでトーンカーブ補正
撮った画像が暗すぎた場合、GIMPでトーンカーブを補正すると修正できます。暗い画像では、トーンカーブの暗い側に画像の明度が偏っているので、トーンカーブを暗い側に寄せてあげると自然な諧調になります。複数の画像に適用したい場合、プリセットの右側の+マークから補正用のカーブを保存できます。 2018/11/25 14:42
大量のファイルのトーンカーブをバッチで修正
大量の画像のトーンカーブを一気に補正したい場合は、トーンカーブの設定をファイルにエクスポートして、PhotoLabのCurveBatchプラグインとPythonを使うと、特定のフォルダの特定の拡張子の画像を一度に変換できます。 http://gimpfr.org/contrib_photolabo.php#CurveBatch
トーンカーブ設定の保存と修正
トーンカーブ補正画面のプリセットの右の「◀」マークから「Export Current Settings to File...」を選び、適当な名前を付けて保存します。私の環境では1行目のコメントが日本語になっていたのですが、CurveBatchプラグインでは1行目が「# GIMP curves tool settings」であるべきなので修正します。 2018/11/25 15:35
CurveBatchプラグインの導入と適用
CurveBathプラグイン(photolab_curvebatch.py)をC:\ユーザー(ユーザ名)\AppData\Roaming\GIMP(バージョン)\plug-ins にドラッグ&ドロップしてGIMPを再起動します。メニューから呼び出して、対象フォルダ・拡張子・カーブファイルを指定すると、フォルダ内に変換後のファイルが別名で保存されます。 2018/11/25 15:41
RGBも補正できて便利
トーンカーブは明度だけではなくて赤緑青の色ごとの補正や保存もできます。ライティングが独特なワールドで撮影してしまった時にもある程度対応できます。画像の雰囲気も変えられるのでやってみては。 2018/11/25 15:57
※多数のファイルに同じ補正をバッチで掛けたくてやってみたらできたので書いた。python-fuやgimp_curves_splineを使ってスクリプトを書くまでもなかった。自分で複数の処理を組み合わせたバッチを作りたい場合にも、PhotoLabのサンプルは参考になりそう。
Youは何しにVRCへ
最近「Youは何しにVRCへ」というハッシュタグが流行ってて、そういう話を聞くのが好きな私には嬉しい状況だった。
#Youは何しにVRCへ hashtag on Twitter
私の場合。
VRが日常になる未来へ行くために。
ねこますさんがモデラーからVtuberになる瞬間を見て衝撃を受けて。
Twitterでフォローしていた有名VRCプレイヤーさんと会うために。
Kawaiiミコちゃん達に会うために。
自分が死蔵していたVR機器を、毎日活用している人達がいる場所に行くために。
後から見たら歴史上の必然としか思えないような時代の転換点ってあるよね。それはきっといつでも、その時代の本流からは外れていて、多くの人には理解されなくて、でも一部に熱狂的な人達や超優秀な人達が居て、手作り感と少々のアングラ感が残る小さな世界で生まれる。今の時代は、それがVRCだから。
VRChatの敷居の高さと低めかた
VRCで技術の話や内輪ネタが多くて新規ユーザーが入りづらいという話題があったので連ツイしてみた。
VRC民が使うツールの難しさ
VRC民はだいたい麻痺してるけど、UnityとかBlenderを立ち上げた時点で既にゲームのライトユーザーじゃないんだよねえ。沼に片足以上は入ってる。普通の人は最初から人体モデルとかゲームワールドのツールを触ろうとは思わないよね。あとVRCは狭い世界だから内輪話も多くなりがちな面はあるとも思う。 2018/11/21 18:52
かくいう私もVRCをきっかけにそれらを触り始めた一人で、結果的に楽しめているのだけど、一般的にはモデリングもゲーム制作も高度な技能だよね。他のゲームのチュートリアルに比べたらだいぶ敷居は高いはず。VRC内で複雑なことを口頭で伝えるのも限界があるしワカランってなるのも仕方ない面もある。 2018/11/21 19:01
新規が入りづらい敷居はありそう
数百万アカウントの半数以上が1時間以内にゲームをやめる程度には敷居が高いのは事実で、VRC民になってる時点でたぶん私たちは偏ってる方なのだと思う。ワールド人数の上限もあって、小さいコミュニティに人が分散しやすい構造もある。新しく入った人が入りづらい面もあるのは確かで、緩和したいよね。 2018/11/21 19:14
VRC内の人との出会いとイベント
私は5月頃に始めたのだけど、ワールドを巡るうちに、同じ頃にVRCを始めた人とフレンドになれてVRC内で遊んだり話したりできたのと、VRC内のイベントで有名な方に会えたのがきっかけでハマった覚えがある。イベントとか初心者交流会に誘導するのは有効そう。主催の皆さんはすごいし、感謝しています。 2018/11/21 19:28
初心者の助けになりそうなこと
あと初心者らしい人とかに会ったらとりあえず綺麗なワールドとかおすすめのペデスタルとかを一緒に旅するようにしてるのと、暇そうな人に話してみたりすることもある。あとコミュ力高めのフレンドさん達を見てると、相手の関心を自然に引き出せる人になりたいと思うよね、私はあまり得意ではないけどw 2018/11/21 19:35
作る楽しさと作らない楽しさ
やろうと思えば自由にモデルもワールドも作っていけるのはVRCの魅力の一つなのは確かだけど、それだけが楽しみ方ではなくて、技術やモデリングしない勢も楽しめる世界と思う。好きなモデルを借りてワールドを探検して回るのも素敵な遊び方だよね。気軽に遊べる知り合いができるとだいぶちがうと思う。 2018/11/21 19:42
ノウハウを共有したい
あと先人たちのブログとかWikiとかTwitterもいろいろ参考になったから、自分でも参考になった情報は書くようにしてる。少しでも関心を持った人に、役に立ててたらうれしい。
●VRCユーザ用便利ツール→VRChatユーザ用便利ツール - Sunaの実験室
VR空間内で立体感を転送する
VRChat内の光景を左目右目の位置から2台のカメラで撮って左右に並べたステレオ立体視動画を撮れる仕組みを作りました。平行法で立体視できる人は、このように撮った動画でVR空間の奥行きを感じられます。
更に、このような動画の左右の映像を合成して、平行法とか交差法などを使わなくても、VR機器があれば立体的な映像を見られるワールドをVRChat内につくりました。YouTube等のステレオ映像を流して立体的に鑑賞できます。
ステレオ立体視動画を撮影して3D映像化してVRで視る
立体視撮影ができる透明アバターと、立体視動画を3D上映できるワールド「Movie Theater 3D 8x9」をつくりました。ワールドの立体感を別ワールドで再生できます。また平行法で立体視できる方はスマホやブラウザの画面でも奥行きを感じられると思います。 pic.twitter.com/ZUOnoHuOsB
— suna (@suna_vrc) November 18, 2018
使い方
撮影する場合は、ワールドにペデスタルがあるのでデスクトップモードで使うか、VRモードでストリームカメラを自分の顔のあたりに向けると、デスクトップの画面がステレオ表示になります。デスクトップの方が画面が揺れづらいので動画は撮りやすいと思います。スクショ撮ったりOBSで動画撮影できます。 2018/11/18 20:04
YouTube Liveのアカウントがあれば、YouTube経由で立体動画をこのワールドに転送して再生できます。最初にワールドに入った方はURLを入れてLiveStreamボタンとNextボタンを押して下さい。スクリーン左上に出るTrack番号02以降に入力したURLが入るので、02が再生できるまでNextとPrevを押して下さい。 2018/11/18 20:34
※視聴するだけならYouTube Liveのアカウントは不要で、配信URLを入れればOKです。ストリーミング配信する場合はアカウントが必要です。
使わせて頂いたもの
画像をカメラの視界に貼るために、@gatosyocora さんのEasyToTakeSSシェーダを改造して使わせて頂いています。 https://booth.pm/ja/items/1002225 2つのカメラを平行に配置して、それぞれのレンダーテクスチャを画面の左半分と右半分に表示しています。解像度は片目960x1080にしています。 2018/11/18 22:27
映像に以下のワールドを使わせて頂いています。いずれも美しく好きなワールドで、制作者の皆様に感謝しています。もし問題があれば差し替えます。
Japan Shrine / @rootgentle
Colors of the Space / @fotfla
TreeCafe 1.3jp / @tsubasa9317
1619Hz : II / @Belkut_FSS
Ray-Marching Cubes / @wraikny
補足
ワールドのステータスはPublicになっているのですが、検索で出てこないみたいなのでワールドのリンクを貼っておきます。探してくれた方がいたらすみません。不具合とか改善点があったら教えて頂けるとありがたいです。 https://vrchat.net/home/world/wrld_2d98c9f2-1480-4532-be5a-867588ce8df0
ワールドでも左右に分かれた動画を流してるように読めるツイートをしてしまっていました。VRC内では、一つのスクリーンに左目用の画像と右目用の画像を重ね合わせて表示しているので、HMDを使うと無理をしなくても立体的に見えるはずです。映画館の3D上映みたいな感じ。VR勢の方は試してみて下さいね。 2018/11/20 2:55
VRChatでステレオ立体視
ステレオカメラで立体視
VRChatにステレオカメラを実装してみました。平行法で立体的に見えるかな? 2018/10/31 3:10
立体感を伝えたい
VRで見られる立体感の保存・撮影・別ワールドへ転送・デスクトップでも立体視、を実現したかったのです。やってることは単純で、右目と左目にカメラを置いて2枚のレンダーテクスチャを繋ぎ合わせてます。カメラに貼り付かせるために がとーしょこら (@gatosyocora) | Twitter さんのEasyToTakeSSシェーダを使わせて貰っています。 2018/10/31 3:27
制限と可能性
この方法のステレオ立体視は、撮影時と視聴時の画角の違いや周辺視野の歪みやIPDのズレ等のために、環境によっては期待通りの立体感を得づらい場合があります。けれど手段が無いよりは有る方が良いのと、VRChatのワールドの制限を越えて立体感を伝送するために役立つと思っています。 2018/10/31 3:36
VRCの別ワールドに伝送
X軸を圧縮して動画にすれば、私の3D映画館(Movie Theater 3D)で立体上映もできるはず。VRChatイベントの立体感をYouTube経由で別ワールドやスマホVRなどへの中継をして、世界の共有ができれば良いなと思ってます。 2018/10/31 3:51
シェーダわからん
あとシェーダ初心者なのでカメラ不要化とかシングルパスステレオレンダリング対応とかよくわかってないので、つよつよの方に軽量にして貰えると助かります。つよつよになりたい 2018/10/31 11:31
先人の作例
不完全ではあるけれど立体視とか疑似VRできるやつ作った。
— すなお🍆VRChat (@SUNAO_VRC) September 29, 2018
今は出先なのでコレと改造スマホVRゴーグル(液晶パネル貼っただけ)でVRCヤります pic.twitter.com/SSs9m3CfdC
9月30日 (日) のVRChat 3D編①
— すなお🍆VRChat (@SUNAO_VRC) October 1, 2018
出先用で作った疑似VRの副産物的な。
SteamVRのスクショでも撮れるけどよく描画おかしくなるし…
立体視画像の見方は各自調べてください。スマホだと見やすいかも。
立体視画像が見れるHMDがあればなお良し。 pic.twitter.com/65AkRrowz7
人と立体視とVR
先にやられてる方がいて、やはり立体に見える。立体視は面白いなあ。人はコンピュータができるよりはるか前から、わずかな視差から脳内に立体を三次元復元して、自己位置も推定するSLAMをやり続けているわけだ。すごいよね。VR時代にようやくこの仕組みを、人と世界を拡張するために使えるようになる。 2018/11/1 1:57
VRChatにマルチスレッド対応してほしい
VRChatをマルチスレッド化できそうなオプション
VRChatの起動オプションに-force-d3d11-no-singlethreaded を付けるとDirectX 11 + multithreadingが有効になるという情報があるけどこれ本当に効くのかな。FPSが改善したと言ってる人も居るけど。誰か効果あったら教えてほしい。 2018/10/23 23:32
動画再生に効く可能性
force-d3d11-no-singlethreadedoオプションで、VRChatではないけどAVPro Videoの再生が改善したという情報もありますね。SyncVideoStreamが重い人は改善するかも?未検証ですが。 2018/10/25 13:53
試してみたけど...
重いパーティクルやシェーダを試したけど、私の見た範囲では残念ながら目立った効果はなさそうな感じですね。Windowsのタスクマネージャーの詳細タブで、表のタイトル行を右クリックして、列の選択を選ぶと、プロセスごとのハンドル数やスレッド数やGPUの使用率が出せるけど差はせいぜい数%でした。 2018/10/25 0:18
- オプションの有無によらず重いときはFPSが11程度まで落ちる
- CPU使用率は最大でも33%程度で余裕はありそう、GPU使用率は98%まで行く
- スレッド数はワールドによるけど80~100程度
- CPUコア毎の使用率に目立つ差はなさそう
内部の実装は不明なので、人が多い時や動画が重いときなどに効く可能性は無くはないけれど、劇的な改善は期待しない方が良いかも。FPS10とかでもCPU使用率が30%程度なのは課題かなあ。Unityでのマルチスレッド対応の難しさはわからんとです。 2018/10/25 0:33
きっと試してみてくれてる方が居ると思うけど効果なかったらごめんなさい。もし効果ある場面があったら教えて貰えると嬉しいです。ご協力に感謝します。 2018/10/25 0:44
公式にもアプローチ
VRChatがCPUもGPUもマルチスレッドで活用できてないって指摘は前からあって、このおかげでVRC用PCの要求スペックが上がってる面もあると思う。まだアーリーアクセスとはいえ、いずれはマルチスレッド対応は必要だよね。同意のひとはcannyにvoteしてみてね。
Improve muilti-threaded performance | Feature Requests | VRChat
VRChatのパフォーマンス関連の他のcanny。これらもvoteしようね
Unityを2018.1にしてほしい https://vrchat.canny.io/feature-requests/p/upgrade-to-unity-20181
マルチコア対応してほしい https://vrchat.canny.io/feature-requests/p/multicore-vrchat
DX12に対応してほしい https://vrchat.canny.io/feature-requests/p/dx12-support
CPU負荷を最適化してほしい https://vrchat.canny.io/feature-requests/p/please-optimize-the-cpu-load