【VRChat】新たな揺れもの!PhysBones

スポンサーリンク




ケーキ
ケーキ
ダイナミックボーンに変わる揺れもの
コンポーネントがきたのじゃぁ!!!
PhysBonesだよね♪
いつ来るの?夏来るのか?色々あったけどやっと来たね!
胡桃
胡桃
ケーキ
ケーキ
とうとう現行リリース版できたのじゃ・・・
くるみちゃん!お願いしますのじゃ!
はいはい・・・(笑)
じゃぁ一緒にコンポーネントを見ていこうか♪
胡桃
胡桃
ということで、今回はVRChatに新しく来たAvatar Dynamicsの一つである”PhysBones”について見ていこうと思います。
少し前にOSCなど来たばかりなのに、最近のVRChatはすごい波に乗っている気がしますね(笑)

Avatar Dynamics何ができる?

新機能”Avatar Dinamics”は以下のようなことができるみたいです!
・プラットフォーム間の壁取っ払い(PC←→Quest)
・PhysBonesで相互に揺らす、掴む、固定
・デフォルトで指、手のコライダーが自動設定され、どのアバターでも相手を触れる
・PhysBonesを触った時の制御もできる
・コライダー同士が触った時も制御できる
…etc
VRChat公式ブログ

準備するもの

アバターの用意

※現在はOpen Betaのみの仕様になります。PhysBones改変をする場合は必ずプロジェクトのバックアップをしておきましょう。
プロジェクトが壊れてしまった場合などは対応できかねますので・・・

利用したいアバターモデルをUnityのHierarchyに用意しておきましょう。
私はいつものくるみちゃん(分霊アバター改変)

PhysBonesコンポーネントが入ったVRCSDK

ケーキ
ケーキ
VRCの公式HPよりダウンロードじゃ♪
PhysBonesやAvatar Dynamicsが入ったSDKは、VRChat公式HPよりSDKをダウンロードすることができます。


DLしてきたらプロジェクトにインポートしましょう。
基本的には以前のVRCSDK3が入った状態のままインポートしても問題ありません。
(VRCSDK2だと壊れるかも・・・)

インポート方法は、Unity上メニューバーより、「Assets」→「Import Package」→「Custom Package…」より対象のunitypackageを選択してください。

※PhysBonesのBeta版のSDKから入れていた場合、本SDKを入れることで”Assets\VRCSDK\SDK3A\Editor\PhysboneMigration.cs”のエラーが出てアップロードできなくなりますので、このPhysboneMigration.csを削除しましょう。

揺れもの制御コンポーネント

ここからはPhysBonesのコンポーネントを見ていくよ♪
胡桃
胡桃
コンポーネントに関してはUnity上右上のInspectorから”Add Component”から検索欄に”Phys”と入れると出てきます。
揺らしたいボーンなどを選んでから追加するとわかりやすくて良いかと。

VRC Phys Bone

こちらがPhysBonesの揺れものを制御するコンポーネントになります。
以下に各種の簡単な説明をいれます。

Root Transform:揺らしたいオブジェクト、ボーンを入れる場所。入れたボーン以下の子は同じく揺れる。何も入れなかった場合はコンポ-ネントが入っているオブジェクトから揺れ始める。
Ignore Transform:Sizeに数値を入れ揺れもの制御をしたくないボーンを選ぶことで、揺れものの途中から揺れ影響を受けないなどの設定ができる。
Endpoint Position:揺れものボーンに末端ボーンを追加できる。
Pull:ボーンを元に戻す力。値が小さいと戻らず、大きくすると戻る。(DynamicBoneのElasticityみたいなもの)
Spring:ボーンが動いた時の揺れ具合。小さいと揺れなくなり、大きいと揺れまくる。(DynamicBoneのDumpingみたいなもの)
Immobile:ボーンの移動影響度。大きくしていくと動かなくなる。(1状態だと衝突、掴む以外では動かなくなる)
Gravity:ボーンの重力制御値。正は下へ、負は上に重力が働く
Radius:ボーンの当たり判定範囲。衝突や掴み判定にも使われる。0だと掴めなくなる。
Allow Collision:チェックを入れるとコンポーネント以外との衝突ができる。現在はプレイヤーのアバターで指定される手のみ。
Collider:手以外のコライダーを衝突判定設定できる。Sizeに数値を入れ、”VRC Phys Bone Collider”の設定がされているオブジェクトを入れる。
Max Angle:ボーンの関節が最大でどのくらい曲がることができるかを設定できる。
Freeze Axis:チェックを入れるとボーンを1軸上でのみ揺らす設定ができる。
Freeze Axis Angle:上記の1軸の角度を変えられるスライダ―。
Allow Grabbing:ボーンを掴む設定。チェックが入っていると掴める設定になり、チェックが入っていないと掴めなくなる。
Allow Posing:掴んだ後、固定設定。チェックが入っていると掴んだ状態でトリガーを押すとその場に固定ができる。
Grab Movement:掴まれたボーンの動き制御。小さいとPull、Springを参考にし動く、大きいと即座に動くようになる。
Max Stretch:掴まったボーンが最大で引っ張れる長さ。
Is Animated:チェックを入れるとボーンのアニメーション制御などを有効にできる。FXなどでボーン制御(尻尾、耳など)をしている場合はこちらにチェックをいれるとよい。
Parameter:アバターコントローラーにパラメータ情報を送るための項目。
Gizmos:シーン上のギズモの透過具合。

これらの項目を設定することで髪・スカートなどの揺れもの設定ができます。
揺らしたいだけならPull、Spring、Immobileを設定すれば調整ができます。

VRC Phys Bone Collider

こちらが設定したPhysBonesに対して衝突などの影響を与えることができるコライダーコンポーネントになります。

Root Transform:コライダーにしたいオブジェクト、ボーンを入れる場所。空欄の場合コンポーネントが入っているオブジェクトが設定される。
Shape Type:コライダーの形を設定できる。Sphere(球状)、Capsule(カプセル状)、Plane(板状)の3つ。
Radius:コライダーの判定範囲。
Position:初期位置からの位置設定。
Rotation:初期位置からの回転設定。

ここで設定したオブジェクトを上記の”Phys Bone”内の”Collider”に設定することで衝突設定が可能になります。

標準コライダー

こちらも新たに追加された機能でVRC Avatar Discriptorに”Collider”の項目が増え、アバターのパフォーマンスに影響が出ない標準コライダーを各種設定ができます。
基本は自動で設定されており、それでも問題はないかと思いますが、あまりにもズレている・アバターの機構上変えたい場合は手動入力も可能です。

Mirrored:チェックを入れると設定した反対側にも標準コライダーが設定される。
Head:頭の標準コライダー
Torso:胴体の標準コライダー
Hand:手の標準コライダー
Foot:足の標準コライダー
Finger Index:人差し指の標準コライダー
Finger Middle:中指の標準コライダー
Finger Ring:薬指の標準コライダー
Finger Little:小指の標準コライダー

これらの標準コライダーにおいて、指と手のコライダーは他の人のPhys Boneに触れることが可能になります。

Dynamic Bone 自動変換

現在のOpen Betaにおいては、Dynamic BoneからPhysBonesへの自動変換がVRC内で可能です。

また、Unityのアップロード画面時にDynamicBoneを自動でPhysBonesに変換してくれる機能もあるので設定が面倒な場合などに使ってみるといいかと思います。

Avatar Dynamics許可システム

PhysBonesはお互いに触れますが、こちらは許可設定がちゃんとあり
フレンドのみ干渉可、誰でも干渉可、誰も干渉不可などの設定ができます。
この設定はVRChatメニュー内SettingsからAvatar Interactionsの中で選ぶことができます。

新しい揺れもの時代の幕開け

お疲れ様です!
PhysBonesコンポーネントの簡単な説明はこんな感じです♪
胡桃
胡桃
ケーキ
ケーキ
くるみちゃん!ありがとうなのじゃ!
要所でDynamicBoneと似てるところもあったからわしでもできそうなのじゃ!
実際にPhysBonesで動いているのが以下になります。
触る、掴むなどが簡単にできて表現の幅が広げやすくなった感じがしますね!

ぜひ皆さんもPhysBonesを試してみてください♪
胡桃
胡桃

スポンサーリンク