Release 3.8.1
概要
バージョン 3.8.1 では、モバイル互換の Toon Standard シェーダーや、パラメーター付きUdonネットワークイベントが追加されました。さらに、カメラアクセスやネットワークデバッグ統計を含む、VRChat固有のクラスがいくつかUdon向けに公開され、iOS向けのBuild & Testも追加されました。
また本アップデートにより、Multi-Platform Build & Publishでプラットフォームごとのオーバーライドを指定できるようになり、SDKコントロールパネルにおけるUI上のいくつかの問題が修正されました。
パラメータ付きのUdonネットワークイベント
詳細については、ネットワークイベントのドキュメントを必ずお読みください。イベントのネットワーク仕様、レート制限に関する解説、後方互換性やセキュリティに関する詳細な注記など、多数の例が含まれています。
要約:SendCustomNetworkEventを使用して送信されるカスタムネットワークイベントに、最大8個のパラメータを指定できるようになりました。Udon Syncでサポートされているすべての型が利用可能です。UdonSharpでは、新しい[NetworkCallable]属性を使用する必要があります。既存のUdonスクリプトは、変更なしでそのまま動作します。
- UdonSharpに
[NetworkCallable]属性を追加し、Custom EventノードのUdon Graph UIを拡張してパラメータを追加できるようにしました。- オプションでレート制限パラメータを設定できます(デフォルトはイベントごとに毎秒5回、最大毎秒100回)。レート制限に関するドキュメントを参照してください。
NetworkEventTarget.Othersを追加しました。これはAllと同様に動作しますが、送信者自身はイベントを受け取りません。NetworkEventTarget.Selfを追加しました。これはレート制限をバイパスし、パラメータ付きのローカルイベントを送信するために使用できます。- 送信イベントのキューを監視するための関数
NetworkCalling.GetQueuedEventsおよびNetworkCalling.GetAllQueuedEventsを追加しました(レート制限を扱う際に有用です)。- 混雑監視に関するドキュメントを参照してください。
- リモートでトリガーされた関数の実行中に、イベントの送信者を取得するための
VRCPlayerApi NetworkCalling.CallingPlayer { get; }を追加しました(レガシーなイベントにも対応しています!)。Utilities.IsValid(NetworkCalling.CallingPlayer)のショートカットとしてbool NetworkCalling.InNetworkCall { get; }が含まれています。
Toon Standard Shader
Toon Standardシェーダーを追加しました。VRChat/Mobile/Toon Standardとして利用可能です。- これはVRChatのモバイル版と互換性のあるフル機能のトゥーンシェーダーです。PC、Android、iOSで使用できます。
- コミュニティ製のPC向けシェーダーで要望の多かった多くの機能が搭載されています。例:
- 設定可能なトゥーンスタイルの陰影を持つカスタムシャドウランプ
- UVチャンネルとレンダリングモードを選択可能なディテールマップ
- カラーチャンネルを設定可能な、メタリック、グロス、オクルージョンマップのパック機能
- 設定可能な背面カリング(Backface culling)
- Matcapサポート(加算および乗算)
- 切り替え可能な頂点カラー(Vertex color)サポート
- 色相シフト(Hue shift)エフェクト
- リムライティング
- このシェーダーはパフォーマンスを重視しているため、機能セットは限定的です。透過はサポートされていません。
- PC専用の
Toon Standard (Outline)バリアントもあります。アウトライン付きのバリアントを適用したアバターを非PCプラットフォームにアップロードした場合、自動的にアウトラインなしのバリアントにフォールバックされます。 VRCFallbackタグとしてtoonstandardまたはtoonstandardoutlineを指定することで、Toon StandardをPC用の フォールバックシェーダー として選択(オプトイン)できます。
さらなる新機能
- iOS向けの Build & Test サポートを追加しました。
- 他のプラットフォームとは挙動が少し異なるため、ドキュメントをご確認ください!
- マルチプラットフォームのビルドおよびパブリッシュ時に、プラットフォームごとに使用するアバターのバージョンを指定できるようになりました。
- 公開APIを含むこの機能の完全なドキュメントは、こちらで確認できます。
- Screen & Photo Camera および特定の Quality Settings を、適切なラッパークラスを通じてUdonから利用できるようにしました。
- shadow distance を含む特定の品質設定もUdonから利用可能です。
- ローカルユーザーがカメラや品質設定を変更した際に発生する2つの新しいイベント、
OnVRCCameraSettingsChangedとOnVRCQualitySettingsChangedを追加しました。詳細はこちらに記載されています。
- ネットワークデバッグ情報にアクセスするためのUdonインターフェースをいくつか追加しました。
- これらは上級者向けのUdonネットワーキング制作者を対象としています。完全なドキュメントはこちらからご確認ください。
修正と変更
- SDK Buildパネルをドッキングしてタブを切り替えた後に、「Alerts」セクションが更新されない問題を修正しました。
- ワールドバンドルのビルドに失敗した際、以前のバンドル(別のプラットフォーム向けのバンドルなど)がアップロードされてしまう可能性がある問題を修正しました。
VRCHeadChopコンポーネントに新しいターゲットを追加する際の、デフォルトスケール係数の割り当て方法を若干変更しました。- コンポーネントは、リスト内の直前のターゲットからウェイトをコピーするようになります。この変更は、コードからスケール係数を割り当てるユーザー作成ツールへの対応を改善するために行われました。
- コンポーネントが有効かつオフセットがロックされていない特定の状況下で、VRChatのAim ConstraintおよびLook-at Constraintが誤ったオフセットを計算していた問題を修正しました。
- Avatar SDKにおいて、検証エラーによってビルドボタンがブロックされないようにしました。
- すべてのアバター処理コールバックが完了した後に検証がパスしなかった場合、ビルドは引き続き失敗します。
- サムネイルやコンテンツ情報の更新中にAPIの問題が発生した際、SDKが応答しなくなる問題を修正しました。
- コンテンツ名が空の状態で変更を保存しようとした際、SDKが無効な状態のまま動かなくなる問題を修正しました。
- VRChatクライアント
2025.2.1、ビルド1622までのPhysBoneの修正と変更が含まれています。
3.8.1-beta.2 における修正と変更
- 著作権の所有権確認モーダルが表示されるタイミングを、アップロード前ではなく「Build & Publish」をクリックした直後に変更しました。
- per-platform overrides が設定されているアバターで「Build & Publish」をクリックした場合、複数のプラットフォームが選択されていなくてもオーバーライド設定が使用されるようになります。
- per-platform overrides が設定されているアバターには、アバターセレクターの「⋮」ボタン付近に青いバッジ 🔵 が表示されます。
PerPlatformOverridesコードをVRC.SDK3A.Editorアセンブリに移動しました。これにより、3.8.1-beta.1で発生していた破壊的変更を回避します。- per-platform avatar overrides の取得および設定に関する改訂された API を反映して、ドキュメント を更新しました。
- 詳細は こちらの Canny を参照してください。
- シーンを切り替えた直後に
BuildAndUploadが呼び出されると、Content Blueprint ID が消去されてしまう不具合を修正しました。 - 予約済みレイヤーのカリング距離を
VRCCameraSettings.LayerCullDistancesを介して変更できないようにしました。
3.8.1-beta.3 における機能と変更点
Toon Standardシェーダーを追加しました。VRChat/Mobile/Toon Standardとして利用可能です!- アバターを連続してビルドする際に、SDKが「Building Avatar」のまま進まなくなる問題を修正しました。
3.8.1-beta.4 における修正と変更
- 皆様からのフィードバックに基づき、
Toon Standardに新機能を追加しました!- 切り替え可能な頂点カラー(Vertex Color)サポートを追加しました。
MultiplyX2のディテールマップモードを追加しました(Standard Liteと同様のものです)。Maskのディテールマップモードを削除しました。代わりに、すべてのモードでマスクテクスチャが適用されるようになります。- ディテールマスクがディテール法線マップにも適用されるようになりました。
- エミッション用の Hue Shift スライダーと、3つすべてのスライダーに影響を与える Hue Shift Mask を追加しました。
- Hue Shift は切り替え可能な機能となり、使用しない場合はオフにすることでパフォーマンスを向上させることができます。
- すべてのマスクテクスチャにおいて、使用するカラーチャンネルを選択できるようになりました。各テクスチャスロットの左側にある
>矢印をクリックすることで設定できます。beta.3と同様に、初期設定は Standard Lite と一致しています。
Anisotropyスライダーを削除し、スペキュラの実装を通常の等方性 GGX に変更しました。- 異方性モードは利便性よりも混乱を招くことが多く、看過できないパフォーマンス上のオーバーヘッドがありました。これが必要な特定の重要なユースケースがある場合は、フィードバックボードでお知らせください。
- リムライト用の
Albedo Tintスライダーを追加しました。 - ライトのクランプ処理が個別にではなく、直接照明と間接照明に対してまとめて適用されるようになり、「Limit Brightness」オプションからオン/オフの切り替えが可能になりました。
- また、いくつかのバグを修正しました:
- 組み込みの Shadow Ramp に切り替えた際、Scale/Offset が適切にリセットされるようになりました。
- Toon Standard を使用している複数のマテリアルを一度に選択しても、Shadow Ramp の設定がリセットされなくなりました。
- 特定のハードウェアにおいて、高い Scale/Offset 値でディテールマップやエミッションマップがピクセル化して表示される問題を修正しました。
- Multiplicative モードの Matcap が、ADD パス内の追加ライトに対して正しく適用されるようになりました。
最終リリースにおける修正と変更
Toon Standardの修正:- モバイル端末における鏡面反射(specular)の安定性を向上させました。これにより、明るい明滅や「キラキラ」したノイズが軽減されます。
Gloss MapがReflectivityにも適用されるようになりました。Hue Shiftの折りたたみ状態が、最上位のものと誤って同期される問題を修正しました。Shadow Rampスロットのデフォルト値を修正しました。
- プラットフォームごとのオーバーライド が、プレハブおよびプレハブバリアントに対して正しく機能するようになりました。
既知の問題
- まれに、ビルド中に「All pipe instances are busy」というエラーが表示されることがあります。これはUnity側の問題であり、エディタを再起動して再度実行することで解決します。
最終更新: