VRChatデベロッパーアップデート非公式翻訳(v.2023.2.2)

これは、非公式のVRChat デベロッパーアップデートhttps://ask.vrchat.com/t/developer-update-28-april-2023/17808
の翻訳です。
自然な日本語表現になる形で翻訳していますが、
内容が間違えている可能性がある事を予め考慮していただけると幸いです。

Squishy Bones

VRChatに新しいPhysBones機能『Squishy Bones』が追加されました!
(この機能は、VRChat 2023.2.2のオープンベータ内で利用可能になっています。)

この動画はライブリリース用のものですが、ここでちょっとしたプレビューをご覧いただけます。
https://youtu.be/tTD0oyyXQ08

このアップデートでは、今までになかった形で"ボーンを伸ばしたり縮ませたり"する事が出来るようになります。既存の値『Max Stretch』では、ボーンの長さがどの程度伸びるかを指定できました。以前までは、誰かがボーンを掴んで引っ張った時にしか影響がありませんでしたが、これからはもっと重要になります。

ボーンの長さに対して動きがどの程度影響するかを指定できる『Stretch Motion』という新しい値が追加されました。値0(デフォルト)では、ボーンは今まで通り元の長さを保ったままになります。値1の場合は、どのように動いているかに応じてボーンが伸び縮みするようになります。『Pull』という値は、これらのボーンを元の長さと向きに戻す力を決める値です。

デフォルト設定のStretch Motion値0の場合の見た目は以下のようになります。

そしてこちらが、Stretch Motionの値を1にした時の映像です!

また、『Max Squish』という機能も追加しました。これはボーンの長さが縮むことができる割合を指定するものです。Max Stretchと似た概念ですが、逆の方向に対して働きます。これらの用語は、骨の長さの最小値と最大値を示すものと考えることもできます。Max Stretchと同様に、この値はボーンが掴まれたりStretch Motionによって影響を受けます。さらに、Squish可能なボーンはコライダーの影響も受けるようになります。

これは、ボーンを掴んで引っ張ったり縮めたりしてみた動画です。

コライダーは、ボーンを押しつぶすことでその長さに影響を与えることができます。Max Squishの値が最大値を持つボーンは、コライダーの向きに応じて押し出されるか下に押されます。これは、触れると柔らかく感じるボーンを作るなど、さまざまな方法で使用できます。また、Constraintsと一緒に使用する事でアバターにユニークなボタンを作ることもできます。

新しいパラメーター『_Squish』が追加されました。これは、既存の_Stretch パラメータと非常に似ています。これは、0 から 1 の範囲のFloat値を提供し、繋がっているボーンの全長が最小長に押しつぶされる程度を表します。この値は_Stretchパラメーターと同様に、繋がっている複数のボーンに複数のブランチがある場合、それらすべての間での最大値を使用します。

PhysBoneのバージョン設定

これらの新機能を導入するために、いくつかの特定の値が適用される方法に変更が必要でした。これらの変更は、既存の VRCPhysBoneコンポーネントのプロパティに変化を与えています。私たちは、既存のアバターの動作を保持するためにVRCPhysBone コンポーネント内に直接バージョン管理機能を追加することにしました。

すべての既存の VRCPhysBone コンポーネントは、古いバージョン1.0を使用しており、今までとまったく同じ動作をします。それに対して、新しいコンポーネントは最新のバージョン1.1をデフォルトで使用します。

アップグレードする場合、ドロップダウンメニューを使用して最新バージョンを選択できます。バージョン間の切り替えはいつでも自由に行えます。

バージョン間で一部の値が正確に同じようには機能しないことに注意してください!今回のアップデートでは、『Gravity』と『Stiffness』の2つの特定の値が変更されました。

Gravity

以前は、GravityはPullと競合する力の値として機能していました。狙った動作を得るためには、これら2つの値の比率を調整する必要がありました。

これからは、Gravityはボーンの残りの位置が重力によって変形する比率として直接働きます。値が1の場合、ボーンは常に真っ直ぐ下に落ち、値が0.5の場合、残りの位置とワールドの下向きベクトルの中間でホバリングします。

実際に使用してみた結果、この機能のおかげで狙った動きに調整するのがはるかに簡単になりました。

Gravityは力を与える値として働かなくなったため、Pullはボーンが新しい安定位置に落ちる速さを決定する唯一の力となります。以前は、真っ直ぐ下を向くボーンの設定値は多くの場合『Pull:0、Gravity:0.3』のようになっていました。これらの設定値は、『Pull:0.3、Gravity:1.0』のような設定値に変更する必要があります。

Stiffness

以前は、Stiffnessは前フレームのボーンのベクトルを持つ力として働いていました。これは、PullやGravityと競合する力であり、特定の動きを減衰させるのに役立ちました。Gravityと同様に、特定の動きを得るためには、この力と他の力との比率を管理する必要がありました。

