next2d-development-mcp 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -265,6 +265,7 @@ DisplayObjectは、Next2D Playerにおける全ての表示オブジェクトの
265
265
  | `visible` | boolean | 表示オブジェクトが可視かどうか(デフォルト: true) |
266
266
  | `x` | number | 親DisplayObjectContainerのローカル座標を基準にしたX座標 |
267
267
  | `y` | number | 親DisplayObjectContainerのローカル座標を基準にしたY座標 |
268
+ | `cacheAsBitmap` | Matrix \| null | ベクター描画やコンテナをビットマップとしてキャッシュするMatrix(nullで解除、Videoには適用不可) |
268
269
 
269
270
  ## メソッド (Methods)
270
271
 
@@ -377,6 +378,108 @@ const state = displayObject.getGlobalVariable("gameState");
377
378
  displayObject.clearGlobalVariable(); // 全てクリア
378
379
  ```
379
380
 
381
+ ### cacheAsBitmapの例
382
+
383
+ `cacheAsBitmap`はベクター描画やコンテナをビットマップとしてキャッシュし、2回目以降の描画でキャッシュを再利用することでパフォーマンスを向上させるプロパティです。
384
+
385
+ **適用対象クラス:**
386
+ - `Shape` — ベクター描画のキャッシュ
387
+ - `TextField` — テキスト描画のキャッシュ
388
+ - `Sprite` — コンテナとその子要素をまとめてキャッシュ
389
+ - `MovieClip` — コンテナとその子要素をまとめてキャッシュ
390
+
391
+ > ⚠️ `Video`には適用できません。Videoは画像サイズが固定されているため、キャッシュの効果がありません。
392
+
393
+ **Matrixの制限:**
394
+ Matrixにはスケール値(a, d)のみ設定できます。回転(b, c)や移動(tx, ty)は無視されます。
395
+
396
+ ```typescript
397
+ // ✅ 正しい使い方(スケールのみ設定)
398
+ shape.cacheAsBitmap = new Matrix(1, 0, 0, 1, 0, 0); // 等倍
399
+ shape.cacheAsBitmap = new Matrix(2, 0, 0, 2, 0, 0); // 2倍品質
400
+
401
+ // ❌ 回転・移動の値は無視される
402
+ shape.cacheAsBitmap = new Matrix(1, 0.5, 0.5, 1, 100, 200); // b, c, tx, tyは無視
403
+ ```
404
+
405
+ **利用用途の例:**
406
+
407
+ 1. **速度の速いアニメーション** — 高速で動くオブジェクトは視認性が低いため、キャッシュによる画質低下が目立たず、パフォーマンス向上が期待できます
408
+ 2. **静的な背景やUI部品** — 変化しないUI要素(パネル、装飾、アイコンなど)をキャッシュすることで毎フレームの再描画コストを削減できます
409
+ 3. **複雑なベクター描画** — パスが多い複雑なShapeをキャッシュすることで描画負荷を大幅に軽減できます
410
+
411
+ ```typescript
412
+ const { Shape, Sprite } = next2d.display;
413
+ const { Matrix } = next2d.geom;
414
+
415
+ // 等倍でキャッシュ(1.0基準 = displayObjectのscaleX/scaleYに対する等倍)
416
+ const shape = new Shape();
417
+ shape.graphics.beginFill(0xFF0000).drawCircle(50, 50, 40).endFill();
418
+ shape.cacheAsBitmap = new Matrix(1, 0, 0, 1, 0, 0);
419
+
420
+ // 2倍の解像度でキャッシュ(自身のスケールの2倍品質)
421
+ const hqShape = new Shape();
422
+ hqShape.graphics.beginFill(0x00FF00).drawRect(0, 0, 100, 80).endFill();
423
+ hqShape.cacheAsBitmap = new Matrix(2, 0, 0, 2, 0, 0);
424
+
425
+ // scaleX/scaleYが反映される(キャッシュ品質 = Matrix × 自身のスケール × stageスケール)
426
+ shape.scaleX = 2; // キャッシュ品質: 1 × 2 × stageScale
427
+ shape.scaleY = 2;
428
+
429
+ // 親のスケールはキャッシュ品質に影響しない(描画位置には反映される)
430
+ const container = new Sprite();
431
+ container.scaleX = 3;
432
+ container.scaleY = 3;
433
+ container.addChild(shape);
434
+
435
+ // ヒットテスト・幅・高さはベクター基準
436
+ const bounds = shape.getBounds(shape); // ベクターの境界を返す
437
+
438
+ // キャッシュを解除
439
+ shape.cacheAsBitmap = null;
440
+ ```
441
+
442
+ ### DisplayObjectContainerでのcacheAsBitmap
443
+
444
+ `Sprite`や`MovieClip`などの`DisplayObjectContainer`に対しても`cacheAsBitmap`を設定できます。
445
+ コンテナの全子要素をまとめてテクスチャにキャッシュし、以降のフレームではキャッシュされたテクスチャを再利用します。
446
+
447
+ ```typescript
448
+ const { Shape, Sprite, MovieClip } = next2d.display;
449
+ const { Matrix } = next2d.geom;
450
+
451
+ // 複数の子要素を持つSprite
452
+ const sprite = new Sprite();
453
+ const rect = new Shape();
454
+ rect.graphics.beginFill(0xFF0000).drawRect(0, 0, 100, 80).endFill();
455
+ sprite.addChild(rect);
456
+ const circle = new Shape();
457
+ circle.graphics.beginFill(0x00FF00).drawCircle(50, 40, 30).endFill();
458
+ sprite.addChild(circle);
459
+
460
+ // コンテナ全体をビットマップキャッシュ
461
+ sprite.cacheAsBitmap = new Matrix(1, 0, 0, 1, 0, 0);
462
+
463
+ // MovieClipにも同様に適用可能
464
+ const mc = new MovieClip();
465
+ mc.cacheAsBitmap = new Matrix(1, 0, 0, 1, 0, 0);
466
+
467
+ // キャッシュを解除(次フレームから通常描画に戻る)
468
+ sprite.cacheAsBitmap = null;
469
+ ```
470
+
471
+ **キャッシュの動作:**
472
+ - 先祖や自身のスケールが変更されるとキャッシュが無効化され、次フレームで再生成されます
473
+ - 位置(x, y)の変更ではキャッシュは維持され、描画位置のみ更新されます
474
+ - スケールが頻繁に変化するアニメーション中はキャッシュが毎フレーム再生成されるため、アニメーション完了後の静的な状態で最も効果を発揮します
475
+
476
+ **注意事項:**
477
+ - **Matrixにはスケール値のみ設定可能**です(回転・移動は無視されます)
478
+ - **Videoには適用できません**(固定サイズの画像データのため)
479
+ - キャッシュ中は子要素の変更(追加・削除・プロパティ変更)が画面に反映されません
480
+ - `stage.rendererScale`が変更されるとキャッシュが自動的に無効化されます
481
+ - `filter`と`cacheAsBitmap`を同時に設定した場合、`cacheAsBitmap`が優先されます
482
+
380
483
  ## 関連項目
381
484
 
382
485
  - [MovieClip](/ja/reference/player/movie-clip)
@@ -727,6 +830,7 @@ classDiagram
727
830
  | `mouseChildren` | `boolean` | オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断する |
728
831
  | `mask` | `DisplayObject \| null` | 呼び出し元の表示オブジェクトをマスクする指定されたマスクオブジェクト |
729
832
  | `isContainerEnabled` | `boolean` | コンテナの機能を所持しているかを返却(読み取り専用) |
833
+ | `cacheAsBitmap` | `Matrix \| null` | ベクター描画やコンテナをビットマップとしてキャッシュするMatrix(nullで解除) |
730
834
 
731
835
  ## メソッド
732
836
 
@@ -1160,7 +1264,8 @@ stage.addChild(frontShape);
1160
1264
 
1161
1265
  ```typescript
1162
1266
  // 複雑な図形をビットマップとしてキャッシュ
1163
- shape.cacheAsBitmap = true;
1267
+ const { Matrix } = next2d.geom;
1268
+ shape.cacheAsBitmap = new Matrix(1, 0, 0, 1, 0, 0);
1164
1269
  ```
1165
1270
 
1166
1271
  ## Graphics クラス
@@ -1739,6 +1844,7 @@ classDiagram
1739
1844
  | `mouseY` | number | Yes | - | 対象のDisplayObjectの基準点からのy軸の位置(ピクセル) |
1740
1845
  | `dropTarget` | Sprite \| null | Yes | null | スプライトのドラッグ先またはドロップされた先の表示オブジェクト |
1741
1846
  | `isMask` | boolean | No | false | マスクとしてDisplayObjectにセットされているかを示します |
1847
+ | `cacheAsBitmap` | Matrix \| null | No | null | ベクター描画やコンテナをビットマップとしてキャッシュするMatrix(nullで解除) |
1742
1848
 
1743
1849
  ## メソッド
1744
1850
 
@@ -1992,6 +2098,12 @@ classDiagram
1992
2098
  | `xScrollShape` | Shape | xスクロールバーの表示用のShapeオブジェクト(読み取り専用) |
1993
2099
  | `yScrollShape` | Shape | yスクロールバーの表示用のShapeオブジェクト(読み取り専用) |
1994
2100
 
2101
+ ### DisplayObjectから継承されるプロパティ
2102
+
2103
+ | プロパティ | 型 | 説明 |
2104
+ |-----------|------|------|
2105
+ | `cacheAsBitmap` | Matrix \| null | テキスト描画をビットマップとしてキャッシュするMatrix(nullで解除) |
2106
+
1995
2107
  ## メソッド
1996
2108
 
1997
2109
  | メソッド | 戻り値 | 説明 |
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "next2d-development-mcp",
3
3
  "displayName": "Next2D Development MCP",
4
- "version": "1.1.2",
4
+ "version": "1.1.4",
5
5
  "description": "MCP server for Next2D application development assistance",
6
6
  "type": "module",
7
7
  "author": "Toshiyuki Ienaga <ienaga@next2d.app>",
@@ -48,20 +48,20 @@
48
48
  ]
49
49
  },
50
50
  "dependencies": {
51
- "@modelcontextprotocol/sdk": "^1.27.1"
51
+ "@modelcontextprotocol/sdk": "^1.29.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@eslint/js": "^10.0.1",
55
- "@types/node": "^25.3.1",
56
- "@types/vscode": "^1.109.0",
57
- "@typescript-eslint/eslint-plugin": "^8.56.1",
58
- "@typescript-eslint/parser": "^8.56.1",
55
+ "@types/node": "^25.5.2",
56
+ "@types/vscode": "^1.110.0",
57
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
58
+ "@typescript-eslint/parser": "^8.58.0",
59
59
  "@vscode/vsce": "^3.7.1",
60
- "eslint": "^10.0.2",
60
+ "eslint": "^10.2.0",
61
61
  "eslint-plugin-unused-imports": "^4.4.1",
62
- "globals": "^17.3.0",
63
- "typescript": "^5.9.3",
64
- "vitest": "^4.0.18"
62
+ "globals": "^17.4.0",
63
+ "typescript": "^6.0.2",
64
+ "vitest": "^4.1.2"
65
65
  },
66
66
  "engines": {
67
67
  "node": ">=22.0.0",