メインコンテンツまでスキップ

Low-effort Uploader

Low-effort Uploader

Low-effort Uploaderは、PlayableDirectorが付いたままでもVRChatにアバターを正常にアップロードできるようにします。

いつ使うの?

Playable Director、すなわちTimelineを使ったアニメーションなどを含むアバターをアップロードしたい時!

使い方

ポイント

Setup Optimizationからパーティクルライブをセットアップした場合、Low-effort Uploaderもセットアップ済です!

本来、PlayableDirectorについてVRCSDKがエラーを出しますが、Low-effort Uploaderが付いている場合はエラーが出なくなります!

Setup Optimizatironからセットアップをした場合、セットアップで生成されたプレハブをアバター直下に含めるだけで、正しくアップロードできます。

そうでない場合、Playable Directorの付いているGameObjectに、"PaLASOLU Low-effort Uploader"コンポーネントを付けてください。正しくアップロードできます。

高度な設定

Generate Avatar Menu

「ワールド固定」「パーティクルライブON/OFF」などを行うためのExpression Menu、ならびにギミック本体を生成します。

Setup Optimizationの高度な設定「Advanced Setup」をOFFでセットアップした場合はデフォルトでON、それ以外の場合はデフォルトでOFFです。

Avatar Menuの仕様については、Tools/PaLASOLU/Extensions/PaLASOLU Avatar Menu (World Fixed)からご確認ください。Low-effot UploaderはBuild時にWorldFixedの子に再設定されます。

PaLASOLU_Play_Triggerというパラメータ名を使用することができます。これは「ライブ再生」時にONになる、自動リネームされないパラメーターです。

アバター側にPaLASOLU_Play_Triggerパラメータで動くギミックを仕込むことで、パーティクルライブの発火タイミングとギミックの動作タイミングを同期させることができます。

Disable on Play Object

本設定は、Generate Avatar MenuがONの場合にのみ存在するオプションです。

Generate Avatar Menuで生成されたExpression Menuで、「ギミックON」時に表示され、「ライブ再生」時に非表示になるようなGameObjectを設定します。

何も設定されていない場合は、パーティクルライブ視聴目安位置を示す白線(PaLASOLU棒と呼ばれています)が表示されます。

つまり、このオプションは「PaLASOLU棒を置き換える」ことを目的にしたオプションです。

Local Only Object

本設定は、Generate Avatar MenuがONの場合にのみ存在するオプションです。

Generate Avatar Menuで生成されたExpression Menuで、「ギミックON」「ライブ再生」時に自分のみに表示されるGameObjectを設定します。

いわゆる"バミリ"などを導入することを目的にしたオプションです。パーティクルライブと同様にワールド固定されます。

Playable Director

Playable Directorコンポーネントの付いたGameObjectを手動で選択できます。(ほとんどデバッグ用のオプションです)

通常は、Low-effort Uploaderをアタッチした時点でPlayableDirectorが設定されるので、変更不要です。

注意

Playable DirectorとLow-effort Uploaderが別のGameObjectにアタッチされている場合の動作は未保証です!

PaLASOLU 2.4.0現在、そのような場合の動作挙動は確認していません。

Generate Audio object

Timeline上に存在するAudioClipをアップロードするための設定です。

通常は、演出内にAudioSourceを持つGameObjectがなく、Timelineの音声を使用する想定なので、変更不要です。

もしあなたが、自分でAudioSourceをGameObjectにアタッチして制御している場合、このオプションをOFFにしてください。

Affect AudioTrack Volume

Generate Audio objectがONの場合、AudioClipをアップロードしますが、その際にAudio Playable AssetのVolume設定を参照するかを決める設定です。

Audio Playable AssetのVolumeを前提として音量調節をしている場合はONに、そうでない場合(制作中のみ音を小さくしている場合など)はOFFのままにしてください。

ポイント

本機能はまだ少し不安定です! 現在調整中ですが、もしうまくいかなかった場合は報告をしてほしいです!

Fix Allow Roll

Particle SystemのAllow RollをOFFに固定します。

Allow RollがONの状態では、VR環境で(円形でない)Particle Systemを視界に入れた状態で首を傾けると、HMD方向に応じてパーティクル粒子が回転するようになります。これは視覚的な違和感をもたらすことがよくあります。(Unityドキュメントでも言及されています。)

制約

PaLASOLU v2.4.0時点では、以下の制約があります。いろいろ書いてありますが、ほとんどのユースケースでは気にする必要がないはずです。

Animation Track

  • AnimationTrackに指定されたAnimatorを持つGameObjectのアクティブ状態は、パーティクルライブ再生中に常にActiveである必要がある
  • AnimationTrack上にAnimationClipを置いた場合
    • TimelineClipが2つ重なってAnimationClipがブレンドされている状態を作ってはならない
    • AnimationClipをLoopさせる場合、"ちょうどループの境界の長さに"TimelineClipが設定されている必要がある
      • 例えばAnimationClipが1秒、 Loop Pose = 0 だった場合、1秒、2秒、3秒、…… は問題ないですが、1.5秒など「整数倍ではない」時にうまくいきません。

Audio Track

  • VRChatへのアップロード時、「Load in Background」がOFFならば、自動的にONになる

Activation Track (上級者向け)

  • 操作対象のGameObjectは、Low-effort Uploaderが参照するPlayableDirectorよりも子階層に存在する必要がある

Control Track (上級者向け)

注意

本機能は**まだ機能が不十分な可能性があります!**現在調整中ですが、もしうまくいかなかった場合は報告をしてほしいです!

特に、Control Activation, Post Playbackを活用している場合、多分うまく動きません。その場合はむしろ私を助けてほしいです。

  • Parent Objectは、Low-effort Uploaderが参照するPlayableDirectorよりも子階層に存在する必要がある
    • Parent Objectが(定義されていない or Scene内にない)場合、自動的にLow-effort Uploaderが参照するPlayableDirectorを親とする
  • Prefabは、Prefabを含めたアバターがVRChat Avatarとしてアップロードできる必要がある(VRCSDKのアップロード前アラートに引っかからない可能性があるため、人力で確認する必要があります。)

その他

  • AnimationTrack、AudioTrack、ActivationTrack、Control Track以外のトラックを使用してはならない

制約を満たしていないPlayableDirectorに対する動作は、未定義、かつ未保証です。