リリース 3.8.1
概要
バージョン 3.8.1 では、モバイル互換の Toon Standard シェーダーが追加されたほか、パラメータ付きUdonネットワークイベントに対応しました。また、いくつかのVRChat固有クラスがUdonから利用可能になり(カメラへのアクセスやネットワークデバッグ統計など)、iOS向けのBuild & Test機能が追加されました。
本アップデートでは、マルチプラットフォームビルド&パブリッシュにおけるプラットフォームごとのオーバーライドの指定が可能になったほか、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 シェーダー
VRChat/Mobile/Toon Standardとして利用可能なToon Standardシェーダーを追加しました!- これはVRChatのモバイル版と互換性のある、フル機能のトゥーンシェーダーです。PC、Android、iOSで使用できます。
- コミュニティ製のPC向けシェーダーでおなじみの、要望の多かった機能を多数搭載しています。例:
- 設定可能なトゥーンスタイルシェーディングを備えたカスタムシャドウランプ
- UVチャンネルとレンダーモードを選択可能なディテールマップ
- カラーチャンネルを設定可能な、メタリック、グロス、オクルージョンマップのパック機能
- 設定可能なバックフェイスカリング
- 加算および乗算に対応したMatcapサポート
- 切り替え可能な頂点カラーサポート
- 色相シフト(Hue shift)エフェクト
- リムライティング
- このシェーダーはパフォーマンスを重視しているため、機能セットは制限されています。透明度(Transparency)はサポートされていません。
- また、
Toon Standard (Outline)はPC専用のバリアントです。アウトライン付きのバリアントを使用してアバターをアップロードし、それをPC以外のプラットフォームで使用した場合、自動的にアウトラインなしのバリアントにフォールバックされます。 toonstandardまたはtoonstandardoutlineをVRCFallbackタグとして指定することで、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コンストレイントおよびLook-atコンストレイントにおいて、コンポーネントが有効かつオフセットがロックされていない特定の状況下で、誤ったオフセットが計算される不具合を修正しました。
- Avatar SDKで検証エラーが発生しても、ビルドボタンがブロックされないようになりました。
- すべてのアバター処理コールバックが完了した後に検証がパスしなかった場合、ビルドは引き続き失敗します。
- サムネイルおよびコンテンツ情報の更新中にAPIの問題が発生しても、SDKが応答不能にならないようにしました。
- コンテンツ名が空の状態で変更を保存しようとした際に、SDKが無効状態で停止してしまう問題を修正しました。
- VRChatクライアント
2025.2.1(ビルド1622)までのPhysBoneの修正および変更が含まれています。
修正および変更点:3.8.1-beta.2
- 著作権の所有権確認モーダルが表示されるタイミングを、アップロード前ではなく「Build & Publish」をクリックした直後に変更しました。
- プラットフォームごとのオーバーライドが設定されたアバターで「Build & Publish」をクリックすると、複数のプラットフォームが選択されていない場合でもオーバーライドが適用されるようになりました。
- プラットフォームごとのオーバーライドが設定されたアバターには、アバターセレクターの「⋮」ボタン付近に青いバッジ 🔵 が表示されるようになりました。
PerPlatformOverridesのコードをVRC.SDK3A.Editorアセンブリに移動しました。これにより、3.8.1-beta.1で発生した破壊的な変更を回避します。- シーン切り替え直後に
BuildAndUploadが呼び出された際、コンテンツのブループリントIDが消去されてしまう不具合を修正しました。 - 予約済みレイヤーのカリング距離を
VRCCameraSettings.LayerCullDistancesから変更できないようにしました。
機能と変更点 3.8.1-beta.3
Toon Standardシェーダーを追加しました。VRChat/Mobile/Toon Standardとして利用可能です!- 多数のアバターを連続してビルドする際に、SDKが「Building Avatar」の状態で停止する問題を修正しました。
修正と変更点 3.8.1-beta.4
- フィードバックに基づき、
Toon Standardに新機能を追加しました!- 頂点カラーサポートのオン/オフ切り替え機能を追加しました。
- Standard Liteと同様の
MultiplyX2ディテールマップモードを追加しました。 Maskディテールマップモードを削除しました。代わりに、すべてのモードでマスクテクスチャが適用されるようになりました。- ディテールマスクがディテール法線マップにも適用されるようになりました。
- エミッション用の色相シフト(Hue Shift)スライダーと、3つのスライダーすべてに影響する色相シフトマスクを追加しました。
- 色相シフトはオン/オフの切り替えが可能となり、使用しない場合はオフにすることでパフォーマンスを向上させることができます。
- すべてのマスクテクスチャで、使用するカラーチャンネルを選択できるようになりました。各テクスチャスロットの左側にある
>矢印をクリックして設定できます。- デフォルトの設定は、
beta.3と同様にStandard Liteと一致しています。
- デフォルトの設定は、
Anisotropyスライダーを削除し、スペキュラーの実装を通常の等方性GGXに変更しました。- 異方性モードは利便性よりも混乱を招くことが多く、無視できないパフォーマンスのオーバーヘッドがありました。この機能が必要となる重要なユースケースがある場合は、フィードバックボードにてお知らせください。
- リムライト用に
Albedo Tintスライダーを追加しました。 - ライトのクランプ処理が個別にではなく直接光と間接光を合わせて適用されるようになり、「Limit Brightness」オプションでオン/オフの切り替えが可能になりました。
- 以下のバグも修正しました:
- 組み込みのシャドウランプへの切り替え時に、スケール/オフセットが適切にリセットされるようになりました。
- Toon Standardを使用している複数のマテリアルを一度に選択しても、シャドウランプの設定がリセットされなくなりました。
- 特定のハードウェアにおいて、スケール/オフセット値が高い場合にディテールマップやエミッションマップがピクセル化して表示される問題を修正しました。
- 乗算(Multiplicative)モードのMatcapが、ADDパス内の追加ライトに対して正しく適用されるようになりました。
最終リリースにおける修正と変更点
Toon Standardの修正:- モバイル端末における鏡面反射の安定性を向上させました。これにより、明るい明滅や「キラキラ」した現象の軽減が期待できます。
Gloss MapがReflectivityにも適用されるようになりました。Hue Shiftの折りたたみメニューが、誤って最上部の項目と同期されていた問題を修正しました。Shadow Rampスロットのデフォルト値を修正しました。
- プラットフォームごとのオーバーライドが、プレハブおよびプレハブバリアントで正しく動作するようにしました。
既知の問題
- 稀に、ビルド中に「All pipe instances are busy」というエラーが表示されることがあります。これはUnity側の問題であるため、エディタを再起動してから再度実行してください。
