VRChat 非公式日本語ドキュメント

Player Avatar Scaling

Udonでは、ワールド作成者が以下の操作を行える関数を提供しています。

"OnAvatarChanged" や "OnAvatarEyeHeightChanged" など、これらの関数と組み合わせて使用する関連イベントについては、Avatar Events を参照してください。

スケーリングとコリジョン

アバターを別のサイズにスケーリングしても、環境とのコリジョンには影響しません。Unityで拡大縮小したアバターをアップロードした場合と同様に、コリジョンは変化しませんので注意してください。

Avatar Scalingには2つのモードがあり、プレイヤーごとに個別に調整可能です。

  1. プレイヤー操作モード:プレイヤーがアクションメニューのラジアルパペットやクイックメニューの「Match Eye Height(目の高さを合わせる)」ボタンを使用して、自身の身長を調整できるモードです。
  2. ワールド管理モード:これらの機能が無効化され、ワールド内で実行されているUdonプログラムによってのみプレイヤーの身長を設定できるモードです。

どちらのモードでも、アバターの変更や目の高さの変更が発生すると "OnAvatarChanged" および "OnAvatarEyeHeightChanged" イベントが発行されるため、Udonプログラムでこれらの発生に対応できます。

デフォルトはプレイヤー操作モード

現在、Avatar Scalingはデフォルトでプレイヤー操作モードで動作しています。ワールド管理モードで運用したい場合は、ウェブサイト上または以下のUdon関数を使用して無効化する必要があります。

プレイヤー操作モードでは0.2mから5mの間で調整できますが、Udonを使用すると0.01mから10000mの値を設定できます。ただし、0.1mから100mの範囲外はVRChatで公式にサポートされておらず、UIの崩れや不安定な動作などの悪影響を及ぼす可能性がある点に注意してください。

ウェブサイト経由でプレイヤーによるスケーリングを無効にする

ワールドのアバター・スケーリング・システムを単純に無効にしたい場合は、VRChatウェブサイトの「My Worlds」セクションにログインし、対象のワールドを選択してスイッチをオフにし、変更を保存してください。

とても簡単です!

ウェブサイト経由でアバター・スケーリングを無効にすると、そのワールド内の全プレイヤーに対してシステムが完全に無効化されます。プレイヤーはデフォルトのスケールでしかワールドを利用できなくなり、アバター・スケーリング用のメニューコンポーネントも無効になります。

このため、ウェブサイト経由でアバター・スケーリングを無効にしている間は、以下の VRCPlayerApi 関数をUdonから利用できなくなり、使用しても効果はありません:SetManualAvatarScalingAllowedSetAvatarEyeHeightMinimumByMetersSetAvatarEyeHeightMaximumByMetersSetAvatarEyeHeightByMetersSetAvatarEyeHeightByMultiplier

これらのUdon関数へのアクセス権を保持しつつ、ユーザーがAction Menuのラジアルパペットから自らスケールを変更できないようにしたい場合は、ウェブサイト側でアバター・スケーリングを有効にしたまま、代わりにUdonを使用して SetManualAvatarScalingAllowed からプレイヤー操作によるアバター・スケーリングモードを無効にしてください。

プレイヤー操作によるスケーリング用関数

ローカルプレイヤーのみ

特に記載がない限り、以下の関数はすべてローカルプレイヤーに影響を与えるUdonプログラムでのみ使用可能であり、他のプレイヤーに属する VRCPlayerApi オブジェクトに対して呼び出しても成功しません。

GetManualAvatarScalingAllowed

ローカルプレイヤーが自身のアバターのスケールを操作できるかどうかを確認します。

Output

SetManualAvatarScalingAllowed

プレイヤー操作によるスケーリングモードと、ワールド権限によるスケーリングモードを切り替えます。

Input

GetAvatarEyeHeightMinimumAsMeters

プレイヤー操作によるアバターのスケーリングモードにおいて、ローカルプレイヤーが自身を設定できる最小の目の高さをメートル単位で返します。(0.2メートル以上である必要があります。)

Output

SetAvatarEyeHeightMinimumByMeters

プレイヤー操作によるアバターのスケーリングモードにおいて、ローカルプレイヤーが自身を設定できる最小の高さをメートル単位で設定します。(0.2メートル以上である必要があります。)

Input

GetAvatarEyeHeightMaximumAsMeters

プレイヤー操作によるアバターのスケーリングモードにおいて、ローカルプレイヤーが自身を設定できる最大の目の高さを返します。(5メートル以下である必要があります。)

Output

SetAvatarEyeHeightMaximumByMeters

プレイヤー操作によるアバターのスケーリングモードにおいて、ローカルプレイヤーが自身を設定できる最大の目の高さをメートル単位で設定します。(5メートル以下である必要があります。)

Input

ワールド権限のスケーリングに関する関数

ローカルプレイヤーのみ

特に記載がない限り、以下の関数はすべてローカルプレイヤーに影響を与えるUdonプログラムでのみ使用可能であり、他のプレイヤーに属する VRCPlayerApi オブジェクトに対して呼び出しても成功しません。

GetAvatarEyeHeightAsMeters

対象プレイヤーのアバターに設定された目の高さを返します。この関数はローカルプレイヤーおよびリモートプレイヤーの両方で機能します。

Output

SetAvatarEyeHeightByMeters

Input

SetAvatarEyeHeightByMultiplier

Input

最終更新: