2021年のVR-TRPG

VRTRPGやってみたい。そう思ったこと、一度はありますよね?

国内では既にさまざまなプラットフォーム上でVRTRPGが遊ばれていたりします。海外でもVRTRPGをやるコミュニティを聞いたことがある*1ので、おそらく既に遊ばれているでしょう。

この記事では、自分の経験から現状のVRTRPGの特徴や利点を列挙していきます。TRPGを遊んだことある人向けの内容になっています。
なお、ぼくはNeosVRをメインで遊んでいるので、他のソーシャルVRでの話は間違っているかもしれません。ご了承ください。

結論

文章が長いので、先に結論をまとめておきます。

  • VRセッションはオフラインセッションとオンラインセッションのいいとこ取り!
  • いろんなVRサービスで色んな人が試行錯誤中!
  • こんなのは俺の求めるVRTRPGじゃない、という人はぜひ求める遊び方を開拓していってください! 新しい遊び方を作っていきましょう!

自己紹介

よっしーと申します。NeosVRでのユーザー名はyoshi1123_です。
https://vprof.me/@/yoshi1123_
VRに来る前からTRPGで遊んでて、オンラインセッション*2をメインに、たまにオフラインセッション*3でも遊んでいました。PLよりGMの方が回数が多い気はしますけど、ちゃんと数えてないのでよくわからないです。
VRはNeosVRをメインで遊んでいます。
VRTRPG自体はVRChat/NeosVR/clusterで遊んだことがあります。それぞれ下記の経験があります。

  • VRChat: GM1回、PL3回程度
  • NeosVR: GMが10回弱、PLが2回
  • cluster: PLが1回、GMは未経験

そもそも

TRPGって何?

テーブルトークロール・プレイング・ゲームと呼ばれる遊びです。*4
進行役(ゲームマスター/GM)と他の参加者(プレイヤー/PL)に分かれて、GMがお話や状況を描写し、PLがその状況でどう動くかを返して進めていくような遊びです。*5
ゲームのルールはルールブックと呼ばれる書籍に書かれています。それに沿ってGMが裁定していきますが、処理を行うのはすべて(GMを含めた)参加者なので、時にルールに無い提案をしてお話を進めたり、あるいはルールがあまりにややこしいから一部簡略化したりと、その場の状況に合わせて柔軟に遊べるのが普通のコンピューターゲームとの違いだと思います。

言葉で説明されてもわからないと思うので、もし興味があれば「TRPG リプレイ」とかで出てくるリプレイ動画を見たりリプレイ小説を読んでみてください。
リプレイというのは、TRPGを遊んだときの記録を他の人が見れるように再編したり纏めたりしたもののことです。あるいは、遊んでいる様子を配信してるセッション配信などもあります。

fujimi-trpg-online.jp

ソーシャルVRって何?

VR上でアバターを着てコミュニケーションが取れるチャットツールのことと認識されていそうです(ぼくも詳しくは知らないです)。他にはVRSNSと呼ばれていたり、最近だとメタバースと呼ばれて認知されていたりします。
国内で有名なサービスだとVRChatNeosVRclusterバーチャルキャストなどがあります。 コアユーザーはVRヘッドセット(VRHMD)を被って遊んでいますが、VR機器が無くても遊べるデスクトップモードに対応しているものも多いです。それなりの性能のゲーミングPCがあればすぐにでも始めることが出来るはずです。clusterに限って言えばスマホでも起動できます。

panora.tokyo

VRTRPGの特徴

指向性・距離減衰アリのボイスチャット

オンラインセッションでSkypeやDiscordなどのボイスチャットを使ったことがある方はわかると思いますが、オンラインのボイスチャットでは喋ってる人はほぼ確実に1人になってしまいます。ボイスチャンネルが1つしか無いので、複数人が同時に喋ったときに聞き分けはほぼ不可能です。
しかし、VR空間では指向性(音の発生源の方向がわかる)と距離減衰(遠くの音は小さくなる)があるため、アバターの存在する場所から声が聞こえるようになっています。オフラインセッション時のように声が聞こえる方を向けば誰が喋っているかわかりやすいでし、同時に複数の会話のグループが発生したりしても、少し距離を取るだけでお互いの会話を邪魔することはありません。また、別のグループで会話している内容がすこし遠いところから聞こえてくるので、その話題に興味が湧いたときにすぐに会話に参加することも出来ます。
加えて、NeosVRではボイスのモードが複数存在し、ひそひそ話をするためのウィスパーモード*6や距離減衰が少なくなるシャウトモード、ワールド全体に声を届けられるブロードキャストモードなどがあります。ウィスパーモードは秘匿会話が必要な遊びに、シャウトモードは広いワールドで動き回ってるときに、ブロードキャストモードはGM進行時や配信時に便利です。

f:id:trpg_yoshi:20211226213650j:plain
ウィスパーモードで密談をしている様子。秘匿情報のやり取りも可能。

ジェスチャーと筆談、無言勢

VRでのコミュニケーションはボイスチャットだけではありません。現実世界と同じように、アバターによる身振り手振りが表現できます。オンラインセッションのときにパソコンの前で独りでろくろ回しをしている人も、自分の行いを振り返って虚しくなることはありません。
VR空間内にある情報を説明する際にも、大きさの説明のときに手で大きさを表したり、場所の説明のときにその場所を指差したりと、現実では普段やってるのにオンライン上ではやりづらかった所作の多くがVRセッションでは行えます。
さらに、VRChatやNeosVRなどには空間上に書けるペンツールなどもあります。情報をその場でメモったり、あるいは筆談で会話したりなんてことも可能です。
ソーシャルVRには無言勢と呼ばれる方が生息していますが、無言勢の人でもジェスチャーや筆談でTRPGを遊ぶことが出来ます。

モノの拡大縮小・持ち運び。物理法則無視

現実世界ではモノや小道具、コマやミニチュアなどを多く用意しようとすると、嵩張ったり持ち運びが大変だったりと物理的な制約に縛られてしまいます。
VRでは、あらゆるものはデータなので重さは感じない*7ですし、モノの拡大縮小なんかもできるので持ち運びも簡単です。
さらには目には見えてるのに通り抜けできる壁を用意したり、ミニチュアのマップの中に自分が小さくなって入り込んだりと、シナリオに合わせてギミックを用意すれば現実では想像するしかない状況を実際に体験することも可能です。TRPGのルールと同じように、不便な物理法則は無視しつつ採用したい物理法則だけ再現して遊ぶことができます。

f:id:trpg_yoshi:20211226214126j:plain
資料やキャラシを宙に置いて空を飛びながら確認している様子。拡大縮小もお手の物。

小道具の取り出し

TRPGのプレイを便利に進めたり、あるいは場の雰囲気を盛り上げるために、さまざまな小道具を用意する人もいるかと思います。キャラクターシートや各種表、ミニチュアやシナリオの関連アイテムなどなど、小道具を取り出しながら遊びたいですよね?
NeosVRやバーチャルキャストではインベントリという機能があり、アイテムを色んな場所で取り出せるようになっています。その場の進行やアドリブ演出のときに、似たアイテムをすぐに取り出せたりもできるでしょう。VRChatなどではワールドやアバターに予め仕込んでおけば、いろんな小道具を使えるはずです。オフラインセッションのときのマップやポーン、オンラインセッションのときの立ち絵やBGMなどと同じようにVR空間でも小道具を使ってセッションを盛り上げれます。

サイコロとBCDice

TRPGに欠かせないと言っても過言ではないのがサイコロ(ダイス)。物理演算シュミレートができるVRでは現実世界と同じようにサイコロを降ってもよいし、電子計算の力を借りてプログラムでダイスボット風のダイスロールを行ってもいいです。物理ダイスを振って楽しみたい方は物理演算ダイスを、振るダイスの数が多くて処理を簡略化したい方はプログラムダイスを振れば、快適に楽しく遊べることでしょう。
NeosVRではHTTPリクエストを外部に飛ばせるので、BCDice-APIを叩くことが出来ます。ココフォリアやユドナリウム、Tekeyなどで普段使っているコマンドをVR内でも使用できるので、複雑な処理が入るTRPGでもそれほどハードルは高くないと思います。

f:id:trpg_yoshi:20211226220618j:plain
物理ダイスとBCDice。物理ダイスの方は出目の合計値を合算して表示することもできる。

GMしか見れない情報、PLの秘匿情報

VRChatやNeosVRなどではグローバル(※その場の全員に同期される情報・オブジェクトなどの状態)とローカル(※自分だけ見える・触れる情報・オブジェクトなどの状態)の状態があります。これを活用し、GM用のシナリオをローカルで持ち込んだり、PL用の秘匿ハンドアウトや手札などをそのPLのローカルに渡したりすることで、VR空間内で快適にTRPGが遊べます。

PC/NPC用のアバターを着て遊ぶ

ソーシャルVRではそれぞれがアバターを着てコミュニケーションするサービスがほとんどで、たいていの人が1人以上のアバターを持っています。VRセッションのときにはプレイヤーキャラクター(PC)やノンプレイヤーキャラクター(NPC)のアバターを着ることで、よりキャラロールがやりやすくなったり他の人から見て特徴がわかりやすくなったりできます。現実では着替えが大変でほぼ無理な遊び方なので、VRらしい遊び方とも言えるでしょう。あるいは、自身のアバターをフィギュア化して、ミニチュアマップの上に置いて遊ぶことも可能です。VRChatやNeosVRにはアバターをフィギュア化するツールが存在しています。 現在ではVRoid Studioというアプリでゲームのキャラクリのように自作アバターが作成できますし、自作が苦手な方でもBoothには販売アバターが多数あります。オフラインセッションやオンラインセッションの立ち絵のように、自分のPCのアバターを使って遊んでみるとより楽しめるでしょう。

f:id:trpg_yoshi:20211226222404j:plain
TRPGを遊んだあとの集合写真。PCやNPCアバターをそれぞれ着ている。

シナリオの雰囲気演出にワールド作成

オフラインセッションでミニチュアを用意したり、オンラインセッションで美麗背景を用意したりするように、VRセッションではワールドを用意してセッションを盛り上げることができます(もちろん、ミニチュアや美麗背景を用意しなくても遊べるように、VRでも凝ったワールドを用意しなくても遊べます)。
ぼくがVRで遊ぶときには、シナリオの一場面の雰囲気を感じられるワールドでオフラインセッションのように遊ぶだけでもかなり楽しめます。 ワールド作成のノウハウは普通のVRユーザー向けの解説が多く出回っているため、TRPG用途にも転用できるでしょう。ワールド作成のための3DモデルのアセットはUnity Asset Storeなどで探すことができます。

f:id:trpg_yoshi:20211226221754j:plain
TRPG用のワールド。背景に3Dモデルを使うだけでも雰囲気が出る。

専用ツール

