Back to Node List

List Map

list_map

Maps each list item through a constrained expression

Draft
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Input Ports

NameTypeDescription
リスト
list
List<Any>
Required
変換元のリストです
X
x
Number
必要なら使える数値変数 x です
Y
y
Number
必要なら使える数値変数 y です
Z
z
Number
必要なら使える数値変数 z です
W
w
Number
必要なら使える数値変数 w です
Vec
vec
Vec2
必要なら使える Vec2 変数です
フラグ
flag
Bool
必要なら使える Bool 変数です

Output Ports

NameTypeDescription
リスト
list
List<Float>
式を適用した後のリストです
要素数
count
Int
変換した要素数です

Parameters

NameTypeDefaultRangeDescription / Options
入力要素の型
item_type
Enum
Any

入力リスト要素の期待型です

  • 数値(汎用)Number
    Float と Int の両方を扱える数値リストです
  • 小数Float
    小数値のリストです
  • 整数Int
    整数値のリストです
  • ON/OFFBool
    ON/OFF のリストです
  • Color
    色のリストです
  • 文字Text
    文字のリストです
  • 画像Image
    画像のリストです
  • パスPath
    パスのリストです
  • ピクセル線PixelLine
    ピクセル線のリストです
  • Vec2Vec2
    2D ベクトルのリストです
  • Vec3Vec3
    3D ベクトルのリストです
  • OKLCH補正OklchAdjust
    OKLCH基準の明るさ・鮮やかさ・色相・透明度の補正セットのリストです
  • パレットPalette
    パレットのリストです
  • リストList
    リストのリストを作ります
  • マップMap
    マップのリストです
  • 文字レイアウトTextLayout
    文字レイアウトのリストです
  • ピクセルパッチPixelPatch
    ピクセルパッチのリストです
  • 記録レイヤーRecordedLayer
    記録レイヤーのリストです
  • アニメーションクリップAnimationClip
    アニメーションクリップのリストです
  • AsepriteファイルAsepriteFile
    Aseprite document のリストです
  • ルールグリッドRuleGridSpec
    RuleGridSpec のリストです
  • ルールタイルセットRuleTileSet
    RuleTileSet のリストです
  • ルールタイル素材RuleTileAsset
    RuleTileAsset のリストです
  • ルールセットRuleSet
    RuleSet のリストです
  • ルールキャンバスRuleCanvas
    RuleCanvas のリストです
  • 解決済みルール配置RuleResolved
    RuleResolved のリストです
  • ルールタイルアトラスRuleTileAtlas
    RuleTileAtlas のリストです
  • 9スライスNineSlice
    9スライスUI素材のリストです
  • 2D FX 状態FxState2D
    FxState2D のリストです
  • スプライトシートSpriteSheet
    スプライトシートのリストです
  • バリアントスナップショットVariantSnapshot
    variant snapshot のリストです
  • バリアントレシピVariantRecipe
    variant recipe のリストです
  • バリアントレコードVariantRecord
    variant record のリストです
  • IsoItemIsoItem
    IsoItem のリストです
  • IsoSceneIsoScene
    IsoScene のリストです
  • IsoWorldIsoWorld
    IsoWorld のリストです
  • Any(上級者向け)Any
    上級者向けです。どの型でも混ぜられますが、取り出した値の型が下流ノードの期待と合わないと実行時エラーになります。
出力要素の型
output_type
Enum
Float

式の結果として作る要素型です

  • 小数Float
    各要素を小数へ変換します
  • 真偽値Bool
    各要素を真偽値へ変換します
  • Vec2Vec2
    各要素を Vec2 へ変換します
expression
Text
item

使える名前: item, index, count, x, y, z, w, vec, vx, vy, flag, time, frame, total_frames。Map 要素なら各キー名もそのまま使えます。 記述例: - item * 2 - item + index - item * x - value < 0.5 - a + b 入力ピンがつながっている時は、Inspector の既定値より入力ピンが優先されます。

