VRChat 非公式日本語ドキュメント

Build Pipeline Callbacks and Interfaces

VRChat SDKには、ワールドやアバターのビルドプロセスを強化するために、Editor Script経由で使用できる複数のインターフェースが含まれています。

シーンコンポーネント用

以下に概要を示すインターフェースは MonoBehaviours と組み合わせて使用できます。そのため、シーンオブジェクトに直接配置することが可能です。これは、特定のシーン参照を保持して変更を行う必要がある場合に役立ちます。

IEditorOnly

VRC.SDKBase.IEditorOnly

このインターフェースには実装すべきメンバーはありません。

IEditorOnly を使用すると、SDK検証のためにスクリプトをEditor専用としてマークできます。これにより、WorldやAvatarの非互換スクリプトをスキャンする際に、SDKがそのスクリプトを無視するようになります。

IPreprocessCallbackBehaviour

VRC.SDKBase.IPreprocessCallbackBehaviour

実装するメンバー

public void OnPreprocess()
{
}

public int PreprocessOrder { get; }

このインターフェースを使用すると、ビルドプロセスが開始される直前にカスタムコードを実行できます。これは、コンテンツがビルドされてVRChatにアップロードされる前に変更を加える必要がある場合に便利です。

🚧 SDK検証が自動的にバイパスされるわけではない点に注意してください。アップロードするアバター上に直接スクリプトが存在する場合は、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がコンテンツのビルドを開始する前に独自のロジックを実行できます。

OnBuildRequestedfalse を返すことで、ビルドを中断することも可能です。

最終更新: