コンテンツにスキップ

Runtime

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

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



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

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

概要


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

ファイルクラス内容
Runtime/Components/AvatarTagComponent.csEAUploader.Components.AvatarTagComponentアバターに付与するコンポーネントの基底クラス
Runtime/Components/EAUploaderMeta.csEAUploader.Components.EAUploaderMetaEAUploaderがプレハブを管理するための情報
Runtime/Components/EAUploaderOutfit.csEAUploader.Components.EAUploaderOutfit着せ替え(対応衣装)で着せた衣装の情報

AvatarTagComponent


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

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

EAUploaderMeta


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

namespace EAUploader.Components
{
[DisallowMultipleComponent]
public class EAUploaderMeta : AvatarTagComponent
{
public enum PrefabStatus { Show , Hidden, Pinned }
public enum PrefabType { VRChat, VRM, Other }
public enum PrefabGenre { Avatar, Cloth, Accessory, Other }
public PrefabStatus status;
public PrefabType type;
public PrefabGenre genre;
public long lastModifiedTicks;
public bool genreConfirmed;
[TextArea(3, 10)]
public string memo;
public List<string> tags = new List<string>();
}
}
フィールド内容
status一覧での表示状態。Show(表示)、Hidden(非表示)、Pinned(ピン留め)
typeプレハブの種類。コンポーネントから判定する(VRC_AvatarDescriptor → VRChat、VRMMeta → VRM、それ以外 → Other)
genreユーザー向けの分類。Avatar、Cloth、Accessory、Other
lastModifiedTicksEAUploaderがインポート・更新した日時(UTCのTicks)。0の場合はファイルのタイムスタンプを使う
genreConfirmedインポート時にジャンルが確定したか
memoメモ
tagsアイテムに付けたタグ

EAUploaderMetaは管理用Prefab(Assets/EAUploader/Prefabs/以下)のルートにだけ付与され、ルートのものだけが読み込まれます。

EAUploaderOutfit


着せ替え(対応衣装)でアバターに着せた衣装のルートに付与されるコンポーネントです。

namespace EAUploader.Components
{
[DisallowMultipleComponent]
public class EAUploaderOutfit : AvatarTagComponent
{
public enum SetupMode { ModularAvatar, BoneMerge, AttachToBone }
public string sourcePrefabGuid;
public SetupMode mode;
}
}
フィールド内容
sourcePrefabGuid着せた衣装(管理用Prefab)のGUID
mode衣装のセットアップ方法。ModularAvatar(Modular Avatarでボーンを統合)、BoneMerge(アップロード時にEAUploaderがボーンを統合)、AttachToBone(ボーンに取り付け)

BoneMergeの衣装は、VRChat SDKのビルド前処理(OutfitBuildHook、IVRCSDKPreprocessAvatarCallback、order −12000、NDMFより前)で、アップロードされるコピーの中でだけアバターのボーンに統合されます。

他ツールとの共存


AAO: Avatar Optimizer

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

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