pixijs-blend-modes
PixiJS v8でブレンドモードを使用してオブジェクトを合成する際に活用するスキル。通常モード(normal, add, multiply, screen, erase, min, max)に加え、`pixi.js/advanced-blend-modes`を通じたcolor-burn、overlay、hard-lightなどの高度なモードやバッチ処理に適した描画順序も網羅。`blendMode`、additive、multiply、overlay、color-burn、advanced-blend-modes、glow、eraseなどのキーワードに反応して動作する。
description の原文を見る
Use this skill when compositing display objects with blend modes in PixiJS v8. Covers standard modes (normal, add, multiply, screen, erase, min, max), advanced modes via pixi.js/advanced-blend-modes (color-burn, overlay, hard-light, etc.), batch-friendly ordering. Triggers on: blendMode, additive, multiply, screen, overlay, color-burn, color-dodge, advanced-blend-modes, glow, erase.
SKILL.md 本文
container.blendMode を設定して、GPU ブレンド式(標準モード)またはフィルタベースの高度なモードでディスプレイオブジェクトをコンポジットします。ブレンドモードの遷移はレンダリングバッチを破るため、同じモードのシブリングをグループ化してください。
クイックスタート
const light = new Sprite(await Assets.load("light.png"));
light.blendMode = "add";
app.stage.addChild(light);
const shadow = new Sprite(await Assets.load("shadow.png"));
shadow.blendMode = "multiply";
app.stage.addChild(shadow);
import "pixi.js/advanced-blend-modes";
const overlay = new Sprite(await Assets.load("overlay.png"));
overlay.blendMode = "color-burn";
app.stage.addChild(overlay);
関連スキル: pixijs-filters(高度なモードはフィルタパイプラインを使用)、pixijs-performance(ブレンドモードのバッチ処理)、pixijs-color(色操作)。
コアパターン
標準ブレンドモード
標準モードは組み込まれており、GPU ブレンド式を直接使用します:
import { Sprite } from "pixi.js";
sprite.blendMode = "normal"; // 標準的なアルファコンポジット(ルートで実質的なデフォルト)
sprite.blendMode = "add"; // 加算(明るくする、グロー効果)
sprite.blendMode = "multiply"; // 乗算(暗くする、影効果)
sprite.blendMode = "screen"; // スクリーン(明るくする、ドッジ効果)
sprite.blendMode = "erase"; // レンダーターゲットからピクセルを消去
sprite.blendMode = "none"; // ブレンディングなし、目的地を上書き
sprite.blendMode = "inherit"; // 親から継承(これが実際のデフォルト値)
sprite.blendMode = "min"; // ソースと目的地の最小値を保持(WebGL2+ のみ)
sprite.blendMode = "max"; // ソースと目的地の最大値を保持(WebGL2+ のみ)
これらはハードウェアアクセラレーション対応で、コストが低くなります。フィルタは必要ありません。
高度なブレンドモード
高度なモードは明示的なインポートが必要で、拡張機能を登録します。WebGL レンダラーでは初期化時に useBackBuffer: true も必要です。そうでない場合、PixiJS は警告をログし、ブレンドは静かに標準モードに戻ります:
import "pixi.js/advanced-blend-modes";
import { Application, Sprite, Assets } from "pixi.js";
const app = new Application();
await app.init({ useBackBuffer: true }); // WebGL での高度なモードに必須
const texture = await Assets.load("overlay.png");
const overlay = new Sprite(texture);
overlay.blendMode = "color-burn";
利用可能な高度なモード:
| モード | 効果 |
|---|---|
color-burn | コントラストを増加させて暗くする |
color-dodge | コントラストを減少させて明るくする |
darken | 2 つのレイヤーの暗い方を保持 |
difference | 絶対差 |
divide | 下部を上部で割る |
exclusion | 差に類似、低コントラスト |
hard-light | 上部レイヤーに基づいて乗算またはスクリーン |
hard-mix | 高コントラスト閾値ブレンド |
lighten | 2 つのレイヤーの明るい方を保持 |
linear-burn | 加算と減算で暗くする |
linear-dodge | レイヤーを加算で合成 |
linear-light | 上部レイヤーに基づいてリニアバーンまたはドッジ |
luminosity | 上部の輝度、下部の色相・彩度 |
negation | 反転差 |
overlay | 下部レイヤーに基づいて乗算またはスクリーン |
pin-light | 明るさ比較に基づいて置換 |
saturation | 上部の彩度、下部の色相・輝度 |
soft-light | ソフトなオーバーレイ効果 |
subtract | 上部から下部を減算 |
vivid-light | 上部レイヤーに基づいてカラーバーンまたはドッジ |
color | 上部の色相と彩度、下部の輝度 |
高度なブレンドモードは標準モードと同じように blendMode プロパティで設定します。内部的にフィルタを使用するため、標準モードより多くのコストがかかります。
バッチ効率的な順序付け
異なるブレンドモードはレンダリングバッチを破ります。遷移を最小化するようにオブジェクトを順序付けます:
import { Container, Sprite } from "pixi.js";
const scene = new Container();
scene.addChild(screenSprite1); // 'screen'
scene.addChild(screenSprite2); // 'screen'
scene.addChild(normalSprite1); // 'normal'
scene.addChild(normalSprite2); // 'normal'
2 つの描画呼び出し。交互の順序(screen, normal, screen, normal)は 4 つを生成します。
よくある間違い
[HIGH] advanced-blend-modes 拡張機能のインポート忘れ
間違い:
import { Sprite } from "pixi.js";
sprite.blendMode = "color-burn"; // 静かに標準モードに戻る
正解:
import "pixi.js/advanced-blend-modes";
import { Sprite } from "pixi.js";
sprite.blendMode = "color-burn";
高度なブレンドモード(color-burn、overlay など)は拡張機能のインポートが必要です。インポートがない場合、標準モード(normal、add、multiply、screen)のみが利用可能です。無効なモードは静かに戻ります。
[MEDIUM] 隣接するオブジェクト間でのブレンドモード混在
異なるブレンドモードはレンダリングバッチを破ります。screen / normal / screen / normal は 4 つの描画呼び出しを生成し、screen / screen / normal / normal は 2 つを生成します。子要素を並べ替えて、同じブレンドモードのオブジェクトを隣接させます。
[HIGH] v7 BLEND_MODES enum の使用
間違い:
import { BLEND_MODES } from "pixi.js";
sprite.blendMode = BLEND_MODES.ADD; // ランタイムエラー: BLEND_MODES は未定義
正解:
sprite.blendMode = "add";
v8 では、BLEND_MODES は TypeScript の型のみ(文字列リテラルのユニオン)です。ランタイム enum エクスポートはないため、BLEND_MODES.ADD は undefined のプロパティにアクセスします。文字列形式を使用してください。
[HIGH] useBackBuffer なしでの高度なブレンドモード
間違い:
import "pixi.js/advanced-blend-modes";
await app.init({
/* no useBackBuffer */
});
sprite.blendMode = "color-burn"; // 警告をログ、戻る
正解:
import "pixi.js/advanced-blend-modes";
await app.init({ useBackBuffer: true });
sprite.blendMode = "color-burn";
高度なモードはバックバッファから読み込みます。WebGL では、バックバッファが有効でない場合、ブレンドは静かに戻ります。WebGPU はバックバッファを無条件で有効にします。
API リファレンス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pixijs
- リポジトリ
- pixijs/pixijs-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/pixijs/pixijs-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。