Runtime
開発に興味がありますか?
Project EAUploaderでは開発メンバーを常に募集しています!! 話を聞くだけでもOK! 是非当プロジェクトのDiscordサーバーへお越しください。 参加はこちら
本ページでは、RuntimeフォルダにあるEAUploaderアセンブリについて解説します。
本ドキュメントは、EAUploader v1.4.6 の内容に準拠しています。
概要
EAUploaderアセンブリには、アバター(プレハブ)に付与するコンポーネントが含まれています。
コンポーネントはシーンやプレハブに保存されるため、エディタ専用のEAUploader.Editorアセンブリとは分けて、全プラットフォーム向けのアセンブリとして定義しています。
| ファイル | クラス | 内容 |
|---|---|---|
Runtime/Components/AvatarTagComponent.cs | EAUploader.Components.AvatarTagComponent | アバターに付与するコンポーネントの基底クラス |
Runtime/Components/EAUploaderMeta.cs | EAUploader.Components.EAUploaderMeta | EAUploaderがプレハブを管理するための情報 |
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などの非破壊ツールとの共存についても確認してください。