多くのオンラインセッションツールのように、VRでもプログラムによるセッション進行の支援が期待できます。まだ数は少ないですが、TRPG用途のVR内ツールを作っている人もいます。開発の技量を持っている方であれば、自分好みの専用ツールを作り出すこともできるでしょう。
ぼくはゆうやけこやけ用のツールをNeosVRで作成しています。夢というリソースを管理するカウンター、つながりを管理・計算する表、VR内のキャラクターシートあたりを用意しました。VR内で完結するように準備しようと思えばできます。

VRTRPGの欠点

良いところだけ書いてても詐欺っぽい信頼性が低いと思うので、思いついたデメリットも書いておきます。
だいたいのデメリットは慣れか人口が増えることで解決すると思ってます。

  • やってる人が少ない。卓自体が少ない。
    あなたもやってみませんか? 卓がなければ卓を立てればいいのです。
    なお、TRPGをやってる人をVR環境に呼び込むより、VRにいる人にTRPGを広める方が金銭的ハードルは低いです。
  • ノウハウがまとまってない。
    人が増えて需要が増えたらノウハウをまとめる人も増えます。ノウハウ自体は試行錯誤中なので一緒に研究してほしいです。
  • ツールが少ない。
    人が増えたらツールも増えます。
  • VR環境を用意するのが大変。
    機器が一般に普及するのを待つのがいいと思います。もしくはデスクトップモードでも遊べる遊び方を作り上げましょう。
    今すぐにでもVR環境に飛び込みたいなら、お金をかければいいと思います。
  • 資料の参照は工夫してるけどそれでも不便。
    紙の資料とか特にめんどくさいです。超便利な電子ルールブックが出て解決したりしないかな。
  • HMDは重い。
    メーカーが頑張って軽量化してくれると期待してます。
  • 疲れる。
    適度に休憩を取りましょう。時間を小分けにして遊びましょう。普段のTRPGと一緒ですね。
  • VR酔いする。
    体質はどうしようもない……。酔い止めを使うとか、VR酔いしにくいノウハウみたいなのはある(らしい)のでその辺りを調べてみるといいかも。
    あとは毎日VRやってると慣れてVR酔いしなくなるかも。
  • 臨場感を上げるのが大変。
    オンセやオフセでも臨場感上げるの大変なので、それらとあまり違いはないと思います。
    個人的には、臨場感マシマシの遊び方はCRPGの方面からのVR化がやってくれると期待してます。TRPGは想像で補えばいいと思います。
  • フルダイブVRができない。
    技術革新に期待しましょう。
  • 「それVRでやる意味ある?」って言われる。
    そういう人とはVRに関わらず遊ばない方がいい気がします。他所の卓に口出ししちゃいけませんって教わりませんでしたか?

VRTRPGの今と未来

もしこの記事を読んで「こんなのはVRTRPGなんかじゃない! 求めてるVRTRPGとは違う!」と思った方がいれば、ぜひともあなたの思うVRTRPGを開拓してほしいです。TRPGの遊び方でも言えることですが、自分がこう遊んでいるからと言ってあなたもそう遊ぶべきとは言わないですし、VRでのTRPGはまだまだ黎明期です。あなたも自分の考える素晴らしいVRTRPGの遊び方を開拓しませんか?
現在VRTRPGの遊び方を模索しているグループは各ソーシャルVRに存在しています。それぞれがそれぞれ異なるプラットフォームと思い描く遊び方を持っていると思うので、興味がある方は話を聞いてみるといいと思います。

VRChat: VRTRPGフォース・プロジェクトうどんとふ

古のオンラインセッションツール「どどんとふ」の開発者のたいたい竹流さんが主催のフォース(団体・コミュニティ)です。毎月10の倍数の日の22時から定例会を行っていて、VRでのTRPGを体験できたり、メンバーが作成したワールドのギミックを体験したりして知見を共有しているっぽいです。
また、VRChatでのVRTRPG用ワールドの作成ノウハウとして、VRChatで始める初めてのVR-TRPGというPDFを公開していたり、VR-TRPGスターターキットを作成してたりします。2021年12月時点では、VRTRPGのノウハウが最もWEB上に公開されていると思います(個人の感想です)。
主に遊ばれているシステムはD&D、TORG、ログホラ、シノビガミ、ウタカゼ、インセインあたりだと思われます。

別団体ですが、VR上でのTRPG展示即売イベントなども行われています。他にも、公開コミュニティを作らずにVRTRPGを遊んでいる方が一定数居そうです。たまにVRセッション配信とかが観測できます。

特徴(※個人の偏見です)
VRChatはVRSNSの中でも最も日本人ユーザーが多い(※要出典)ので、フォースのメンバーも最も多いと思われます。また、定例会を開いているので、最も気軽にVRTRPGを体験できると思います。
ただ、VRChatはUIが英語なので英語アレルギーの方はつらいと思います。また、VRChatでTRPGをやるにはUnityとの和解が必須です。

vr-trpg.jp
torgtaitai.booth.pm


week.trpg.press

NeosVR: Neos TRPG フォース

hamadoriさんが主催するフォース(団体・コミュニティ)です。人は少ないですが、公開で卓募集が最も多くされている気がします。
主に遊ばれているシステムはゆうこや、CoC、エモクロア、スカイノーツ、ログホラなどです。

特徴(※個人の偏見です)
NeosVRはアイテムや画像などが手軽に持ち込めるので、最もVRTRPGに適していると思います。ゲーム内でアイテムを共有できたり改変したりできるので、ツールの作り方がわからなくても誰かが作ってくれたものを使うだけで十分に遊べます。みんな大好きBCDiceが使える唯一のVRSNSです。
ただ、NeosVRは要求するパソコンのスペックが高いです。VR内で何かを改変するための操作も癖があるので、慣れるのに時間がかかります。また、VR内でほとんどのことが解決するのでWEB上に情報が出てこない傾向にあります。

trpg.neos.love togetter.com

cluster: ぐだぐだぶとん

ぐだぐだぶとんはVRTRPG向けのシナリオやワールドを公開しているサークルです。VRTRPG用のワールドとシナリオをセットで公開していて、それらを遊ぶのであれば最も手軽にVRTRPGを遊べると思います。没入感の高いVRTRPGを志向してるみたいです。これらのシナリオは自分で遊ぶことも可能ですが、ぐだぐだぶとんさんから卓募集が出ることもあります。
また、木曜日の22時からゲーム会やイベントをやっていることが多いみたいです。メンバーの逆凪さんはVRTRPGについての登壇なども精力的にやっていてすごいです。VRTRPG関連で最もWEB上に露出しているサークルさんだと思います。
主なシステムはCoCとエモクロアです。

特徴(※個人の偏見です)
clusterはスマホでもできるので、VRSNSを始めるハードルが最も低いです。ワールド内にテキストチャットが標準搭載されているので、通話できない人でもやりやすいです。ぐだぐだぶとんさんのシナリオも既にワールドにセットアップ済みなので、最も手軽に遊べると思います。
ただ、オリジナルシナリオや別システムを遊ぶためのノウハウは特に公開していなさそうです。それらを遊びたい場合は1から試行錯誤する必要がありそうです(ぐだぐだぶとんの方に相談してみるのがいいと思います)。その場合はUnityとの和解が必須です。

www.gudagudabuton.com

バーチャルキャスト: ???

バーチャルキャストでは遊んだことがないのでよくわかりません。VRTRPGを積極的に遊んでいるグループも観測したことがないので、たぶん公開グループとしては開拓している人はいないんだと思います。個人で遊んでいる人はいそうな気がします。
VRTRPGで検索して出てくる動画で一番上に出てくるものはバーチャルキャストで遊ばれたもののようです。最も古くにVRTRPGを遊ばれたソーシャルVRはバーチャルキャストっぽいです。

特徴(※個人の偏見です)
バーチャルキャストはVCIという規格でアイテムを作って配布・販売などができ、好きな場所でアイテムの取り出しが可能です。サイコロのアイテムなんかもあると思うので、TRPG用のVCIがあれば遊べると思います。
VCIを作るにはUnityとの和解が必須ですが、誰かが作ったアイテムを使用するなら和解しなくてもいいはずです。

virtualcast.jp virtualcast.jp

結論

ということでもう一度結論です。

  • VRセッションはオフラインセッションとオンラインセッションのいいとこ取り!
  • いろんなVRサービスで色んな人が試行錯誤中!
  • こんなのは俺の求めるVRTRPGじゃない、という人はぜひ求める遊び方を開拓していってください! 新しい遊び方を作っていきましょう!

VRTRPGはまだ黎明期の遊びなので、新しい遊び方を試してみたい人や、将来のスタンダードを打ち立てたい人は挑戦してみるのはいかがでしょうか?

TRPG Advent Calendar 2021 の2日目が空いてたので埋めました。
adventar.org

*1:DelVR: 当初はNeosでD&Dをやろうとしてたけど、今はUnity製のスタンドアロンアプリを開発中らしい。https://twitter.com/DelVR_Team

*2:Discordのような音声チャットツールを繋いだり、IRCのようなテキストチャットツールでメッセージを送り合いながら遊ぶ形式のこと。最近ではオンラインセッション専用ツールも充実している。オンセ。

*3:自宅や公民館、カラオケ、ボドゲカフェなどに集まって遊ぶ形式のこと。オフセ。

*4:テーブルトークRPGという呼び方は日本独自の造語らしいです[※要出典]。海外ではTabletop RPGとかPen and Paper RPGとか呼ばれてたりするらしいです[※要出典]。海外でRPGと言ったらダンジョンズ&ドラゴンズのことらしいです[※要出典]。

*5:TRPGとは何か」という言説は巷に多く溢れていてどれも違った説明をしてると思います。TRPGは遊ぶ人によって遊び方がかなり変わってきますし、TRPGのゲームによっても遊び方が千差万別だからです。この記事で書いてるTPRGの説明も「ぼくの思うTRPGの特徴」を書いているだけなので、興味があれば他の説明も調べてみてください。

*6:自分の周りに球体が現れ、その中にいる人にしか声が届かないモード。

*7:VR感覚と呼ばれる錯覚を感じる体質の方は重さも感じてるかも

LogiXノードブラウザ探訪

この記事は Neos VR #2 Advent Calendar 202120日目の記事です。

adventar.org

昨日の担当はe1ght3さんで今すぐ遊べるneos内ゲームの世界でした。いろんなゲームワールドも回ってみたいですね(それにしてもレースワールドが多かったですね)。
Neos VR #2 Advent Calendar 2021はまだスッカスカなので、今から記事とかを書いても間に合いますよ。アドカレは別に日付が過ぎてから公開しても構わないので、せっかくカレンダー用意してもらったので埋めていきませんか?


Neos で LogiX を触り始めた際に、「こういう値が取れるノードって無いのかな」となることが多く発生すると思います。
LogiX ではノードの存在を知っているかどうかで処理の作りやすさがかなり違うので、筆者は暇なときに Neos の公式 wiki の LogiX 一覧 を眺めていますが、未だ全てのノードを把握できていません。

