Frameworkの初期化と終了(Java)

最終更新: 2023年1月26日

起動

CubismFramework.startUp関数でログに関するオプションを設定します。
こちらの関数を呼び出さなければ、後に行うCubismFramework.initialize関数が動作しません。

// Java
private LAppDelegate() {
    currentModel = ModelDir.values()[0];

    // Set up Cubism SDK framework.
    cubismOption.logFunction = new LAppPal.PrintLogFunction();
    cubismOption.loggingLevel = LAppDefine.cubismLoggingLevel;

    CubismFramework.cleanUp();
    CubismFramework.startUp(cubismOption);
}

private final CubismFramework.Option cubismOption = new CubismFramework.Option();

引数にはデバッグのレベルやデバッグ用の関数の登録をします。
初期化時にはデバッグ用関数を介し、以下のようにCubism Coreのバージョン情報が表示されます。

[CSM][I]Live2D Cubism Core Version: 04.02.0001 (67239937)

初期化

CubismFramework.startUp関数を実行した後で、CubismFramework.initialize関数を呼び出します。
アプリケーションでFrameworkを使用する前に必ず一度だけ呼んでください。
一度も呼ばなかった場合はFramework使用時にエラーになります。
連続で呼んだ場合は処理は無視されます。
ただし後述するCubismFramework.dispose関数を呼んで終了した後ならば、再度initialize関数を呼んで初期化することができます。

// Java
public void onSurfaceCreated() {
    // テクスチャサンプリング設定
    GLES20.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    GLES20.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

    // 透過設定
    GLES20.glEnable(GLES20.GL_BLEND);
    GLES20.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    // Initialize Cubism SDK framework
    CubismFramework.initialize();

    // シェーダーの初期化
    view.initializeShader();
}

終了

CubismFramework.dispose関数を呼び出すとFrameworkが確保した共通部分のリソースを解放します。
CubismFramework.initialize関数を呼び出す前には呼ばないでください。
基本的にはアプリケーションの終了時に呼びます。
例外として、メモリが非常に少ない環境で、必要ないときやライブラリを完全に切り離したいときは、
この関数を呼ぶことでリソースを解放し、次に使うときにまたCubismFramework.initialize関数を呼ぶ、という使い方もできます。

// Java
public void onStop() {
    view = null;
    textureManager = null;
  
    LAppLive2DManager.releaseInstance();
    CubismFramework.dispose();
}
この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。