X
x
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う x の値です

Y
y
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う y の値です

Z
z
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う z の値です

W
w
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う w の値です

Vec X
vec_x
Float
0-10000–10000 / step 0.01

vec 入力ピンが未接続の時に使う X 成分です

Vec Y
vec_y
Float
0-10000–10000 / step 0.01

vec 入力ピンが未接続の時に使う Y 成分です

フラグ
flag
Bool
false

flag 入力ピンが未接続の時に使う真偽値です

まず大事なこと

  • expression は、リストの各要素ごとに1回ずつ評価されます
  • つまり list = [1, 2, 3]expression = item * 2 なら、
    • 1個目では 1 * 2
    • 2個目では 2 * 2
    • 3個目では 3 * 2 が順番に実行されます

使える名前一覧

名前 意味
item 今見ている要素そのもの item * 2
index 何番目の要素か。0始まりです item + index
count 全体の要素数です index / count
x, y, z, w 補助入力ピン、または Inspector で与える数値です item * x
vec, vx, vy 補助 Vec2 入力、または Inspector の vec_x, vec_y です length(vec)
flag 補助 Bool 入力、または Inspector の既定値です if(flag, item, 0)
time, frame, total_frames 評価時の時刻情報です sin(time * pi * 2)

Map 要素の時

要素が Map の時は、そのキー名をそのまま式に書けます。

たとえば要素がこうなら:

{ "index": 0, "value": 0.25 }

式の中でそのままこう書けます。

value < 0.5
index + 1

よくある入力ごとの読み方:

入力元 要素の形 式で使える名前
普通の数値リスト 1, 2, 3 item, index, count
ListEnumerate { "index": 0, "item": 10 } index, item
ListZip { "index": 0, "a": 1, "b": 10 } index, a, b
CartesianProduct 複数キーの Map 各キー名をそのまま使えます

よく使う式

  • item * 2
    • 数値を2倍します
  • item + index
    • 要素番号ぶんだけ値をずらします
  • item * x
    • 外から与えた係数で各要素をまとめて変換します
  • value < 0.5
    • Map の value を見て Bool を作ります
  • a + b
    • ListZip の2本を足します
  • vec2(item, index)
    • 数値リストから Vec2 リストを作ります

具体例

例1: 数値を2倍にする

入力:

[1, 2, 3]

設定:

  • item_type = Number
  • output_type = Float
  • expression = item * 2

出力:

list = [2.0, 4.0, 6.0]
count = 3

例2: Map を Bool に変換する

入力:

[
  { "index": 0, "value": 0.25 },
  { "index": 1, "value": 0.75 }
]

設定:

  • item_type = Map
  • output_type = Bool
  • expression = value < 0.5 && index == 0

出力:

list = [true, false]
count = 2

例3: ListZip の結果を足し算する

入力:

[
  { "index": 0, "a": 1, "b": 10 },
  { "index": 1, "a": 2, "b": 20 }
]

設定:

  • item_type = Map
  • output_type = Float
  • expression = a + b

出力:

list = [11.0, 22.0]
count = 2

例4: 変数や補助入力を使ってまとめて倍率を変える

入力:

[1, 2, 3]

設定:

  • item_type = Number
  • output_type = Float
  • expression = item * x
  • x = 10

出力:

list = [10.0, 20.0, 30.0]
count = 3

x は Inspector で直接入れてもよいですし、Variable Refx 入力ピンへつないでも使えます。

どういう時に使うか

  • range / seed / zip / enumerate の結果を別の値列へ変換したい時
  • BatchRender へ渡す前に、値候補を軽く加工したい時

注意

  • v1 は constrained expression です
  • 任意 subgraph を各要素に回すノードではありません
  • Map 要素のキー名と x, y, z, w, vec, flag が同名の時は、補助入力側の名前が優先されます
Back to Node List
List Map — PixPipeline Node Reference