VRC_Starter Kit SDK3 (UdonSharp版)
※Unity2022にunitypackageを入れる時にUSharpVideoが先に入っていない場合にU#のスクリプトがMissingになる現象が発生するようです。(発生した場合は一旦VRC_StarterKitのフォルダを消してUSharpVideoをインポートした後、unitypackageを入れ直して下さい) VRCSDK3用のVRC_StarterKitです。 Momomaさん制作のSDK2用VRC_Starter Kit ver2.03をベースにUdonSharpを使用してSDK3で使えるようにした物です。 高さ調整椅子以外の物はおおむね使えるようになっています。 GitLabで管理をしています。リリースはbooth側メインで行います。 https://gitlab.com/xlwnya/vrc_starterkit/
VCC(VRChat Creator Companion)でVCC以前のプロジェクトをMigrationする場合の注意
・VCCでmigrationを行なった直後、Sceneを開く前にVCC用unitypackageを入れて下さい。 ・独自にprefabやnested prefabを作成していた場合prefab内の値がデフォルト値にリセットされる可能性があります。 ・Scene上に配置されたprefabに設定された値は保持されるはずなので、Sceneの値をprefabにApply Allすることでprefabの値が復旧できる可能性があります。 ・VCC化済unitypackageを使用しない場合でも自動migrationで問題なく動作するはずです。 ・ただしこの場合、後からVCC化済パッケージを入れるとScene上に設定されている値がデフォルト値にリセットされる可能性があります。 ・そのためMigration時にVCC化済パッケージを入れなかった場合、VCC化後の更新は行なわないで下さい。(あまり更新はしないため問題ないと思われます) ・VCC化後のプロジェクトにU#0.2系のunitypackageを入れた場合一応自動でmigrationをしてくれますが新規ではなく更新などの場合は現状ではエラーが出ます。 何が起こるか分からないので避けた方が良いと思います。
最新版の更新内容(2022-09-06)
・Quest対応用パッケージの内容を同梱 ・フォント変更(MPLUSRounded1c-Regular.ttf) ・VCC(VRChat Creator Companion)環境用パッケージを追加 ※恐らくVCC移行時にU#を含むシーン(.unity)を開く前にインポートする必要があります。失敗した場合シーンに置かれているprefabのU#に設定した値がprefabの値にリセットされそうです。
VRC_StarterKit (SDK3)
・VRChatワールド作成用スターターキットです(VRCSDK3+UdonSharp版) ・VRC_StarterKit_SDK3.unity がSDK3用のSceneでPrefabはPrefabsSDK3/の下にあります。Prefabs/の下はSDK2用なのでSDK3では使えません。 ・SDK2版のファイルにSDK3版のファイルを追加する形で作成されているため、SDK2版としてもたぶん使えます。(VRC_StarterKit/SampleAssets/USharpにあるU#のコードを消さないとエラーにはなるようです)
内容物概要
・ワールド設定prefab(WorldInfo.prefab, WorldInfo_Advanced.prefab) ・移動方式のSDK2化もできます。 ・鏡各種 ・ON/OFFできる鏡(Mirror.prefab, Mirror_Simple.prefab) ・近づくと有効になる鏡(Mirror_DistanceFade.prefab) ・HQ/LQ鏡(Mirror_Advanced.prefab) ・ver2.02の見た目のHQ/LQ鏡(Mirror_Advanced_2.02.prefab) ・花のペン(PenSet.prefab) ・プレーヤカウンタ(PlayerCounter_Quest.prefab) ・join音(EntranceSound.prefab) ・Masterへのテレポートスイッチ(MasterTeleporter.prefab) ・ナイトモードスイッチ(NightMode.prefab) ・BGMボタン ・デフォルトON(BGM.prefab) ・デフォルトOFF(BGM_Off.prefab) ・デフォルトON音量調整スライダー付き(BGM_withVolume.prefab) ・椅子(Chair.prefab)、Pickupできる椅子(PickupableChair.prefab) ・Pickupのリスポーンスイッチ(ObjectsRespawner.prefab, SimplePickup.prefab, SimplePickup_Physical.prefab) ・ワールド設置カメラ(SyncToggleCamera.prefab) ・ワープ(ポータル(Teleporter_Stand.prefab)、扉(Teleporter_Door.prefab)) + ver2.02の扉(Teleporter_Door_2.02.prefab) ・SDK2用の時計(vrchat-time-shaders)互換機能(VTSWP_MockPanorama.prefab) ・鏡とビデオプレーヤを呼び出せる棒(MirrorBar.prefab, VideoBar.prefab)
使い方(VCC(VRChat Creator Companion) U#1.x)
セットアップ ・VCC(VRChat Creator Companion)のUdonSharp Templateでプロジェクトを作成 ・USharpVideo https://github.com/MerlinVR/USharpVideo ・ProBuilder(UnityのPackageManagerから) 注意: PostProcessingレイヤが自動で作成されなくなったのでUser Layer 22をPostProcessingに設定してください(PostProcessingを使用する場合のみ) 詳細 ・VCC(VRChat Creator Companion)でUdonSharp Templateでプロジェクトを作成 ・Unityを開いた後少し待ってUnityの処理が落ち付いた後でUnityを再起動する ・PackageManagerからPro Builderを入れる ・USharpVideo をインポート(v1.0.0) ・VRC_StarterKit_SDK3_VCC_20220906.unitypackage をインポート ・Assets/VRC_StarterKit/Scenes/VRC_StarterKit_SDK3.unity を開く ・TMP Importerのウィンドウが開くのでImport TMP Essentialsのボタンを押す ・Scene中のWorldInfo_Advanced/PlayerModsを選択して、InspectorからUdon BehaviorにあるUtilitiesを開くと出てくるCompile All UdonSharp Programsを押す(自動で行なわれるため任意) ・メニューのWindow->Rendering->Lighting Settingsを開いて右下のGenerate Lightingを押す(おそらく任意) ・メニューのVRChat SDK->Show Control Panelを開いてログインする ・SettingsのFuture Proof Publish をOFFにする ・"Video Players do not have automatic resync enabled; …" の警告が出ますがAuto Fixはおそらく不要です。 ・Project SettingsのTags and LayersでLayersのUser Layer 22に PostProcessing を設定する(PostProcessingを使用する場合) ・BuilderのBuild & Publish for Windowsを押すとビルドされる。(音が鳴ります) ・World Name, Descriptionを記入して左下の二つあるチェックボックスの上の方にチェックを入れてUploadボタンを押すとprivateでワールドがアップロードされます。
使い方(VCC以前 U#0.2)
注意: VCC以前用のVRCSDKは配布されなくなりました。今ダウンロードできるのはunitypackageのものもVCC版のみです(2023-02-23) 先にUnityに入れておくもの: ・VRCSDK3-WORLD(VRChatのページから) ・UdonSharp https://github.com/MerlinVR/UdonSharp ・USharpVideo https://github.com/MerlinVR/USharpVideo ・ProBuilder(UnityのPackageManagerから) ちゅうい: PostProcessingレイヤが自動で作成されなくなったのでUser Layer 22をPostProcessingに設定してください。 詳細: ・Unity 2019.4.31f1 でプロジェクトを作成(2022-03-16現在) ・PackageManagerからPro Builderを入れる ・VRCSDK3-WORLD をインポート(2021.11.08.14.28_Public以降) ・UdonSharp をインポート(v0.20.3) ・USharpVideo をインポート(v1.0.0) ・VRC_StarterKit_SDK3_20220906.unitypackage をインポート ・Assets/VRC_StarterKit/Scenes/VRC_StarterKit_SDK3.unity を開く ・TMP Importerのウィンドウが開くのでImport TMP Essentialsのボタンを押す ・Scene中のWorldInfo_Advanced/PlayerModsを選択して、InspectorからUdon BehaviorにあるUtilitiesを開くと出てくるCompile All UdonSharp Programsを押す(自動で行なわれるため任意) ・メニューのWindow->Rendering->Lighting Settingsを開いて右下のGenerate Lightingを押す(おそらく任意) ・メニューのVRChat SDK->Show Control Panelを開いてログインする ・SettingsのFuture Proof Publish をOFFにする ・BuilerでSetup Layers for VRChatとSetup Collision Matrixのボタンを押す ・"Video Players do not have automatic resync enabled; …" の警告が出ますがAuto Fixはおそらく不要です。 ・Project SettingsのTags and LayersでLayersのUser Layer 22に PostProcessing を設定する ・BuilderのBuild & Publish for Windowsを押すとビルドされる。(音が鳴ります) ・World Name, Descriptionを記入して左下の二つあるチェックボックスの上の方にチェックを入れてUploadボタンを押すとprivateでワールドがアップロードされます。
判明した注意点
・PlayerModsの反映は開始時のみのため、動的に歩行速度などを変更する場合はUdon/U#で行なって下さい。 ・UdonSharpのv0.19.2より前からの更新の場合 Assets/UdonSharp/Plugins をUdonSharpの更新前に一旦消す必要があるっぽいです。 ・Unity2018からの更新は複雑でトラップが多くあるため、VRChat公式のドキュメントを見て慎重に行なって下さい。 ・VRCSDK2のワールドをVRCSDK3にする場合、新規にVRCSDK3用のプロジェクトを作成して前のプロジェクトからエクスポートした物をインポートした方が安全です。(SDK2用の設定をクリーニングしないと動かないという噂です) ・Unityのプロジェクトがあるディレクトリ名に日本語が含まれているとUdonSharpのインポート時に延々とエラーが出て完了しなくなるようです。 ・Unity2019で新規にプロジェクトをセットアップした場合、PostProcessingレイヤが自動的に作成されないようです。Project SettingsのTags and LayersでLayersのUser Layer 22に PostProcessing を追加して下さい。 ・Unity2018->Unity2019の更新時にUdonBehaviourのU#のスクリプトの参照が外れた場合、prefabをreimportすると直る可能性があるようです。ProjectでVRC_StarterKitのフォルダのコンテキストメニューからreimportを試してみてください。(最近のUdonSharpは自動でreimportしてくれるようです) ・PlayerModsの音声系の設定は現状うまく動いていない可能性があります。
その他
・VTSWP_MockPanorama.prefab を置いておくとSDK2用の時計がそのまま使えるようになっています。(時計用のVRC_Panorama互換の画像を生成しています) ・WorldInfo.prefab, WorldInfo_Advanced.prefab は移動をSDK2互換にしています(例: 壁登りができます) Use Legacy Locomotion をOFFにするとSDK3の移動になります。 ・Mirror_Advanced_2.02.prefab等の_2.02と付いているprefabはver2.02の見た目の鏡などが入っています。 ・このStarterKitではUSharpVideoをとりあえず使用していますが、iwaSync3もあるようなので好みに応じて選択すると良いと思います。 https://hoshinolabs.booth.pm/items/2666275 ・高さ調整椅子がありませんが必要な場合は https://mimyquality.booth.pm/items/2996819 に高さ調節機能が付いているようなので使うと良いと思います。 ・USharpVideo 1.0.0 で複数画面表示をする場合は USharpVideo/VideoScreen に付いている USharpVideoPlayer の UseSharedMaterial をONにすると良いようです。 ・USharpVideoで、ビルド時に"Video Players do not have automatic resync enabled; …" の警告が出ていますがFixすべきなのかは不明なようです。 https://github.com/MerlinVR/USharpVideo/issues/26
Required assets
VCC ・VCC UdonSharp Template ・VRChat SDK - Base (3.1.9) ・VRChat SDK - Worlds (3.1.9) ・UdonSharp (1.1.4) ・USharpVideo (tested with v1.0.0) ・ProBuilder VCC以前 U#0.2 (VRCSDKの配布が既に停止されています) ・VRCSDK3-WORLD (tested with 2022.02.16.19.13_Public) ・UdonSharp (tested with v0.20.3) ・USharpVideo (tested with v1.0.0) ・ProBuilder
ライセンス
・SDK2版と同じです。 ・Shaders : MIT License. See each assets for detail. ・Fonts : See each license text. (SIL OFL-1.1) ・The other assets : CC0 1.0 Universal (CC0 1.0) Public Domain Dedication https://creativecommons.org/publicdomain/zero/1.0/
Change log
・2022-09-06(VCC版) ・Migrated to VCC: VCC化 ・2022-09-06 ・Add Quest prefab: Quest対応用prefabを追加 ・Change fonts to MPLUSRounded1c-Regular.ttf (except PlayerCounter): プレーヤカウンタ以外のフォントを変更(MPLUSRounded1c-Regular.ttf) ・Mplus1-Regular.ttfでなぜか記号類の表示に問題があったため変更。 ・2022-03-16 ・Support SPS-I: SinglePass Stereo Instanced(SPS-I)対応 ・Enable GPU-I: マテリアルのEnable GPU Instancingを有効化 ・2021-11-25 ・Fix mirror&camera layers for open-beta(2021.4.2 build 1154): open-betaでのUIとカメラのレイヤ変更対応 ・2021-11-21 ・Fix new camera lens reflected in mirror: 鏡に新しいカメラのレンズが映らないように修正。 ・2021-11-17 ・Fix new camera reflected in mirror: 鏡に新しいカメラが映らないように修正。 ・Add 2.02Style: VRC_Starter Kit 2.02 の見た目の鏡などを同梱。 ・Change fonts to Mplus1-Regular.ttf (except PlayerCounter): プレーヤカウンタ以外のフォントを変更(Mplus1-Regular.ttf) ・Add BGM_withVolume.prefab: 音量調整付きBGMボタンを追加。 ・Add MirrorBar.prefab, VideoBar.prefab: 鏡とビデオプレーヤが出る棒を追加。 ・Rename README_SDK3.md -> README.md: README.mdをSDK3版に変更。ほかSDK2用ファイルをリネーム。 ・Fix PlayerMods.cs audio setting not effect: PlayerModsで指定した音系の設定が反映されていなかったバグを修正。 ・2021-06-15 ・USharpVideoを1.0.0に更新 ・update USharpVideo 0.3.0 -> 1.0.0 ・2021-05-19 ・UnU対応 ・WorldInfo.prefab, WorldInfo_Advanced.prefab: ワールド画像用カメラのデフォルト向きを変更(VRCWorldと同じ方向に変更) ・Add BGM_Off.prefab: デフォルトOFFのBGMボタンのprefabを追加 ・変更できそうな変数をSerializeFieldからpublicに変更 ・PlayerCounter.prefab: プレーヤーがワールドから抜けた時に表示が更新されない問題を修正 ・VTSWP_MockPanorama.prefab: 動かしたままにしておく必要のないRenderTexture生成用カメラを自動で停止するように修正 ・Add PlayerCounter.prefab: TextMeshPro版のPlayerCounterを追加 ・EntranceSound.cs: ワールドに自分がjoinした際にワールドに既にいるプレーヤ分のjoin音が鳴らないように修正 ・UnU update ・WorldInfo.prefab, WorldInfo_Advanced.prefab: change default VRCCam pos. ・Add BGM_Off.prefab ・SerializeField -> public for some modifiable fields. ・PlayerCounter.prefab: Fix player count not changed on OnPlayerLeft. ・VTSWP_MockPanorama.prefab: disable Camera after few seconds. ・Add PlayerCounter.prefab (TextMeshPro version of PlayerCounter_Quest.prefab) ・EntranceSound.cs: don't play entrance sound when initializing world. ・2021-03-28 ・open-beta udon-network fix. ・2020-11-29 ・First release in SDK3 ・Based on SDK2 version ver2.03.
Quest対応用prefabについて
Questで動かない角丸のボタンとNightModeボタンについてQuestで動くように修正を行なったprefabが入っています。 ボタンはジオメトリシェーダを使用してメッシュを作成いた部分をC#(UICubeMockGeomAutoMesh.cs)でメッシュを自動生成して対処しています。(Updateで常に動いていますが必要なメッシュが変化しない限りは再生成は不要なので生成後は取り除いても動作します) NightModeはシェーダを置きかえています。 Questでは多少表示上の問題がありますが未対応なので注意して下さい。 ・一部離れて見るとZfightしている箇所がある。(ビデオプレーヤーのサブ画面など) ・ドア型のテレポートでドアの向こう側の床面の表示がすこし変 ・角丸のボタンが離れて見ると消える ・NightModeがPCと同じ暗さにならない(ポストプロセスが無い影響)