parseEffectConfig
parseEffectConfig(
input): {emitters: [{capacity:number;duration:number;durationSpread:number;emission: {rate:number| {points: {tangent:number;time:number;value:number; }[]; };rateSpread:number;shape: {type:"point"; } | {diameter:number| {points: {tangent:number;time:number;value:number; }[]; };diameterSpread:number;type:"circle"; } | {height:number| {points: {tangent:number;time:number;value:number; }[]; };heightSpread:number;type:"box";width:number| {points: {tangent:number;time:number;value:number; }[]; };widthSpread:number; } | {height:number| {points: {tangent:number;time:number;value:number; }[]; };heightSpread:number;type:"cone2d";width:number| {points: {tangent:number;time:number;value:number; }[]; };widthSpread:number; }; };id:string;inheritVelocity:number;initial: {alpha:number| {points: {tangent:number;time:number;value:number; }[]; };alphaSpread:number;angularVelocity:number| {points: {tangent:number;time:number;value:number; }[]; };angularVelocitySpread:number;blue:number| {points: {tangent:number;time:number;value:number; }[]; };blueSpread:number;direction:number;green:number| {points: {tangent:number;time:number;value:number; }[]; };greenSpread:number;lifetime:number| {points: {tangent:number;time:number;value:number; }[]; };lifetimeSpread:number;red:number| {points: {tangent:number;time:number;value:number; }[]; };redSpread:number;rotation:number| {points: {tangent:number;time:number;value:number; }[]; };rotationSpread:number;size:number| {points: {tangent:number;time:number;value:number; }[]; };sizeSpread:number;speed:number| {points: {tangent:number;time:number;value:number; }[]; };speedSpread:number;spread:number;stretchX:number| {points: {tangent:number;time:number;value:number; }[]; };stretchXSpread:number;stretchY:number| {points: {tangent:number;time:number;value:number; }[]; };stretchYSpread:number; };modifiers: ({magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"acceleration"; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"drag";useDirection:boolean; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;spread:number;type:"radial";x:number;y:number; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;rotation:number;spread:number;type:"vortex";x:number;y:number; })[];orientation:"default"|"initial-direction"|"movement-direction"|"angular-velocity";overLifetime: {alpha:number| {points: {tangent:number;time:number;value:number; }[]; };angularVelocity:number| {points: {tangent:number;time:number;value:number; }[]; };blue:number| {points: {tangent:number;time:number;value:number; }[]; };green:number| {points: {tangent:number;time:number;value:number; }[]; };red:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number| {points: {tangent:number;time:number;value:number; }[]; };scale:number| {points: {tangent:number;time:number;value:number; }[]; };stretchX:number| {points: {tangent:number;time:number;value:number; }[]; };stretchY:number| {points: {tangent:number;time:number;value:number; }[]; }; };playMode:"once"|"loop";position: {x:number;y:number; };rendering: {blendMode:"normal"|"add"|"multiply"|"screen";tint?: {alpha:number;blue:number;green:number;red:number; }; };rotation:number;scale:number;seed:number;space:"world"|"local";startDelay:number;startDelaySpread:number;startOffset:number;stretchWithVelocity:boolean; }, …{ capacity: number; duration: number; durationSpread: number; emission: { rate: number | { points: { tangent: number; time: number; value: number }[] }; rateSpread: number; shape: { type: “point” } | { diameter: number | { points: { tangent: number; time: number; value: number }[] }; diameterSpread: number; type: “circle” } | { height: number | { points: { tangent: number; time: number; value: number }[] }; heightSpread: number; type: “box”; width: number | { points: { tangent: number; time: number; value: number }[] }; widthSpread: number } | { height: number | { points: { tangent: number; time: number; value: number }[] }; heightSpread: number; type: “cone2d”; width: number | { points: { tangent: number; time: number; value: number }[] }; widthSpread: number } }; id: string; inheritVelocity: number; initial: { alpha: number | { points: { tangent: number; time: number; value: number }[] }; alphaSpread: number; angularVelocity: number | { points: { tangent: number; time: number; value: number }[] }; angularVelocitySpread: number; blue: number | { points: { tangent: number; time: number; value: number }[] }; blueSpread: number; direction: number; green: number | { points: { tangent: number; time: number; value: number }[] }; greenSpread: number; lifetime: number | { points: { tangent: number; time: number; value: number }[] }; lifetimeSpread: number; red: number | { points: { tangent: number; time: number; value: number }[] }; redSpread: number; rotation: number | { points: { tangent: number; time: number; value: number }[] }; rotationSpread: number; size: number | { points: { tangent: number; time: number; value: number }[] }; sizeSpread: number; speed: number | { points: { tangent: number; time: number; value: number }[] }; speedSpread: number; spread: number; stretchX: number | { points: { tangent: number; time: number; value: number }[] }; stretchXSpread: number; stretchY: number | { points: { tangent: number; time: number; value: number }[] }; stretchYSpread: number }; modifiers: ({ magnitude: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number; spread: number; type: “acceleration” } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number; spread: number; type: “drag”; useDirection: boolean } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; maxDistance: number; spread: number; type: “radial”; x: number; y: number } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; maxDistance: number; rotation: number; spread: number; type: “vortex”; x: number; y: number })[]; orientation: “default” | “initial-direction” | “movement-direction” | “angular-velocity”; overLifetime: { alpha: number | { points: { tangent: number; time: number; value: number }[] }; angularVelocity: number | { points: { tangent: number; time: number; value: number }[] }; blue: number | { points: { tangent: number; time: number; value: number }[] }; green: number | { points: { tangent: number; time: number; value: number }[] }; red: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number | { points: { tangent: number; time: number; value: number }[] }; scale: number | { points: { tangent: number; time: number; value: number }[] }; stretchX: number | { points: { tangent: number; time: number; value: number }[] }; stretchY: number | { points: { tangent: number; time: number; value: number }[] } }; playMode: “once” | “loop”; position: { x: number; y: number }; rendering: { blendMode: “normal” | “add” | “multiply” | “screen”; tint?: { alpha: number; blue: number; green: number; red: number } }; rotation: number; scale: number; seed: number; space: “world” | “local”; startDelay: number; startDelaySpread: number; startOffset: number; stretchWithVelocity: boolean }[]];modifiers: ({magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"acceleration"; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"drag";useDirection:boolean; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;spread:number;type:"radial";x:number;y:number; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;rotation:number;spread:number;type:"vortex";x:number;y:number; })[];version:1; }
Validate parsed JSON before GPU allocation and return independent configuration data.
Parameters
| Parameter | Type |
|---|---|
input |
unknown |
Returns
{ emitters: [{ capacity: number; duration: number; durationSpread: number; emission: { rate: number | { points: { tangent: number; time: number; value: number; }[]; }; rateSpread: number; shape: { type: "point"; } | { diameter: number | { points: { tangent: number; time: number; value: number; }[]; }; diameterSpread: number; type: "circle"; } | { height: number | { points: { tangent: number; time: number; value: number; }[]; }; heightSpread: number; type: "box"; width: number | { points: { tangent: number; time: number; value: number; }[]; }; widthSpread: number; } | { height: number | { points: { tangent: number; time: number; value: number; }[]; }; heightSpread: number; type: "cone2d"; width: number | { points: { tangent: number; time: number; value: number; }[]; }; widthSpread: number; }; }; id: string; inheritVelocity: number; initial: { alpha: number | { points: { tangent: number; time: number; value: number; }[]; }; alphaSpread: number; angularVelocity: number | { points: { tangent: number; time: number; value: number; }[]; }; angularVelocitySpread: number; blue: number | { points: { tangent: number; time: number; value: number; }[]; }; blueSpread: number; direction: number; green: number | { points: { tangent: number; time: number; value: number; }[]; }; greenSpread: number; lifetime: number | { points: { tangent: number; time: number; value: number; }[]; }; lifetimeSpread: number; red: number | { points: { tangent: number; time: number; value: number; }[]; }; redSpread: number; rotation: number | { points: { tangent: number; time: number; value: number; }[]; }; rotationSpread: number; size: number | { points: { tangent: number; time: number; value: number; }[]; }; sizeSpread: number; speed: number | { points: { tangent: number; time: number; value: number; }[]; }; speedSpread: number; spread: number; stretchX: number | { points: { tangent: number; time: number; value: number; }[]; }; stretchXSpread: number; stretchY: number | { points: { tangent: number; time: number; value: number; }[]; }; stretchYSpread: number; }; modifiers: ({ magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; rotation: number; spread: number; type: "acceleration"; } | { magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; rotation: number; spread: number; type: "drag"; useDirection: boolean; } | { magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; maxDistance: number; spread: number; type: "radial"; x: number; y: number; } | { magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; maxDistance: number; rotation: number; spread: number; type: "vortex"; x: number; y: number; })[]; orientation: "default" | "initial-direction" | "movement-direction" | "angular-velocity"; overLifetime: { alpha: number | { points: { tangent: number; time: number; value: number; }[]; }; angularVelocity: number | { points: { tangent: number; time: number; value: number; }[]; }; blue: number | { points: { tangent: number; time: number; value: number; }[]; }; green: number | { points: { tangent: number; time: number; value: number; }[]; }; red: number | { points: { tangent: number; time: number; value: number; }[]; }; rotation: number | { points: { tangent: number; time: number; value: number; }[]; }; scale: number | { points: { tangent: number; time: number; value: number; }[]; }; stretchX: number | { points: { tangent: number; time: number; value: number; }[]; }; stretchY: number | { points: { tangent: number; time: number; value: number; }[]; }; }; playMode: "once" | "loop"; position: { x: number; y: number; }; rendering: { blendMode: "normal" | "add" | "multiply" | "screen"; tint?: { alpha: number; blue: number; green: number; red: number; }; }; rotation: number; scale: number; seed: number; space: "world" | "local"; startDelay: number; startDelaySpread: number; startOffset: number; stretchWithVelocity: boolean; }, …{ capacity: number; duration: number; durationSpread: number; emission: { rate: number | { points: { tangent: number; time: number; value: number }[] }; rateSpread: number; shape: { type: “point” } | { diameter: number | { points: { tangent: number; time: number; value: number }[] }; diameterSpread: number; type: “circle” } | { height: number | { points: { tangent: number; time: number; value: number }[] }; heightSpread: number; type: “box”; width: number | { points: { tangent: number; time: number; value: number }[] }; widthSpread: number } | { height: number | { points: { tangent: number; time: number; value: number }[] }; heightSpread: number; type: “cone2d”; width: number | { points: { tangent: number; time: number; value: number }[] }; widthSpread: number } }; id: string; inheritVelocity: number; initial: { alpha: number | { points: { tangent: number; time: number; value: number }[] }; alphaSpread: number; angularVelocity: number | { points: { tangent: number; time: number; value: number }[] }; angularVelocitySpread: number; blue: number | { points: { tangent: number; time: number; value: number }[] }; blueSpread: number; direction: number; green: number | { points: { tangent: number; time: number; value: number }[] }; greenSpread: number; lifetime: number | { points: { tangent: number; time: number; value: number }[] }; lifetimeSpread: number; red: number | { points: { tangent: number; time: number; value: number }[] }; redSpread: number; rotation: number | { points: { tangent: number; time: number; value: number }[] }; rotationSpread: number; size: number | { points: { tangent: number; time: number; value: number }[] }; sizeSpread: number; speed: number | { points: { tangent: number; time: number; value: number }[] }; speedSpread: number; spread: number; stretchX: number | { points: { tangent: number; time: number; value: number }[] }; stretchXSpread: number; stretchY: number | { points: { tangent: number; time: number; value: number }[] }; stretchYSpread: number }; modifiers: ({ magnitude: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number; spread: number; type: “acceleration” } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number; spread: number; type: “drag”; useDirection: boolean } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; maxDistance: number; spread: number; type: “radial”; x: number; y: number } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; maxDistance: number; rotation: number; spread: number; type: “vortex”; x: number; y: number })[]; orientation: “default” | “initial-direction” | “movement-direction” | “angular-velocity”; overLifetime: { alpha: number | { points: { tangent: number; time: number; value: number }[] }; angularVelocity: number | { points: { tangent: number; time: number; value: number }[] }; blue: number | { points: { tangent: number; time: number; value: number }[] }; green: number | { points: { tangent: number; time: number; value: number }[] }; red: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number | { points: { tangent: number; time: number; value: number }[] }; scale: number | { points: { tangent: number; time: number; value: number }[] }; stretchX: number | { points: { tangent: number; time: number; value: number }[] }; stretchY: number | { points: { tangent: number; time: number; value: number }[] } }; playMode: “once” | “loop”; position: { x: number; y: number }; rendering: { blendMode: “normal” | “add” | “multiply” | “screen”; tint?: { alpha: number; blue: number; green: number; red: number } }; rotation: number; scale: number; seed: number; space: “world” | “local”; startDelay: number; startDelaySpread: number; startOffset: number; stretchWithVelocity: boolean }[]]; modifiers: ({ magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; rotation: number; spread: number; type: "acceleration"; } | { magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; rotation: number; spread: number; type: "drag"; useDirection: boolean; } | { magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; maxDistance: number; spread: number; type: "radial"; x: number; y: number; } | { magnitude: number | { points: { tangent: number; time: number; value: number; }[]; }; maxDistance: number; rotation: number; spread: number; type: "vortex"; x: number; y: number; })[]; version: 1; }
emitters
emitters: [{
capacity:number;duration:number;durationSpread:number;emission: {rate:number| {points: {tangent:number;time:number;value:number; }[]; };rateSpread:number;shape: {type:"point"; } | {diameter:number| {points: {tangent:number;time:number;value:number; }[]; };diameterSpread:number;type:"circle"; } | {height:number| {points: {tangent:number;time:number;value:number; }[]; };heightSpread:number;type:"box";width:number| {points: {tangent:number;time:number;value:number; }[]; };widthSpread:number; } | {height:number| {points: {tangent:number;time:number;value:number; }[]; };heightSpread:number;type:"cone2d";width:number| {points: {tangent:number;time:number;value:number; }[]; };widthSpread:number; }; };id:string;inheritVelocity:number;initial: {alpha:number| {points: {tangent:number;time:number;value:number; }[]; };alphaSpread:number;angularVelocity:number| {points: {tangent:number;time:number;value:number; }[]; };angularVelocitySpread:number;blue:number| {points: {tangent:number;time:number;value:number; }[]; };blueSpread:number;direction:number;green:number| {points: {tangent:number;time:number;value:number; }[]; };greenSpread:number;lifetime:number| {points: {tangent:number;time:number;value:number; }[]; };lifetimeSpread:number;red:number| {points: {tangent:number;time:number;value:number; }[]; };redSpread:number;rotation:number| {points: {tangent:number;time:number;value:number; }[]; };rotationSpread:number;size:number| {points: {tangent:number;time:number;value:number; }[]; };sizeSpread:number;speed:number| {points: {tangent:number;time:number;value:number; }[]; };speedSpread:number;spread:number;stretchX:number| {points: {tangent:number;time:number;value:number; }[]; };stretchXSpread:number;stretchY:number| {points: {tangent:number;time:number;value:number; }[]; };stretchYSpread:number; };modifiers: ({magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"acceleration"; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"drag";useDirection:boolean; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;spread:number;type:"radial";x:number;y:number; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;rotation:number;spread:number;type:"vortex";x:number;y:number; })[];orientation:"default"|"initial-direction"|"movement-direction"|"angular-velocity";overLifetime: {alpha:number| {points: {tangent:number;time:number;value:number; }[]; };angularVelocity:number| {points: {tangent:number;time:number;value:number; }[]; };blue:number| {points: {tangent:number;time:number;value:number; }[]; };green:number| {points: {tangent:number;time:number;value:number; }[]; };red:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number| {points: {tangent:number;time:number;value:number; }[]; };scale:number| {points: {tangent:number;time:number;value:number; }[]; };stretchX:number| {points: {tangent:number;time:number;value:number; }[]; };stretchY:number| {points: {tangent:number;time:number;value:number; }[]; }; };playMode:"once"|"loop";position: {x:number;y:number; };rendering: {blendMode:"normal"|"add"|"multiply"|"screen";tint?: {alpha:number;blue:number;green:number;red:number; }; };rotation:number;scale:number;seed:number;space:"world"|"local";startDelay:number;startDelaySpread:number;startOffset:number;stretchWithVelocity:boolean; }, …{ capacity: number; duration: number; durationSpread: number; emission: { rate: number | { points: { tangent: number; time: number; value: number }[] }; rateSpread: number; shape: { type: “point” } | { diameter: number | { points: { tangent: number; time: number; value: number }[] }; diameterSpread: number; type: “circle” } | { height: number | { points: { tangent: number; time: number; value: number }[] }; heightSpread: number; type: “box”; width: number | { points: { tangent: number; time: number; value: number }[] }; widthSpread: number } | { height: number | { points: { tangent: number; time: number; value: number }[] }; heightSpread: number; type: “cone2d”; width: number | { points: { tangent: number; time: number; value: number }[] }; widthSpread: number } }; id: string; inheritVelocity: number; initial: { alpha: number | { points: { tangent: number; time: number; value: number }[] }; alphaSpread: number; angularVelocity: number | { points: { tangent: number; time: number; value: number }[] }; angularVelocitySpread: number; blue: number | { points: { tangent: number; time: number; value: number }[] }; blueSpread: number; direction: number; green: number | { points: { tangent: number; time: number; value: number }[] }; greenSpread: number; lifetime: number | { points: { tangent: number; time: number; value: number }[] }; lifetimeSpread: number; red: number | { points: { tangent: number; time: number; value: number }[] }; redSpread: number; rotation: number | { points: { tangent: number; time: number; value: number }[] }; rotationSpread: number; size: number | { points: { tangent: number; time: number; value: number }[] }; sizeSpread: number; speed: number | { points: { tangent: number; time: number; value: number }[] }; speedSpread: number; spread: number; stretchX: number | { points: { tangent: number; time: number; value: number }[] }; stretchXSpread: number; stretchY: number | { points: { tangent: number; time: number; value: number }[] }; stretchYSpread: number }; modifiers: ({ magnitude: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number; spread: number; type: “acceleration” } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number; spread: number; type: “drag”; useDirection: boolean } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; maxDistance: number; spread: number; type: “radial”; x: number; y: number } | { magnitude: number | { points: { tangent: number; time: number; value: number }[] }; maxDistance: number; rotation: number; spread: number; type: “vortex”; x: number; y: number })[]; orientation: “default” | “initial-direction” | “movement-direction” | “angular-velocity”; overLifetime: { alpha: number | { points: { tangent: number; time: number; value: number }[] }; angularVelocity: number | { points: { tangent: number; time: number; value: number }[] }; blue: number | { points: { tangent: number; time: number; value: number }[] }; green: number | { points: { tangent: number; time: number; value: number }[] }; red: number | { points: { tangent: number; time: number; value: number }[] }; rotation: number | { points: { tangent: number; time: number; value: number }[] }; scale: number | { points: { tangent: number; time: number; value: number }[] }; stretchX: number | { points: { tangent: number; time: number; value: number }[] }; stretchY: number | { points: { tangent: number; time: number; value: number }[] } }; playMode: “once” | “loop”; position: { x: number; y: number }; rendering: { blendMode: “normal” | “add” | “multiply” | “screen”; tint?: { alpha: number; blue: number; green: number; red: number } }; rotation: number; scale: number; seed: number; space: “world” | “local”; startDelay: number; startDelaySpread: number; startOffset: number; stretchWithVelocity: boolean }[]]
modifiers
modifiers: ({
magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"acceleration"; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };rotation:number;spread:number;type:"drag";useDirection:boolean; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;spread:number;type:"radial";x:number;y:number; } | {magnitude:number| {points: {tangent:number;time:number;value:number; }[]; };maxDistance:number;rotation:number;spread:number;type:"vortex";x:number;y:number; })[]
version
version:
1