[Udon] Player Selector
- 通常版Digital0 JPY
- 開発支援版(追加サンプルあり)Digital300 JPY
![[Udon] Player Selector](https://booth.pximg.net/a5ee2955-f931-4ee1-9f8c-8ffe0ada05e8/i/5529876/a43e70b9-faac-4d6b-9e5e-03eb5dc3c230_base_resized.jpg)
![[Udon] Player Selector](https://booth.pximg.net/a5ee2955-f931-4ee1-9f8c-8ffe0ada05e8/i/5529876/17ffac31-c98c-4798-b9d2-ba2c20c2f0a9_base_resized.jpg)
![[Udon] Player Selector](https://booth.pximg.net/a5ee2955-f931-4ee1-9f8c-8ffe0ada05e8/i/5529876/95e2ffdd-586a-40e5-a283-843295fc637c_base_resized.jpg)
VRChatのワールドインスタンス内の「誰か」に「何かをさせる」のが楽になるかもしれないワールドギミックのテンプレート的アセットです。
【概要】
例えばライブイベントなどで、特定の誰かにライトを当てたり、ワールドに仕込んだ配信用カメラを向けたりなどはよくありますが、その際の「誰か」を選ぶ行為をサポートするようなアセットになります。 本アセットでは「『誰か』を選ぶ」ところまでのサポートとなるので、その先の「何かをさせる」動作は各自UdonSharpで実装していただくことになります。 UdonSharpに慣れ親しんでいる方向けのアセットになりますが、「何かをさせる」の部分は独立したモジュールとして配布可能なので、将来的にはモジュール部分だけを他人から提供していただいて、それを組み込んで使う、なんてこともできるかも知れません。 「何かをさせる」のサンプルとして以下の機能をもたせたモジュールを組み込んだPlayerSelectorも同梱しております。 ・PlayerSelectorTeleport:指定した相手の元へ自身をテレポートさせる ・PlayerSelectorSummon:指定した相手を自身の元へ召喚(サモン)できる ・PlayerSelectorChangeScale:指定したサイズで、指定した相手のスケールを変更できる ※Ver.2がでました。以前のバージョンをお使いのワールドに適用する場合は、以前のバージョンをフォルダごと一旦削除してから入れ直してください。(シーン上に置いたPrefabなどはそのままで問題ありません)
【Ver.2での機能追加・改善】
・PlayerListHostにホワイトリスト機能を追加したので、本機能を利用すると、ホワイトリストに追加されているユーザーのみリスト側に表示されるようになりました。 利用する場合はPlayerListHostのUseWhiteListにチェックを入れ、WhiteListPlayerDisplayNamasに対象のプレイヤーのDisplayNameを登録してください。 ・リストの一項目単位(ユーザー単位)でUdonが増えていく(ユーザーが増えるほどUdonが増える)設計を改め、処理が軽量化されました。
【開発者支援版】
上記サンプルに加え、以下のサンプルを同梱しています。 (Assets/Onoty3D/Gimmicks/PlayerSelector/AdditionalSamples内) ・TargetHeadFollowerSystem: 選択プレイヤーの頭にオブジェクトを遅延追従させる ・CinemachineSystem: 選択プレイヤーをCinemachineのターゲットにする 参考 https://x.com/onotchi_/status/1766720101674578116 ・PlayerSelectorNoribenBLC: noribenさんのBeamLightController( https://booth.pm/ja/items/5553388 )を補助 参考 https://x.com/onotchi_/status/1766753137568944372 ※オブジェクトの遅延追従サンプルではヨドコロちゃんのUnity向け3D座標軸モデル( https://yodokoro.booth.pm/items/2637056 )を利用させて頂いています。 ※TargetHeadFollowerの詳細は、同梱のテキスト(aboutTargetHeadFollower.txt)を御覧ください。 ※PlayerSelectorNoribenBLCはシーン上に配置後、若干のセットアップ作業が必要です。同梱の画像(PlayerSelectorNoribenBLCSetup.png)を御覧ください。 https://vrchat.com/home/world/wrld_ba593fcf-b65a-4aa1-9b9b-dbd01d379358/info にて動きの確認が可能です。
【モジュール(「何かをさせる」部分)の作り方】
・シーン内に空のGameObjectを作成する(仮にTestModuleという名前とします) ・TestModuleにUdonBehaviourコンポーネントを付加し、Udon C# Program Assetを作成する ・出来上がったクラスのBaseクラスをUdonSharpBehaviourからModuleBaseに変更する (※namespaceはOnoty3D.Gimmicks.PlayerSelectorなので、合わせるかusingしてください) ・クラスで_DoActionメソッドをoverrideして、処理を実装する。 ※_DoActionの引数として、選択されたPlayer(=「誰か」)の情報が渡されるので、それを利用してください。
【専用PlayerSelectorの作り方】
・PlayerSelectorBaseのPrefab(Assets/Onoty3D/Gimmicks/PlayerSelector配下)をシーンに配置する ・PrefabについているPlayerListHostコンポーネントのModulesに、先述のTestModuleを追加する ・適宜タイトルや説明の文字列を変更する ・リスト内にローカルプレイヤーを表示させる必要がない時はPlayerListHostのIncludeLocalPlayerのチェックを外す ・プレイヤー選択を解除する選択肢を表示したい場合はcanSelectNobodyにチェックを入れる ・選択したプレイヤー名を同期したい場合はSyncSelectedPlayerにチェックを入れる (_DoActionはプレイヤーを選択した当人でしか発生しません。同期的な処理はModule側で実装してください。) --- 余談ですが「Modules」の名の通り、Moduleは複数登録できます。 処理は頭から順に実行され、非活性のモジュールのものは実行されません。
【免責】
・利用は自己責任とし、トラブルが発生した場合でも一切の責任は負いかねますので、予めご了承ください。 ・VRChat及び関連SDK等の更新により、将来的にギミックが動かなくなる可能性もあります。恒久的なサポートは出来ませんのでそちらもご了承ください。 問い合わせはBOOTHのメッセージだと気づかないので、XのアカウントにDM等ください https://x.com/onotchi_
【利用規約】
・本データを未改造のまま再配布、販売することは禁止します。配布が必要な際は、こちらのBOOTHページへご誘導ください。 ・本データを改良、機能追加して販売することは自由にしていただいたいてかまいません。 (利用を報告していただけると喜びます。) ・利用の際にクレジットの表記等は不要です。 ・個人/法人問わず利用可能です。
【更新履歴】
Ver.2.0 ・構成の見直しによる軽量化 ・ホワイトリスト機能追加 Ver.1.1 ・一部処理のリファクタリング ・選択プレイヤー名を同期させる機能の追加 ・プレイヤー選択を解除するモードを追加 ・開発支援版にサンプルの追加 Ver.1.0 ・初版
【リリース情報】
2026/08/14 Ver.2.0 2024/03/13 Ver.1.1 2024/02/27 Ver.1.0