ただ、ノードブラウザには同種のものがカテゴリ分けされているので、どういうノードが同じカテゴリに入っているかを知っているとある程度はノードを探しやすいと思います。筆者はカテゴリを開いて名前を見ながら、どんなノードなのか当たりをつけて機能を調べています。
この記事では、LogiX 開発でよく使われる(と思われる)ノードのカテゴリを紹介していきます。併せて、カテゴリ内のちょっとわかりづらい名前だけど便利なノードの紹介もします(ほぼ必ず使いそうなノードは情報がたくさんありそうなので、敢えて外しています)。

f:id:trpg_yoshi:20211220200646j:plain
今回紹介するカテゴリたち。独断と偏見でよく使いそうなカテゴリをピックアップしました。


ノードブラウザを旅する手引き

LogiXTipのラベルによるヒント

ノードの名前から機能は推測できるけど、どこに何を繋いだらいいのかわからないノードに遭遇したときは、LogiXTipを装備して入力欄や出力欄にレーザーを合わせてみましょう。入力欄ならどんな値を入力される場所なのか、出力欄ならどんな値が出力されるのかが書いてあります。

f:id:trpg_yoshi:20211220200724j:plain
LogiXTipのヒント。入力欄や出力欄にレーザーを合わせると、LogiXTipの上に簡単な説明と型情報が出てくる。

検索機能

全てのノードを把握するのは無理なので、検索機能を活用しましょう。
JP Publics/個人 Individual/esnya public/TooltipAddonsにあるNodeBrowzer++には検索機能があります。
※追記: JP Public/個人 Individuals/yoshi1123_ public/Toolに検索機能を改良したNodeBrowzer++を置いてます。 Searchのタブを押すと検索窓があるので、そこに探しているノードの名前を入力するとノードブラウザ上の場所を検索してくれます。([T]のボタンを押すとコンポーネント検索にも切り替わります。)
欲しい機能っぽい単語を英語で入力すると検索に引っかかる可能性があります。

f:id:trpg_yoshi:20211220200850j:plain
NodeBrowzer++による検索機能。timeが含まれるノードを検索している。

LogiX カテゴリ

Operators

https://wiki.neos.com/Category:LogiX:Operators
四則演算や大小比較など、簡単な計算や処理をするノードが集まっています。プログラミングでも頻出の基礎的な処理もたくさんあります。LogiXを触り始めたときに四則演算を探してMath/ばかり見てて見つからなかった悲しい記憶があります。

  • Pack xyz, Unpack xyz: float3のような3次元の値を1次元のfloatに分解したり、あるいはfloatをfloat3に結合したりできます。
  • 0 1: boolを入力してfalseなら0、trueなら1に変換します。
  • Parsing/: stringを他の型にparseします。型ごとに別のノードがあります。

Math

https://wiki.neos.com/Category:LogiX:Math
Operators/にあるノードよりもすこし高度な数学っぽいノードが集まっています。乱数(Random/)や回転計算(Rotation/)、日時(DateTime/TimeSpan/)などのノードもサブカテゴリに存在します。

  • Remap, Remap -1..1 to 0..1: 入力と出力の範囲を指定して値を変換します。Sinのような[-1, 1]の範囲の値を[0, 1]の範囲に変更するときなどに使います。
  • Clamp, Clamp01: 最大値と最小値を指定して、範囲から外れる値を最大値/最小値で抑え込みます。
  • : 1フレームでの入力値の変化量が取れます。微分みたいなイメージ。

f:id:trpg_yoshi:20211220200946p:plain
上下方向(Y軸)の移動速度の取得

String

https://wiki.neos.com/Category:LogiX:String
文字列操作周りのノードがまとまっています。テキストをこねくり回したいときに多用します。

  • Format: いろんな値をstringに整形できます。C#のFormatの書式に従うらしいです。
  • Index Of String: 特定の文字列が対象のstringのどこにあるかを検索できます。
  • String Join: 複数の文字列をSeparatorで結合できます。カンマ区切りやスペース区切りでたくさん繋げたいときに便利です。

Flow

https://wiki.neos.com/Category:LogiX:Flow
Impulse(インパルス、パルス) の処理に関するノードが集まっています。条件分岐やループ処理などをするときに多用します。

  • Boolean Latch: パルスを受けてboolをtrue/falseに設定したり、toggleさせたりすることができます。
  • Sequence: 1つのパルスを複数のパルスに順次流していくことが出来ます。※パルスの処理は上から順に行われていきます。同時にはできません。
  • Events/: ゲーム内でのイベントに応じてパルスを発生させることができるノードが集まっています。

Input

https://wiki.neos.com/Category:LogiX:Input 自由入力のノードや、時間を出力するノードなどが集まっています。主に時間経過に対して何かしたいときに使います。(自由入力のノードは、他のノードの入力のところから紐を引っ張ってセカンダリーで取り出せるので、あまり使ったことはないです。)

  • T, T*10, T/10, T/2: セッションが建ってからの時間が出力されます。Math/Sinなどにつなぐと振動する値が作れます。
  • UtcNow: プログラムでよく使われる協定世界時(UTC)の現在時刻が取得できます。日本時刻に変換する場合はMath/DateTime/To Local Timeなどに繋ぎます。
  • Elapsed Time: 入力パルスが流れてからの時間を取得できます。

f:id:trpg_yoshi:20211220201047p:plain
ダブルクリック時のパルスを取得するLogiX。ダブルクリックの間隔を0.5秒以内のクリックとしている。

Actions

https://wiki.neos.com/Category:LogiX:Actions コンポーネントの要素や後述するVariables/Storage/ノードに値を書き込んだりするノードが集まっています。オブジェクトや変数に値を反映したいときに使います。

  • Write Ref: 主にSlotやUserなどのような参照型をコンポーネントの値にWriteするときに使います。
  • Drive: 通常のインターフェースノードに繋ぐDriveとは異なり、パルスによってドライブ開始/終了が制御できるノードです。
  • Tween: 指定した開始~終了の値に一定時間で少しずつ変化していくように値を書き換えることができます。

Variables

https://wiki.neos.com/Category:LogiX:Variables
変数に関わるノードが集まっています。値を保持しておきたいときに使います。

qiita.com

Slots

https://wiki.neos.com/Category:LogiX:Slots
ゲーム内オブジェクトのスロットを操作したりするノードが集まっています。スロットの情報を取得したり、スロットの階層を変えたりするときに使います。

  • Index Of Child: そのスロットが、親スロットの何番目の子かを取得できます。
  • Destroy Slot Children: スロットの子スロットを全て削除できます。
  • Get Active User Self: このノードが入っているユーザーを取得できます。このノードが入ったオブジェクトをアバターに入れたり、グラブしたりしてユーザーを取得するときによく使います。(何故かUsers/に無いので注意。)

f:id:trpg_yoshi:20211220201425p:plain
Get Active User Selfノードがユーザーの子にいれば[ユーザー名] loves NeosVR。N-JERRYさんのLogiXパーカーオススメです。

Users

https://wiki.neos.com/Category:LogiX:Users
ユーザーに関するノードが集まっています。ユーザー関連の型はUser, User Root, User Root Slotなどいろいろありますが、よくわかんないけど相互に変換するノードがあるので適当に変換したら多分使えます。

  • Is Local User: ユーザーがローカルユーザー(≒自分自身)かどうかが取得できます。
  • User From Username: ユーザーをユーザー名(Neosのアカウントの名前)で取得できます。
  • Local User Space: ローカルユーザーがいる親スロットを取得できます。ユーザーの場所が移動されてるとRoot Slot直下にいないことになりますが、このノードを使えばある程度対応できます。

f:id:trpg_yoshi:20211220201611p:plain
自分にしか見えないアイテム。自分はActiveがTrueだが、他の人から見るとFalse。

Transform

https://wiki.neos.com/Category:LogiX:Transform
スロットの位置(position)や回転(rotation)、拡大/縮小(scale)についてのノードが集まっています。スロットの位置を操作したり向きを調べたりするときに使います。

Input Devices, Interaction, Tools

https://wiki.neos.com/Category:LogiX:Input_Devices
https://wiki.neos.com/Category:LogiX:Interaction
https://wiki.neos.com/Category:LogiX:Tools
3つ別のカテゴリですが、それぞれユーザーの入力やインタラクトに対して情報が取れるノードが集まっています。ボタンを押したり何かを持ったりなど、わかりやすい入力に対して処理を組みたい場合はよく使います。

f:id:trpg_yoshi:20211220201746p:plain
グラブしている手の情報を取得するLogiX。トリガーを押しているかやグラブしているかなどが取得できる。

Network

https://wiki.neos.com/Category:LogiX:Network
外部のサーバーにリクエストを飛ばしたりするノードが集まっています。VR内でやりづらい処理を外部に処理を投げたり、あるいは外部のデータベースから情報を引っ張ってきたりすることができます。

  • GET String: HTTP GETリクエストを飛ばせます。
  • POST String: HTTP POSTリクエストを飛ばせます。
  • Websocket/: Websocket関係のノードがあります。(筆者がWebsocketよくわからんので紹介できません……。)

qiita.com

終わり

他にもよくわからんノードはいっぱいあります。詳しそうな人に聞いてみたり、LogiXを組んでる横で知らないノードについて質問してみたり、みんなでこのノード何?って話ながらいろんな入力を入れてみて機能を推測してみたりするといいと思います。いろんなノードのことを知ってるとできることが増えていくでしょう。

NeosVR内でのアバター着せ替え手順

この記事はNeosVR Advent Calendar 2021の12月2日の記事です。

adventar.org

NeosVR Advent Calendar 2021 1日目の担当は二酸化カメレオンさんで「最速で学ぶLogix入門」でした。まだ読めてないのですが、きっとLogiXを完全に理解できる記事なので後で読みます。3日目の枠はkazu0617さんで、何か動画を出してくれるそうです。楽しみですね。

初めに

アバターの服を着せ替えたい。」そう思ったこと、一度はありますよね?

専用服であればNeosVR内で簡単に着せ替えが可能です。専用服じゃなくても、頑張ればNeosVR内で行えます*1
この記事ではその手順を実例を挙げて紹介します。

今回着せ替えするアバターと服

今回は次のアバターと服を例に説明します。なお、作業途中の服やアバターは適宜保存しましょう。

komado.booth.pm sugary-boutique.booth.pm

※2022/06/29追記 この記事を書いてから半年ぐらいいろいろ着せ替えをやってますが、アバター対応服でも[方法2]の方が失敗しないのでそちらばかりやってます。
[方法2]の方をオススメします。

[方法1]: RigTransferTipを使う方法

RigTransferTipというのはアバターのRigやMeshを別のアバターにコピーする公式ツールのようです。
同じスロット名のSkinnedMeshRendererのメッシュを上書きして、足りないボーンを付け足すTipっぽいです[※要出典]。誰か詳しい使い方をまとめて……。
開発者の動画を(機械翻訳で)ざっと見たところ、セットアップ済みのアバターに外部で変更を加えたメッシュなどを適用させるときに使えるやつらしいです。
今回のような着せ替え用途の場合、服のスケールやボーン構造がアバターと似通ってないと使えないと思われます(※未検証)。上手く行かなかった場合は「[方法2]: 服のボーンをアバターのボーンの子にする方法」で着せ替えを行ってください。

youtu.be

手順概要

  1. 服のモデルをインポート
  2. アバターのメッシュを外出し
  3. 服を複製して一つをアバターの子に入れる
  4. RigTransferTipで服の設定をコピーしてアバターに適用して服本来のボーンを削除
  5. 外出ししたアバターのメッシュを戻す

服のモデルをインポート

服の3Dモデルをインポートします。fbxファイルなどをNeosVRのゲームウィンドウにドラッグ&ドロップ、またはファイルブラウザから選択します。
インポーターでは、通常のアバターの3Dモデルと同様に3Dモデル→レギュラー/アバターヒューマノイドの身長に自動設定→高度な設定を選択します。
高度な設定では、アバターインポート時とは異なり「IKをセットアップ」のチェックを外しましょう。その他の設定はアバターインポート時と同じで構いません。

IKのセットアップをせずにインポートします

今回セットアップするアバターと服

再配布が禁止されている服の場合、他の人が保存できないようにするために服のルートスロットとメッシュのスロットにSimpleAvatarProtectionに付けましょう。
それぞれのスロットを選択して、コンポーネントをアタッチからUsers/Common Avatar System/SimpleAvatarProtectionをひとつずつ設定します。

SimpleAvatarProtectionの設定方法。ルートスロットとすべてのメッシュのスロットに付けるとよい。

以後の手順が失敗しても大丈夫なように、この段階でアバターや服をインベントリに保存しておきましょう。

アバターのメッシュを外出し

RigTransferTipによるコピーでは、アバターの子に入ってるSkinnedMeshRendererのスロットが対象になります。
アバターの素体や標準服が変更されてしまわないように、一旦アバターの外にSkinnedMeshRenederの付いたスロットを出してあげます。

アバターのインスペクターを開いて、RootNodeのようなSkinnedMeshRendererの付いたスロットがまとめられてる親スロットを選択します。 RootNodeのインスペクターを新しく開いて、「子にする:ワールドルート」ボタンを押してアバターの外にスロットを取り出しましょう。
これ以降はアバターの位置を動かすと、最後にRootNodeをアバターに戻すときに変な場所になってしまう可能性があるので、動かさないように注意しましょう。また、RootNodeのインスペクターは戻すときにも使うので、開いたまま置いておきましょう。

ルートスロットにメッシュのスロットらを取り出す。このとき、ボーンが一緒に移動しても問題はない。

服を複製して一つをアバターの子に入れる

RigTransferTipでコピーする元となる服のモデルと、コピーを適用させる服のメッシュが必要になるので、服を複製します。
うち1つをアバターの子に入れて、位置・回転・拡大/縮小のリセットを行い、GrabbableコンポーネントとRigコンポーネントを削除します*2(※複製したもう一方の服のモデルの方のRigコンポーネントを削除すると上手く着せ替えできないので注意)。
※拡大/縮小のタイミングで服のモデルが小さくなりすぎたり大きくなりすぎたりした場合は、おそらくこの手順では着せ替えは成功しません。上手く着せ替えが出来なかった場合は[方法2]の手順での着せ替えをしてください。

位置・回転・拡大/縮小のリセットと不要なコンポーネントの削除

RigTransferTipで服の設定をコピーしてアバターに適用服本来のボーンを削除

Essential Tools/MiscからRigTransferTipを取り出して装備します。

RigTransferTipはNeos Essentials/Miscの中にある白いチップ。

RigTransferTipを装備した手で、複製したまま何もしてない服のモデルに向かってセカンダリー(スティック押し込み、タッチパッド押し込み、Rキーなど)をします。
RigTransferTipの上部に表示されてるテキストに服のモデルが登録されたのを確認したら、次にアバターに向かってトリガー(プライマリー、クリック)をします*3

メッシュとボーンがアバターにコピーされました。Neos謎技術のチカラです。

RigTransferTipの上部にコピー元の服のモデル名が乗った状態で、アバターに向かってトリガーして転送。

アバターの子に入れた服のモデルの中に、服本来のボーンが存在しますが、邪魔になるので削除しましょう。

服のボーンを削除

外出ししたアバターのメッシュを戻す

避難しておいたアバターのSkinnedMeshRenderのスロットをアバターの子に戻します。
開いておいたRootNodeのインスペクター*4から、アバターの元の場所に戻しましょう。

RootNodeを元のCenteredRootの中に戻す。

その後、新しい服と標準服との両方が表示されているので、標準服のメッシュを非アクティブのスロットの中にまとめて非表示にします。 新しいスロットを作成してActiveをオフにし、非表示にしたい標準服をそのスロットの中に移動させます。

RootNodeの子スロットを作成してActiveをオフにし、隠したいメッシュのスロットを移動させる。

完成

以上の手順完成です。一旦保存した後、インベントリから取り出したり着てみたりしてうまく出来てるか確認しましょう。上手く出来てなかった場合は手順をやり直すか、方法2で着せ替えをしましょう。

着せ替え完了

[方法2]: 服のボーンをアバターのボーンの子にする方法

こちらは手作業での服の着せ替えになります。他のVRサービスのためにUnityで着せ替えをやるときと同じように、アバターのボーンに服のボーンを入れ子にしていく作業です。
こちらの方法は手間が多いですが、専用服じゃなくても対応できると思います。専用服じゃない場合は細かい調整が必要になると思いますが、今回の記事では特に解説しません*5
人力作業になるので、途中でミスったり作業過程を忘れたときでも復元できるように、途中途中でバックアップを保存するようにしてください。

手順概要

  1. 服のモデルをインポート
  2. アバターの直下に入れてサイズ・位置合わせ
  3. 服のボーンを対応するアバターのボーンの子に入れる

服のモデルをインポート

方法1のときと同じやり方でインポートします。

こちらの手順の場合、揺れものはインポート直後のこのタイミングで設定しておくと良さそうです*6

サイズ・位置合わせ

セットアップ済みのアバターを用意します。デフォルトの状態だとアバターがゆらゆら動いてて着せ替え作業の邪魔になるので、TポーズやAポーズで固定させます。
DevToolTipでアバターのインスペクターを開いて、アバターのルートスロットを選択します。VRIKコンポーネントを探して、IKPositionWeightが1になってるはずなので0にしましょう。これでTポーズまたはAポーズで固定されます。

※注意:この状態でアバターを着てしまうと、手が全く動かせなくなってリスポーンするしかなくなります(ダッシュメニューの操作は可能です)。ダッシュメニューでのリスポーン方法や緊急リスポーンジェスチャーを覚えておくか、他の人がいる場所で作業しましょう。作業途中のアバターを着た状態で緊急リスポーンをすると、アバター自体が失われるので、間違って着てしまったときのために作業途中のアバターはこまめに保存しましょう。
アバターを着る際にはIKPositionWeightを1に戻しましょう。

VRIKのIKPositionWeightの場所。0にするとポーズが固定される。

次に、服のモデルをアバター直下に入れて、サイズ調整をします。
アバターのルートのインスペクターと服のインスペクターを開いて、服のスロットをグラブしてアバターのスロットの直下に移動します。
その後、位置・回転・拡大/縮小のリセットボタンを押して調整します。
また、この時点でGrabbableコンポーネントは邪魔になるので削除しておきましょう。

位置・回転・拡大/縮小のリセットと不要なコンポーネントの削除

その後、スケールを調整します。専用服なら基本的にはスケール1で大丈夫だと思いますが、アバターや服によってはスケールが100倍や0.01倍になっていたりするのもあるので、大きすぎたり小さすぎたりしたら0.01や100を入れて適宜調整してください。
また、複数アバター対応のために個別で指定されているものもあります。 今回の服は説明書きにスケール0.965と指定があるので、それを入力します。

スケールの入力。今回は0.965。

その後、服のArmatureをアバターのArmatureの子に入れて、位置をリセットします。※拡大/縮小はリセットしないように。
もし服の位置がズレてたり思ってたのと違う場所にあれば、DevToolTipを装備してギズモを動かして調整しましょう。
このときに着せ替え前の服が邪魔で細かいところが見えなくなると思うので、邪魔な服はActiveをオフにしておきましょう。新しくスロットを作ってActiveをオフにして、その子に不要な服のメッシュを入れると簡単です。

標準服のメッシュを非表示に。服のArmatureを移動。

服のボーンの移植

あとは作業です。服のArmatureの各ボーンを、対応するアバターのArmatureのボーンの子に一つずつ入れていきます。
服のHipsをアバターのHipsの子に、服のSpineをアバターのSpineの子に……といった手順で入れ子にするだけです。
※この作業をやる前に一度アバターを保存しておくことをオススメします。作業途中でよくわからなくなったときに復元できるので。

同名のボーンを入れ子に。Hips→Chest,UpperLeg_L,UpperLeg_Rのような分岐がある場所はUpperLegやShoulderなどの四肢のボーンからやる方がやりやすそう。

完成

以上の手順で着せ替えは終わりです。最後に、VRIKのIKPositionWeightを1に戻してからアバターを着たりしてみて確認します。
もし服の一部が変な場所に吹っ飛んでしまってる場合は、ボーンの移植が上手くできていません。再びIKPositionWeightを0にしてから問題のボーンを移植してください。

宣伝

アバターセットアップ関連のお手伝いをする活動を #NeosVR着付けフォース としてやっています。
今回の記事の内容やアバター関連の質問などでも何かしらお手伝いをしますので、お気軽にお声がけください。

[おまけ]: 関連Tips

空のボーンの削除

服のモデルにはHumanoidボーンの必要な部分がHipsの位置から入っていることが多いですが、実際に服のメッシュのウェイトが乗っていないボーン*7も含まれています。
服のボーンの移植をする前に、SkinnedMeshRendererの「空のボーンの削除」ボタンを押すと、ウェイトが乗っていないボーンの参照を削除できます。服の着せ替えに必要なボーンはこの操作で残ったボーンだけなので、不要なボーン数を減らせます。

空のボーンの削除で必要なボーンだけがわかる。このリストに乗っていないボーンは不要。

専用服のボーンを使わずに、アバターのボーンを使う

RigTransferTipで行っていることを手作業でやろうとする方法です。RigTransferTipを使用するほうが簡単ですが、こういうこともできるよと教えてもらったので書いておきます。

