Programming in VRChat

VRChat でのプログラミングについて調べたことの書き溜め

2018-01-01から1ヶ月間の記事一覧

移動可能な椅子の作り方

概要 椅子の prefab である VRCChair をベースに、 座る機能はそのままに持って(=pickupして)運べるようにする機能を追加する。 完成品:MovableChair.unitypackage レシピ VRCChair をシーンに置く。 移動するための取っ手となるオブジェクトを作る。形…

Broadcast Types

Broadcast Types は、trigger システム において trigger の発生情報をどの範囲に送信するかの設定値。 ドキュメント: https://docs.vrchat.com/docs/trigger-broadcast-types ドキュメントに詳細な説明が無いので、以下推測を一部交えて記述する。 TODO 推…

Trigger

trigger system はワールドの中で発生する事象と、それへの反応動作を定義する機構である。 実際の具体的な処理は VRC_Trigger コンポーネントに設定する。 用語、資料 Trigger とは action を引き起こすきっかけ。 プレイヤーがオブジェクトを拾い上げる操…

VRCPhysLogicGate

自作する VRChat ワールドに論理回路を伴ったギミックを設置するための Unity アセット・パッケージです。私(naqtn)が作りました。 https://naqtn.github.io/VRCPhysLogicGate/index.html で配布しています。 デモワールド: wrld_fb79134c-bdf0-4bab-b4ae…

Custom Trigger

Custom Trigger は、具体的な action の定義に名前を付け、 それを別途に定義されるトリガー契機に外部から実行するための機構。 プログラムで関数定義(ないしはメソッド定義)の役割に近いもの。 API ドキュメントを見るよりもサンプルを見た方が、おそら…

Timer

VRC_Trigger で扱うトリガーの一つに OnTimer がある API: https://docs.vrchat.com/docs/ontimer タイマーを仕掛けるのも、それに応答するのもその VRC_Trigger 自身。 (通常のオブジェクト指向的タイマー実装を見慣れた少々奇妙にも思える設計だが OnTime…

デスクトップモードでのウィンドウの調整

ウィンドウの大きさ位置の調整 エスケープキーを押してゲーム内メニューを出す、あるいはタブキーを押していると、マウスカーソルが Windows のウィンドウの外へ出られるようになります。 この状態でならウィンドウの大きさ位置を調節できます。 フルスクリ…

PlayerMods

PlayerMods はワールドでのプレイヤーの設定を設定(変更)する機構。 プレイヤーがジャンプ出来るようにしたり、移動速度を変更できる。 追記2 VRC_PlayerModsでの移動速度とジャンプ設定を随時変えることは出来ない(一個の設定しか使えない、切り替えは…

World Jump Demo with WebPanel

デモ このリンクを踏んで VRChat を起動すると 板にワールド名が書いてあるワールドに入ります。ワールド名を触るとそのワールドにジャンプします。 この飛び先はワールド作成時に埋め込んだものではなく、VRChat 外から引っ張ってきています。 つまり例えば…

WebPanel

メモ書きレベルですが、分かったことを放出: 概要 簡単な紹介 VRC_WebPanel は web browser の画面を VR ワールド内に提供するコンポーネント 現在(2018/2)作りかけのようでドキュメントや Unity エディタ上で表示されるが動作しない機能はいろいろある模…

SteamVR でのスクリーンショットの取り方

HTC VIVE の場合 https://www.vive.com/jp/support/category_howto/how-can-i-capture-screenshots-in-vr.html VR を開いた状態でシステムボタンとトリガーを同時に押します。 とあるが「同時に」というのは少々不親切。 通常のキーボードのシフトやコントロ…

Pickup

オブジェクトに VRC_Pickup コンポーネントを追加すると、アバターで拾い上げ操作ができるオブジェクトになる。 基本 拾い上げる操作を付与したいオブジェクトに VRC_Pickup コンポーネントを追加する API: https://docs.vrchat.com/docs/vrc_pickup アバタ…

一台のマシンで Steam VR モードとデスクトップモードで同時に同じワールドに入る手順

2018/1/19 追記 最近施されたセキュリティ向上のためのパッチによって、一つのアカウントで同じワールドに入ることは出来なくなったようです。(動作確認バージョン:0.12.0p10) 以下の手順は基本的には有効ですが、二つのアカウントを使う必要があるようで…

Station

プレイヤーを通常の移動操作から一次的に切り離しオブジェクトに関連付ける仕組み。 Station は「プレイヤーがとどまる場所」ぐらいの意味と思われる。 椅子や乗り物(Vehicle)の搭乗席などが実現できる。 Prefab 椅子: VRCChair を配置する。 任意の GameO…

Keyboard

キーボード入力のアサイン https://docs.vrchat.com/docs/keyboard-and-mouse を参照。 スクリーンショット関係 スクリーンショットのために次を知っておくとよさげ。 (上記からの抜粋。) キー 機能 Control + N プレイヤー・ネームタグの表示 on/off Cont…

Log file

VRChat クライアントのログファイル デフォルトのログファイルの場所は C:/Users/{ユーザー名}/AppData/LocalLow/VRChat/vrchat;output_log.txt AppData フォルダは Windows の設定で非表示になっている場合がある。(いわゆる隠しフォルダ) console debug …

Launch URL

ワールド指定して起動させる方法 起動時に最初に入るワールドの設定 Steam クライアントのゲームを起動する画面で ゲーム名一覧中 VRChat 右クリック > プロパティ > 起動オプションを設定... を選択したダイアログで、値を vrchat://launch?id=wrld_48cf80e…

Public world ID

name ID Help Videos wrld_48cf80e6-15dd-4c17-8667-c5dc01baa5cb The HUB wrld_eb7a5096-9c93-41db-a9d7-7b349a5d4815 The Great Pug wrld_6caf5200-70e1-46c2-b043-e3c4abe69e0f Avatar Testing! wrld_8ef393c0-a985-4d7e-90f0-33ab10d41ee3 (2018/1 現在…

ID

サーバで管理する各種リソースに付ける ID (の文字列形式)は、UUID にプレフィックスを付けたものと思われる。 Unity のオブジェクトを生成する元情報の場合は Blueprint ID と呼んでいるようだ。 プレフィックス 指すもの avtr アバター wrld ワールド us…

PipelineManager

機能(推測) 現状ではワールドおよびアバターの ID に関する表示・操作ができる。 Unity Version が表示されているので、作成操作した実際の版とサーバが期待する版の比較などができているのかも? 在り処 アバターの場合 VRC_AvatarDescriptor コンポーネ…

Layers

Unity メニュー > VRChat SDK > Show Build Control Panel > Setup Layers ボタン を実行すると以下の Layer が追加される。 (pos) (name) note User Layer 8 Interactive User Layer 9 Player 自分を除いたプレイヤー(のアバター) User Layer 10 PlayerLo…

Default Avatar ID

名前 ID Nikei (Morph3D) avtr_b5c8ef23-46dc-48f4-844e-f5dd3b300b92 Unity-chan avtr_712e5c3c-2deb-4cae-a414-79b2a814a90b Blueprint Id で指定する値。 TBD 他のものについて調査(男性、女性とりあえず二つだけ調査した)

Mirror

Prefab VRCMirror を配置する。 Low level VRCMirror prefab と同じものを作る方法(推測): 3D Object/Quad を配置する Mesh Renderer の Materials で Default-Material を MirrorReflection にする VRC_Mirror_Reflection スクリプトをコンポーネント追…