ジュマンジNextLevel、ジュマンジ3作におけるゲームの扱いについて

少し前だが、ジュマンジNextLevel(2019)を見てきた。前作WelcomeToJungle(2017)、もう殆ど覚えてないけど初代(1995)とちょっと比較して、ゲームやVRを遊んでる自分に刺さるお話だったのでメモ書き

【以下ネタバレ】 続きを読む

VRChatと自作あれこれ2019

たましこさんのコレをポチって読んでたら、自分も纏めたくなってきたので書く

あとまあゲーム作っていた頃は、あとがき的な文章を毎回付けていたのだけど、最近そういうのをしてなかったなあというのも

VRChat沼前

2018年後半の自分はV周辺技術で遊んでいた。具体的にはボイチェンカラオケとか、VRMモデリングとか。そして、2019年頭はVRoidStudioとVMC。

V的なアバターを着る遊びとして、VirtualCastに手を出したものの、VirtualCast内でやることがなかった。そこでBeatSaber AvatarMODやLIV、VMCに手を出していったのだけれども、そこまでのめり込むまでは行かなかった。単純に言えば動画を作りたいわけではなかった、というのがキモなのかもしれない。VTuber適正は自分には無かった

一応blenderでミニマムなVRM作成はしたものの、モデリングはすっからかんだった。むしろVカツやらVRoidStudioといった手軽なルートで試していた

VRChat沼とモデリングのめばえ

最初、自分がどっぷりVRChatにハマったのは、2019/3月のVケット2からだ。2019/1月にもakiさんにありがたくガイドしてもらったのだけれども、その時は申し訳ないがいまいちピンと来なかったのだ。今でこそどっぷりハマっているけど、今思い出して見ればVRChatは単に始めたからと言ってスムーズに沼るとは限らない、というのを体感したとも言える。

Vケ2でリアル友人知人とわいわい散策し、さらにtorisoupさんからオススメワールド散策をガイドしてもらい、ガッツリ沼った。

その中でkamakiri_ysさんが元々使っていたことから知ったU10 mk2を買い、Unityでアップロードしてすぐ着れる体験に感動、Vケで自撮りをした。しまくった。なんとも言えぬ表情のロボ娘よい…

f:id:o_mega:20191219011733p:plain

かわいいアバターを着て、自撮りをする目的があり、自撮りが捗る小物やワールドがある。そしてマルチプレイ。これだ、サイクルを回す要素が揃った。

 

よくできてるU10mk2ちゃんを改変するのは、最初は気が引けた。しかし一度色が変えられると一気に楽しくなる。テクスチャをこねまくる。自分なりの特徴も欲しくなる

シンプルな造形で自分アピールができる、アイコンの立体化が浮かんだ。UVがクソガバだけどまあ最初なので仕方ない。これを頭に載せて行くことにした。改変したU10 mk2ちゃんに載せてよしとした

余談になるけど、U10 mk2ちゃんはメカパーツのMetalicnessがかなり高く、それによってAlbedoカラーを何色にしても黒系に見えてしまう(金属色に見える)というのに引っかかって、カラー改変に苦戦した。おかげでマテリアル概念を知る切っ掛けになった

f:id:o_mega:20191219011840p:plainf:id:o_mega:20191219011927p:plain

まだモデリング力はないが、アバター小物を作りたい。武器とかはアイデア大変だし、攻撃的でない、自然なアクセサリ、それでいて手に持って見せびらしても違和感がないものが欲しい。そこで目を付けたのがカメラ、それもレンズ付きフィルムのソレだった。

実質ペーパークラフト、凹凸類は全部絵として描いてしまう。裏面なしの5ポリ。UVをちゃんとする。こうしてUturanカメラが出来て、emote switchの練習になったりした

仮想資産管理票もこのタイミングで作っていた

 

暫くはアバターのギミックをあれこれしつつ、ワールド探索をしてたようだ。トレイル付けたり、emote switchいじったり。Unityアーマチュアなんとなく理解したので、blenderでVRoidのVRMを刻んでVRoidStudio用服テクスチャを着せたりとか

f:id:o_mega:20191219014252p:plainf:id:o_mega:20191221012610p:plain

f:id:o_mega:20191219014313p:plain

U10ちゃん集会とローポリ

4/21にU10ちゃんの作者がU10ちゃん集会をする、初めての集会らしい集会に参加することにした。それと同時期に、ネコ忍者コアさんがローポリ多摩を上げていた。めちゃんこかわいい!しかもローレゾ、これはいい!モデルも公開されていて実に参考になった。豪快なUV割当!

 人間型アバターモデリングにも手を出したいと思っていたところだったが、なんかいい題材がなかった。これだ!ということでU10mk2ちゃんを"そんな感じ"でモデリングした。結局、集会には調整が間に合わずVR状態では手が動かなかったけど、一応の形が見せられたのは良かった。

またU10mk2ちゃん改変、ということでアバターが似通っていると、勝手に親近感が湧くという体験が出来て興味深かった。アバターの好みが近いと惹かれ合う…

f:id:o_mega:20191219015019p:plainf:id:o_mega:20191219015046p:plain

その後、このローポリU10mk2ちゃんはオリジナル作者の火事屋さんの許可を得て、booth頒布した。非常に軽量に出来たので、そのままQuest対応をしたりしつつ、今でも時々使っている。

他、リアル友人知人のVRChatガイドをしたりしていた。その過程でいろいろググったりして、ヨツミさんのような技術つよつよ勢の存在を知ったりした

 

2019/5月になると、Tsubasaさん周辺で自作ワールドにつれて行ってもらった。ワールド自体はCube等シンプルモデルを積み上げたスタイリッシュなもの、AssetStoreのをほぼそのまま導入したリッチな質感のもの、といろいろではあった。ワールド作成に興味が出てくる。

f:id:o_mega:20191221012338p:plain

テクスチャが貼られていなくても、リアルな寸法に基づく構造と、そこそこのシェーダー設定があれば映える、というのも見えてきた。自分のリソースケチり戦略にこれはマッチする

Just Graffitiが流行ったのもこの時期か

ワールド1作目 HelloWorld(非公開)

f:id:o_mega:20191219020025p:plain

5月末に初めて作ったワールド。といっても、ナルさんのVRC StarterKitを元にフロアを広げ、Cubeを並べて、自作ローポリU10ちゃんを並べた程度。ライティングはとりあえず置いた程度で、ここでベイクを試したりした。

f:id:o_mega:20191219020113p:plainf:id:o_mega:20191219020353p:plain

高低差があると楽しい、pickupがあると楽しい、カメラは遊べる、ミラーも遊べる。みたいな雑な学びを得た。ワールドは楽しい。他の人を読んでワイワイ触っていじってもらえる

 

この頃Questのリリースが近づき、VRChat界隈もQuest対応がどうたらこうたらしていた。switch platformとかいう面倒な仕様、PC未満のハードスペック、正直受け入れられるのかと思っていた。

小物とカメラ、just redflag(06/09公開)

2018/6月、次のワールドを作りたくなった。手持ちのいい感じなモデル、アセットは無かったので、ネタ一点突破のワールドを作ろう。

この構想に至ったのは、jo2pegさんのMuchaShiyagatteワールドCollageMangaワールドで、これらが直接の元ネタになる。カメラでクソコラが作れると楽しい、なら組み合わせて遊べるpickupアイテムがあるとなお良いのでは!? 

f:id:o_mega:20191219014229p:plain

 