これからは、Stiffnessは現在の速度とボーンを以前の向きに保つために必要な速度との間の比率として働きます。これは、目的の違いというよりは技術的な違いであり、基本的には以前と同じようにこの値を使用できます。

これは、近い動きを実現するために必要な値が多少異なるため、このリリースノートで取り上げました。

Guided Mode

この機能は、VRChat 2023.2.2でオープンベータとして利用できるようになりました。

VRChatは、新しいユーザーにとっては複雑すぎる体験になることがあります。最初のアバターを選ぶ、探索するクールなワールドを見つける、メニューの一覧に目を通す… まあ、たくさんあるでしょう!
この体験をもっとシンプルに感じられるように、新しい機能を開発中です。

その新機能の1つが、ガイドモードです。


ガイドモードは、VRChatの主要な機能に簡単にアクセスできる新しいUIを持ったモードです。たとえば、誰かのアバターをクローンする、ワールドを変更する、ユーザーをブロックするなどです。

ガイドモードは、新しいユーザーに与えるオプションや選択肢を絞り、体験をコントロールする為の機能を提供します。


ガイドモードは、オープンベータ上ではすべての人が有効になります。ただし、ライブバージョンに実装された時は、『A/Bテスト』を使って機能を徐々に展開します。

このテストでは、一部のユーザーに対して機能をオンにし、すべてのユーザー上でオンにはなりません。ユーザーがこの機能をどのように使用し、それがVRChatでの体験を向上させているかどうかのデータを収集します。この方法によって、私たちはVRChatに加える変更が実際に体験を向上させているかどうかを確認することが出来ます!』


テストが完了しガイドモードが完全に導入された後は、シンプルな体験を好む方の為に、いつでもオンにできる方法を提供するかもしれません。

VRChatにさらなる機能が追加されるにつれて、ガイドモードを微調整し、新規ユーザーを支援することに焦点を当てます。たとえば、ガイドモードを使って、自分の興味に合ったグループを見つけることができるかもしれません。私たちはこういった実験を行っていくつもりなので、これからもぜひ注目してください。

コミュニティには、できるだけ多くの情報を提供しますが、私たちが行っているすべてのA/Bテストを発表するわけではありませんのでご注意ください。

最新SDKの新機能一覧!

These new SDK features are now in Open Beta with VRChat 2023.2.2.
下記の新しい機能を持ったSDKがVRChat 2023.2.2のオープンベータで使用
できます!

DataContainers と VRCJSON
DataContainersを追加しました!
これによってUdonでLists・Dictionaries・JSONが使用可能になります!

『DataLists』と『DataDictionaries』は ListsとDictionariesに似た機能をUdonに提供します。
We’ve also added VRCJSON, a helper class that can convert JSON strings (such as those received from Remote String Loading 12) to and from DataLists and DataDictionaries.
また、 JSONの文字列をDetaListsとDataDictionariesに変換できるクラス『VRCJSON』も追加しました。
(Remote String Loadingから取得した文字列と同じように使用します)

VRCAsyncGPUReadback
AsyncGPUReadbackのサポートを追加しました!これにより、GPUやシェーダーからのデータを高いパフォーマンスコストなしに読み取ることができます!この機能については、以前の開発アップデートで説明しています。

VRCAsyncGPUReadback.Request関数と、対応するOnAsyncGpuReadbackCompleteイベントを追加しました。これらを使用することで、データを1フレーム以上遅延させることで、パフォーマンスへの影響を最小限に抑えつつ、GPUからCPUメモリにデータを読み取ることができます。

UdonUIの新情報

追加予定のUdon UI機能に関する簡単なアップデートがあります!私たちはいくつかのテストに取り組んできており、その結果を皆さんにここで報告します。

下の動画のUdonUIテストは、システムを通じて利用可能ないくつかのデバッグ機能を示しています。Udon UIで作成されたワールド空間キャンバスは、「AnimalFriend」UdonBehaviourでリアルタイムに更新されるいくつかの値を表示します。これは、コンソール内のログのようなものですが、ワールドに簡単に追加できます。また、QuickMenuに追加されたボタンも表示されます。これは、同じUdonBehaviourを制御するメソッドを呼び出します。ここにある全てのUdon UI機能は、AnimalFriend Udonプログラムに何も変更を加えずに作成されました。

Groupのメンバーをロールに応じてフィルタリング

前回の開発アップデートで言及されたように、ロール別にメンバーをフィルタリングする機能が近いうちに登場します!
この変更により、ウェブサイト上でグループメンバーを整理・表示するのが簡単になります。

自分のグループメンバーを検索する機能も開発中ですが、いつリリース出来るかはまだ未定です!

この記事が気に入ったらサポートをしてみませんか?