上記の空のボーンの削除を行った後に、服のモデルのウェイトが乗っているボーンをアバターのボーンに差し替えます。
服のArmatureの位置合わせを気にしなくてもよくなりますが、元のアバターに無かったボーンは正しく移植させる必要があります。
あとたぶん服のモデルとアバターのモデルのスケールが一致してないとうまくいかなそうです(※未検証)。

手作業でやる場合、服のメッシュが少ないのであれば[方法2]よりこちらの方が簡単だと思います。
入れ替えを行った後に、服のArmatureを削除して入れ替え忘れが無いか確認するのがわかりやすそうです。※削除する前にはアバターを保存しておいて復元できるようにしておきましょう。

アバターのRigで服のボーンを差し替え。

AFKマテリアルの設定方法

Neosではユーザーが別のセッションへ移動したときに、そのユーザーの抜け殻が透明のマテリアルに変更されます。
上記手順での着せ替えによって持ち込んだ服にはその設定が付いていないため、
アバターの素体は透明なのに服は通常というエッチ変な状況になってしまいます。

服のマテリアルも変更する手順は次の通りです。

服のメッシュのスロットを開いて、コンポーネントをアタッチからUsers/SimpleAwayIndicatorを設定します。
AwayMaterialには他のメッシュと合わせて、アバター直下のPBS_RimMetallicを設定し、Rendererには服のSkinnedMeshRendererを設定します。 次に、Head ProxysなどにあるAvatarUserReferenceAssignerの項目をaddしてSimpleAwayIndicatorのUserをセットします。
これを全てのメッシュに設定します。

SimpleAwayIndicatorに必要な参照をセットする。UserはAvatarUserRefenceAssignerを使う必要がある。

設定は以上です。最後に設定が正しくできてるか確認をします。
DevToolTipの新規作成から、エディター→ユーザーインスペクターを選択します。
出てきたユーザーインスペクターで自分の名前を選択し、presentInWorldをオフにします。
するとAFK状態のときの自分の様子が確認できるので、設定漏れが無いかの確認に使ってください。

ユーザーインスペクターのpresentInWorldでAFK偽装できる。設定忘れを確認しやすい。

服の切り替え

デフォルトの服と追加服を随時切り替えたい。そう思ったこと、一度はありますよね? 仕組みはシンプルです。切り替えをしたい服のメッシュを下記の構造のSlotにまとめます。

Cloth
 ├服Aをまとめたスロット
 │ ├服Aのメッシュ1(上着)
 │ ├服Aのメッシュ2(スカート)
 │ └服Aのメッシュ3(靴)
 └服Bをまとめたスロット
   ├服Bのメッシュ1(上着)
   ├服Bのメッシュ2(スカート)
   └服Bのメッシュ3(靴)

上の状態で、ClothのスロットにコンポーネントをアタッチからTransform/Drivers/BooleanSwitcherを追加します。 AutoAddChildrenにチェックを入れると、ActiveIndexに指定されてるindexのスロットだけActiveがオンになり、他のスロットはActiveがオフになります。

BooleanSwicherによって複数のスロットのActiveのうち1つだけ有効にできる。ActiveIndexのスロットのActiveだけが有効。

あとはNeosButtonなりコンテキストメニューなりハンドサインなりで、このActiveIndexを切り替えるようにできれば着せ替えは完了です。
Buttonコンポーネントが付いているスロットにCommon UI/Button InteractionsにあるButtonValueShiftやButtonValueSet
BooleanSwitcherのActiveIndexを操作するのが手軽だと思います。
yoshi1123_ publicの中に実装サンプルを置いているので、使ってみたい方は試してみてください。 neosrec:///U-yoshi1123-/R-e9b350ec-e5c4-418e-a511-997086a8edea *8

*1:※専用服じゃない場合、Blenderでの着せ替えができる方はそちらでやった方がたぶん簡単です。ぼくはBlenderで着せ替えしたことないのでよく知りませんが。

*2:RIgTransferTipはRigコンポーネントの情報を別のRigコンポーネントの付いたオブジェクトに転送する挙動のようです。今回の着せ替えのでは、アバターの子に入れた服のメッシュをアバターのRig配下と誤認させるために、服のRigコンポーネントを削除しています。

*3:RigTransferTipの適用は、厳密には「アバターのボーンに向かって」トリガーをする必要があります。今回の手順では、アバター本来のボーンは一旦アバターから避難しているため、代わりにアバターの子になっている服のボーンに向かってトリガーをする必要があります。位置のリセットをしていない場合は適用箇所がズレている可能性があるので注意してください。

*4:もしRootNodeのインスペクターを残しておかなかった場合は、Rootスロットのインスペクターを開いて探してください。

*5:専用服以外を着せる場合、入れ子にした後に服のボーンの位置やサイズをいい感じに調整したり、貫通対策をしたりするだけです。それが面倒ですが。

*6:アバターの子に入れたあとにDynamicBoneの設定をしようとすると、「子にしたもののリグのみセットアップ」のボタンが使えません。「子にしたものをセットアップ」ボタンを押すと、Collider用のスロットが入ってた場合に変になるかもしれないです。もちろんDynamicBoneの設定からColliderのスロットの設定を外せば問題無いので、誤差の範囲ではあります。

*7:アバター制作をしたことがないので、用語の使い方が間違っていても許してください。

*8:このURLをコピーした後に、NeosVR内のホーム画面の「クリップボードから貼り付け」ボタンを押すとパブリックフォルダが出てくる

NeosVRの楽しみ方いろいろ:クリエイティブ編

はじめに


NeosVRの楽しみ方について、思いつく限り書き連ねようという記事の第三弾です。今回で終わりです。
上のレポートでも取り上げられてますが、NeosVRでは内部でモノづくりやワールド製作もできます。ということで、今回はクリエイティブ編と題してモノ作りについての遊び方を列挙していきます。
ソーシャル編・アクティビティ編はこちら。
dinosaur-fossil.hatenablog.com
dinosaur-fossil.hatenablog.com

NeosVR の楽しみ方:クリエイティブ編

VR空間を活用する

イデアを練る

NeosVRではさまざまなアイテムを取り出したりできるので、構想中のアイデアの参考写真や動画を見ながら構想を練ったり、ペンでアイデアを書き留めたりなどが簡単にできます。
また、3D空間を自由に飛び回れるので、モノでゴチャついてきた場合は別の空間へ移動したり、ボツ案を遠くに除けたりなどをして自由にアイデアを練ることができます。

打ち合わせ・会議・プレゼンをする

複数人で打ち合わせをするのもやりやすいです。
プロトタイプのアイデアをペンツールや参考写真などで簡単に共有できますし、ボイスチャットの遅延が少ないためコミュニケーションのロスも少ないでしょう。
また、VRモードとデスクトップモードを一瞬で切り替えれるため、文章のメモが必要になった場合は誰かがデスクトップモードになって書記をするのも手軽にできます。さらに、VSCodeプラグインでNeosVR内にその内容を表示することもできるため、リアルタイムで内容を確認することも可能です。


現実と同じように集まって資料を広げたりペンで物書きをできたりもするので、会議やプレゼンなどもできます。資料の複製や拡大縮小はお手軽にできますし、指先からレーザーが出てくるので指し棒も不要です。
実際にNeosVR内で会議が行われたり、ライトニングトークイベントも開催されたりしました。



モノ作りをする

NeosVRではVR内でいろんなモノ作りが可能です。NeosVRのことをUnityVRとかVRマインクラフトとか喩えている人もいます。UnityやBlenderなどに挫折した方でもモノづくりができます*1

外部で作ったモノを持ち込む・外部に持ち出す

BlenderやTiltBrush、フォトグラメトリーなどの外部ツールで作成した3Dモデルを中に簡単にインポートできます。製作途中のモデルの3Dビューアーとして使っている人もいます。
インポートしたものはすぐさま共有できるので、読み込んだその場で友達と共有して遊んだり改造したりができます。
さらに、なぜかマイクラのワールドをインポートする機能もあります。(なぜ?)


また、NeosVR内で作ったものは外部にエクスポートすることも可能です。
他のサービスで使うための小物やワールドのモデルをNeosVR内でみんなで作成するのもお手軽にできます。

モデリングをする

内部でもモデリングが可能です。パラメータを変えることで形を変えれるCubeやShpereなどを組み合わせて形を作れます。さらに、NeosVR内でメッシュベイクをしたり、凸包を作ったり、はたまた頂点を打ってメッシュを作るツールなどもあるので、使いこなせば複雑な形状も作れます。
簡単なモデリングのやり方は毎週水曜日に開催されているNeosモデリングで教わることができます。モデリングに限らず、シンプルなギミックの作り方も勉強することができます。イベントに参加できなかった人向けに、一人で勉強できるアーカイブワールドもあります。



プログラミング(LogiX)をする

NeosVRではプログラミングも可能です。LogiXと呼ばれるノードプログラミングでさまざまなことができます。NeosVRにあるあらゆるものの状態を取得可能で変更した値に応じてオブジェクトがリアルタイムに変わっていくので、挙動を確認しながらのプログラミングができてやりやすいです。

また、HTTPリクエスト(GET/POST)やWebsocketなどにも対応しています。外部のサーバに処理を投げれるので、複雑な処理は外部のサーバに書いて結果の表示だけLogiXで書いたり、IoT機器との連携部分を作って現実とリンクしたものを作ったりも可能です。ノードプログラミングは慣れてないと癖が強いので、LogiXは最低限の通信部分だけを用意して、他は使い慣れたテキストベースのプログラミング言語でサーバに処理を書いてもいろんなことができると思います。
qiita.com


絵を描く

NeosVRではペンツールがあるため、3Dペイントもお手の物です。また、定規や黒板、ペイントツールなど、平面に描きやすいツールもあります。
ペンで描いたものはそのままメッシュベイクも可能です。NeosVRでは内部で作った3Dモデルを外部に出力することもできるので、中で描いたモノを外部の別のサービスなどで使用することもできます。2Dの画像として出力するツールもあります。


サインを描く

NeosVRではペンで描いたものもアイテムなので持ち帰ることが可能です。過去にはVRサイン会が企画されたこともあります。サイン会の場で実際にサインを描いてもらえば、世界に一つだけのアイテムになります。もちろん外部に出力できるので、3Dプリントで現実に持ち込んだり、他のサービスに取り込んだりも可能です。


画像編集をする

NeosVR内では画像編集も可能です。画像の切り抜きやペンやオブジェクトを使っての描き込み、色相・彩度・明度の変更、グレースケール化、テクスチャの上に別のテクスチャから切り出した画像を合成することなんかもできます。

音声を録音する

NeosVRでは内部に録音ツールがあり、簡単に録音して音声ファイルを作ることができます。人によってはさまざまな音声を録音して素材として配布している方もいます。

パーティクルを作る

パーティクルシステムも内蔵されています。もちろん内部で作成することができます。

ガジェットを作る

モデルやパーティクル、音声やプログラミングなどを適宜使って自分だけのオモチャを作ることもできます。誰でも使える便利なアイテムや、自分にしか需要がない特殊なものまで、いろんなガジェットを作って遊ぶことができます。


ワールドを作る

NeosVRではワールドを作るのも簡単です。何もないワールドに3Dモデルを置いたり、ギミックを作るだけでワールドは完成です。
NeosVR内ではたくさんのフリーアセットが公開されているため、お気に入りのアイテムを並べるだけで自分好みのワールドが生み出せます。もちろんLogiX等を駆使してギミック盛りだくさんのワールドを作ることも可能です。

また、壁や床などを簡単に配置できるツールを作っている方もいます。それを使えば好きな間取りのお部屋もすぐに作り出せます。

アバターを作る

アバターもNeosVRに持ち込むこともできます。アバター化する操作は直感的に設定できて、揺れものや表情の設定も可能です。
また、帽子や眼鏡などのアクセサリーの取り付けや、テクスチャ改変などであれば簡単にできます。

アバターにいろいろ仕込んでいる方もいます。衣装の着替えギミックから、よく使うツールの内蔵、アイテムの取り出し、カスタムメニューやカスタムネームプレートなど、さまざまなカスタマイズが行われています。

f:id:trpg_yoshi:20211031175442j:plain
アバターのランドセルにツールを仕込んでいる人の様子。

NeoRoidと呼ばれる軽量アバターをNeosVR内で作成することもできます。普段遣いのアバターのNeoRoid再現なんかも盛んに行われており、人によってかなり個性のあるNeoRoidをたくさん見かけることができます。

ゲームを作る

簡単にとは言いませんが、ギミックを作り込んでゲームを作ることもできます。ワールドまるまる1つを使うゲームも作成できますし、アイテム単体で遊べるゲームも作成可能です。

共同制作をする

イデアがなくて今は何も作ってないけど何かを作るノウハウを知ってる人なんかもいるので、作りたいものがあるけど作り方がわかんない人もアイデアを出して一緒に共同制作できます。

おしゃべりしながら共同制作して面白いアイデアをその場ですぐに採用したり、変なネタアイデアを再現するために改造したりなどもできてかなり面白いです。

ちょっぱやワールドという、短時間でテーマを決めてみんなでワールド作成をするというイベントも時折開催されます。Neosのモノづくりがよくわからなくても楽しめるイベントだと思うので、タイミングが合えば参加してみてください。

https://twitter.com/mikan3134/status/1454741636110454791

配布されているものを改造する

一から作り上げなくても、配布されてるガジェットやツールから一部分だけ抜き取ったり差し替えたりするだけで目的のオモチャを作れるかもしれません。
仕組みの参考にもなるので、配布されているオモチャの中身を分解してみると面白いかもしれません。

作ったものを配布する

作ったものが権利的に問題ないものであればNeosVRに配布してみてください。NeosVRにはパブリックフォルダという機能で、作ったモデルやガジェットなどを公開できます。配布されているものを使って、また別の人が別のガジェットやワールドを作成していきます。

日常の何気ない写真やひょんな拍子に撮れた笑える写真をフリー素材として配布しておけば、面白いアイデアに使われるかもしれません。
自分の写真もフリー素材として流通していて、知らないところで面白いネタに使われいました。新鮮な体験です。

共有したくないものはSimpleAvatarProtectionと呼ばれるプロテクトをかければ、自分以外は保存できなくすることができます。なお、アバター作成の場合はデフォルトでプロテクトがかかるようになっています。

サーバーを運営する

ヘッドレスクライアントを動かす

NeosVRのセッションを維持するためのサーバーみたいなクライアント*2を建てている人もいます。
ヘッドレスクライアントの情報を記録して喜んでる人もいます。

ツール用のサーバを管理する

NeosVR内のツール用のサーバを管理している人もいます。LogiXでやりづらい処理や外部に任せたい処理などは自前のサーバーを用意して、ツール用に管理している人もいます。

やりたい放題する

NeosVRでは権限があれば上記のいろいろなことがその場でできます。
権限がある場所ではワールドの一部を抜き取ったり、自分好みに改造したり。邪魔なものをどかしたりなどなど自分好みにワールドを改変することができます。
アイテムを取り出したりその場で改変したりもできます。DJイベント時にその場でワールド改変をするというイベントなんかも開催されました。

また、VR界の妖精?と認識されてるライテルさん*3がNeosにも来ていらっしゃるんですが、毎日ライテルさんが建てているセッションでいろんなモノを配置している遊びが何故か発生しています。謎の文化となっていますが、自己責任で遊んでください。
note.com

おわりに

ソーシャル編、アクティビティ編、クリエイティブ編と3回に分けてNeosVRの楽しみ方を列挙してみました。この記事が遊び方の参考になれば幸いです。
NeosVRはアップデートの頻度が多く、すぐに新機能が増えたり、それを受けてユーザーが新しいオモチャやゲームを作ったりと次々と目新しいものが生まれます。そのため、この記事らもいずれ実情にそぐわないものになるかもしれませんが、2021年10月頃の遊び方の資料ぐらいにはなるとは思います。内容についても気が向いたら更新します。

NeosVRって結局いつごろ人がいるの? と思う方向けに、JPチュートリアルワールドなどの現在の人数を表示するサイトが公開されています。遊びに来たけど人に会えなかったという方は参考にしてみてはいかがでしょうか。

*1:ぼくもUnity/Blenderなんもわかりません

*2:ヘッドレスクライアントというやつです

*3:https://vprof.me/@/raiteru

NeosVRの楽しみ方いろいろ:アクティビティ編

はじめに

NeosVRの楽しみ方について、思いつく限り書き連ねようという記事の第二弾です。
他の記事はこちら。
dinosaur-fossil.hatenablog.com
dinosaur-fossil.hatenablog.com

NeosVR の楽しみ方:アクティビティ編

ワールドに行く

NeosVRではワールドの接続情報を複数以上維持でき、読み込みも非同期で行われるので気軽にワールドを行き来できます。
美麗なワールドやゲームワールドはもちろん、アバターやツールなどを配布しているワールドもあります。権限があればワールドの一部だけ保存して持ち帰ったり、ギミックを解析して自分の作りたいものに活用したりもできます。

NeosFesta

NeosFestaというノンジャンルの展示会が、日本コミュニティの企画で過去3回開催されました。イベント期間は終わっていますが、過去3回の会場は今でも来場することが可能です。
8月に開催されたNeosFesta3では、容量無制限でさまざまワールドやアイテムが出展されており、112ワールドと147アイテムが出展されました。
これらのワールドやアイテムは中央の操作パネルから一瞬で呼び出すことができます。もちろん保存できるものは持ち帰ることが可能です。

NeosFesta3のときに開催されていたオフィシャルツアーの体験記があるので、巡ってみたい方はそちらの記事を参考に回ってみてはいかがでしょうか。

note.com

MMC (Metaverse Maker Competition)

MMCは過去2回開催された海外コミュニティ主催のイベントで、1ヶ月でワールド製作するというコンペティションです。なんと賞金も出ました。
今年は全9部門に142ワールドがエントリーされて、日本人チームの受賞は11ワールドもありました。
エントリーされたワールドを巡りたい場合はワールド検索で mmc21 と検索すると出てきます。以下にいくつかワールドの紹介のツイートを貼ります。クオリティの高いワールドがたくさんあるので、ぜひ回ってみてください。




他にもいろいろ

イベントごとに限らず、NeosVRではさまざまなワールドがあります。
ワールド画面のタブにはゲーム・ソーシャル・教育・チュートリアルのような内容別のカテゴリの他にも、Neos運営?がオススメしている注目カテゴリやランダムなど、いろんな観点でワールドを探しにいけます。
2021年10月時点で約2,600ワールドぐらいなので、今なら全ワールドを見て回ることもできるでしょう。
次の記事でワールド巡りの方法も書いてあるので、参考にしてみてください。

note.com

ホームワールドに遊びに行く

NeosVRでは自分のホームワールドも簡単に作れます。個性的なワールドをホームワールドにしている方も多く、ワールドが立っているときに遊びに行ってみると面白いと思います。ホームワールドを公開してる方もいます。

イベントに参加する

定期イベント

  • 初心者案内デー

毎週火曜日に開かれているNeosVRの初心者や久しぶりに来て操作を忘れた人へ、基本的な操作方法を教えてくれる会です。普段からNeosVRにインしている日本人のユーザーも多く集まるので、フレンドを増やしたい方にもオススメです。

  • WEEKEND CASINO

金曜日と土曜日の21時から開催されていて、ブラックジャックやポーカー、競馬、麻雀、ビンゴ、スロット、宝探しゲームなど、いろいろなギャンブル要素のあるゲームが置いてあります。特にスロットはこだわりのある方たちが作っているため、かなりのクオリティになっています。
NeosVRにはKFCというゲーム内マネーがあり*1、いろんなところでKFCを稼いだり使ったりできます。カジノではKFCを賭けて盛大に稼いだり溶かしたりする遊びができます。現実には価値のないお金でも、稼いだり擦ったりするのは遊びのスパイスになって面白いです。

  • GAMECENTER RELAXDOG

クレーンゲームやガチャガチャ、ホッケーのようなゲームセンターにありそうなゲームや対戦ゲームなども置いてあります。こちらでもKFCを使ってゲームを遊ぶことができます。
クレーンゲームなどで入手したアイテムは持ち帰ることができますし、ゲームによってはランキングシステムが導入されてるのでハイスコアを狙って遊んでみるのもいいと思います。
毎週日曜日の21時から開催されています。

  • 今週も生き延びてえらい!集会

集まった人たちでお互いにえらい!と褒め合ったり、ちょっとしたアイテムで遊んだりする集会です。日曜日の21:30から開催されています。

不定期イベント

  • アイテム博覧会

いろんなアイテムを持ち寄って見せ合ったり遊んだりするイベントです。
月末の木曜日に開催されていたりします。

  • 駄菓子会

現実とVRで駄菓子を持ち寄ってワイワイする会らしいです。
突発で開催されるのでいつ行われてるのかわかりません。

  • VRバーベキュー

現実とVRで一緒に肉を食べよう!という会です。VRで肉を1枚焼くと現実でも肉が1切れ食べれるルールとか言ってました。
主催が言い出すと開催されます。

イベントを企画する

NeosVRではワールドをしっかり準備しなくても、アイテムを持ち寄ればいろんなことができるため、気軽にイベントが企画できると思います。

  • 七夕-2021
    7月7日に向けてそれぞれの願い事を短冊に書いて笹に飾ろうというイベントが今年企画されました。ペンツールと短冊、笹を用意して会場を建てるだけで楽しいイベントになりました。

  • サイズ系集会

NeosVRではユーザーのサイズを自由に拡大縮小できるため、その機能に目をつけたサイズフェチの方たちの集会が企画されたようです。

ゲームで遊ぶ

ゲームワールドに行く

