コンテンツにスキップ

Runtime

開発に興味がありますか?

Project EAUploaderでは開発メンバーを常に募集しています!! 話を聞くだけでもOK! 是非当プロジェクトのDiscordサーバーへお越しください。 参加はこちら



本ページでは、RuntimeフォルダにあるEAUploaderアセンブリについて解説します。

本ドキュメントは、EAUploader v1.4.6 の内容に準拠しています。

概要


EAUploaderアセンブリには、アバター(プレハブ)に付与するコンポーネントが含まれています。 コンポーネントはシーンやプレハブに保存されるため、エディタ専用のEAUploader.Editorアセンブリとは分けて、全プラットフォーム向けのアセンブリとして定義しています。

ファイルクラス内容
Runtime/Components/AvatarTagComponent.csEAUploader.Components.AvatarTagComponentアバターに付与するコンポーネントの基底クラス
Runtime/Components/EAUploaderMeta.csEAUploader.Components.EAUploaderMetaEAUploaderがプレハブを管理するための情報

AvatarTagComponent


EAUploaderがアバターに付与するコンポーネントの抽象基底クラスです。Modular AvatarのAvatarTagComponentをもとにしています(MIT License)。

  • VRChat SDK - Avatars が導入されている場合(VRC_SDK3Aが定義されている場合)、VRC.SDKBase.IEditorOnlyを実装します。これにより、コンポーネントはVRChat SDKのホワイトリストのチェック対象外となり、アップロード時のビルドではアバターから取り除かれます。
  • [ExecuteAlways]、[DefaultExecutionOrder(-9990)]が付与されています。

EAUploaderMeta


EAUploaderがプレハブに付与するコンポーネントです。[DisallowMultipleComponent]のため、1つのプレハブに1つだけ付与されます。

namespace EAUploader.Components
{
[DisallowMultipleComponent]
public class EAUploaderMeta : AvatarTagComponent
{
public enum PrefabStatus { Pinned, Show, Hidden, Other }
public enum PrefabType { VRChat, VRM, Other }
public PrefabStatus status;
public PrefabType type;
}
}
フィールド内容
typeプレハブの種類。VRChat(VRChat用アバター)、VRM(VRMアバター、又はVRMから変換したアバター)、Other
statusプレハブの表示状態。Pinned(ピン留め)、Show(表示)、Hidden(非表示)、Other

付与されるタイミング

  • プレハブがインポートされたとき(PrefabManager.ImportPrefab)。typeにはプレハブの内容から判定した種類が設定されます。
  • セットアップタブで「アップロードできます」と判定されたアバターに、コンポーネントが無かったとき。typeにはVRChatが設定されます。
  • VRMアバターをVRChat用アバターに変換したとき。typeにはVRMが設定されます。セットアップタブでは、typeがVRMのアバターに「視点位置の調整が必要な場合がある」旨を表示します。

他ツールとの共存


AAO: Avatar Optimizer

AvatarOptimizerは、アバターのコンポーネントがどのプロパティを参照・変更するかの情報をもとに最適化を行います。 EAUploaderはEditor/Scripts/Coexistence/EAUploaderMetaInformationforAAO.csで、AvatarOptimizerのAPI(ComponentInformation)を使用してEAUploaderMetaの情報を登録しています。このコードはHAS_AAOが定義されている場合のみ有効になります。

ランタイムコンポーネントを追加・変更する場合は、AvatarOptimizerなどの非破壊ツールとの共存についても確認してください。