ブレンドモード(OW)

最終更新: 2025年8月26日

このページにはベータ版に関する記述が含まれます。

Cubism 5.3 SDK for Native R1 beta1 および for Web R1 beta1 から、Cubism 5.3で追加されたブレンドモードに対応しました。

モデルにブレンドモードを適用することで、ペイントツールのような高度な合成ができるようになります。
Cubism Editor上で設定したブレンドモードはCubism 5.3以降のCubism SDKを利用することで、特に追加のコーディングをすることなく適用されます。


Cubism Editor上でのブレンドモードの設定はEditorマニュアルの「ブレンドモード」を参照してください。

Cubism Frameworkの内部処理

ブレンドモードを表現するためのFrameworkの内部処理です。
以下の流れで処理を行います。

  • Cubism Coreからブレンドモードを取得
  • モデル全体を描画するためのバッファに描画先を切り替える
  • どのブレンドモードで描画を行うのか判別する
  • 取得したブレンドモードから使用するシェーダプログラムを指定する
  • シェーダプログラムにモデル全体を描画するためのバッファをブレンド元になるテクスチャとして設定する
  • フラグメントシェーダにてブレンド元のテクスチャと描画したいテクスチャを指定のブレンドモードでブレンドし描画する
  • モデル全体を描画したバッファを画面に描画する
TIPS
ブレンドモードがNormal Over、AddCompatible、MultiplyCompatibleの場合は従来のブレンド方式を使って描画を行います。

Cubism Coreからブレンドモードを取得

Cubism CoreのAPIを用いてモデルからブレンドモードを全Drawable分取得します。

なおOffscreenのブレンドモードについてはDrawableをOffscreenに読み替えてください。

csmBlendMode CubismModel::GetDrawableBlendModeType(csmInt32 drawableIndex) const
{
    csmBlendMode blendMode;
    const csmInt32* const blendModes = Core::csmGetDrawableBlendModes(_model);
    blendMode.SetBlendMode(blendModes[drawableIndex]);

    return blendMode;
}

CoreのAPIは以下になります。

csmApi const int* csmCallingConvention csmGetDrawableBlendModes(const csmModel* model);

CubismModelクラスの描画時に描画するDrawable分に対して取得します。

TIPS
従来のブレンド方式の内容も上記の処理で取得することが可能です。

制限事項
Native
beta1ではOpenGLのWindows / Mac / iOS / Android のみがCubism5.3機能に対応しております。
Cubism 5 SDK R5 beta1 のパッケージ内に存在する上記以外のプラットフォームは同梱のCubism Coreに対応していないため正常な動作をしない可能性があります。
対応は beta2 以降を予定しております。

Web
特になし。

その他の制限事項についてはSDKマニュアルの「Cubism 5.3機能のSDK互換性および制限について」を参照してください。
この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。