ビルドパイプラインのコールバックとインターフェース
VRChat SDKには、Editorスクリプトを通じてWorldやAvatarのビルドプロセスを強化するために使用できる複数のインターフェースが含まれています。
シーンコンポーネント用
以下で説明するインターフェースは MonoBehaviours と組み合わせて使用できるため、シーンオブジェクトに直接配置することが可能です。これは、変更を加えるために特定のシーン参照を保持する必要がある場合に便利です。
IEditorOnly
VRC.SDKBase.IEditorOnly
実装すべきメンバーはありません。
IEditorOnly を使用すると、SDKの検証においてスクリプトをEditor専用としてマークできます。これにより、WorldやAvatarをスキャンして互換性のないスクリプトを検出する際に、SDKがそのスクリプトを無視するようになります。
IPreprocessCallbackBehaviour
VRC.SDKBase.IPreprocessCallbackBehaviour
実装すべきメンバー
public void OnPreprocess()
{
}
public int PreprocessOrder { get; }
このインターフェースを使用すると、ビルドプロセスが開始される直前にカスタムコードを実行できます。これは、コンテンツがビルドされてVRChatにアップロードされる前に修正を加える必要がある場合に便利です。
🚧 このインターフェースを使用しても、自動的にSDKの検証がバイパスされるわけではない点に注意してください。アップロードするAvatar上に直接スクリプトを配置する場合は、
IEditorOnlyも併用してください。
プロジェクト全体に適用するスクリプトについて
これらのインターフェースは、特定のシーンオブジェクトに依存せず、VRChatへアップロードされる前にシーンやアバターに対して一括で変更を加えるような処理に適しています。
IVRCSDKBuildRequestedCallback
VRC.SDKBase.Editor.BuildPipeline.IVRCSDKBuildRequestedCallback
実装が必要なメンバー
public int callbackOrder => 0;
public bool OnBuildRequested(VRCSDKRequestedBuildType requestedBuildType)
{
return true;
}
ここで VRCSDKRequestedBuildType は、以下のような構成の列挙型(enum)です。
public enum VRCSDKRequestedBuildType
{
Avatar,
Scene,
}
このインターフェースを使用すると、VRChat SDKがコンテンツのビルドを開始する前に独自のロジックを実行できます。
OnBuildRequested で false を返すと、ビルドを中断することも可能です。
最終更新: