pixijs-scene-mesh
PixiJS v8 でカスタムジオメトリをレンダリングする際に使用するスキルです。`MeshGeometry`(positions・uvs・indices・topology)を用いた`Mesh`、フレーム単位の頂点アニメーション向け`MeshSimple`、分割変形用`MeshPlane`、パスに沿ったテクスチャ描画の`MeshRope`、2.5D表現向けの`PerspectiveMesh`を網羅しています。各クラスのコンストラクタオプションや`setCorners`など、Meshシステム全般の実装に対応します。
description の原文を見る
Use this skill when rendering custom geometry in PixiJS v8. Covers Mesh with MeshGeometry (positions, uvs, indices, topology), MeshSimple for per-frame vertex animation, MeshPlane for subdivided deformation, MeshRope for path-following textures, PerspectiveMesh for 2.5D corners. Triggers on: Mesh, MeshGeometry, MeshSimple, MeshPlane, MeshRope, PerspectiveMesh, positions, uvs, indices, topology, setCorners, constructor options, MeshOptions, MeshPlaneOptions, MeshRopeOptions, SimpleMeshOptions, PerspectivePlaneOptions.
SKILL.md 本文
メッシュは、テクスチャまたはカスタムシェーダーを使用して任意の 2D (またはパースペクティブ投影された) ジオメトリをレンダリングします。PixiJS には基本的な Mesh クラスに加えて、一般的な形状用の 4 つの特殊なサブクラスが付属しています: MeshSimple、MeshPlane、MeshRope、および PerspectiveMesh。あなたの形状に合わせてサブクラスを選択してください。頂点レベルの完全な制御またはカスタムシェーダーが必要な場合は、基本的な Mesh にドロップします。
pixijs-scene-core-concepts の理解を前提としています。メッシュはリーフノードです。子を持つことはできません。複数のメッシュをグループ化するには、Container でラップします。
クイックスタート
const texture = await Assets.load("pattern.png");
const geometry = new MeshGeometry({
positions: new Float32Array([0, 0, 100, 0, 100, 100, 0, 100]),
uvs: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]),
indices: new Uint32Array([0, 1, 2, 0, 2, 3]),
topology: "triangle-list",
});
const mesh = new Mesh({
geometry,
texture,
roundPixels: false,
});
app.stage.addChild(mesh);
すべての Mesh サブクラスは単一のオプションオブジェクトを受け取ります。基本的な Mesh は geometry が必須です。サブクラス (MeshSimple、MeshPlane、MeshRope、PerspectiveMesh) はジオメトリを内部的に構築し、代わりに texture が必須です。フィールド一覧の詳細は各バリアントのリファレンスを参照してください。
バリアント
| バリアント | 用途 | トレードオフ | リファレンス |
|---|---|---|---|
Mesh | 完全な制御、カスタムジオメトリ、カスタムシェーダー | 自分で MeshGeometry を構築する必要があります | references/mesh.md |
MeshSimple | フレームごとの頂点アニメーション付きのシンプルなテクスチャ形状 | シンテティック ラッパー。頂点バッファを自動更新 | references/mesh-simple.md |
MeshPlane | 変形エフェクト用の細分化されたテクスチャ矩形 | 固定トポロジー。verticesX/verticesY が密度を制御 | references/mesh-plane.md |
MeshRope | ポリラインパスに沿うテクスチャ | 各ポイントで折り曲がります。スムーズなカーブには多くのポイントが必要 | references/mesh-rope.md |
PerspectiveMesh | パースペクティブコーナーを持つ 2D プレーン | 真の 3D ではありません。UV レベルのパースペクティブ補正のみ | references/mesh-perspective.md |
どれを使うか
- 「テクスチャ付きの四角形が必要」 →
Sprite(pixijs-scene-spriteを参照)。メッシュではありません。メッシュは Sprite では表現できない場合のためです。 - 「テクスチャ付き矩形を変形させたい」 →
MeshPlane。verticesX/verticesYを目的の滑らかさに設定します。 - 「ポイントに沿うロープまたはトレイルが必要」 →
MeshRope。widthで厚さを制御します。textureScale: 0で引き伸ばすか、> 0で繰り返します。 - 「傾いた 2D カードまたは床が必要」 →
PerspectiveMesh。4 つのコーナーポジションを渡します。真の 3D ではありませんが、2.5D エフェクトには十分です。 - 「フレームごとにアニメーション化された頂点でシンプルな形状が必要」 →
MeshSimple。バッファ更新の処理を自動で行います。 - 「カスタムシェーダーまたは異常なジオメトリが必要」 → 手動で構築した
MeshGeometryと基本的なMesh。シェーダーの作成についてはpixijs-custom-renderingを参照してください。 - 「真の 3D レンダリングが必要」 → 専用の 3D ライブラリを使用してください。
PerspectiveMeshは UV レベルでパースペクティブをシミュレートしますが、深度バッファはありません。
クイックコンセプト
MeshGeometry が頂点データを所有
MeshGeometry は positions、uvs、indices、および topology を保持します。複数の Mesh インスタンス間で 1 つのジオメトリを共有できます。ポジションは参照カウントされます。
バッチング
メッシュは MeshGeometry を使用し、カスタムシェーダーがなく、深度またはカリング状態がなく、'auto' ルール (batchMode = 'auto' および ≤100 頂点) の場合のみバッチ処理されます (他のドロー呼び出しと結合)。カスタムシェーダーは常に独立してレンダリングされます。
トポロジーはメッシュではなくジオメトリ上にあります
new MeshGeometry({ topology: 'triangle-strip' })。トポロジーはジオメトリプロパティです。デフォルトは 'triangle-list' です。データが異なる方法で整理されている場合は明示的に設定してください。
追加オプション
new MeshGeometry({ shrinkBuffersToFit: true })— GPU バッファストレージを作成時の実際の頂点数にトリミングします。大規模な 1 回限りのジオメトリを供給する場合に使用します。Mesh.containsPoint(point)— トポロジーを認識したヒットテスト。三角形をウォークします。カスタムレイアウトを含む任意のMeshGeometryで機能します。new Mesh({ geometry, state })— ブレンド、深度、およびカリングを制御するStateオブジェクトを渡します。深度またはカリングフラグが設定されている場合、バッチ処理は自動的に無効になります。省略された場合、デフォルトはState.for2d()です。
よくあるエラー
[高] 古い SimpleMesh / SimplePlane / SimpleRope 名の使用
誤り:
import { SimpleRope } from "pixi.js";
const rope = new SimpleRope(texture, points);
正解:
import { MeshRope } from "pixi.js";
const rope = new MeshRope({ texture, points });
v8 で名前変更: SimpleMesh → MeshSimple、SimplePlane → MeshPlane、SimpleRope → MeshRope。すべてオプションオブジェクトコンストラクタに切り替わりました。
[高] MeshGeometry の位置付き引数
誤り:
const geom = new MeshGeometry(vertices, uvs, indices);
正解:
const geom = new MeshGeometry({
positions: vertices,
uvs,
indices,
topology: "triangle-list",
});
v8 はオプションオブジェクトを使用します。プロパティは positions であり、vertices ではありません。vertices 名は MeshSimple でのみ使用されます。
[中] メッシュに子を追加
誤り:
mesh.addChild(otherMesh);
正解:
const group = new Container();
group.addChild(mesh, otherMesh);
Mesh は allowChildren = false を設定します。子を追加するとデプリケーション警告がログされます。メッシュを単純な Container 内にグループ化してください。
API リファレンス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pixijs
- リポジトリ
- pixijs/pixijs-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/pixijs/pixijs-skills / ライセンス: MIT
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。