NeosVRではいろんなゲームを開発してゲームワールドに公開されています。一人で遊べるゲームから複数人が必要なゲームまでさまざまなゲームがあります。数はまだ少ないですが、デスクトップモードでも楽しめるゲームもあります。
ワールドの検索欄にゲームのカテゴリもあるため、気になるワールドに行って遊んでみてください。


ゲームを取り出す

また、わざわざゲームワールドに赴かなくても、アイテムとしてゲームを配布しているものもあります。
いつものワールドでゲームを取り出して遊ぶのも楽しいです。

アナログゲームTCGで遊ぶ

ゲームらしいゲームの他にも、現実にあるボードゲームのようなものも配布されています。
チェスや将棋のような有名なものから、麻雀、「桜降る代に決闘を*2」というゲーム、オリジナルのTCGのクロス・ユニバース*3のようなものなどもあります。
現実のアナログゲームVR的演出で遊べるようにしていてかなり面白いです。



また、VR内でTRPGやマーダーミステリーなどの体験型のアナログゲームを遊んでいる人もいます。ぼくも遊んでいるので、気になる方は声をかけてください。


togetter.com

音楽を楽しむ

歌う

一人でももちろん歌を歌うことはできますが、カラオケワールドで複数人で歌うことができます。
カラオケワールドでは個人間の遅延を調整できるので、リアルなカラオケの体験ができるでしょう。

演奏

NeosVRではマイク入力とは別に、音声入力ソースを増やして流すことができます。電子ピアノやエレキギターなどの音がアバターの口から出ることはありません。しかもステレオ音声で流すことが可能です。

f:id:trpg_yoshi:20211027191107j:plain
電子ピアノを演奏している様子。音に合わせて上空をSphereが流れている。

クラブ

音声入力にDJソフトの出力を流せばVRDJも可能です。TopazChatを使用することもできます。
Club PulseというDJイベントも不定期で開催されているため、興味がある方は参加してみてはいかがでしょうか。

ライブ

Vtuberさんのライブイベントも開催されたことがあります。VR会場とYouTube会場が同時に用意されて、両方で視聴者が集まりました。
VR会場ではグッズの展示や配布が行われていたり、ライブ終了後にはサイン会が行われたりと、現実のライブと同じような体験ができました。

また、あるワールドから別のワールドへアバターの動きを配信することもできます。複数のセッションでのアバターパフォーマンスや音声の同期が取れるみたいなので、大人数を動員するライブイベントも可能になるのではないでしょうか。

体を動かす

体操をする

毎日朝7時からにラジオ体操、毎日夜22時から健康体操という体操イベントが開催されています。また、日曜16時には水着アバターで筋トレをする水着筋トレ部というイベントも開催されています。身体を動かして健康になりましょう。

踊る

NeosVRでは最大11点のフルフルトラッキングが可能です。よりリアルな体の動きが表現できます。
海外ではダンスバトル?のイベントが開催されたこともあるようです。

また、ユーザー製のモーションキャプチャーツールも配布されており、自分の踊りや身体の動きをアバターに録画することが可能です。録画したアバターNPCとしてワールドに置かれていることもあります。

セイバースピン部

NeosVRではボディトラッキング以外にも、モノにトラッカーを付けてオブジェクトのトラッキングもできるらしいです。
たぶんBeatSaber界隈の方たち?がセイバーの取り回しの練習にセイバースピン部という活動をしているみたいです。

配信をする

現実では機材の準備などが大変な配信も、NeosVRでは簡単にできます。複数のカメラアングルを登録しておけるカメラアンカー機能や、ユーザーに追従して動く三人称モード、近くの人がアングルに収まるように自動で移動するグループ機能などもあります。 最近ではNeosVRに配信しに来ているVtuberさんたちもいます。


コメントで遊ぶ

NeosVRには公式でTwitchとの連携してコメントを取得するツールがあります。ユーザー製であればマルチコメントビューアのプラグインとして他の動画配信サイトのコメントも取得できます。音声入力ソースを複数使えるので、棒読みちゃんの音声をワールド内に共有することも可能です。
コメントを取得するツールには特定のコマンドで中にいる人へリアクションを飛ばすこともできます。マルチコメントビューワーと連携するツールの場合は空からコメントが降ってきたり、そのコメントを掴んで投げたりもできます。

動画撮影・映像制作をする

動画撮影もできます。カメラアンカー機能を使えば特定のアングルで固定するのも簡単にできます。また、モーションキャプチャーツールを使えば1人2役以上の撮影も可能かもしれません。


VR睡眠をする

VR睡眠も可能です。ワールドの明るさは権限があればどこでも調整可能です。ベッドも布団もテントも、どこでも取り出し可能なので、好きなワールドで寝ることができます。
アイテムや写真を置いておくこともできるので、先に寝てしまった人の寝姿を撮ったり、起きて先に抜けないといけないときにまだ寝ている人へメッセージを残すことも簡単にできます。
アバターをワールドに置いててお見舞いをしてた人もいます(体調が悪いときはおとなしく静養しましょう)。

なにもしない

VRCなにもしない人はNeosVRにも来ています。(「なにもしない」がどういう活動なのか僕はよくわかっていません。)
なにもしない活動とは違うのかもしれませんが、NeosVRで自分が何かをしなくてもいろんな人がいろんな活動をしているので、ふらっと遊びに行って何をしてるのか聞くだけでも面白いと思います。

おわりに

今回はアクティビティ編ということで、いろんな活動を取り上げてみました。Twitter#NeosVR で検索してみると、他にもいろんな活動をしている方が見つかるかもしれません。気になる活動をしている方がいれば話を聞いてみると楽しめると思います。
次回はクリエイティブ編で、モノを作ったりする話について書きます。

dinosaur-fossil.hatenablog.com

*1:2021年10月30日のアップデートで、SteamからインストールできるビルドからはKFCなどのゲームマネー関連の機能がオフになりました。Steam版では使えなくなりましたが、Neos公式から出されるビルドからは利用できます。詳しくは公式wikiを参照 https://wiki.neos.com/Neos_Credits/Steam_Changes

*2:桜降る代に決闘を 公式サイト https://main-bakafire.ssl-lolipop.jp/furuyoni/na/index.html

*3:クロス・ユニバース 公式サイト https://crossuniverse.jp/

NeosVRの楽しみ方いろいろ:ソーシャル編

はじめに

ソーシャルVRのひとつ、NeosVRをご存知ですか? もしご存知でなければ次の動画を見てください。

NeosVRはとても自由度の高いメタバース(仮想世界)で、SteamまたはNeosVR公式サイトからダウンロードできます*1。日本語対応していて、デスクトップモードにも対応しています。
いろんなことがVR内のみでできることが特徴だと思います。
neos.com store.steampowered.com

しかし、NeosVRはまだユーザーが少なく*2、普段はどんなことをして遊んでいるのか分かりづらいと思います。現在のコアユーザーはクリエイター寄りの人が多くて、外部から見える情報も開発や技術の話に偏っているように感じます。
そこで、NeosVRの楽しみ方を思いつく限り書き連ねてみようと思います。なお、最近は配信なども増えているので、動画や配信を探せば雰囲気がわかるかもしれません。

想定読者

  • NeosVRはなんでもできるとよく聞くけど、実際にどんなことしてるのかわからんという人
  • NeosVRを始めたばかりで、どんな遊び方ができるかあまり知らない人

以下に書く内容にはぼくがやったことないことや想像の話も含まれているので、こういう遊び方もできるよという類のものだと思ってください。できるだけ実例は上げようと思いますが、実例が無い箇所もあります。
気になる遊び方があれば、その遊び方をしている人を探して話を聞いてみるのがいいと思います。

お前は誰

よっしーと申します。趣味はTRPGです。NeosVRでのユーザー名はyoshi1123_です。
https://vprof.me/@/yoshi1123_
NeosVRにハマってしまって、この間1000時間チュートリアルを達成しました。
今年の5/18から始めて10/12に達成したので、毎日6~7時間遊んでた計算ですね。だいたい合ってます。
この記事は5ヶ月程度遊んでみただけの1ユーザーの視点での記事なので、昔の話とかについては書けないです。ご了承ください。
VR環境はPCVR + Oculus Quest 2で遊んでます。HaritoraXを買いましたがセットアップしてません。

f:id:trpg_yoshi:20211025183233j:plain
NeosVRのすがた。見かけたら遊んでください。

NeosVR の楽しみ方:ソーシャル編

文量が思ったより多くなってしまったので、ソーシャル編・アクティビティ編・クリエイティブ編とそれぞれ題して分割して書きます。アクティビティ編とクリエイティブ編は後日書きます。 dinosaur-fossil.hatenablog.com dinosaur-fossil.hatenablog.com

コミュニケーションを取る

NeosVRは一人で黙々と作業しても楽しいですが、観測できるほとんどの人が他人と何かしらの交流をしています(一人でいる人は観測できないだけですが)。

おしゃべりする

何はともあれお喋りです。我々は人間なので、お喋りは楽しいです。
NeosVRは通信方法がP2Pなので、物理的に近くに住んでいるのであれば通話の遅延がかなり少ないです。Discordのボイスチャット並みの会話ができます。
声を出せない人でも、ペンのアイテムを取り出せばどこでも会話できます。NeosVRでは好きな場所でアイテムを取り出すことが可能です。デスクトップ勢で無言勢の場合は、Mute Helperというテキストチャット用のアイテムも存在するので、そちらの方が使いやすいかもしれません。

また、NeosVRでは音声を拾うことが可能なので、リアルタイム翻訳機のアイテムが流通しています。海外勢と言語の壁を超えて会話することもできます。


NeosVRはアイトラッキング・フェイシャルトラッキングにも対応しています。会話してるときや現実で飲食をしているときなどにも実際の表情とアバターの表情をリンクさせることができ、より豊かなコミュニケーションを取れるでしょう。

メッセージを送る

同じワールドにいない人と連絡を取ることも可能です。フレンド同士なら、基本のフレンド機能でテキストメッセージやボイスメッセージを送り合うことができます。メッセージはオフライン状態の人にも送ることができるため、メールのような使い方もできるでしょう。
NeosVRにはVRSNSも存在します。Neow端末を取り出せばどこでも表示され、投稿した呟きは他のワールドとも同期されます。3次元空間に出てくる呟きはVRならではです。

触れ合う

NeosVRでは他人とのふれあいが簡単にできます。NeosVRで揺れモノを実現しているDynamicBone*3では、他人の髪やスカートに干渉することができます。掴んだりすることも可能ですし、引っ張ると伸びるようにもできます。
DynamicBoneの状態や他人との距離なども取得できるので、撫でられているときや髪を掴まれてるときに合わせて表情が変わるようにしている人もいます。
Boopジェスチャー*4をされたときにエフェクトが出るようにしている方もいます。

f:id:trpg_yoshi:20211024221625j:plain
髪を掴まれて表情が変わっている様子