幸い小物モデリングは楽しい。問題はUVを貼りたくないことだ…、ということでUV貼らずの単一色にした。組み合わせて遊べるもの…、これやな*1 。ちょっと政治色強すぎるでしょ…と思ったが、別にVRC内にはソ連なワールドやソ連な国歌を流すアバターもいるので多分大丈夫。少なくとも権利的に安全なBGMにしておく、pickupはバラして置いておく、とした

必要なギミックはVRC StarterKitをちょっといじった程度。あとは雰囲気とpickupアイテムでカバーのスタイルである。

 

Just RedFlag

f:id:o_mega:20191219022106p:plain

壁を作る発想は無かったので、空中浮遊プラットフォームが基本設計になった。入り口はメイン広間からちょっと離れた所に置きつつ、広間の雰囲気が分かるようにした。が、転落者も出してしまったのでここはちょっと失敗かもしれない

写真が撮れたらポスターにできるし、そりゃ演説もしたくなるでしょ?ということで上フロアに演説スペースを作った。VRCではいわゆる"loli collider"と呼ばれる、低身長向けlocal土台があるが、それもpickupオブジェクトに子Colliderを付けて自分でpickupして使えるようにした。そうすればpickupオブジェクトを別用途に使えるからだ。

 

カメラモデルだけはやりたくなったので無駄に拘ったが、当時のモデリングぢからなのでテクスチャはまだヘロヘロだ。途中で2回ほど、テクスチャのブラッシュアップをしている。ちなみにカメラの元ネタはソ連Zenit-EM、外付けフラッシュとリモートレリーズのモチーフはない。

f:id:o_mega:20191219024907p:plainf:id:o_mega:20191219025106p:plain

VRC StarterKitのカメラ挙動は理解したので、その範囲でリモコンを付け、シャッター音を付けた。挙動に合わせたカメラ、リモートレリーズのモデルを作り分けたのは手間だったがさすがの分かりやすさになった。我ながらうまく出来たと思う。

便利にしていたら最終的に背面液晶まで機能が付いてしまったのはちょっとおもしろい。元ネタは自動絞りと露出計がやっと乗った世代なのに。

 

試しているうちに、ワールドに必須なのはBGMだと理解した。無音と非常に辛い。…ということで、このネタなら「祖国よ我らのために」が正当なのだが、現行で国歌であること、権利リスクから排除した。代わりに採用したのが「廃墟からの復活」で少なくともアメリカ周辺国家でPDであり、他ゲームでのアレンジ採用例*2もあることからこれにした。そのために、稲穂、ディバイダーというニッチなpickupが用意されている

 

そうこうしているうちにQuestビルドが正式に出来るようになった、のでビルドをしてみたら通った。出来たら、実機検証したくなるのが技術者のサガなので、結局Questを買った。見た動いてる。すごい。最適化できる箇所がある

出来たはいいが、リリース時にビビるのがこのネタである。出来たもんは仕方ないのでlab送りにした。lab送りにすると割とすぐにnewに乗り、人が流れ込んでくると知ったのはかなり後ではあるが、当時はQuest対応ワールドが少なかったせいもあり、pickupがモリモリにあるというのは楽しんでもらえたようだ

f:id:o_mega:20191219023344p:plain

元々写真ネタに特化していたこともあり、Twitterでjust redflagで撮ったであろうスクショが上がってくることが、とても有り難かった。目の前で遊んでくれるのも楽しいが、楽しんでる絵を見られるだけでも、他の人が自分の作ったおもちゃで遊んでいるのを見ると、本当に本当に楽しい。本当に楽しいので、つい小物を追加してしまう。想定を超えて楽しいワールドになった

作るのが楽しい。これはこれで問題で次のワールドが作れなくなってしまう。もう一つはケーキを作っているときに実感したが、"テクスチャを貼りたい"という気持ちが出てきたことだ。コンセプトに真っ向から対立する意識が出てきたことで、just redflagの小物作りは一旦終わらせることとした。

 

その後はベイク設定を詰めたり、パーティクルの実験台*3になったり、カメラの同期バグやら、配置リセットボタンやら、カメラの頒布に向けていじったりとかがこのプロジェクトを土台に行われた。

Questユーザーはなんだかんだで初心者が多く*4、PCユーザはQuestの事情を知らないし*5AndroidモバイルであるQuestを寄り追っかける人は少なかった。VRC世間を見ても多くのユーザはまずアバターに興味があるのは明らかだった。じゃあ、Quest対応ワールドの線で自分は推していこう、とredflagをいじりながら考えていった。

f:id:o_mega:20191219022441p:plain

ギミック失敗 VRailTest(非公開)

鉄道系ワールド(())をいくつか巡ったことで、鉄道的な何かを作りたくなった。鉄道模型が見られるワールドや乗れるワールドはいくつかあり、雰囲気が素晴らしい。気軽に自作モデル動かしVRで体験共有できるのがVRChatは素晴らしい。どうやらアニメーションを打って丁寧な動きはつくられてるようだ

自分で作るなら緻密さは捨てて、雑に遊べるように…、Unity物理で許されて、かわいい…、そうプラレールだな?という結論に至り仕組みを作り出すも、これまたUnity物理の挙動に引っかかっており、絶賛放置中。いかんせんUnity力は弱い

落選マーケット、Ochiket Booth Test(非公開)

Vケット3落選が確定した、6月末。超族さん、犬若丸かなめさんを中心に落選マーケットが立ち上がる。これに参加すべく、せっかくなら後押しできるよう、と汎用ブーステンプレを作った。その時の動作チェックワールドがこれだ

f:id:o_mega:20191219031705p:plain
Vケット3のサンプルブースを参考にしつつ、オリジナルのブーステンプレートを提供すべく着手した。相当悩んだけどいい案がなく、結局現実寄りのビジネスまたは展示会風としてこうなった。そこそこの見通しを作りつつ、しかし境界ははっきりさせる壁。唯一の仮想感は空中の輪っかアニメに絞った。UVはローポリU10ちゃんで学んだ気合のUV貼りを使い、テクスチャ面積の1/2以上を看板に割り当てる、というテクスチャ密度にメリハリのあるモデルが作れた。が使いやすかったかどうかは不明

やる気があるうちに作るメソッドで、これもQuestでも動作確認を取った。l深い理由はない。

 

イベント締め切りに近づくにつれ、自分のブースにらしい出し物が特にないことに気づき、急ぎ自作ブースの説明パネルを作って出したりした。当初の予定ではVRプラレールキットを展示するつもりだったのだが、完全に間に合っていなかったのだ。サンプルブースを自分で作っておいたのは正解だった。

 

9月イベントが始まると少なくとも他に2スペース*6、自分のテンプレが使われていてよかった。というか、みんな割とちゃんとオリジナルなブース作っていて、他のテンプレも3スペースぐらい使われていれば多い印象だった。みんなモデリング能力が高すぎるのでは…

f:id:o_mega:20191219032333p:plainf:id:o_mega:20191219032344p:plain

とりま机とスタンド式の看板が使われてて、作った甲斐があった。使われると嬉しい。

 

Vケや落ケが近づくにつれ、Questユーザ周辺でもそれっぽいイベントが欲しいという流れが起きた。himikoさん主催のQuestMarket (東館/西館)が行われることになり、事前にQuest動作確認を取っておいたこともあって、ほぼそのまますんなり提出することができた。

ギミックは成功したが同期わからん FlightUnit Test(08/18公開)

時間戻って、7月はCyan Climbing Prefabが盛り上がった時期だった。

6月頃からQuestDiscordにお邪魔していた。実際のところ、VRChatは単独で運用できるSNSという体にはまったくなっていないため、DiscordとTwitterが併用されている印象だ。逆言うとVRChatをやるのに、DiscordかTwitterをやって情報を取りに行かないと、特にログイン時間が短いうちは厳しい*7

それはともかくQuestDiscordやこの時期のQuestユーザに合流できたのは、とても良かった。技術勢のnamanonamakoさん(通称なまこさん)と、unityやVRC SDKの不思議挙動を討論できたのはとても幸運だった。

 

さておき、ギミックといえば飛行ギミックがVRChatでは定番ではある。後に時のお家がQuest対応したり、フィオさんがQuestDiscord勢と会って「ワールドをQuest対応させよう」宣言をするまでは、Quest対応ワールドはそこまで多くなかった。特にギミック系は作れる人が少ないのもあって、Questに無かった。

Questリリース当初から「VRChatQuestは制限が厳しい」という話題が飛び交っていたと思う。VRChatのdocsを読むとたしかにそれはそうなのだが、極端に厳しいのは不バターのポリゴン数、マテリアル数、メモリサイズであって、注意深く読むとワールドで出来ないことは動画プレーヤーぐらいなのが分かる。docsもモヤッとした書き方をしているため、断言しづらいのはそうだった。

 

そんな中、飛行ギミックはUnity物理のみで動くことは見えていたので、新規PCユーザを誘って一度は行くワールド、Japaneland Sky系にある飛行ユニットHandy Skyを、出来る範囲で目コピして近い機能を再現しよう、と決めて作ったのがこのワールドだ。

 

FlightUnit Test

f:id:o_mega:20191221011307p:plain

だいたい出来たところで、問題が起きる。同期である。この頃はSDKの同期の仕組み、特にオーナー移譲の方法が分からないこと、多段ObjectSyncの振る舞いが分からず、本当にデバッグできなかったため、心が折れた。心が折れた結果、バギーな状態でpulicにした。

最終的にそれなりにバグが取れた感じはするが、分からない…。おそらくオーナー移譲する場合は、VRC_ObjectSync.takeOwnership()をlocalでブロードキャストすると良い、気がする?

 

もう一つ致命的だったのが、just redflagと比べてスクショが全然上げてもらえなかったことだ。そういうギミックワールドではないので仕方がないのだが、明らかに人が少ないこともあって、自分のモチベで詰まる部分があった。

またワールドのゴール目標がなかったのもある。行き詰まった。ギミック再現は出来たことから、一旦の目標を達したが、ワールドづくりの着地点はミスった感じがある

 

この頃から自作ワールドにおめがモデル*8を転がして置くのを共通ルールにしようと考えた。アバター作者を説明パネルに描いても良いが、それよりは何か遊べる形で立体化してフィールドに置いてあった方が注目してもらえる、という目論見だ

f:id:o_mega:20191221014210p:plain

カメラ配布とワールドテンプレート just Camera for Quest(09/11公開)

boothで先人のprefabを見ると、Quest対応かどうかは分からない。ならばQuest対応のギミックprefabを出してギミックがイケることをアピールしていこう、ということでredflagで作ったカメラを売ることにした。

が長らく放置された。というのもredflagはちょくちょくおもしろネタを差し込みたくなるし、flightunit testのバグわからんとか

 

その頃話題になってたワールドにkdenさんのJust rainがあり、PC向けのシェーダー技術もさることながら、そのシンプルながら雰囲気あるワールドに感服した。程よい狭さの部屋に間接照明を置き、いい感じにベイクすると、不思議と落ち着くワールドが出来る。そう学んだ。

f:id:o_mega:20191221014254p:plain

学んだら試したくなる。ということで、RemoteCamera配布ついでにQuest向けのベイク設定まで仕込んだワールドテンプレートをつけよう、ということで作った。

別の意図として、just redflagがQuestユーザの記念撮影スポットとして活用されていたことから、もっと集合写真向きのワールドにしよう。ということで、背景の足場をひな壇仕様にした。

 

Just Camera for Quest

f:id:o_mega:20191221014136p:plain

このワールドは目的がシンプルなためにさらっと完成した。

リニューアルおめが(10/27頃)

zenさんのワニモデが再始動して流行った。第0回から「パソコンが要ります」という圧倒的カバーの広さ、VRChatで指なしカボチャアバターを動かすという、明確なゴール、指とかいうモデリングしたくない人類クソ細かいパーツを排除したデザイン、ちゃんとリップシンク付きで、それでいてかわいい。正しいof正しい。「そうだよ、VRChatterが求めていた入門モデリングはこれだよ」を煮詰めた動画が上がってきて、「これは続編に期待が高まらざるを得ない…。時間がある時にじっくり見よう」と思っていたら、あれよあれよとシリーズが投稿され、視聴者がどんどん自作カボチャアバターで自撮りをキメ、世界はカボチャで溢れてしまった。くそう、みんな速すぎない?教材が間違いなく優秀なんだけど、それにしても速すぎない?VRChatterどうなってるの…

 

カボチャが流れてくるとやはり自分もアバター作りたくなってくる。VRC Halloweenもせまる。ということで初期に作ったおめがモデルを作り直すことにした。UVもちゃんと貼れるようになったし、ついでに単独アバターとして使えるようにボディも作ろう。作った。

f:id:o_mega:20191221015801p:plainf:id:o_mega:20191221020013p:plain

トポロジの大切さもこれで理解した。旧モデルにあった、口周辺の怪しい陰も出なくなできた。他の人のアバターと融合して遊べる?メリットも出来た。

Halloweenには結局参加できなかったけど、モデリングお祭りの熱気に触れられた気がした

noribenさん水面シェーダー Teapot Garden(11/17公開)

Teapot Gardenの前にも2つほどワールドのブラッシュアップ、主にライティングを手伝っている。ここでライティングのコツをもう少し掴んだ。

独身の日UnityAssetsセールの時に、「Questで動く水シェーダーほしいなあ」とボヤいていたら、noribenさんとシェーダーの話題になった。その結果かどうかは分からないが、Quest対応の水シェーダーを作ってくれた。これは検証せねば…、ということで水辺のある即席ワールドを作り始めた

 これにAssetセールで買った、ローポリ植物モデルを生やしていたら楽しくなったので、公開へ向けてネタを盛り込むことにした。この「無機質に植物がちょっとあるといい雰囲気になる」というのは、火事屋さんのU10's Avatar Worldの影響だ

 

追加したい考えた結果、noribenWaterShaderがUVスクロールで機能していることから、いい感じのUVを貼った水メッシュを作れば滝が作れそうだ、と考えた。滝があれば地形に「流れ」が出来て、水の行き先や源流が気になってくる。これはいい。

問題は空中に浮かぶような小さなマップで、どこから水が来て、どこへ流れていくのが良いか?そこでredflagで作った、ティーセットを使うことが浮かんだ。そうするとティーポット、カップ、ケーキセット、カラトリーも使える。大きなティーポットにあわせて、他のものも巨大化して配置して、微妙に傾いたり水が溜まったりさせた。となると、このワールドは「お茶会の廃墟」だ。Teapot Gardenとした。

f:id:o_mega:20191221031417p:plain

滝が出来ると環境音も増える、パーティクルで湯気を上げたり、飛沫を作ったり、雰囲気をプラスすることもできた。

 

このワールドではベイクにより凝ったことをさせようとした。というのもNoribenWaterShader水面だけの処理であり、水中の深みについては特に処理しない。ここをベイクでうまいこと処理できないか、水の深みを表現できないかと考えた。「鉄道模型ジオラマ*9の水面塗装技術を逆輸入して、水底を塗る」

f:id:o_mega:20191221025336p:plain
「ベイク時にだけ水底色の半透明planeを表示して、その透過光でベイクする。ベイク時以外はplaneをdisableにする」という作戦だ。Unityで見る分にはうまく行ったのだが、1つ問題があった。

 

Lightprobeへ水底の色が映ってしまうことだ。そして、そのlightprobeの色をアバターが受けてしまう、特に足元にLightingのAnchorOverrideがあると、浅瀬でちゃぷちゃぷ遊んでいるはずなのにアバター全体が暗い色になる、水辺に近づくと急速に暗くなる、ということがおきてしまう。

結局、これについてはある程度諦めた。というのもLightprobeによるライティング補完は、環境光が大きく異なるprobe同士の間より、照らされるオブジェクト大きい場合うまく動かないことが仕様上見えている。無理なのだ。ということで、ある程度*10の浅瀬にはベイクの影響が出ないように距離を取った(浅瀬には配置しない)

 

暗いワールドがエモいね…と言っていた割に、逆に全体的に明るい雰囲気になってきた。まあ、それはいいや。大きな食器と合わせて夢っぽさが出てきているので、それをパーティクルで押す。ということで、ふわふわパーティクル、命名FuwaParticleを作る。

カメラレンズぼけを意識したまるボケパーティクルを書いて、それを元に大小2種配置した。color over lifetimeでチラツキを付与、Windzoneとnoiseによるゆらぎを追加した。あくまで雰囲気サポート用のパーティクルであること、視野に大きく被った場合負荷が大きくなるリスクがあったので、大8個、小100個と絞ってある。

f:id:o_mega:20191221025903p:plainf:id:o_mega:20191221030017p:plain

f:id:o_mega:20191221025952p:plain 

我ながらとてもいい雰囲気が出来たと思う。現時点で4000人以上のアクセスがあり、自作の中でも最も訪問されたワールドになっている。

一度、アップデート後に動作確認用にpublicに行ったら、寝落ちしているフレンドがいたことがあったのも面白かった。いい雰囲気は寝落ちを可能とするんだなあ

おわりに

というわけで、VRChatに沼ってから9ヶ月、こうして見ると我ながら他のすごい人をマネて来た印象がすごい。見よう見まねコピー

まだまだ手を付けられてないものが多い。AmplifyShaderEditorも買ったままだし、UDONもUnity2018も手を付けられていない。アバターも更新したい。このクリエイティブを受け付けられる幅、それらをUnityを介して持ち込め、そのままマルチプレイで他の人へ公開できるところ、そういうのを作る人達が集まっていること、それらすべてをVR仮想現実の形で体験できること、それが少なくとも自分にとってVRChatの一つの魅力なのは間違いない

ここでは自分が作ったものに影響された方々を挙げたが、ふらりとjoinした時に行ける場所を作っている方々にも助けられている。ラジオ体操(本家/Quest)、VRC筋肉部、SilentClub、偉い集会、JP Tutorialでたむろってる人たち。VRChatは人がいるから様々な出来事がおきる、ありがとう。

来年2020年*11もどうぞよろしくおねがいします

*1:\デエエエエエエエン!!/ サヨース(略)

*2:ランスシリーズのテーマ曲として有名

*3:クラッカーやティーポット、ホールケーキ、フォース、地下フロアの剣

*4:ウソつけ!一部がものすごい勢いでblenderとunityと和解してるぞ!

*5:これは本当に仕方がない。PCVRユーザにQuestを買う理由がない

*6:小物だけ使われてるケースもあったたようだけど、見落としてそう

*7:初心者脱落の一因

*8:白い潰れあんまんに手が付いた、アイコンのあいつ。元々はAA

*9:詳しくはTOMIXのレイアウトテクニック本を参照

*10:アバターの顔が水面上に出てしまうぐらいの

*11:2018という説もある

禁断の果実Pimax 5k+

ViveCosmosが発売された昨今、どうでしょうか。Lighthouse対応は来年までお預けにやや未完成感の漂うCosmos、おま国のIndex、ViveProはもっともベターだけど面白さに掛ける安定感だしちょっと古いかな…ということで初代Vive勢としてはアップグレードパスに非常に悩ましいタイミングになってしまいましたよ。

 

そこであえてピーキーかつLighthouse対応、国内入手可能という要件を満たすPimax5k+を、my new gear…♪してしまったのでそのレビューを

f:id:o_mega:20191022165022p:plain

比較対象はVive初代(Pre-order仕様) + DX AudioStrap、VivePro(借り物)、OculusQuest(装着感など)です。

動作環境は

  • Core i7-9700K
  • 32GB
  • GeForce GTX1070(8GB) 

f:id:o_mega:20191022163238p:plain

ダイジェスト

総合性能

  • 高解像度、視野角全振りに間違いはない。革新的に広い。左右だけでなく上下にも5°ほど拡大しているが、これがかなり強く効き、空気感のある広さを感じさせる。ただし、視野が広がった分、解像度に取られるため、中心部解像度においてはViveProと同程度?気持ち細かいぐらいの差に留まる
  • ただし、パネルの色味は悪く、全体的に低コントラストで白くモヤが掛かった印象。明るい場面では比較的気にならないが、暗い場面ではやはり気になる
  • 他機能はAudioStrapなしのVive程度に留まる
  • GPU性能はやはり要求される。スタンドアロンゲーならそこまで困らないが、1070でVRChatするにはやはり画質を犠牲にするしかない。1070の場合、SteamVRの推奨SS値は30~50%程度
  • 左右のパネルが並行でないこと、視野が広すぎること由来の、アプリ側描画問題が起きることがある。これはアプリ側の問題のため、根本対応は難しい
  • Viveと比べると、ベースステーション、コントローラ、トラッカーの電源連動のようなBluetooth便利機能は使えなくなるため、単純な上位互換としては使いづらい
文句なしに良い
  • 広い視野角。メガネのフチを越えて世界が描画されるのはすごい。斜め向きながらBeatSaberができるし、VRChatでも横にいる人を感じれる
  • 液晶の格子/ドットの粒子感はかなり低い。「粒子感を見てやろう」という気を起こしたり、SteamVRの内部解像度*1が低いとドットがチラついてわかる程度
  • 軽い。初代ViveやQuestが重いだけともいうが、Pimaxの横長ボディの割には軽い
  • ケーブルが細くて軽量。ただし本体から脱着不能、長さがViveと比べると短い。とはいえ天井吊りとかしなければ問題ないレベル
まあ良い/思っていたほどではないが良い
  • 初期装備のヘッドバンドはVive付属品よりは良く、OculusQuest未満といった印象。初期パーツとしては悪くない。イヤホン運用はだるいが、ViveAudioStrapを移植する有志のモデルデータはあるので改善はできそう*2
  • 電源ボタンがある。不要かと思ったが、デバイス切り離せるので割と便利
  • SteamVRのSS値自動設定、Pitoolの広角設定で1070でも画質は犠牲になるものの、そこまで問題なく動く。画質は犠牲になるが…(後述)

f:id:o_mega:20191022165212p:plain

気になるが許せる
  • 液晶は白く、彩度は低い。コントラスト低め。暗い場面では白いモヤが掛かったような絵になるのは残念だが、色が狂っているわけではないので慣れるといえばそう
  • 視界周辺に歪みの癖がある。横方向に長いレンズのせいか、左右外側Viveの視野の外ぐらいで、特徴的な視界の歪みがあり、特に頭を振った時に気になる。が、これも1時間ぐらいで慣れる。メガネを買い替えたときのような気分
  • 顔のクッションはVive初期装備同様のスポンジ。とはいえ今ならいろんな交換パッドがあるので、交換するには困らないだろう
  • Vive*3やOculusQuest*4にある奥行き調整機能はない。リーフツアラーのレンズフレームでかなりギリギリで自分の場合は鼻の接触する。メガネでも同様、自分の場合はそれなりに入ったがやはり鼻に当たる。鼻へ掛かる圧が気になる場合は厚いクッションを選択する、専用インナーフレームを用意する*5といった手になりそう
  • バンドの都合、重心バランスはViveやQuest同様の前寄り。公式の追加アクセサリModularAudioStrap/VisionComfortの販売に期待
  • 独自のPiToolとSteamVRの連携に気を使う。この辺はWinMR寄りは簡単だが、素のSteamVRよりは難しい印象。設定値が多く、問題発生時に切り分けに悩む
  • PiToolのほんやくがあやしい所がある
対策が難しい/悪い
  • Viveと比べるとゴーグルの顔への密着度が高く、蒸れやすい
  • ベースステーション、コントローラ、トラッカーの自動オンオフ連動はできない。コントローラとトラッカーは時間切れでオフになるが、ベースステーションBT連動に頼っていた人*6はコンセント・スイッチを付けるなりの対応が必要
  • (いくつかのアプリでは)視野角180°オーバーの弊害が出る。オクルージョンカリングによるオブジェクトのチラツキが発生ししたり*7、カメラ方向に依存する実装?で左右目が違う絵になる*8。平行投影モードで対策可能だが、再起動が必要になる
  • SuperSamplingをいじると途端にGPU性能の壁が立ちはだかる。VRChatのミラーを恐れるようになる重さ
  • 広がった視界の分だけVR酔いしやすくなる
罠的なもの
  • Viveがつながってる状態だと、HMDの視界がブレることがある。USB含め外しておくべき
  • コントローラやトラッカーはPiToolからペアリングする

f:id:o_mega:20191022164829p:plain

初回インストールでPiToolがHMDを認識せず、あれこれ右往左往した以外は、割と順当に動いて拍子抜けした。Viveと共存させると、いろいろバグった挙動を見せたので、HMDは必ず1つだけ接続するのが良いようだ。

 

付属するベルトはこんな感じ。オーソドックスに左右と上のベルトを、マジックテープで締める形だが、ゴムバンドになってる部分が後頭部の二股下側のみになっているため、締付け感は少ない。悪くない感触だ。締めつけ感が少なくなった分、左右&頭頂バンドの調整はセンシティブになっている

f:id:o_mega:20191031043215p:plain

とはいえ、とりあえずDX AudioStrap(以下DAS)化した。ViveからAudioStrapを外して、3Dプリントで接合パーツを作って接合する。左右のヒンジはベルトが短くできるこれ頭頂ベルトの留め具はこれを使わせてもらった。ありがたい!誤家庭の3Dプリンタで吐いたあと塗装して色味合わせ

f:id:o_mega:20191031041053p:plain

フェイスパッド交換しつつ、DASを装着するとこう、非常にしっくりした見た目になる。が、Viveと根本的に取り付け位置が異なるせいか、大きな頭向きの寸法になってしまった

f:id:o_mega:20191031041106p:plain

装着してみると、なるほどVive感だ。少なくともベルトよりはカッチリとしたサポート感になった。イヤホンの面倒さもない。ただ、借りたViveProと比べるとやはり重心バランスや、おでこと後頭部で支える感じは乏しく、顔のホホで支えてる感じは残る。この辺の旧式感は否めない。

公式から予定されているModular Audio Strapアクセサリは写真みるかぎり、VivePro風になっているので期待したいところだ。おでこサポートのVisionComfortKitも別になっていてトータル$170掛かる、となるとうーん、重要パーツを別売にされているというかViveProと比べると不完全状態でリリースされている印象は否めない

 

 

SS値をいじって遊ぶ

SS値、SuperSampling値とは。

【VR】内部解像度 (Super Sampling) で VR 体験はどれだけ変わるのか?この記事が詳しい。ざっくり言うと、HMDへ投射する前段階として内部レンダリングをしていて、そこの解像度の大きさ/比率を設定するパラメータだ。ざっくり「100%で中心部解像度がHMDに対して1:1比程度になり、小さいほど軽量&低解像度、大きいほど高負荷&高解像度」だ。HMDごとにパネル解像度が異なることに注意

体感では、50%を下回ると低解像度のジャリジャリ感が厳しい。50%~120%あたりは値に合わせて解像度感が高まる。120%以上ではイマイチ区別がつかなくなり、200%以上は実用性がない、という感触。

何も設定してないSteamVRであれば、GPUHMDの組み合わせから勝手に決定される。一時期「ViveProを買うなら、GPUを強くすると解像度感が上がる」という噂があったが恐らくこの自動設定されるSS値が理由。手動で設定することもできる。

Vive/ProとGPUの組み合わせにおけるSS値はここが参考になる。例えば自分の以前の環境、1070+Viveなら132%のように

 

手動設定はSteamVRでは2箇所あり、アプリケーションと動画*9のそれぞれにあり、アプリケーションならアプリごとに、動画だと全体設定ができ、最終的にそれの掛け算で機能する。またアプリによっては、独自に内部解像度設定を持つもの*10もあり、恐らくSteamVRのSS値に更に掛け算する形で機能すると思われる

f:id:o_mega:20191031045154p:plain

1070+Pimax5k+の組み合わせでは44%が推奨されたものの、100%で上書きしてる図。かなりブーストしてやるとキレイにはなるがfpsが犠牲になってガタガタになる。パネルのdotbydot…ではないけど100%出せないのは悲しくない?

 

VRChatへ戻るとやはりGPU性能がつらい。BeatSaberとかGoogleEarthVRとか、他であればそんな気にならないのだけど、VRChatはやはりヤバい。SS値30%~40%ぐらいなら安定するのだけれども、それでもローカルミラーが怖くなってしまった。比較的重いJapaneland Skyの雲シェーダーでは15fpsを下回るような場面も出てきた。5kの解像度を活かせない…力がほしい…

力(SS値)が欲しいか…(そんなものはない。現実は無慈悲である)

f:id:o_mega:20191031042411p:plain

動作環境を更新した

  • Core i7-9700K
  • 32GB
  • GeForce GTX1070(8GB) → RTX2080super(8GB) 

…あれ?それほど早くなってない?いやもちろん1070よりは劇的にマシにはなったのだけど、「すっげー快適!!さすが2080superさんやで!」というほど早くないというか。SteamVRの推奨SS値は80%程度まで上がったものの、100%を達成できないのはこの機材投資に対してちょっと悲しくないですか?私、能力は平均上のつよつよなPCって言ったよね?Vive+1070よりPimax5k+2080sの方が体感で性能が出てないような…?

f:id:o_mega:20191031050304p:plain

2080superを持ってしても推奨SS値86%

 

ということでちょっとざっくり試算してみる。

HMDピクセル

  • Vive 2160x1200
  • RiftS 2560x1440 = Vive比1.42倍
  • VivePro,Quest,Index 2880x1600 =Vive比1.78倍
  • ViveCosmos 2880×1700 =Vive比1.89倍
  • Pimax5k+ 5120×1440 =Vive比2.84倍

