オフスクリーン描画 ・エイリアス(alpha)

最終更新: 2025年3月25日

このページにはアルファ版に関する記述が含まれます。

[オフスクリーン描画]と[エイリアス]の機能について説明します。

オフスクリーン描画
①従来 ②オフスクリーン描画
エイリアス

オフスクリーン描画

オフスクリーン描画について

オフスクリーン描画は、複数のオブジェクトを一旦メモリ内に描画してから、キャンバスに転写する機能です。
メモリ内への描画を経由することで、以下のような表現が可能になります。

  • 複数のオブジェクトを描画した後、全体の不透明度を変える。
  • 複数のオブジェクトを描画した後、全体をクリッピングする。
  • 複数のオブジェクトを描画した後、全体に乗算色やスクリーン色を適用する。
  • 複数のオブジェクトを描画した後、全体にブレンドモードを適用する。

対象オブジェクト

オフスクリーン描画は、オブジェクト単位で設定します。
設定可能なオブジェクトは以下の2つです。

  • パーツ
  • エイリアス

使い方

パーツのオフスクリーン描画を有効にすると、パーツ内のオブジェクトをメモリ内に描画します。
エイリアスのオフスクリーン描画を有効にすると、エイリアスの参照先のオブジェクトをメモリ内に描画します。

エイリアスの参照先がパーツになっている場合は、そのパーツのオフスクリーン描画が有効なら、キャンバスに転写される内容をメモリ内に描画し、オフスクリーン描画が無効なら、パーツ内のオブジェクトをメモリ内に描画します。

パーツでオフスクリーン描画を有効にすると、必ず描画順グループが有効になります。
オフスクリーン描画が有効な間は、描画順グループを変更できません。

設定方法

オフスクリーン描画の設定方法:

設定はインスペクタパレットで行います。

  1. 設定を行いたい「パーツ」、「エイリアス」を選択します。
  2. インスペクタパレットの[オフスクリーン描画](①)にチェックを入れます。
  3. オフスクリーン描画より下の項目(②)が有効になり、各設定を変更できるようになります。
  4. 同時に、自動で[グループ化](③)にチェックが入ります。
パーツ(オフスクリーン描画が無効)パーツ(オフスクリーン描画が有効)

オフスクリーン描画のアイコン:

グループ化されたオフスクリーン描画のパーツは、以下のようなアイコンに変わります。

インスペクタの構成

各オブジェクトのインスペクタパレットの表示は以下になります。

番号項目説明
1オフスクリーン描画チェックを入れるとオフスクリーン描画が有効になります。
有効になると、2以降の項目が変更可能になります。
また、自動的に[グループ化]にチェックが入ります。
2クリッピングクリップIDを指定します。
メモリ内に描画したものをキャンバスに転写する際に使用します。
指定できるのは描画オブジェクトのIDのみです。
パーツやエイリアスのIDは指定できません。
3マスクを反転チェックを入れるとマスク反転が適用されます。
4不透明度不透明度を変更します。
メモリ内に描画したものをキャンバスに転写する際に使用します。
5乗算色乗算合成する色を変更します。
メモリ内に描画したものをキャンバスに転写する際に使用します。
6スクリーン色スクリーン合成する色を変更します。
メモリ内に描画したものをキャンバスに転写する際に使用します。
7カラーブレンドRGBの合成方法を変更します。
メモリ内に描画したものをキャンバスに転写する際に使用します。
アルファブレンドアルファの合成方法を変更します。
メモリ内に描画したものをキャンバスに転写する際に使用します。

パラメータ対応

オフスクリーン描画はパラメータにも対応します。
以下の設定について、パラメータにキーを打つことができます。

  • 不透明度
  • 乗算色
  • スクリーン色
注意事項

オフスクリーン描画は、PSDのインポート/エクスポートに対応していません。

Photoshopのグループの描画モードや不透明度といった設定は、エディタに取り込む際には無視されます。
またエディタ側のオフスクリーン描画の設定も、Photoshopのグループには反映されません。

エイリアス

エイリアスについて

エイリアスは、描画オブジェクトやパーツを参照し、その参照しているオブジェクトをエイリアスの描画順で再描画する機能です。
あるアートメッシュを別途、マスクにもしたい場合などに使用することを想定しています。

以下に使用例として、前髪に目を透けさせる表現をエイリアスで実現する方法を説明します。

使用例

目を前髪に透かしたい場合:

下図のモデルで、目を前髪に透かす表現を実現するには、半透明な目を作成し、それを最前面に配置して、前髪でクリッピングする方法が考えられます。

従来のCubismで、これを実現しようとするには、通常の目と半透明な目の2つのアートメッシュが必要です。

エイリアスを使用した描画順の図解:

下図は、目を前髪に透かす表現を実現するのに必要なオブジェクトを描画順で並べたものです。
前髪の前に半透明の目を配置することになりますが、ここにエイリアスを利用します。

下図のエイリアスは、前髪の後ろにある目のアートメッシュを参照しており、エイリアスの描画順で、参照しているアートメッシュを再描画しています。
エイリアスにはオフスクリーン描画の機能が備わっているので、それを利用して不透明度を下げています。

①エイリアス
②エイリアスが参照しているアートメッシュ

合成結果:

前髪の前に配置した半透明の目は、オフスクリーン描画の機能を利用して、ブレンドモードのアルファブレンドをAtopにして前髪と合成しています。

前髪の前に配置した半透明の目と、前髪の後ろの目は、同じフォームを参照しているため、前髪の後ろの目をフォーム編集するだけで、半透明の目も同じフォームになります。

注意事項

エイリアスは別の描画順で参照先のオブジェクトを再描画するだけで、位置の変更は行いません。
このため、同じ動きをするオブジェクトを複製して、別の位置に配置するような使い方はできません。

作成方法

エイリアスの作成:

エイリアスの作成は、パーツパレットで行います。

  1. エイリアスの参照先となるオブジェクトを選択し、パーツパレットの下部にある「エイリアス作成」のボタンを押します。
  2. 対象のオブジェクトの上に、[エイリアス]が配置されます。
1:「左目を選択2:左目のエイリアス作成

エイリアスのアイコン:

エイリアス化されたオブジェクトは、以下のようなアイコンに変わります。

オフスクリーン描画で調整:

エイリアスを作成したら、[オフスクリーン描画]で効果を加えていきます。

作成されたエイリアスを選択すると、インスペクタパレットに[オフスクリーン描画]のチェック項目があります。
チェックを入れると、[オフスクリーン描画]の項目が変更できます。

作成例:
インスペクタパレットの[オフスクリーン描画]の不透明度を設定すると以下のような見た目になります。

対象オブジェクト

エイリアスを作成できるオブジェクトは以下の2つです。

  • 描画オブジェクト(アートメッシュ、アートパス)
  • パーツ

パーツをエイリアスとした場合、パーツ内のオブジェクトをパーツ内の描画順に従って描画します。
パーツを参照先とするエイリアスを描画している間、パーツ外のオブジェクトが割り込んで描画されることはありません。

インスペクタの構成

エイリアスを選択したときのインスペクタパレットの表示は以下になります。

番号項目説明
1名前エイリアスの名前を変更することができます。日本語も使用可能です。
2IDIDを変更します。半角英数字および_(アンダーバー)のみ使用可能です。
3パーツ所属するパーツを変更します。
[Root Part]は、どのパーツにも所属していない状態です。
4参照先エイリアスが参照している描画オブジェクトもしくはパーツのIDを変更します。
モデルに存在しないオブジェクトのIDは入力できません。
参照先のオブジェクトが削除された場合は、エイリアスは参照なしの状態になり、この設定は空になります。
5描画順エイリアスの描画順を変更します。
テキストボックス内でドラッグすると数値を変更できます。
直接数値を入力したり、右の[・]ボタンをクリックすると表示されるポップアップから10または100ずつ指定することができます。
または、ビューエリアの左にある描画順編集バー上でドラッグしても変更することができます。
6オフスクリーン描画チェックを入れるとオフスクリーン描画が有効になります。
オフスクリーン描画については「オフスクリーン描画」を参照してください。

エイリアスの参照先が無効な状態

エイリアスはパーツを参照できる仕組み上、循環参照が発生することがあります。

例えば、下図のようにパーツを参照するエイリアスをそのパーツの中に入れた場合、描画が無限ループするような構造になってしまいます。
このような構造になった場合、描画の無限ループを避けるため、エイリアスは2回目以降の描画を行わず、パーツパレットやインスペクタパレットに無効状態であることがわかるように表示します。

パーツパレットのエラー表示インスペクパレットのエラー表示

また、エイリアスは参照先がないものは作成できないように、操作上は制限していますが、参照先のオブジェクトを削除するなどにより、参照なしの状態になることがあります。
この場合も、描画エラーで止まることないように、エイリアスによる描画はスキップされ、パーツパレットやインスペクタパレットに無効状態がわかるよう、先の循環参照と同じように表示します。

制限事項

alpha版では、一部未実装の機能や既知の不具合、その他懸念される項目について、特に明記すべき事柄を記載しています。
通常は、alpha版のバージョンアップにより制限が解除される予定ですが、保証するものではありません。

オフスクリーン描画

パフォーマンス:

オフスクリーン描画はメモリ内に描いてから転写するため、やや負荷が高い仕組みになっております。
このため、多用するとパフォーマンスに影響が出て、十分なFPSがでない可能性があります。
現在は、制限を設けておりませんが、今後、パフォーマンスの目安となるような制限を設けるか検討します。
合わせて、最適化の方も進めてまいります。

組み込み用ファイルの書き出し:

alpha版では、組み込み用ファイルの書き出しには対応していません。

オフスクリーン描画を有効にすると描画が少しずれる

オフスクリーン描画を有効にすると、変更前に比べて描画が少しずれる不具合を確認しております。
この不具合については、製品版までに修正いたします。

エイリアス

組み込み用ファイルの書き出し:

alpha版では、組み込み用ファイルの書き出しには対応していません。

CSVインポート・エクスポート

alpha版では、エイリアスのCSVインポート・エクスポートに対応していません。製品版で対応する予定です。

エイリアスの一部のプロパティがUndo/Redoできない:

エイリアスの不透明度、乗算色、スクリーン色について、Undo/Redoできない不具合を確認しております。
この不具合については、製品版までに修正いたします。

この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。