NeosVRの楽しみ方いろいろ:ソーシャル編
はじめに
ソーシャルVRのひとつ、NeosVRをご存知ですか? もしご存知でなければ次の動画を見てください。
話題の"メタバース"『Neos VR』のPVを作りました!!!🎥🎉🌟#NeosVR pic.twitter.com/c8TNPJ0GrL
— オレンジ (@mikan3134) 2021年6月13日
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を買いましたがセットアップしてません。
NeosVR の楽しみ方:ソーシャル編
文量が思ったより多くなってしまったので、ソーシャル編・アクティビティ編・クリエイティブ編とそれぞれ題して分割して書きます。アクティビティ編とクリエイティブ編は後日書きます。 dinosaur-fossil.hatenablog.com dinosaur-fossil.hatenablog.com
コミュニケーションを取る
NeosVRは一人で黙々と作業しても楽しいですが、観測できるほとんどの人が他人と何かしらの交流をしています(一人でいる人は観測できないだけですが)。
おしゃべりする
何はともあれお喋りです。我々は人間なので、お喋りは楽しいです。
NeosVRは通信方法がP2Pなので、物理的に近くに住んでいるのであれば通話の遅延がかなり少ないです。Discordのボイスチャット並みの会話ができます。
声を出せない人でも、ペンのアイテムを取り出せばどこでも会話できます。NeosVRでは好きな場所でアイテムを取り出すことが可能です。デスクトップ勢で無言勢の場合は、Mute Helperというテキストチャット用のアイテムも存在するので、そちらの方が使いやすいかもしれません。
NeosVRのMuteHelperのつかいかた(しゃべれなくてもめっせーじがおくれる) pic.twitter.com/GphwVDFEGl
— ここあ (@kokoavr) 2021年10月18日
また、NeosVRでは音声を拾うことが可能なので、リアルタイム翻訳機のアイテムが流通しています。海外勢と言語の壁を超えて会話することもできます。
超便利なリアルタイム翻訳機の使い方!🌏
— オレンジ (@mikan3134) 2021年5月27日
喋った言葉を自動で翻訳してくれます!😳
英語ほとんど喋れなくてもこれがあると結構伝わります!やってみて!🙌
韓国語やドイツ語にも対応してますよ!🇰🇷🇩🇪
作者 VEXさん#NeosVR pic.twitter.com/6PVXCMdALS
無言勢の新たなカタチ…!?この発想!しかもこれGoogle翻訳も付いてるからニュアンスで海外勢とも会話出来るんじゃねーか!?これを応用すると例えば自分の前にカメラを固定して配信すれば疑似字幕が可能…!!様々な発想を呼び起こす技術力である!詳しくはうさぎちゃんの動画で!BGM:魔王魂 #NeosVR https://t.co/D3lUYv9eaU pic.twitter.com/HYdtJDN9E1
— リーチャ隊長 (@rietzscha) 2020年6月22日
NeosVRはアイトラッキング・フェイシャルトラッキングにも対応しています。会話してるときや現実で飲食をしているときなどにも実際の表情とアバターの表情をリンクさせることができ、より豊かなコミュニケーションを取れるでしょう。
メッセージを送る
同じワールドにいない人と連絡を取ることも可能です。フレンド同士なら、基本のフレンド機能でテキストメッセージやボイスメッセージを送り合うことができます。メッセージはオフライン状態の人にも送ることができるため、メールのような使い方もできるでしょう。
NeosVRにはVR内SNSも存在します。Neow端末を取り出せばどこでも表示され、投稿した呟きは他のワールドとも同期されます。3次元空間に出てくる呟きはVRならではです。
VRSNSの中でSNSを作りました!!😜👏
— オレンジ (@mikan3134) 2021年5月5日
『Neow!』(にゃお!)っていいます!😹
みんなが投稿したメッセージはすべてのワールドで表示されます🌏
思ったことやイベント告知、面白いアイデア、なんでも投稿してみてね!✌#NeosVR pic.twitter.com/UH5UuFYjwQ
触れ合う
NeosVRでは他人とのふれあいが簡単にできます。NeosVRで揺れモノを実現しているDynamicBone*3では、他人の髪やスカートに干渉することができます。掴んだりすることも可能ですし、引っ張ると伸びるようにもできます。
DynamicBoneの状態や他人との距離なども取得できるので、撫でられているときや髪を掴まれてるときに合わせて表情が変わるようにしている人もいます。
Boopジェスチャー*4をされたときにエフェクトが出るようにしている方もいます。
また、アバター自体にユーザーがぶつかるコライダーを仕込むことで、他の人を押して動かしたり、自分の手の上に相手を乗せたり、あるいは他人によじ登ったり*5できます。わざわざコライダーを仕込まなくても、相手と握手できるアイテムやハイタッチできるアイテムなどもあります。
写真・動画・配信を見る
NeosVRでは画像ファイルや動画ファイルを簡単に読み込むことが可能で、中に持ち込んだ後は通常のアイテムと同じように拡大縮小、保存や複製などができます。ファイルじゃなくても、スクリーンショットやYouTubeのURLをクリップボードからペーストするだけでもNeosVRに読み込むことが可能です。話題に上がった場所の写真や、Webサイトのスクリーンショットなどをその場で取り出して友達と共有できるのはかなり快適です。持ち込んだ写真も並べるだけで個展や展示会のような空間を気軽に作り出すこともできます。
さらに360度の写真や動画にも対応しているため、現実では中々確認しづらい全天球の写真や映像も体験できます。
現在 #NeosVR にて開催中の #NeosFesta3 にて
— とりとり@VRChat (@toritori_VRChat) 2021年8月29日
リアルで撮影した写真展と #VRChat にて撮影したVR写真展を開催しております。VR写真展は旧来の写真のように画角に縛られたものではなくVRで真価を発揮する360°全天球写真の展示です。VRでの新しい写真表現が楽しめる構成となってるので是非ご覧ください pic.twitter.com/J4R7sQ04SC
私の作品を展示したVRのniisimaaiko museumですが、フライで飛ぶと時々奈落に落ちるので気を付けてください。本当にすみません。ノークリップというやつで奈落から生還できます。 #NeosVR #NeosFesta3 pic.twitter.com/b5cwzazXfC
— 漫画制作中@新嶋アイコ (@niisimaaiko) 2021年8月17日
360°MV #ファントムセンス 特設視聴ワールドが #NeosVR に登場っ!!!(≧∇≦)/
— バーチャル美少女ねむ⚡新曲公開! 公式VIVEアンバサダー (@nemchan_nel) 2021年8月30日
こんなふうに「みんなでMVの中に入って」楽しめちゃうんです! 超たのしい⚡ カラオケモードもあるので、ここで歌ってみたMVも撮れちゃう! #VIVEアンバサダー
※制作 : @mikan3134 さん https://t.co/WzNxwsInBF pic.twitter.com/SRwP9OCOmV
また、NeosVRは各種配信サービスの配信も動画と同様に見ることができます。コメントの取得もTwitchであれば公式アイテムが、YouTubeなどであればマルチコメントビューアのプラグインとしてユーザーツールが存在します。みんなで配信や配信コメントを見ながらおしゃべりする状況もすぐに実現できます。空を飛べたり自身のサイズを変更したりが簡単にできるので、他の人の視界を妨げないようにするのも簡単です。
VTuberさんがNeos VRで作った配信スタジオで3Dお披露目配信してる!!😱
— オレンジ (@mikan3134) 2021年9月26日
みんなで見てます👀#NeosVR https://t.co/LQecTZ1eax pic.twitter.com/jElZRT9vrB
Amazon Prime Video のウォッチパーティを利用して、上映会を行うためのツールもあります。NeosVRでは自分のデスクトップをVR内から見ることができるので、各自のデスクトップビューの位置を合わせてウォッチパーティを見ることで、みんなで集まって同じ映像を見てるような体験ができます。
ハロウィンも近いのでゾンビ映画を観ませんか?
— うすたび (@usutabi) 2021年10月15日
明日土曜日の夜に映画視聴会やります!
場所: #NeosVR
時間:10月16日(土)19:00~約1時間半
映画:ロンドンゾンビ紀行
参加方法:usutabigaへjoin又はワールド一覧から参加https://t.co/OwjeB6BkJ1
※鑑賞するにはAmazonPrime会員である必要があります。
アイテムで遊ぶ
NeosVRではインベントリシステムがあり、権限で許可されている場所であれば、インベントリの中からアイテムを取り出したり保存したりすることが可能です。
鏡が欲しければ鏡のアイテムを取り出せばいいですし、他のワールドで見つけたおもしろアイテムをいつもの溜まり場で友達と共有するのも盛り上がります。
いろんなアイテムを配置するだけで自分だけのワールドができますし、記念日に友達にプレゼントを送ることもできます。
今日は誕生日です!🎂
— オレンジ (@mikan3134) 2021年8月19日
日付が変わった瞬間に超イケてるワールドでお祝いしてもらいました!!!!🤪
ありがとうございます!!!!🙇#NeosVR pic.twitter.com/FJgY9blmU5
パブリックフォルダを使う
ワールドに配置されているもの以外にも、パブリックフォルダというものでアイテムが配布されていることもあります。パブリックフォルダをインベントリに保存することで、フォルダの中を見ることができます。
初めからインベントリ内にあるNeos Essentialsというパブリックフォルダの中にはさまざまなアイテムがあり、中でもGadgetsにはいろんなギミックが仕込まれた面白いアイテムがたくさん公開されています。アイテムでどんなギミックが実現できるかの参考にもなると思います。
名刺を交換する
NeosVRの日本コミュニティには名刺文化が存在します。簡単に名刺を作成するツールがあるため、フレンド申請を送り合うきっかけにもなりやすくて面白いです。人によっては個性あふれるカスタマイズをしているため、貰った名刺を保存して眺めるのも面白いです。
名刺に埋め込まれていることが多いですが、NeosVRではURLのリンクを共有することも簡単なため、VRだけではなくTwitterなどの外部のサービスで繋がることも手軽にできます。配信をしている方やVTuberの方などは自分の配信チャンネルのリンクを貼っていたりしますし、サークル活動をしている人はDiscordの招待リンクを貼っていることもあります。
写真を撮る
NeosVRにはカメラ機能があり、好きなところで写真が撮れます。通常の写真だけではなく、3D写真や360度写真、切り抜き写真なんかも簡単に撮ることが可能です。撮った写真はすぐにワールドに現像されるため、友達と一緒に確認するのも簡単です。
さらに、ユーザー製のカスタマイズカメラも色んなものが配布されています。使いこなせばさまざまな写真を撮ることが可能です。
VTuberさん必携!?㊙
— オレンジ (@mikan3134) 2021年10月20日
映画みたいな雰囲気の写真/動画が撮れるカメラを開発しました!!🎥😆🎉
完成記念ということで無料配布します!👏💸
この機会にぜひ入手してください!🏃💨#NeosVR #デリシャスカメラ pic.twitter.com/HMqO6meIox
Looking Glass Portrait用のQuilt画像が撮れるカメラを作りました
— υμβραν (@Umbrasan) 2021年9月21日
持ち帰って好きなワールドで撮影することが出来ます
プレビュー用のNeoLookingGlassはVRを使うと立体視で確認できますよ!#NeosVR #LookingGlassPortrait #ルキグラhttps://t.co/YAlPAJAR3v pic.twitter.com/e8ViUAmI6z
アバターのポージングを調整できるツールもあります。フルトラッキング機器を使っていなくても、足の位置などを自由に調整できるので、自撮りなどにも役に立つでしょう。
EasyPoseを大幅に作り変えました。
— e1ght3 (@e1ght3) 2021年8月13日
操作パネルを廃止して、コンテキストメニューから操作できるように変更しています。
NeosFesta3のアイテムブースか下記の共有フォルダからアクセスできます。#NeosVR
▼フォルダリンク▼
neosrec:///U-e1ght3/R-22b15f5b-70c8-45df-b22a-bf12211585b1 pic.twitter.com/VnHQOU6G3s
写真を共有する
NeosVRでは他人が撮った写真もすぐにパソコンに取り込むことができます。イベントの集合写真なんかは一人がタイマーで写真を撮ってみんなに配ることが多いです。外部のサービスで画像を共有する手間はありません。
教え合う
NeosVRに持ち込んだものはほぼ全てが同期されます。写真やアイテム、コンテキストメニューやアバターセットアップUIまで、ほとんどのものが同期されお互いに確認することが可能になるため、困ったことがあればその場で周りの人に見てもらうことが簡単にできます。初見だと面食らってしまうアバターのセットアップなども、慣れてる人にお願いすればトラブルシューティングまで含めて解決することでしょう。
アバターセットアップに限らず、自分の苦手なことは詳しい人に質問し、自分の得意なことは教え合うというのがその場で簡単にできます。URLやスクリーンショットの共有の他にも、TopazChatを使えばデスクトップ画面の共有も簡単にできるため、BlenderやUnityなどの外部ツールの使い方も教わることができるかもしれません。
JPチュートリアルワールドで困っている人がいたら知っていることを教え合ってみましょう。何か困り事があれば、JPチュートリアルワールドに行ってみましょう。困りごとも一人で悩むよりかは複数人で悩んだほうが解決しやすいと思います。集まった人ではわからないことがあれば、より詳しく知ってそうな人が知り合いにいないか聞いてみましょう。
『JP チュートリアルワールド』が新しくなりました!!😍🎉🎊
— オレンジ (@mikan3134) 2020年10月27日
基本操作からアバターセットアップまで、画像・動画付きで解説!😳
いつでも安心してNeos VRデビューできちゃいます!😆
Neos VRをインストールしたPCで↓をクリックで入れますよ!https://t.co/SWrbtpKKUK#NeosVR pic.twitter.com/4Yd8Z2JETW
おわりに
今回はソーシャル編ということで、コミュニケーションを中心に取り上げてみました。次回はアクティビティ編です。ワールドの話やイベントの話などができればと思います。
dinosaur-fossil.hatenablog.com
この記事を読んでNeosVRに興味を持った人はぜひ遊びに来てみてください。
一人で始めるにはまだまだ情報が少ないとは思うので、最初のチュートリアル*6で「みんなで助け合いながらプレイ(パブリック)」を選ぶか、JPチュートリアルワールドに来てください。夜20時以降なら*7親切な人がやってきて教えてくれると思います。
また、毎週火曜日の22時から、初心者案内デーというイベントで操作方法からアバターセットアップまで教えてもらえます。そちらに参加してみてもいいと思います。
毎週火曜日22時~は「Neos VR初心者案内デー」🔰
— オレンジ (@mikan3134) 2021年10月25日
基本操作からアバターセットアップまでまるっと覚えちゃおう~!!😆
参加登録はこちらのフォームから!✒https://t.co/Yk6dB3Tcqj#NeosVR pic.twitter.com/FtIJo6LFbB
もし一人でやってみてわからないことがあれば、NeosVR JP Discordの質問チャンネルや、 Twitterで#NeosVR知恵袋で質問してくれると誰かが教えてくれるかもしれません。
discord.com
Neos VRの疑問や質問を気軽に書き込む #NeosVR知恵袋 っていうハッシュタグがあります👏
— オレンジ (@mikan3134) 2021年5月17日
気になったことを書いておくとつよつよな人が答えてくれますよ😂
試してみてね👐#NeosVR pic.twitter.com/6m2VU30NdS
*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 自体は公式には公開されてない [※要出典] らしいので、この記事の情報は別に正しくないです。
API
Neos の API は api.neos.com
を使うと良さそうです。
www.neosvr-api.com
とか cloudx.azurewebsites.net
とかを叩いても同じ結果 [※未確認] が帰ってくるっぽいですが、どう違うのかはよくわかりません。
API ドキュメントは公開されていません。しかし、 PolyLogix Studio という有志のグループ? がまとめている非公式のものがあります。確認したくなったらこれを見るのがよいかと思います。
To @neos_vr Creators interested in using the api, We are now hosting a knowledge base created using our 2 years of experience.
— PolyLogiX@NeosVR (@PolyLogixVR) 2021年10月30日
Please note this is a Community Project and the API may/will change at Any time. We will keep the docs up to date.https://t.co/bt8XEij7VV#NeosVR #API
ユーザー情報の取得
ユーザー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さんとか)
NeosVR で初めてのオモチャ作成
購入したものの長らく眠っていた Oculus Quest を使って、先週から Neos VR という VRSNS に入り浸っています。
Neos ではゲーム内でノードプログラミングができる(LogiX という名前らしい)、という話を聞いてたので、試行錯誤しながらオモチャを作っています。この記事はそんな記録です。
ちなみにわかりやすい説明はいろいろと動画で出てるので、[Neos VR LogiX] とかで適当にググってください。この辺を参考に遊んでます。
youtu.be
youtu.be
youtu.be
ただ、残念なことに Neos の情報はネットに少なめです。どうしても詰まったら Neos にいる人に相談してみるといいかもしれません。今回の記事のオモチャも何度かテクを教えてもらってます。
今回作ったもの
治安の悪い箱 pic.twitter.com/3Q3lZ1MUNm
— よっしー (@trpg_yoshi) 2021年5月27日
時間経過で Rotation と Scale と色相が変わる箱です。(Position も変えたかったんですが、どう動かすのがいいか思いつかなかったのでやれてないです)
LogiX はこんな感じ
下記で少し細かく説明しますが、「たぶん」「おそらく」「と思います」などのふわっとした語彙がたくさん出てきます。なぜかというと Neos VR 始めて1週間程度のペーペーなので、詳しい理屈をまだ把握できてないからです。ご了承ください(予防線)。
準備
今回は箱を回すので、回す箱を作っておきます。ただ、箱の Rotation や Scale を操作すると Grabbable が反応しなくなるため、箱の親を作ってそれに Grabbable を付けておきます。
DevToolTip でコンテキストメニュー>新規作成>3D モデル>ボックスで箱を作ります。セカンダリーを当てた後にコンテキストメニューからインスペクターを開きます。Box の Grabbable コンポーネントを探して赤いXを押して消します。
Boxのスロットが開いてるところで、黄色い上矢印を押して親スロットを作ります。Box - Parent を選択して Attach Component>Transform>Interaction>Grabbable で Grabbable コンポーネントを追加しておきます。
入力
今回は時間変動を扱うので、T
ノードを入力に使います。
LogiX で時間経過で値を変動させたい場合は T
ノードを使うらしいです。
これはワールドが生まれてからの時刻を吐き出します。Sin
ノードや Cos
ノードに渡すといい感じに振動する値が作れます。
T
ノードは Input
、Sin
や Cos
ノードは Math
の中に入っています。
他にも T*10
, T/10
, T/2
などのノードがありますが、今回はパラメータを後で変動させたかったので使っていません。
Rotation を変える1
Cos
や Sin
の値を Pack xyz
でまとめます。
Pack xyz
はたぶん xyz のベクトルにまとめてくれるやつです。たぶん。
それを 180 倍して、From Euler
で角度型に変換します。
ちなみに四則演算や比較演算子、Pack xyz
などは Operators
に入っています。Math
の中を探してぜんぜん見つからなくて泣きました。
From Euler
は Math/Rotation
です。
こうして出来上がった LogiX の出力をオブジェクトに繋ぎます。
DevToolTip を装備して、オブジェクトのインスペクターを開きます。その後、 LogixTip に装備を変えて、オブジェクトの名前をグラブしながらセカンダリーでインターフェースノードが開きます。
文章だとなんのこっちゃだと思うので、上記の動画などで確認してください。
インターフェースノードはオブジェクトのスロット(インスペクターの階層みたいなやつ?)やコンポーネントなどからだせるらしいです。たぶんですけどインターフェースノードを出せるやつはぜんぶ LogiX で弄れます。
インターフェースノードには色んな色や模様がついてますが、これらは同じ色・模様は同じ型らしいので、同じ色のものを繋げることができます。
弄りたい値の型を見て入力から LogiX を捏ねていく方が考えやすいかもしれません。
今回は Rotation を変えたいので、Rotation の場所に繋ぎます。繋いだときに線じゃなくて矢印になるんですけど、どういうやつなのかは知りません。
愉快に回る箱の完成です。
Scale を変える
Position のときと同じ理屈で、いい感じの LogiX を繋いで出力を Scale に繋ぎます。Scale の型は3次元ベクトルっぽいので Pack xyz
から直接繋ぎます。
Sin
のままだと値域が -1 ~ 1 でダサかったので 0.5 ~ 1.5 の値になるようにノードを挟んでいます2。+1
ノードは Operators
の中にあります。
色を変える
色を変えるために、マテリアルを作ります。DevToolTip を装備してコンテキストメニュー>新規作成>マテリアル>PBS Metallic を選びました。別に何でもいいです。
作ったマテリアルをグラブして、Box のインスペクターの中の Mesh Renderer コンポーネントの Materials (list) の中の枠にトリガーします。最初に入ってるマテリアルの上からセットしていいです。
これをせずに初期のマテリアルを弄ってしまうと、ワールドのデフォルトのマテリアルが変化してしまうらしいです。
その後は同様にマテリアルのインターフェースノードを取り出し、今回は EmmissiveColor に向けて値を作ります。
Color
から Hue
ノードを選びます。これは Float の入力から色相を作るノードっぽいです。Float ならなんでもよさそうなので、T
ノードから直接繋いでみます。
ゴキゲンに光り輝く箱の爆誕です。
速度を変える
このままだと一定の速度で動くだけのインテリアですこし面白くない(し、動くのが速くて目が痛い)ので、速度を変えれるようにします。
入力の T
ノードに戻って、T
から伸びてるノードの間に掛け算ノードを挟みます。そして掛け算を T
掛ける何かにしましょう。
LogiX では変数も扱うことが可能です。Variables/Storage
から Float
を選んで、掛け算ノードに繋ぎます。
(Float
ノードの初期値は0なので動きは止まってしまいます。)
この Float
ノードに対して、特定のアクションを行った際に値を書き込むように組んでみます。値を書き込む際に使うノードは Write
ノード。Actions
から取り出します。
Write
ノードは入力の Pulse が来た時に、入力の値を矢印の先に書き込むノードらしいです。なので矢印を Float
に繋ぎます。
Write
で書き込む値は毎回違う値にしたいので、乱数を使います。Math/Random
から Random Float
ノードを選びます。
このノードには入力が2つありますが、値域を決めるためのもののようです(大小はどちらでもよさそう)。今回は 0 ~ 1 にします。
この状態で Write
ノードの Pulse を押すと、押したときの乱数の値が Float
ノードに書き込まれ、速度が変化できます。
グラブした状態でトリガーしたときに Pulse を送る
ここはぶっちゃけ人に質問して作ってもらった箇所なので、詳しい理屈はわかりません。繋いだものを並べます。
まず箱の Grabbable コンポーネントからインターフェースノードを取り出します。 そこから次を繋いでいきます。
Interaction/Grabbable/Grabbable Grabber
Slots/Get Slot
Slots/Get Active User
Input Devices/Controllers/Standard Controller
(2つ)Math/Max
この順で繋ぐと、箱を持ってる人がどれだけトリガーを押し込んでいるかが拾えるらしいです。
ちなみに Standard Controller を2つ作っているのは、右手用と左手用らしく、どちらの手で握ってるかを把握する LogiX も書けるらしいですが、覚えてないそうでこの方法を教えてもらいました。
Standard Controller からトリガー時に Pulse が出る出力もあるらしいですが、バグりやすいとのことで押し込み時の率からやるのがいいそうです。
これを Pulse にするために、Operators
の大なりノードを挟み、Flow
の Fire on True
ノードで繋ぎます。
Fire on True
ノードは入力が True
になったら Pulse
を流すノードだそうです。Fire on True
ノードから Write
ノードへ繋いだら完成です。
packing
箱と一緒に LogiX を保存するために、忘れずに packing します。
インベントリの Box - Parent を選択して黄色い星アイコンをクリックして子スロットを作ります。
Box - Parent - Child が作成されますが、わかりやすいように名前を変えます。logix とか。ついでに親も名前を変えておきます。眩しいので gaming box とかにしておきます。
logix をグラブした状態でコンテキストメニュー>パッキングルートに設定を選び、LogiX ノードに向けてビームが飛んでる状態でセカンダリーを長押しします。
LogiX が全部消えるまで繰り返します。
これができたら、gaming box を掴んでインベントリに保存しましょう。
遊ぶ
楽しい。
まとめ
Neos の記事はまだ少なそうなので、こんな感じで雑多な記事を書いて情報量を増やしていこうかなと思いました。初心者の気持ちになれるやつがあると嬉しいです。なお質。
おしまい。
躓いたところとか
Box にそのまま Grabbable 付けてたら掴めなくなった
値を変えてるとき(紫色になってる場合)は掴めないらしい。親を作って回避。
うーん? LogiX で Rotation や Scale を変動させてると Grabbable が効かない?
— よっしー (@trpg_yoshi) 2021年5月28日
あってます!logixで値をdriveしてる場合(対象がピンクのフィールドになってる状態)では掴むことができません!
— Hamadori🦉 (@Hamadori_vrq) 2021年5月28日
掴んでトリガー押したら2回 Pulse が流れるっぽい?
LogiX を出してると重いらしく、そのせいで処理がダブついてるんじゃなかろうか。パッキングして LogiX を消したらいい感じになった。
このノードどこにあんの???
誰かから NodeMenu+ を貰いましょう。検索機能が付いてるので便利です。
JP skill share World の複合ツールチップにあるマルチツールチップを装備して LogiX モードでノードブラウザを開いても出てきます。
追記
スタリィドールの素材
サイコロ・フィクションの新作TRPG『星と宝石と人形のTRPG スタリィドール』が出ましたね。
今度セッションをするので準備をしていたんですが、ラプスロールの結果どこに移動できるかをホロスコープシート上で把握しやすくならないかと、以下のような素材を作ってみました。
ホロスコープシートの素材は色んな人が公開してたので、それに上から被せるように配置して、適宜回転して距離を数えると便利かなーと思いました。
まだ実セッションで使ったことはないので、利便性は未知数です。
とりあえずユドナリウム用です。ココフォリアでも使えるかと思ってましたが、45度刻みでしか回転できないんですね……
こういう画像を地形/パネルで上から被せて回すとセッションやりやすいかなーと思いました。引用先の画像と一緒に使うサイズで作ってます #スタリィドール https://t.co/YvOxe5d1Yj pic.twitter.com/vcWy045vxk
— よっしー (@trpg_yoshi) 2021年5月8日
スタリィドール、こんな感じでやるかも pic.twitter.com/E8DFSbmr8q
— よっしー (@trpg_yoshi) 2021年5月8日
ついでに顕と蝕のアイコンも作ったので貼っておきます。
Charaeno から Foundry VTT にインポートするマクロ
※2021/05/16追記
このマクロは 新クトゥルフ日本語辞典登録 のサポートマクロに取り込んでもらえました。そちらからご利用ください。
海外製のオンラインセッションツールに Foundry VTT というものがあります。
日本語名は「オンセ工房」だそうです。日本語コミュニティの有志によって日本語化が行われています。使い方とかがわからなければDiscordで質問するといろいろと教えてもらえます。
Foundry VTT(以降 FVTT)にはいろいろな特徴があるんですが、ツール上での処理をモッドとして第三者が自由に開発したり、マクロとしてユーザーが単一スクリプトを動かす事ができます。言語は JavaScript です。(基本的に WEB の技術で動いてるはずです)
FVTT の API も全て公開されているため、本体の機能をハックすることも可能です。
foundryvtt.com
そこで手慣らしにキャラクターシートサイトの Charaeno から FVTT の新クトゥルフ神話TRPG へアクターとしてインポートしてみるマクロを書いてみました。
そこそこ上手く動いたので、公開してみます。使ってみたい奇特な人がいれば使ってみてください。
使い方
依存システム・モッド
- System: Call of Cthulhu 7th edition (Unofficial)
- Module: 新クトゥルフ日本語辞典登録 (推奨)
上記のコードをコピーして、 FVTT でマクロを script
として作成して実行するだけです。
成功したら、アクター一覧の Imported characters
のフォルダに生まれてます。
中身はだいたい次のような感じで生成されます。
※2021/05/08現在では武器の生成がややこしくて断念してます。
ちなみに処理は actor-importer.js を参考に書いてます。
注意
FVTT の CoC7th のシステムには職業データに選択可能な技能を紐付けて簡単に習得できるようになったりする機能もあるんですが、 今回のマクロではそこまでは実現できていないです。
FVTT はたくさんのデータを「辞典」という形で蓄積していくとどんどん利便性が上がる造りになっているので、もっと利便性を上げたかったらぜひデータを作ってみてください。
また、ぼくの環境では、作成したアクターシートを開くと FVTT が固まったような挙動になってしまいます。たぶん裏で処理が走りまくってるんだと思います。
一度アクターシートを開いた後にアクターシートを閉じると、次回以降は普通の感じで動くと思います。(これもおま環かもしれませんが……)
※2021/05/16追記 Call of Cthulhu 7th edition (Unofficial) のバージョン 0.5.8 で修正されるようです。
困ったことがあれば オンセ工房日本支部(FoundryVTT) で質問してください!
ユドナリウムのコマ作るやつ
「ユドナリウムのキャラコマを作るやつ」というツールを2019年1月から公開しています。自分では「コマ作るやつ」と呼んでます。
https://udontools.netlify.app/#/charazip
今までずっと Twitter で告知したりしていたんですが、いい加減ちゃんとした紹介を書こうかなと思ってこの記事を書いています。
機能
名前そのまんまですが、Udonarium用のキャラクターのコマデータを、キャラクターシートサイトのURLから生成するツールです。
対応しているキャラクターシートのURLを入力してからキャラコマ生成ボタンを押すと、ユドナリウムのコマデータのzipをダウンロードできます。
対応状況 (2021/05/06時点)
キャラクターシート倉庫
- アマデウス
- インセイン
- サタスペ
- シノビガミ
- スタリィドール
- ストラトシャウト
- ダブルクロス3rd
- ディヴァインチャージャー
- デッドラインヒーローズ
- トーキョー・ナイトメア
- トーキョーN◎VA THE AXLERATION
- モノトーンミュージアム
キャラクター保管所
- アリアンロッド2e
- 神我狩
- クトゥルフ
- 新クトゥルフ
- ソードワールド2.0
- ダブルクロス3rd
ログ・ホライズンTRPG 冒険窓口
Charaeno
ありそうな問い合わせとその回答
問い合わせは Twitter @trpg_yoshi にでも投げてください。
このキャラクターシートサイトにも対応してほしい!
キャラクターシートサイト側のAPIが無いとできないです。
APIがあるかは調べますが、無かったら諦めてください。
このシステムにも対応してほしい!
ぼくがルールブックを持っているシステムじゃないと、どんなコマデータを作ればいいのかわからなくてつらいです。
キャラクターシートのURLと、そのURLからどんなコマデータを生成したらどんなデータになるかを添えてお問い合わせいただければ、対応できるかもしれません。
その他の機能
- URLのGETパラメータにキャラクターシートのURLを渡すことで、画面が開くと同時にzipデータをダウンロードできます。パラメータ名は
url
です。
例)https://udontools.netlify.app/#/charazip?url=https:%2F%2Fcharaeno.sakasin.net%2F7th%2Fh_wQNXeiHPXDEDtG3r2ac
雑記
基本的には自分がGMやるときに楽するために作ったツールですが、以下のようなことができるように作ってます。
準備の手間削減
コマ作るやつを使えば、PLはユドナリウム上でのキャラクターシートの編集操作を覚えなくても卓がやれます。1から打ち込むの普通にめんどくさいよ。
また、間違ってユドナリウム上でコマを消したり、項目を削除してしまったりしても、キャラクターシートさえあればすぐに復元できます。
さらに、チャットパレットも自動生成するので、GMもほしいチャットパレットをPLに生成してもらわなくても使ってもらえます。
コマのデータ形式の統一
コマの形式がPLに依らず揃うので、GMは必要な情報をインベントリに載せたりルームの準備がしやすくなります。
さらに、別のセッションでもコマの形式は同じになるはずなので、GMは一度作ったルームデータを使いまわしできるようになります。
シナリオ固有の準備は流石に無理ですが、システム間で共通の準備は不要になるはず。
終わり
コマ作るやつは、いろんなツールを参考に作らせてもらってます。ありがとうございます。 ユドナリウムは個人的にイチオシのオンセツールなので、色んな人に使ってほしくてこういうツールを公開してます。たくさん使ってね。
Herokuでdiscord-bcdicebotを動かす
キャラシ倉庫とか運営してるMASASHIGEさんが作ったDiscord連携日程調整botのデイコードがしばらくHerokuで動いてたらしく、Freeプランでもそこそこやれるらしいという話を聞いた。1 https://discord.com/channels/597133335243784192/597133335243784194/786955488545341501 https://discord.com/channels/597133335243784192/597133335243784194/786956047427698689
そこで、しゅんしゅんひよこさんの作った、BCDiceをDisocrdで動かすdiscord-bcdicebotもHerokuで余裕で動くのでは? と思って導入してみて、数日動かしてみたがあまり問題が無さそう2だったので、備忘録的なメモを残す。
2021/02/20 追記
discord-bcdicebot のプロジェクト下記の設定を取り込んでもらって、手順をヘルプに書いてもらいました。今後はそちらを参照してください。 shunshun94.github.io
環境
以下、Windows環境での操作を想定しているが、Linux/Mac環境の人は適宜読み替えてください。
1. ツールの準備
Herokuのアカウントが必要なので適当に登録。
また、Heroku CLIとGitが必要なのでインストール
その後、コマンドラインで以下を入力してHeroku CLIでログイン。
heroku login
2. Discord Botの用意
discord-bcdicebotの使い方の「ダイスボットを登録する」の通りにDiscord Botを用意する。Botのトークンを控えておく。
https://shunshun94.github.io/discord-bcdicebot/#:~:text=%E3%83%80%E3%82%A4%E3%82%B9%E3%83%9C%E3%83%83%E3%83%88%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B
3. ソースコードの準備
任意のディレクトリで以下のコマンドを入力し、discord-bcdicebotのソースを落とす。
ついでにディレクトリ移動もしておく。
git clone git@github.com:Shunshun94/discord-bcdicebot.git
cd discord-bcdicebot/
このままではHerokuを動かすのに必要なファイルが無いため、Procfileを作成する。内容は下記。3
Procfile
worker: java -jar target/discord-bcdicebot-jar-with-dependencies.jar "$DISCORD_BOT_TOKEN" "$BCDICE_API_URL" "$IGNORE_ERROR"
変更をコミット。
git add Procfile git commit -m '任意のコメント'
4. Herokuにデプロイ
Herokuのアプリを作成してデプロイする。
heroku create git push heroku master
このままだと設定が足りないので、以下のコマンドで環境変数を設定する。
heroku config:set DISCORD_BOT_TOKEN=TOKEN************TOKEN # 2.で作成したBotのトークン heroku config:set BCDICE_API_URL=http://?????????????? # 利用するBCDice-APIのURL
自前でBCDice-APIを用意しないのであれば次のURLから公開サーバを探すのがいいだろう。
https://api-status.bcdice.org/
最後に、Heroku Dashboardを開いて新規作成したアプリのworkerをONにすれば終了。
https://dashboard.heroku.com/
確認できてる問題
サンプルのオリジナルダイスボット表が文字化けしまくってる
どうせ文字コードの問題。たぶん「サンプルダイスボット-ラーメン表」「サンプルダイスボット-夜食表」と書いてある。
ぼくは使わない機能なので調べる予定なし。
2021/1/19 追記
Heroku の無料プランだと、Dyno は月に550時間までしか使用できないらしい。 (1ヶ月常駐させるには24時間×31日=約750時間は必要。) クレジットカードを Heroku に教えると無料枠を1000時間まで増やすことができる。
-
BCDice Official Chat の雑談で話が出た。↩
-
問題が無いわけではない。確認できてる問題は最後に述べる。↩
-
start.shから少しだけ変更してる。↩