コンテンツにスキップ

カラーグリッドの可視化

このドキュメントで説明するスクリプトは、MTP のカラーグリッドの SVG を出力します。これは、グリッドと座標系で解説した空間モデルと強度モデルを可視化し、将来予定するインタラクティブな生成 UIへ展開するためのものです。

複数の SVG が public/images/grids/ に置かれています。package.jsonscripts には build:gridbuild:grid-10x10build:grid-28x28build:grid-37x37 が定義されており、scripts/mtp_grid_generator.py からパスを手で書き換えずに再生成できます。

ファイル名の数字は、一辺あたりの 線(格子線の本数) に対応します。N×N セルの市松は (N+1)×(N+1) 本の線で囲まれるため、既定の 18×18 セルは mtp-grid-19x19.svg になります。

プレビュー線(一辺)セルパス
MTP カラーグリッド(37×37 線、36×36 セル)37×3736×36public/images/grids/mtp-grid-37x37.svgbuild:grid-37x37
MTP カラーグリッド(28×28 線、27×27 セル)28×2827×27public/images/grids/mtp-grid-28x28.svgbuild:grid-28x28
MTP カラーグリッド(19×19 線、18×18 セル)19×1918×18public/images/grids/mtp-grid-19x19.svgbuild:grid
MTP カラーグリッド(10×10 線、9×9 セル)10×109×9public/images/grids/mtp-grid-10x10.svgbuild:grid-10x10

ジェネレータは空間モデルと配色セットを 1 組だけ使い、プリセット間ではグリッドのサイズ(とセルあたりのピクセル幅)だけが変わります。既定の成果物は 18×18 セル のグリッドです(19×19 の線の交点に挟まれたセル部分)。

  • セルの色色相環 に由来します。各セルについて、中心からの角度によって決まります。
  • 不透明度 / 明るさチェビシェフ距離(Volcano モデル)に由来します。距離 6 で強度が最大になり、中心と外枠へ向かうにつれて弱まります。
  • 色付きグリッドの下には、透明度を示すための 市松模様(チェッカーボード)のレイヤー が描かれます。背景矩形、市松模様の色、配色ペアは、スクリプト冒頭で定義されています。

原色や色相環の色の厳格な指定は必須ではありませんが、このスクリプトはグリッドの配色関係を守るように設計されています。inner_paletteouter_palette は、1 枚の SVG 内での内側と外側の色アンカーです。

リポジトリのルートで次を実行します。

Terminal window
npm run build:grid
npm run build:grids

npm スクリプトは、対応する public/images/grids/ 配下のファイルへ直接書き出します。標準出力へ生の SVG を出したい場合は、Python スクリプトを直接呼び出します。

Terminal window
python3 scripts/mtp_grid_generator.py --grid-28x28
python3 scripts/mtp_grid_generator.py --grid-37x37

予定している MTP Interactive UI では、生成された 19×19 の SVG カラーグリッドを中央の座標面として使います。以下の画像は、グリッドを中央に配置し、周囲に座標ラベルを加えたライト / ダークの UI プレビューです。

ライトダーク
MTP Interactive UI のグリッドプレビュー(ライトモード)MTP Interactive UI のグリッドプレビュー(ダークモード)

この UI プレビューの中央にある画像は、scripts/mtp_grid_generator.py から既定の mtp-grid-19x19.svg として生成されたものです。UI フレーム側で列ラベル AS と行ラベル 119 を加えているため、同じ表示を /mtp <column:row> の位置確認用シートとしても利用できます。

たとえば、J:10 はニュートラルな中心を示し、J:4D:16P:16 のような座標は、ラベル付きグリッド上で位置を確認してから /mtp に渡せます。