一方、GPUのベンチスコアを見ると…、2080superは1070のわずかに1.6倍程度のスコアしかない!えっマジ!? そりゃ性能不足になるわけだ。面積2.84倍の要求に、1.6倍のパワーしか供給できてないとすると、総力的には44%減である。しかもVRAM容量は変化してない

これが2080Tiになると、シェーダーコア数が2080superの1.3倍になり、1070比で約2.0倍になる。えっ、2倍しかならないの!? つらい…、いやまあ不足していると言われるVRAMが8GBから11GBに増えるならTi化は有効なのかもしれないが…。

一応この2080super、2080Tiの先にRTX TITANがいるが、シェーダーコア数はほとんど増えず、VRAMが増えるだけであり、それでもって価格ははるか彼方へ飛んでいってしまう。まったく実用的ではない。VRChatは無料。どうして…

 

…うーん仕方ないので忘れよう。PCはたしかにつよつよになったはずなんだ。当分このままで

Pitoolの設定あれこれ

Pimaxには設定ツール、というかSteamVRと連携するシステムツールPitoolがあり、割と設定値が多い。

f:id:o_mega:20191031050627p:plain

スマートフレーム

OculusやViveがやってる「フレーム描画が間に合わなかった時に、前フレームの絵でなんとか頑張る」やつのPimax版

固定注視点レンダリング

FixedForveatedRenderingのこと。OculusQuestがやってるような、周辺視野部分だけ解像度を下げてレンダリングコストを下げる機能。解像度を下げるといっても滑らかに下がるわけではないため、解像度の段差が見えてしまう、周辺視野がジャリジャリした解像度になる違和感は多少あるものの、わりとちゃんと機能している気はする。パフォーマンス、バランス、画質優先の3段階設定。設定が即反映されるが、アプリ起動中に変更するとクラッシュ要因か。

機能としては面白く、視界が変化するのは面白いのだけど、負荷削減効果についてはいまいちピンと来なかった。SS値を下げた方が明確に性能影響が出る感触

この機能は、RTX20x0系のみ有効になるらしく、他GPUではそもそも項目がないらしい。1070の時にはなく、突然生えたように見えたので驚いた。

並行投影対応

要SteamVR再起動。Pimaxは他のHMDと違い、左右の目が並行でない(液晶パネルがPimaxボディの見た目の通り斜めに設置されている)ため、左右でガチャ目になってしまうアプリがある*11。その対策なのだが、かなり残念な画質になり立体感もなんだか変になる。ので実用的かいうと、無いよりはマシだが微妙な感じだった。

視野角

文字通り、即座適用される。Pimaxの売り広視野角を削るモードといえばそうなのだが、視界端でモノがオクルージョンでチラついて邪魔、少しでもGPUパワーをセーブしたい時に使える。広い、標準、狭いの3段階で、標準でもメガネより広い範囲をカバーするので普段使いには標準が良い感じだ。狭めた分だけGPUパワー要求も減ると思われる

f:id:o_mega:20191031050701p:plain

 クオリティ

良くわからない。恐らくSS値の倍率設定と思われる?

ざっとこんな感じ?良くわからないというか、公式に設定の説明がない?

いかがでしたか?

まとめは前述の通り、Pimax5k+は視野角に全部を注ぎ込んでおり、それ以外のHMD性能はViveCE(AudioStrapなし)前後の性能をイメージしてもらえればだいたい良い。この視野角はたしかに禁断の果実とも言うべき「広さ」を提供してくれる。この広さの味はたしかにすごい。既存のHMDが狭い双眼鏡か何か見えてくるぐらいのインパクトはある。

ただしこの拡大したパネルを十分に支えられるGPUは、特にVRChatの必要性能に関しては現実に存在しないオーパーツだ。

 

比較対象にViveProを借りて装着してみたり、また店頭デモでCosmosも触れてみたが、性能バランス面ではこちらが間違いなく良い。特に装着感、頭に載せた時の安定性や顔に重量が乗らない感触はVive+AudioStrapとは別次元の快適性になっていて、スペックに出にくい点でViveの後継機と言わせるだけの出来を感じた。普通に買うならそっちだろう*12

 

そういう総合的な快適性にはPimax5k+は到達しておらず、そういう意味ではOculusDK2の後継機というかDeveloperKit感触が残る。無骨さと、足りないGPU性能、それでも広い視野角が欲しいか、どうか

*1:SuperSampling設定、デフォルトではGPU性能に従って大小する。SteamVRの設定で手指定もできるし、Beatsaberなどではアプリ側にも設定値がある

*2:3Dプリンタ/プリントサービスに手が届けば

*3:ヘッドバンド付け根を引っ張って回すとHMD全体がせり出してメガネが入れやすくなる機能

*4:簡易版。スペーサーが付属し、必要に応じてクッションと本体の間に挟むことでメガネが入れやすくなる

*5:ユーザ数的に言って自作になりそう、難易度たけえ…

*6:わたしです( ^o^)ノ

*7:VRChatやSteamHomeでは分かりやすく起きる。気になるが視界ギリギリ端で発生するだけで致命的ではない

*8:RezInfiniteなど。こちらは致命的に遊べない

*9:Videoの誤訳っぽい。正しく訳すならそのままビデオ(オーディオの項目があるので)か、映像とすべき

*10:BeatSaberなど

*11:例えばRez Infiniteとか

*12:Cosmosのトラッキング性能はまだ残念な感触だったが…、という意味では今HMDを買うのは本当に悩ましい時期だ。とはいえ恐らく、OculusRiftS/ViveCosmos/ValveIndexと今世代が揃ってしまったし2,3年は、PCVRは当分このままの可能性は高そうと踏んでいる

RecRoom、VRChat、PublicとF+、電話、公園デビュー、現実のソーシャル

 適当な脳内メモです

  • VRChatのF+運用文化によって、多くのユーザはSocialを辿ってjoinするようなプレイスタイルに変化する
  • これは初心者に優しくないので高い脱落率は納得が行く
  • しかしF+は居心地の良さも提供しているため、一度住み着くと離れづらい
  • F+制御システムは現実でも同様な振る舞いはあり、現実でも似たような問題がある
  • VRChatはだいたい現実mostly real

VRChatをなんとなく初めるとコケる問題

 なぜなら何もシステム的なフォローがないから。TwitterFacebook、pixiv、mixiなら興味のありそうなユーザをサジェストしてくる、フレンドのフレンドを手繰っていける… だがVRChatにはそれがない*1

かくいう自分もVRChat自体の開始は去年だが、今年のVケット2までハマることがなかった

RecRoomを見てきた

RecRoomにはフローが設計されている。Public前提である。ミニゲームに突っ込まれる、遊ぶ、クリアしたら握手してフレンドになる、フレンドが増える。ポイントがもらえてアバターカスタマイズができるようになる。

これはこれで正しい(その思想に同意できれば)

VRChatにはフローがなく、しばしばpublicを彷徨って脱落する

一方でVRChatにはやることが無い。恐ろしいほどなく、初心者はとりあえずVRのpublicの街角へ放り出される

混沌としたpublicたまり場もあるが、初心者が事前情報なしに見つけるのは困難だ。慣れたプレーヤーほど会員制クラブともいうべきフレンドプラス(通称F+)なインスタンスへ流れがちになる

F+は見知った仲間で過ごせる。まったり過ごす、すやすやワールドが増える。

 

一方で初心者は治安の悪いpublicを散策して脱落してしまう*2