また、アバター自体にユーザーがぶつかるコライダーを仕込むことで、他の人を押して動かしたり、自分の手の上に相手を乗せたり、あるいは他人によじ登ったり*5できます。わざわざコライダーを仕込まなくても、相手と握手できるアイテムやハイタッチできるアイテムなどもあります。

写真・動画・配信を見る

NeosVRでは画像ファイルや動画ファイルを簡単に読み込むことが可能で、中に持ち込んだ後は通常のアイテムと同じように拡大縮小、保存や複製などができます。ファイルじゃなくても、スクリーンショットYouTubeのURLをクリップボードからペーストするだけでもNeosVRに読み込むことが可能です。話題に上がった場所の写真や、Webサイトのスクリーンショットなどをその場で取り出して友達と共有できるのはかなり快適です。持ち込んだ写真も並べるだけで個展や展示会のような空間を気軽に作り出すこともできます。
さらに360度の写真や動画にも対応しているため、現実では中々確認しづらい全天球の写真や映像も体験できます。


また、NeosVRは各種配信サービスの配信も動画と同様に見ることができます。コメントの取得もTwitchであれば公式アイテムが、YouTubeなどであればマルチコメントビューアのプラグインとしてユーザーツールが存在します。みんなで配信や配信コメントを見ながらおしゃべりする状況もすぐに実現できます。空を飛べたり自身のサイズを変更したりが簡単にできるので、他の人の視界を妨げないようにするのも簡単です。

Amazon Prime Video のウォッチパーティを利用して、上映会を行うためのツールもあります。NeosVRでは自分のデスクトップをVR内から見ることができるので、各自のデスクトップビューの位置を合わせてウォッチパーティを見ることで、みんなで集まって同じ映像を見てるような体験ができます。

アイテムで遊ぶ

NeosVRではインベントリシステムがあり、権限で許可されている場所であれば、インベントリの中からアイテムを取り出したり保存したりすることが可能です。
鏡が欲しければ鏡のアイテムを取り出せばいいですし、他のワールドで見つけたおもしろアイテムをいつもの溜まり場で友達と共有するのも盛り上がります。
いろんなアイテムを配置するだけで自分だけのワールドができますし、記念日に友達にプレゼントを送ることもできます。

パブリックフォルダを使う

ワールドに配置されているもの以外にも、パブリックフォルダというものでアイテムが配布されていることもあります。パブリックフォルダをインベントリに保存することで、フォルダの中を見ることができます。
初めからインベントリ内にあるNeos Essentialsというパブリックフォルダの中にはさまざまなアイテムがあり、中でもGadgetsにはいろんなギミックが仕込まれた面白いアイテムがたくさん公開されています。アイテムでどんなギミックが実現できるかの参考にもなると思います。

名刺を交換する

NeosVRの日本コミュニティには名刺文化が存在します。簡単に名刺を作成するツールがあるため、フレンド申請を送り合うきっかけにもなりやすくて面白いです。人によっては個性あふれるカスタマイズをしているため、貰った名刺を保存して眺めるのも面白いです。
名刺に埋め込まれていることが多いですが、NeosVRではURLのリンクを共有することも簡単なため、VRだけではなくTwitterなどの外部のサービスで繋がることも手軽にできます。配信をしている方やVTuberの方などは自分の配信チャンネルのリンクを貼っていたりしますし、サークル活動をしている人はDiscordの招待リンクを貼っていることもあります。

f:id:trpg_yoshi:20211024222325j:plain
個性的な名刺いろいろ。SNSのリンクなども貼れる。

写真を撮る

NeosVRにはカメラ機能があり、好きなところで写真が撮れます。通常の写真だけではなく、3D写真や360度写真、切り抜き写真なんかも簡単に撮ることが可能です。撮った写真はすぐにワールドに現像されるため、友達と一緒に確認するのも簡単です。
さらに、ユーザー製のカスタマイズカメラも色んなものが配布されています。使いこなせばさまざまな写真を撮ることが可能です。


アバターのポージングを調整できるツールもあります。フルトラッキング機器を使っていなくても、足の位置などを自由に調整できるので、自撮りなどにも役に立つでしょう。

写真を共有する

NeosVRでは他人が撮った写真もすぐにパソコンに取り込むことができます。イベントの集合写真なんかは一人がタイマーで写真を撮ってみんなに配ることが多いです。外部のサービスで画像を共有する手間はありません。

教え合う

NeosVRに持ち込んだものはほぼ全てが同期されます。写真やアイテム、コンテキストメニューアバターセットアップUIまで、ほとんどのものが同期されお互いに確認することが可能になるため、困ったことがあればその場で周りの人に見てもらうことが簡単にできます。初見だと面食らってしまうアバターのセットアップなども、慣れてる人にお願いすればトラブルシューティングまで含めて解決することでしょう。
アバターセットアップに限らず、自分の苦手なことは詳しい人に質問し、自分の得意なことは教え合うというのがその場で簡単にできます。URLやスクリーンショットの共有の他にも、TopazChatを使えばデスクトップ画面の共有も簡単にできるため、BlenderやUnityなどの外部ツールの使い方も教わることができるかもしれません。
JPチュートリアルワールドで困っている人がいたら知っていることを教え合ってみましょう。何か困り事があれば、JPチュートリアルワールドに行ってみましょう。困りごとも一人で悩むよりかは複数人で悩んだほうが解決しやすいと思います。集まった人ではわからないことがあれば、より詳しく知ってそうな人が知り合いにいないか聞いてみましょう。

おわりに

今回はソーシャル編ということで、コミュニケーションを中心に取り上げてみました。次回はアクティビティ編です。ワールドの話やイベントの話などができればと思います。
dinosaur-fossil.hatenablog.com

この記事を読んでNeosVRに興味を持った人はぜひ遊びに来てみてください。
一人で始めるにはまだまだ情報が少ないとは思うので、最初のチュートリアル*6で「みんなで助け合いながらプレイ(パブリック)」を選ぶか、JPチュートリアルワールドに来てください。夜20時以降なら*7親切な人がやってきて教えてくれると思います。
また、毎週火曜日の22時から、初心者案内デーというイベントで操作方法からアバターセットアップまで教えてもらえます。そちらに参加してみてもいいと思います。


もし一人でやってみてわからないことがあれば、NeosVR JP Discordの質問チャンネルや、 Twitter#NeosVR知恵袋で質問してくれると誰かが教えてくれるかもしれません。
discord.com

*1:2021/11/03時点では、Steamからはダウンロードできない状況になっています。これは仮想通貨まわりのSteam規約の影響で、将来的にはSteamから配信されるバージョンでは通貨まわりの機能がオミットされたものが配信されるようになるそうです。詳しい情報はこちら https://wiki.neos.com/Neos_Credits/Steam_Changes

*2:日本時間の21時前後で、全世界のオンラインユーザーがだいたい200人前後。その内日本人が体感で20~40人ぐらい。

*3:UnityにあるDynamicBoneと名前は同じだが、NeosVR固有の別物

*4:Boopジェスチャーの参考記事:https://www.serendipity.page/b/2020/04/boop/

*5:移動モードの歩行(クライミング)では、コライダーを掴んでよじ登ることができます。

*6:Metaverse Training Center というワールドでチュートリアルを受けるところからゲームは始まります。

*7:昼間は学業や仕事などでインしている人が少ないので、日本人はほぼ居ないと思います。

Neos VR のユーザー情報を取得したときの API のメモ

概要

NeosVR の API からユーザー情報を取得する必要があって、ちょっとしたスクリプトを書いて取得したときのメモです。
公式の情報は ネットワークに関する情報 に書いてあることだけっぽいですが、
API 自体は公式には公開されてない [※要出典] らしいので、この記事の情報は別に正しくないです。

wiki.neos.com

API

Neos の APIapi.neos.com を使うと良さそうです。
www.neosvr-api.com とか cloudx.azurewebsites.net とかを叩いても同じ結果 [※未確認] が帰ってくるっぽいですが、どう違うのかはよくわかりません。
API ドキュメントは公開されていません。しかし、 PolyLogix Studio という有志のグループ? がまとめている非公式のものがあります。確認したくなったらこれを見るのがよいかと思います。

neos-api.polylogix.studio

ユーザー情報の取得

ユーザーIDは、多くの場合 U-[ユーザー名] になるんですが、ハイフン-やアンダーバー_などのような記号、日本語などが混じっていた場合はその限りではありません。
ユーザー名から情報を検索したい場合は https://api.neos.com/api/users/[ユーザー名]?byUserName=true を叩きます。マルチバイト文字の場合はURIエンコードしてください。
ぼくの情報が知りたい場合は https://api.neos.com/api/users/yoshi1123_?byUserName=true にアクセスするとわかります。

ユーザーIDがわかっている場合は、 https://api.neos.com/api/users/[ユーザーID] を見ます。ぼくの場合はユーザーIDが U-yoshi1123- なので、 https://api.neos.com/api/users/U-yoshi1123- を見れば丸わかりです。

上記2つの方法で帰ってくる形式は同じで、下記のようになります。
内容が推測できるものだけコメントを書いてます。

{
   "id":"U-yoshi1123-", /* ユーザーID */
   "username":"yoshi1123_", /* ユーザー名 */
   "normalizedUsername":"yoshi1123_",
   "registrationDate":"2021-05-18T09:23:47.9666713Z", /* Neos のアカウントを作成した日 */
   "isVerified":true,
   "quotaBytes":-1,
   "isLocked":false,
   "supressBanEvasion":false,
   "usedBytes":-1,
   "2fa_login":false,
   "tags":[
      "neos festa 3 participant"
   ],
   "profile":{
      "iconUrl":"neosdb:///b818988b835d17093c81636a3344d0f47ea3316f10ce8fcca5cd5a3afb2243b9.webp" /* プロフィールアイコンの画像 */
   },
   "patreonData":{ /* Patreon の情報(Patreon 連携してない場合は無いっぽい) */
      "isPatreonSupporter":true,
      "lastPatreonPledgeCents":-1,
      "lastTotalCents":-1,
      "minimumTotalUnits":-1,
      "externalCents":-1,
      "lastExternalCents":-1,
      "hasSupported":true,
      "lastIsAnorak":false,
      "priorityIssue":0,
      "lastPlusActivationTime":"2021-09-01T16:55:54.5170223Z",
      "lastActivationTime":"2021-09-01T16:55:54.5170223Z",
      "lastPlusPledgeAmount":-1,
      "lastPaidPledgeAmount":-1,
      "accountName":"Standard Account",
      "currentAccountType":0,
      "currentAccountCents":-1,
      "pledgedAccountType":0
   }
}

ちなみに、ユーザー名の前方一致で検索する API も存在します。
https://api.neos.com/api/users/?name=[ユーザー名]
結果は配列で帰ってきます。順序はよくわからないので、ユーザー名がわかっている場合は上の API を使うのがよいです。(最初の1件が完全一致したユーザーにならない場合があります。orangeさんとか)