Programming in VRChat

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

about

VRChat におけるプログラミングがらみの情報を調べたものを書き留め、公開しておく場所としてこのブログを作りました。 Topics このブログのカテゴリ(記事分類) Unity Editor 上で VRChat をエミュレートしてワールド作成のデバッグを出来るようにするツー…

index

SDK 構成要素一覧 よく使われるコンポーネント一覧(短め紹介) プレハブ(prefab)一覧 トリガー 一覧(役割で分類) アクション 一覧(役割で分類) 詳細情報 コンポーネント一覧(詳しめ) 実用されないコンポーネント このブログのカテゴリ(記事分類) …

このブログのカテゴリ(記事分類)

あまり綺麗に区分けできていませんが、次のように記事を分類しています。 技術的要素の解説を中心とするもの: component VRChat SDK で提供されているコンポーネントの解説 trigger VRC_Trigger で扱われているトリガーの解説 stdassets Unity Standard Ass…

Sub Inspector

I made a tool providing reorder list UI of event handling definition etc. for VRChat world creation. VRChat ワールド作成向けに、イベント処理定義の順番を変えられる UI などを提供するツールを作成しました。 Release package / リリースパッケージ…

VRC_AudioBank

AudioClip のリストを保持し、それらを指定された方法で AudioSource で鳴らすコンポーネント 参考:Unity マニュアル AudioClip 、 AudioSource 使用方法 公式ドキュメント を参照。 VRChat 技術メモ帳 | VRC_AudioBank に日本語での基本的な設定手順もあり…

アニメーション遷移条件を利用した MasterLocal の実現の解説

はじめに VRChat のワールドに複雑な機構を持つギミックを作ったりリアルタイム操作を伴うゲーム的なものを作った場合に、 broadcast type として「マスターでのみのアクション実行」になるものが欲しくなる場合がある。 これは俗に MasterLocal と呼ばれて…

Toybox ObjectPool

Toybox に含まれる ObjectPool プレハブの使い方、内部の仕組みなどを解説する (文章校正がまだ十分にされていません。不可解な点があればお知らせください。) この文書に従って作成できるものを デモワールド wrld_c8f68baa-6d46-483d-9c39-9b822cacd4e1 …

VRChat SDK ファイル単位 差分 VRCSDK-2018.08.03.20.15_Public

注意:これは open-beta 段階で 2018/8/7 に調査した結果です。 Old: VRCSDK-2018.06.21.13.02_Public New: VRCSDK-2018.08.03.20.15_Public Differ VRCSDK-2018.08.03.20.15_Public/Assets/VRCSDK/Dependencies/VRChat/Editor/AccountEditorWindow.cs Differ…

VRChat SDK ファイル単位 差分 VRCSDK-2018.06.21.13.02_Public

Old: VRCSDK-2018.06.06.10.46_Public New: VRCSDK-2018.06.21.13.02_Public Differ VRCSDK-2018.06.21.13.02_Public/Assets/VRCSDK/Dependencies/VRChat/Editor/DLLMaker.dll Differ VRCSDK-2018.06.21.13.02_Public/Assets/VRCSDK/Dependencies/VRChat/Edi…

VRChat SDK ファイル単位 差分 VRCSDK-2018.04.25.09.19

Old: VRCSDK-2018.04.24.07.59_Public New: VRCSDK-2018.04.25.09.19_Public Differ VRCSDK-2018.04.25.09.19_Public/Assets/VRCSDK/Dependencies/VRChat/Editor/AccountEditorWindow.cs Differ VRCSDK-2018.04.25.09.19_Public/Assets/VRCSDK/Dependencies/…

VRChat SDK ファイル単位 差分 VRCSDK-2018.05.04.09.53

Old: VRCSDK-2018.04.25.09.19_Public New: VRCSDK-2018.05.04.09.53_Public Differ VRCSDK-2018.05.04.09.53_Public/Assets/VRCSDK/Dependencies/VRChat/Editor/DLLMaker.dll Differ VRCSDK-2018.05.04.09.53_Public/Assets/VRCSDK/Dependencies/VRChat/Scr…

VRChat SDK ファイル単位 差分 VRCSDK-2018.06.06.10.46

Old: VRCSDK-2018.05.04.09.53_Public New: VRCSDK-2018.06.06.10.46_Public Differ VRCSDK-2018.06.06.10.46_Public/Assets/VRCSDK/Dependencies/VRChat/Editor/DLLMaker.dll Differ VRCSDK-2018.06.06.10.46_Public/Assets/VRCSDK/Dependencies/VRChat/Edi…

VRChat リリース一覧

VRChat リリース一覧 Release Notes では SDK のパッケージとの対応が不明な部分があるので、公式 Discord などを参考に一覧にしました。 (公式なリリース日が明記されていないので、時差の関係で一日間違って記載しているかもしれません。 VRChat 0.12.0p3…

設定の保存場所

VRChat クライアント の Settings クイックメニュー > System の設定項目は、 Windows のレジストリ HKEY_CURRENT_USER\Software\VRChat\vrchat に保存されています。 参考: 公式ドキュメントFAQ VRChat SDK の Settings Unity メニュー > VRChat SDK > Set…

個人的に注目している不具合報告と要望集

自分の備忘録を兼ねて、個人的に注目している不具合および要求を書き出してみます。 私自身が投稿したものが含まれます。 分かりやすくするために説明的な文を添えていますが、翻訳ではありません。 要望については、必ずしもその解法を支持しているというわ…

ThirdPersonCharacter の構成

Unity Standard Assets の Characters/ThirdPersonCharacter は、アバターで表現されるキャラクターの物理演算を伴う移動処理を行い、その結果をアバターのアニメーションに反映させる機構です。 ThirdPersonCharacter を駆動する2つの方式(人がキー入力す…

VRC_IKFollower

アバターでのパーティクルなど、アバターのボーン移動に場所は追従しつつワールド座標系が必要な時に使うコンポーネント ドキュメント: https://docs.vrchat.com/docs/vrc_ikfollower 設定と効果 アバターのボーン構造の中で参照したいボーン位置に子オブジ…

VRChat SDK ファイル単位 差分 VRCSDK-2018.04.24.07.59

VRChat SDK 差分 バイナリ比較でファイル単位で表示 VRCSDK_new: VRCSDK-2018.04.24.07.59 VRCSDK_old: VRCSDK-2018.02.28.21.21 Differ VRCSDK_new/Dependencies/OSPNative/scenes/materials/SpatializedObject1.mat Differ VRCSDK_new/Dependencies/OSPNat…

Unity オブジェクトの「アクティブ」とコンポーネントの「有効」

ワールドやアバターを構成する Unity のオブジェクトやコンポーネントは、配置したまま一時的に機能を停止させることが出来る。 VRChat では オブジェクトの active は SetGameObjectActive で設定する。 コンポーネントの enable は SetComponentActive で…

状態の同期ズレを避ける

いわゆる同期ズレ現象のうち、状態設定のズレが起きる理由と回避方法について。 推測を含む不確実な内容ですが、解決の糸口になればと思い。 要点 TL;DR Toggle は一度ずれるとずれたまま。True, False 指定方式を検討する 別プレイヤーからの操作実行順は保…

シーン編集時の VRC_Trigger の関係線表示を消す

他のゲームオブジェクトに作用する VRC_Trigger コンポーネントを追加すると、 Unity でのシーン表示にオブジェクト感に関係があることを示す線が表示されるようになります。 この線は関係のあるオブジェクトが迷子にならないので便利なのですが、表示上邪魔…

ProtectCameraFromWallClip

概要 あるオブジェクトを一定間隔で追跡(フォロー)するカメラにおいて、 オブジェクトとカメラの間に障害物が入らないように、 カメラとオブジェクトとの距離を一時的に縮めるカメラ位置制御をおこなうスクリプト。 (Unity Standard Asset / Cameras) 機…

Unity の VR でのディスプレイに近いあたりの仕様について調査

(いまいちまとまりのないタイトル…) Unity の VR 仕様まわり Unity チュートリアルより VRでのユーザーインターフェース - 「ワールドスペースに UI を置け」という方針とのこと 理由は、人間の眼は近過ぎる物には焦点を合わせることができないことに加え…

Vive での移動とジェスチャーの変更(VRChat 0.12.0p13)

運営Discord の japanese チャンネルに私が投稿したものをWeb検索に引っかかるようにするために転載します。(小改編あり) VRChat 0.12.0p13 リリースノート のViveコントローラの部分訳してみました。原文に意味を取りにくいところがあるので、訳として正…

ワールドにカメラを置き、撮す映像を写す面を作る

要するに VRChat 内にカメラとその表示モニターを作る方法。 これは基本的には VRChat は関係せず一般的な Unity の機能の範囲で実現可能な内容ですが、 多くの人が作りたくなるモノであるように思うので記事にしてみます。 レシピ ランタイムに書き換えられ…

VRコントローラ・ボタンのジョイスティック・ボタンへの対応付け

概要 VRモードで使用するコントローラ上のボタンはジョイスティックのボタンに対応付けられていて、 キーボード入力として OnKeyDown および OnKeyUp トリガーで取り扱えます。 対応づけ 下記 Unity マニュアルの中で Unity Button ID と表記してある数値が…

デスクトップモードでマウス操作できなくなる不具合と回避

(公式 Discord #japanese 2018/2/20 PM8付近の話題より) 発生条件: VRChat 動作開始時に他アプリのウインドウでマウス操作 現象: VRChat は正常にマウス操作で動かせず、他のアプリでもマウスカーソルが固定されて動かせなくなり、実質的に操作不能に陥…

キーボード入力の使用をプレイヤー単位で制御する方法

オブジェクトに VRC_Trigger を追加してこれを記述すればキー入力に従って動作する装置がワールドに作れます。 ただしデフォルトでは、プレイヤーがワールドのどこに居ても反応しますし、 どのプレイヤーが入力しても反応するものになります。 実用的な装置…

ワールド管理の仕組みと用語

2018/2/18 追記: instance type の説明中 Invite+ と Invite Only に誤りがありました。打ち消し線で取り消して修正しています。 ワールドの生成の仕組みと用語が「プログラマには意味が分かるが普通には馴染みのないだろう表現」で書かれていて分かりにく…

ローカルテストをデスクトップモードで行う(vrchat-launcher)

VRChat のローカルテストをデスクトップモードで起動できるようにするツールを作りました。ついでに単体で使用した際に開始前にワールドをメニューから選択できる機能を実装しました