アクティブフレンドを十分作ると見える地平。Worldタブ or Socialタブ

Socialにアクティブなフレンドが増えると流れが変わる。

VRChatへjoinしたら、メニューを開いてWorldタブからいつものpublicたまり場を目指す、そういうプレイから、Social欄からフレンドを見てjoinするようになる段階へ変わっていく。WorldタブからSocialタブへ重視していくタブが切り替わる。

 

イベントをよく開催したり、人が集まりやすいハブ的なユーザーを見つけてjoinしたりすると、更にフレンドが増える。アクティブなフレンドが増えると、更にどのインスタンスに集まっているか、単独行動しがちなフレンド、グループ行動をするフレンドの輪が見えてくる。ますまずフレンドにjoinしやすくなるサイクルが回りだす。そうするとWorldタブからpublicインスタンスを選ぶ理由はほとんど無くなる。

 

しかしここまで行くのがメチャクチャ遠いのだ*3。VRChatのフローはおかしい。

いや、たまたまこう実装してしまって、それに人が慣れたか着いたかかはわからないが、そう回るようになったのだろうなあ

PublicとF+

VRChatのまずおかしいところはこれだ。交流させる設計なら、RecRoomのように強制publicの方が正しい。インスタンスがバラける、人が集まらない、分散するプライベートインスタンスがシステム的に整備されている不思議。人と出会えない、オンライン引きこもりを加速するソーシャルVR、VRChat

 

F+に籠もるとコミュニティは拡大しない。じわじわ構成メンバーが減少して最終的に消滅に至る。増やすには人を取り込むしかないが、F+は外部からは見えない。つまり、プライベートインスタンスへの誘導が強いVRChatは消滅が運命付けられている、…はずだ

 

しかしちょっと考える。ソーシャルって何だ?Twittermixifacebook?と考えると、非同期のテキストソーシャルと比べ、VRChatはリアルタイムなので特性が違う。

電話、しかも正座待機してないと電話が取れない「呼び出し音なし固定電話」がVRChatには近いのではないか?

ボイスチャットサービス・電話を初めたときの最初の相手は?

電話にグループボイスチャットが付いたぐらい、がVRChatのソーシャル機能と言えるように思う

じゃあ、電話と比較しよう。最初に電話を始めたときどうした?リアルの友達から電話番号を教えてもらったり、今なら親から受け取ったスマホに自宅や親の番号がすでに入っていたりしなかった?

 

電話を初めるとき、リアルのソーシャルネットワークを電話のソーシャルに持ち込んでいる。LINEとかslackとかDiscordとか。リアルの交友のある人から「これ便利だよ。連絡に使おう」と言われて初めることが多いと思う。それだ。

VRChatもこの系列なんじゃないか?VRChatを一人で初める、というのは、LINEを一人で始めたり、通話相手なしで電話を初めるようなものなんじゃないか?

付添い親なしで公園デビューできるのか?何もなしに会話の輪ができるのか?

そうすると、一人でpublicのたまり場へ馴染みに行くには、「子供が親同伴なしで公園デビューを果たす」ぐらいの難易度がありそう。適切なpublicたまり場を知らなければ、まず公園にたどり着けないだろう。たどり着けたとして、公園の輪に参加できるだろうか

 

そういう場合、話題になるネタがあるといい*4

例えばデートに映画を使う、なにかのイベントを見に行くとか、買い物に付き合ってくれとか、アスタリスクの花言葉*5も話題の提供と、それによって会話の輪を作ることに一つ目的がある、はず。

RecRoomの場合はこれをミニゲームとして実装しているが、VRChatは完全にワールドに依存している。そしてSDKミニゲームの様なインタラクションを作るには向いていなく、pickupのごっこ遊びが大多数

 

かつてMMORPGが高級チャットツールと言われたが、本当に(ボイス)チャットだけにしてしまったのがVRChatとも言える。MMORPGRPGにオンラインとチャットを付けたことで、ゲーム攻略をネタに会話をさせることができたが、VRChatはそこすら捨ててしまった

現実のソーシャル

現実でも単に会ったから、合流したから、といって会話が弾むのはかなり少数だと思う。満員電車で隣に並んだ人と和気あいあいと雑談になるケースは稀だ。家族や友だち、知り合い、仕事仲間、小さなソーシャルネットワーク内で会話をしている。これは現実のF+だ。これらが縮小して自然消滅したり解散してしまうことはある。

 

現実の勉強会や各種サークル活動、イベント等をpublicに募集した結果、拡大して制御不能になったり、コストを支払えずに分解するケースもある。

publicの治安悪化、制御困難と、F+の自然消滅リスクは現実でもある。つまりこの辺のソーシャルネットワークの制御が難しいのは、現実でも同じであり、多分人類全体の*6仕様じゃないかなあ

 

VRChatのソーシャル問題はだいたい*7現実*8というオチが見えてきたので、思考終了

 

あとまあ、VRChatは「日本語が通じる異世界旅行」「VRなりきりチャット」とかに近いんでは?とも思うので、現地の風習とのギャップで困惑する、みたいなのもありそう。

そもそも知らない人と会い続けるのは楽しいのか、とか

*1:Socialの一番下にランダムなアクティブユーザはいるが…。恐らくほとんど使われていないだろう

*2:そういう意味では、publicなのに人が居着いて治安がよいワールドは稀有でありがたいわけですよ。恐らくは、少数の有志が精力的に維持している。そういうパターンは観測した

*3:個人的にはフレンド200人ぐらいで到達した印象だが、フレンドのアクティブ率や本人のプレイ時間帯に依存するのでなんとも言えない。自分のケースでは、Questリリースのユーザ増加タイミングにVRChat QuestユーザDiscordに合流できたことも強い

*4:ネタがあると、環境のコンテキストがあると簡単なジェスチャーでも伝わるようになる。VR無言勢はその辺の表現力が高くていいですね

*5:これについてはいろいろ書いた方がいいような気もしつつ、いまいち纏まっていないんだけど、とりあえずヨツミさんありがとう。ただ、こう言えるのは一緒に協力できたフレンドがいてくれたこと、そしてクリアを達成できたことによる所も強く、万人におすすめできるコンテンツではないとは思う。でもこれは好きなコンテンツだったよ。あと、これは完全に個人的なイメージなんですけど、ヨツミさんは(beyond the reality:betaでも感じてきたけど)360°又は720°又は1080°あたり捻った豪速球を叩き込んで来るスタイルと認識してまして、今回のアスタでもその認識を再確認し深く納得すると共に、どうしてここまで捻ったストレートボールを打ち出せるのか、打ち出すパワーがあるのかと感心していますありがとう

*6:ここクソデカ主語

*7:代替ではなく「だいたい」mostly

*8:とはいえVRChat内のコミュニティ維持は現実より低コストではある気がする。VRバイスや通信代は掛かるとはいえ、場所代や現実で会うためのコストよりは安く、プレゼンス/存在感は他の通信手段より高いと感じる。ほにゃらら集会が数多く開催されているように。個人的なイメージだけど

最近の日記

