マスク

マスクは要素を切り取ったり形を整えたりするために使用されます。maskDataプロパティは、画像、動画、およびその他の視覚要素に適用され、表示領域を制御します。

マスクの種類

  • crop: シンプルな長方形の切り取り
  • shape: 形状ベースのマスク(楕円、長方形、星、ポリゴンなど)
  • text: テキストベースのマスク
  • path: カスタムパスマスク

クロップマスク

プロパティタイプ必須値の範囲説明
typestringtrue-cropマスクの種類。
centerXnumbertrue--マスク中心の水平位置(ピクセル単位)。
centerYnumbertrue--マスク中心の垂直位置(ピクセル単位)。
widthnumbertrue--マスクの幅(ピクセル単位)。
heightnumbertrue--マスクの高さ(ピクセル単位)。
inversebooleanfalse--マスクを反転するかどうか(切り抜き効果を作成)。
imageElement.json
{
  "id": "0a2db861-19c0-47d0-9e71-5a56a357e2e9",
  "type": "Image",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": -58.59302855661144,
  "y": 48.394393104046685,
  "blendMode": "normal",
  "anchorX": 1051.1350332909515,
  "anchorY": 2519.1996978825114,
  "rotation": 0,
  "maskData": {
      "type": "crop",
      "centerX": 1051.1350332909515,
      "centerY": 2519.1996978825114,
      "width": 2121.862754282655,
      "height": 2949.902587890625
  },
  "scaleX": 0.23356401384083045,
  "scaleY": 0.23356401384083045,
  "alpha": 1,
  "skewX": 0,
  "skewY": 0,
  "keyframes": [],
  "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
  "ext": "jpeg"
}

シェイプマスク

プロパティタイプ必須値の範囲説明
typestringtrue-shapeマスクの種類。
shapeTypestringtrue-SHAPE_RECT | SHAPE_ELLIPSE | SHAPE_STAR | SHAPE_POLYGON | SHAPE_PATHマスクの形状の種類。
xnumbertrue--マスクの水平位置(ピクセル単位)。
ynumbertrue--マスクの垂直位置(ピクセル単位)。
scaleXnumbertrue--マスクの水平スケール。
scaleYnumbertrue--マスクの垂直スケール。
rotationnumbertrue--マスクの回転(ラジアン単位)。
widthnumberfalse--マスクの幅(ピクセル単位)。
heightnumberfalse--マスクの高さ(ピクセル単位)。
fillstringtrue--マスクの塗りつぶし色(16進数形式)。
viewobjecttrue--マスクのビュー変換プロパティ。
pointNumnumberfalse--ポリゴンまたは星形のポイント数。
innerRadiusnumberfalse--星形の内半径(外半径に対する相対値)。
outerRadiusnumberfalse--星形の外半径。
cornerRadiusnumberfalse--丸みを帯びた長方形形状のコーナー半径。
inversebooleanfalse--マスクを反転するかどうか(切り抜き効果を作成)。
imageElement.json
{
  "id": "0a2db861-19c0-47d0-9e71-5a56a357e2e9",
  "type": "Image",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": -58.59302855661144,
  "y": 48.394393104046685,
  "blendMode": "normal",
  "anchorX": 1051.1350332909515,
  "anchorY": 2519.1996978825114,
  "rotation": 0,
  "maskData": {
      "type": "shape",
      "shapeType": "SHAPE_ELLIPSE",
      "x": 1935.8609161703698,
      "y": 2120.7135441063306,
      "scaleX": 1,
      "scaleY": 1,
      "rotation": 0,
      "width": 2604,
      "height": 2604,
      "fill": "#ffffff",
      "view": {
          "scaleX": 1,
          "scaleY": 1,
          "x": 0,
          "y": 0,
          "width": 2604,
          "height": 2604,
          "rotation": 0,
          "anchorX": 0,
          "anchorY": 0
      }
  },
  "scaleX": 0.23356401384083045,
  "scaleY": 0.23356401384083045,
  "alpha": 1,
  "skewX": 0,
  "skewY": 0,
  "keyframes": [],
  "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
  "ext": "jpeg"
}

テキストマスク

テキストをマスクとして使用し、要素をテキストの形に切り取ります。

プロパティタイプ必須値の範囲説明
typestringtrue-textマスクの種類。
xnumbertrue--テキストマスクの水平位置(ピクセル単位)。
ynumbertrue--テキストマスクの垂直位置(ピクセル単位)。
rotationnumbertrue--テキストマスクの回転(ラジアン単位)。
scalenumbertrue--テキストマスクのスケール。
fontSizenumbertrue--テキストのフォントサイズ(ピクセル単位)。
fontFamilystringtrue--フォントファミリ名。
textstringtrue--テキストの内容。
isBoldbooleantrue--テキストが太字かどうか。
isItalicbooleantrue--テキストがイタリックかどうか。
letterSpacingnumbertrue--文字間隔(ピクセル単位)。
inversebooleanfalse--マスクを反転するかどうか(切り抜き効果を作成)。

パスマスク

カスタムベクターパス(ベジェ曲線)をマスクとして使用します。

プロパティタイプ必須値の範囲説明
typestringtrue-pathマスクの種類。
cnumbertrue--パスが閉じているか(1)または開いているか(0)。閉じたパスは塗りつぶし可能です。
varraytrue--パスの頂点ポイントの配列。各ポイントは[x, y]の配列です。
iarraytrue--各頂点のための入射接線制御ポイントの配列。
oarraytrue--各頂点のための出射接線制御ポイントの配列。
inversebooleanfalse--マスクを反転するかどうか(切り抜き効果を作成)。

重要な注意事項

  • 座標系: すべての位置(x, y, centerX, centerY)は要素の元のサイズに対してピクセル単位です。
  • 回転単位: 回転値はラジアンであり、度ではありません。度をラジアンに変換するには:radians = degrees * Math.PI / 180
  • 逆マスク: inverse: trueの場合、マスクは切り抜き効果を生成します - 要素はマスクされた領域以外のすべての場所で表示されます。
  • マスクと領域:
    • maskData要素自体を切り取ります(ノードレベルのクリッピング)
    • filterAgent.regionフィルター効果が適用される場所を制限します(エフェクトレベルのマスキング)
  • パフォーマンス: 複雑なマスク(特に多くの頂点を持つパスマスク)はレンダリング性能に影響を与える可能性があります。