VRChatしかしてない…

  • 何かしらVRChatからみの事をやっているはずだけど、Steamの時間はあんまり伸びて無くて、そろそろ300時間というところ。
  • なくとんさんからリプを貰ったりして、Animator沼が分かってきた気がする。VRC運営は当初Animatorの仕様をどこまで把握していたのだろうか?
  • CyanLaser ClimbingPrefabのpackageチラ見してみたけどやべー。やっぱりコードリーディング?が腕を上げる近道だなあと思う次第
  • StandardAssetsとuGUIも触らねば…
  • just Redflagワールド製作は一段落した。と思ってたけど、微妙に小物ネタが浮かんでしまうのが悩みどころ
  • Flightunit Test用に、視界が広い新しい飛行ユニットのモデルデータが欲しいなあと思いつつblenderしてたけどいまいちいいアイデアが無く… 旋回ギミックだけ早く付けたい
  • あ、Quest対応カメラ配布はじめました
  • フレンド人数が200人ぐらいに到達し、結構アクティブな方がOnlineで見れる様になった。最近の公式ウェブページ更新で「フレンドが集まってるインスタンスが分かる」ようになったのが本当に素晴らしい。ChromeExtensionでもできていたが挙動が不安定だったこともあり、公式で機能が取り込まれたのは神。おかげでコミュニティが可視化されて、自分のフレンド上でも1,2箇所ぐらいはたまり場的なものができてるのが見えてjoinしやすくなった。…あとはVRC内からこれが見れれば完璧だ。予定されているUI更新に期待
  • アスタリスクの花言葉が来たと思ったら、クリアできる前にVケットが来てしまい生活崩壊しております。とにかく可処分所得時間を食うネタがVRChatだけで多すぎる…。体操とSilentClubと筋肉部も行きたいけど、そもそも時間被っとるやんけ!!!!VRChatをやるだけのバーチャル身体が3体ぐらいほしい

VRChat Questでワールドを作るとき、参考にしたい実例ワールドとパーツ類

Quest対応ワールドを作りたいけど何使っていいか分からない

わからんのわかる。

詳しくは公式を見よ、ではあるんだけど、ざっくり翻訳すると

  • 透過シェーダー(Transparent/AlphaCutout)はほぼ禁止。が独自シェーダーは使える
  • VRC_SyncVideoPlayer,SyncVideoStremは禁止。置くと壊れるので、Questアップロード前にコンポーネントをオフにしろ
  • 他はだいたい使えるが負荷に注意ね

という感じ。逆に言うと、そのほかのVRCコンポーネント由来や、カメラ、Animatorなどのギミックは使える。シェーダー芸は要注意だが、判別付かない気もする。

PC版でワールド作っていて、それをQuest対応するならポリゴン数とかシェーダー依存の表現(透明や反射)ですかね。ポリ数が多いのについてはモデルを削減するしかない。テクスチャだけとかならUnityのプラットフォーム別オーバーライド機能で縮小とか使えるんだけど

 

つまり「制約は多い」とは言われるけど、(VideoPlayerを例外とすれば)多くは描画と表現であって、ギミックは制約はないと言ってもいいんじゃないかな?

使える具体例

他にもたくさんありそうだけど、Questで実際にワールド散策するしかない気がする?

実例ワールド集

この辺はQuest勢に紹介するのもよさげ。

Quest勢は見栄えのいいワールド難しいせいか、見栄えよりギミックを好む感じはあります。が、別に見栄えバリバリワールドが苦手なわけでもなく、単に作るのが難しい

実例を見てワールドを作る時の注意

ざっくり

  • 最初からQuest対応を考えた、つよつよワールド
  • 先にPC版があり、後からQuest対応をしたワールド

の2系統のワールドに加え

  • 作者がQuest持ってないようで負荷チェックできてない
  • Quest持ってるらしくそこそこ軽量/すげー軽量

なワールドがあります。こればっかりは仕方ないんですが、その辺参考にする時はどっちかな?というのを考えてみると良さそう

パフォーマンス問題

ギミック制約はない、とは書いたが、パフォーマンスの問題は残る。つまり重いかそうでもないか。

ただ、そのパフォーマンスチェックは問題で、Questユーザに来てもらうか、究極的には自分がQuestユーザになるしかない。そこは如何ともし難いです。

 

お金に余力あればQuest買ってみてよ是非!と言いたくなってしまうけど、まあ自分がガジェット趣味でQuest対応初めたら買ってしまうしかない気持ちになってしまったところもあり、強くは推しづらい…。いやQuestは良いんだけど、やっぱりPCVR持ってると用途被っちゃうし、それだけのために5万円は厳しいよね

あと自分の記事をおすすめする

過去記事です

それはそうと、いいかんじなQuest対応水面シェーダーあれば教えて下さい

 

VRChat Questのテクスチャ形式はASTCにしよう

VRChat Quest向けアバターやワールドを作ってる/いじってる人はテクスチャの圧縮形式をRGB(A) Compress ASTCにするのがおすすめ。テクスチャのしましまが減ってキレイになるぞ

設定方法

プロジェクト全体設定

特にテクスチャ毎に設定してない場合はこの設定が優先されるはず?なので、とりあえず設定しとくと良さそう

Build Settings → Android → Texture Compression

f:id:o_mega:20190724024914p:plain

ここがDon't Overwriteになってる場合は、デフォルトのETC形式で圧縮が掛かり、テクスチャが汚くなってしまう。ASTCを選ぶ

テクスチャファイル個別での設定

プラットフォーム別オーバーライドでテクスチャ毎のあれこれ設定している人はこちらも確認する。

f:id:o_mega:20190724025644p:plain

ここをASTCにする。

以上!それだけ

他tips

ASTCってなんなの?どうしてASTCがデフォルト設定になってないの?

Android系デバイスでは長らくETC2が一般的なテクスチャ方式だったが、2012年に「ETC2を置き換える、より良い圧縮形式」としてASTC形式が作られた。で普及してきたのだけども、ASTCは対応しているSoCの端末でしか使えない。

圧縮形式としての性能はETC2より高いビットレートをサポート、ETC2よりちょっと高品質(半デシベル程度)とのこと。

端末の統一が取れてるiOSはともかく、様々な端末のあるAndroidではまだETCの方が確実に動いて安心のようだ。それでUnityのAndroidビルド設定では、デフォルト圧縮形式がETCになっている。

ここまで前提

 

だけれども、VRChatが動くOculusQuestは1機種しかない。Questが使っているSoC Adreno 540はちゃんとASTC対応している。ので高品質のASTCを使って問題ない、というわけ。

公式OculusがASTCにしろ、とも言っている。公式なら仕方ない…

使おうぜ

いっぱいバリエーションあるけど何使えばいい?

f:id:o_mega:20190724025810p:plain

block4x4からblock12x12まで

  • blockサイズが小さいほど、解像度が高くキレイ、ファイルサイズは大きく
  • blockサイズが大きいほど、解像度が低く汚く、ファイルサイズは小さく

という様子。

6x6~8x8あたりが標準的っぽい?文字のようなノイズが目立つと困るテクスチャでは6x6ぐらいが良さそう。他であれば8x8より大きくても良さそう。

VRAM使用量は圧縮でどうなるの?

CEDEC2013『工程の手戻りを最小限に 圧縮テクスチャ(PVRTC・DXTC・ETC)における傾向と対策』発表資料 | OPTPiX Labs Blog を読むと、現行のGPUは対応しているテクスチャ形式(今回のASTC、従来のETC/ETC2、その他DXTCなど)については、圧縮状態のままVRAMに格納されるようだ。つまりVRAM使用量の削減として有効のようだ。

ということでQuestの場合は、何も考えずにすてきなASTC形式が使える。使って良い。

 

画質参考【Unity】iOSでASTCフォーマットのテクスチャ圧縮を使う - テラシュールブログ

参考記事 Unity+Oculus Quest 開発メモ - フレームシンセシス