@hiber3d/hdk-utils
Table of contents
Classes
Variables
Functions
- addVec
- divVec
- getSpotifyEmbedUrl
- getYoutubeEmbedUrl
- mulVec
- orbitTimeFromWheelRotation
- placeInCircle
- scaleVec3
- subVec
- timeline
- transformPropsToVec3
Variables
weather
Const
weather: Object
Weather presets, useful in combination with EnvironmentOptions.
Type declaration
Name | Type |
---|---|
bubbles | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 500; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } ; material : { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_bubble_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.5; lifetime : number = 5; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 0.1; sizeRandom : number = 0.5; sizeStart : number = 0.1 } ; velocityModifier : { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
bubbles.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 500; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } |
bubbles.emitter.continuous | true |
bubbles.emitter.emitterLifeTime | number |
bubbles.emitter.offset | [number , number , number ] |
bubbles.emitter.particleCountMax | number |
bubbles.emitter.size | [number , number , number ] |
bubbles.emitter.spawnRate | number |
bubbles.emitter.velocity | [number , number , number ] |
bubbles.material | { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_bubble_albedo' } |
bubbles.material.blendMode | "ALPHA_BLEND" |
bubbles.material.colorEnd | [number , number , number , number ] |
bubbles.material.colorStart | [number , number , number , number ] |
bubbles.material.gradientColorRandom | number |
bubbles.material.gradientTexture | string |
bubbles.material.particleTexture | string |
bubbles.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.5; lifetime : number = 5; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 0.1; sizeRandom : number = 0.5; sizeStart : number = 0.1 } |
bubbles.particle.billboardAlign | "VIEW" |
bubbles.particle.lifeRandom | number |
bubbles.particle.lifetime | number |
bubbles.particle.rotationWobbleAmount | number |
bubbles.particle.rotationWobbleFrequency | number |
bubbles.particle.sizeEnd | number |
bubbles.particle.sizeRandom | number |
bubbles.particle.sizeStart | number |
bubbles.velocityModifier | { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
bubbles.velocityModifier.forceGravity | number |
bubbles.velocityModifier.wobbleFrequency | [number , number , number ] |
bubbles.velocityModifier.wobbleVelocity | [number , number , number ] |
bubbles.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
bubbles.wrapBox.offset | [number , number , number ] |
bubbles.wrapBox.size | [number , number , number ] |
dandelion | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 500; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } ; material : { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_dandelion_seeds_albedo' } ; particle : { billboardAlign : "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; lifeRandom : number = 0.5; lifetime : number = 5; rotationWobbleAmount : number = 0.25; rotationWobbleFrequency : number = 5; sizeEnd : number = 0.1; sizeRandom : number = 0.5; sizeStart : number = 0.1 } ; velocityModifier : { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
dandelion.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 500; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } |
dandelion.emitter.continuous | true |
dandelion.emitter.emitterLifeTime | number |
dandelion.emitter.offset | [number , number , number ] |
dandelion.emitter.particleCountMax | number |
dandelion.emitter.size | [number , number , number ] |
dandelion.emitter.spawnRate | number |
dandelion.emitter.velocity | [number , number , number ] |
dandelion.material | { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_dandelion_seeds_albedo' } |
dandelion.material.blendMode | "ALPHA_BLEND" |
dandelion.material.colorEnd | [number , number , number , number ] |
dandelion.material.colorStart | [number , number , number , number ] |
dandelion.material.gradientColorRandom | number |
dandelion.material.gradientTexture | string |
dandelion.material.particleTexture | string |
dandelion.particle | { billboardAlign : "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; lifeRandom : number = 0.5; lifetime : number = 5; rotationWobbleAmount : number = 0.25; rotationWobbleFrequency : number = 5; sizeEnd : number = 0.1; sizeRandom : number = 0.5; sizeStart : number = 0.1 } |
dandelion.particle.billboardAlign | "VIEW_Y_ALIGNED" |
dandelion.particle.lifeRandom | number |
dandelion.particle.lifetime | number |
dandelion.particle.rotationWobbleAmount | number |
dandelion.particle.rotationWobbleFrequency | number |
dandelion.particle.sizeEnd | number |
dandelion.particle.sizeRandom | number |
dandelion.particle.sizeStart | number |
dandelion.velocityModifier | { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
dandelion.velocityModifier.forceGravity | number |
dandelion.velocityModifier.wobbleFrequency | [number , number , number ] |
dandelion.velocityModifier.wobbleVelocity | [number , number , number ] |
dandelion.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
dandelion.wrapBox.offset | [number , number , number ] |
dandelion.wrapBox.size | [number , number , number ] |
fireflies | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 1000; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } ; material : { blendMode : "ADDITIVE" = 'ADDITIVE'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_glow_01_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.5; lifetime : number = 2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 0.4; sizeRandom : number = 0.5; sizeStart : number = 0.4 } ; velocityModifier : { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
fireflies.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 1000; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } |
fireflies.emitter.continuous | true |
fireflies.emitter.emitterLifeTime | number |
fireflies.emitter.offset | [number , number , number ] |
fireflies.emitter.particleCountMax | number |
fireflies.emitter.randomVelocity | [number , number , number ] |
fireflies.emitter.size | [number , number , number ] |
fireflies.emitter.spawnRate | number |
fireflies.emitter.velocity | [number , number , number ] |
fireflies.material | { blendMode : "ADDITIVE" = 'ADDITIVE'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_glow_01_albedo' } |
fireflies.material.blendMode | "ADDITIVE" |
fireflies.material.colorEnd | [number , number , number , number ] |
fireflies.material.colorStart | [number , number , number , number ] |
fireflies.material.gradientColorRandom | number |
fireflies.material.gradientTexture | string |
fireflies.material.particleTexture | string |
fireflies.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.5; lifetime : number = 2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 0.4; sizeRandom : number = 0.5; sizeStart : number = 0.4 } |
fireflies.particle.billboardAlign | "VIEW" |
fireflies.particle.lifeRandom | number |
fireflies.particle.lifetime | number |
fireflies.particle.rotationWobbleAmount | number |
fireflies.particle.rotationWobbleFrequency | number |
fireflies.particle.sizeEnd | number |
fireflies.particle.sizeRandom | number |
fireflies.particle.sizeStart | number |
fireflies.velocityModifier | { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
fireflies.velocityModifier.forceGravity | number |
fireflies.velocityModifier.wobbleFrequency | [number , number , number ] |
fireflies.velocityModifier.wobbleVelocity | [number , number , number ] |
fireflies.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
fireflies.wrapBox.offset | [number , number , number ] |
fireflies.wrapBox.size | [number , number , number ] |
mist | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 100; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 30; traceGround : true = true; velocity : [number , number , number ] } ; material : { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_smoke_01_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0; lifetime : number = 10; randomRotation : number = 0.2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 7; sizeRandom : number = 1; sizeStart : number = 7 } ; velocityModifier : { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
mist.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 100; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 30; traceGround : true = true; velocity : [number , number , number ] } |
mist.emitter.continuous | true |
mist.emitter.emitterLifeTime | number |
mist.emitter.offset | [number , number , number ] |
mist.emitter.particleCountMax | number |
mist.emitter.randomVelocity | [number , number , number ] |
mist.emitter.size | [number , number , number ] |
mist.emitter.spawnRate | number |
mist.emitter.traceGround | true |
mist.emitter.velocity | [number , number , number ] |
mist.material | { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_smoke_01_albedo' } |
mist.material.blendMode | "ALPHA_BLEND" |
mist.material.colorEnd | [number , number , number , number ] |
mist.material.colorStart | [number , number , number , number ] |
mist.material.gradientColorRandom | number |
mist.material.gradientTexture | string |
mist.material.particleTexture | string |
mist.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0; lifetime : number = 10; randomRotation : number = 0.2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 7; sizeRandom : number = 1; sizeStart : number = 7 } |
mist.particle.billboardAlign | "VIEW" |
mist.particle.lifeRandom | number |
mist.particle.lifetime | number |
mist.particle.randomRotation | number |
mist.particle.rotationWobbleAmount | number |
mist.particle.rotationWobbleFrequency | number |
mist.particle.sizeEnd | number |
mist.particle.sizeRandom | number |
mist.particle.sizeStart | number |
mist.velocityModifier | { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
mist.velocityModifier.forceGravity | number |
mist.velocityModifier.wobbleFrequency | [number , number , number ] |
mist.velocityModifier.wobbleVelocity | [number , number , number ] |
mist.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
mist.wrapBox.offset | [number , number , number ] |
mist.wrapBox.size | [number , number , number ] |
plankton | { emitter : { continuous : true = true; emitterLifeTime : number = -1.0; emitterMesh : string = ''; inheritVelocity : number = 0.0; offset : [number , number , number ] ; particleCountMax : number = 126; randomVelocity : [number , number , number ] ; shape : "BOX" = 'BOX'; size : [number , number , number ] ; spawnRate : number = 100.0; traceGround : false = false; velocity : [number , number , number ] } ; material : { blendMode : "ADDITIVE" = 'ADDITIVE'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; depthSort : false = false; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; linearColorRandom : number = 0.52; particleTexture : string = 'particle_dust_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.525; lifetime : number = 2.411; randomRotation : number = 0.0; randomRotationSpeed : number = 0.0; rotationSpeed : number = 0.0; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 10.0; sizeEnd : number = 0.055; sizeRandom : number = 0.0; sizeStart : number = 0.054 } ; velocityModifier : { collisionBounceFactor : number = 0.5; collisionMode : "NONE" = 'NONE'; forceAirRes : number = 2.3859999; forceGravity : number = 0.356; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
plankton.emitter | { continuous : true = true; emitterLifeTime : number = -1.0; emitterMesh : string = ''; inheritVelocity : number = 0.0; offset : [number , number , number ] ; particleCountMax : number = 126; randomVelocity : [number , number , number ] ; shape : "BOX" = 'BOX'; size : [number , number , number ] ; spawnRate : number = 100.0; traceGround : false = false; velocity : [number , number , number ] } |
plankton.emitter.continuous | true |
plankton.emitter.emitterLifeTime | number |
plankton.emitter.emitterMesh | string |
plankton.emitter.inheritVelocity | number |
plankton.emitter.offset | [number , number , number ] |
plankton.emitter.particleCountMax | number |
plankton.emitter.randomVelocity | [number , number , number ] |
plankton.emitter.shape | "BOX" |
plankton.emitter.size | [number , number , number ] |
plankton.emitter.spawnRate | number |
plankton.emitter.traceGround | false |
plankton.emitter.velocity | [number , number , number ] |
plankton.material | { blendMode : "ADDITIVE" = 'ADDITIVE'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; depthSort : false = false; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; linearColorRandom : number = 0.52; particleTexture : string = 'particle_dust_albedo' } |
plankton.material.blendMode | "ADDITIVE" |
plankton.material.colorEnd | [number , number , number , number ] |
plankton.material.colorStart | [number , number , number , number ] |
plankton.material.depthSort | false |
plankton.material.gradientColorRandom | number |
plankton.material.gradientTexture | string |
plankton.material.linearColorRandom | number |
plankton.material.particleTexture | string |
plankton.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.525; lifetime : number = 2.411; randomRotation : number = 0.0; randomRotationSpeed : number = 0.0; rotationSpeed : number = 0.0; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 10.0; sizeEnd : number = 0.055; sizeRandom : number = 0.0; sizeStart : number = 0.054 } |
plankton.particle.billboardAlign | "VIEW" |
plankton.particle.lifeRandom | number |
plankton.particle.lifetime | number |
plankton.particle.randomRotation | number |
plankton.particle.randomRotationSpeed | number |
plankton.particle.rotationSpeed | number |
plankton.particle.rotationWobbleAmount | number |
plankton.particle.rotationWobbleFrequency | number |
plankton.particle.sizeEnd | number |
plankton.particle.sizeRandom | number |
plankton.particle.sizeStart | number |
plankton.velocityModifier | { collisionBounceFactor : number = 0.5; collisionMode : "NONE" = 'NONE'; forceAirRes : number = 2.3859999; forceGravity : number = 0.356; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
plankton.velocityModifier.collisionBounceFactor | number |
plankton.velocityModifier.collisionMode | "NONE" |
plankton.velocityModifier.forceAirRes | number |
plankton.velocityModifier.forceGravity | number |
plankton.velocityModifier.wobbleFrequency | [number , number , number ] |
plankton.velocityModifier.wobbleVelocity | [number , number , number ] |
plankton.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
plankton.wrapBox.offset | [number , number , number ] |
plankton.wrapBox.size | [number , number , number ] |
rain | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 2000; size : [number , number , number ] ; spawnRate : number = 1000; velocity : [number , number , number ] } ; material : { colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; particleTexture : string = 'particle_rain_albedo' } ; particle : { billboardAlign : "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 0.033; sizeStart : number = 0.033 } ; velocityModifier : { forceGravity : number = -10; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
rain.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 2000; size : [number , number , number ] ; spawnRate : number = 1000; velocity : [number , number , number ] } |
rain.emitter.continuous | true |
rain.emitter.emitterLifeTime | number |
rain.emitter.offset | [number , number , number ] |
rain.emitter.particleCountMax | number |
rain.emitter.size | [number , number , number ] |
rain.emitter.spawnRate | number |
rain.emitter.velocity | [number , number , number ] |
rain.material | { colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; particleTexture : string = 'particle_rain_albedo' } |
rain.material.colorEnd | [number , number , number , number ] |
rain.material.colorStart | [number , number , number , number ] |
rain.material.particleTexture | string |
rain.particle | { billboardAlign : "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 0.033; sizeStart : number = 0.033 } |
rain.particle.billboardAlign | "VIEW_Y_ALIGNED" |
rain.particle.rotationWobbleAmount | number |
rain.particle.rotationWobbleFrequency | number |
rain.particle.sizeEnd | number |
rain.particle.sizeStart | number |
rain.velocityModifier | { forceGravity : number = -10; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
rain.velocityModifier.forceGravity | number |
rain.velocityModifier.wobbleFrequency | [number , number , number ] |
rain.velocityModifier.wobbleVelocity | [number , number , number ] |
rain.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
rain.wrapBox.offset | [number , number , number ] |
rain.wrapBox.size | [number , number , number ] |
redFlares | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 1000; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } ; material : { blendMode : "ADDITIVE" = 'ADDITIVE'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_glow_01_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.5; lifetime : number = 2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 1; sizeRandom : number = 0.5; sizeStart : number = 1 } ; velocityModifier : { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
redFlares.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 1000; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 500; velocity : [number , number , number ] } |
redFlares.emitter.continuous | true |
redFlares.emitter.emitterLifeTime | number |
redFlares.emitter.offset | [number , number , number ] |
redFlares.emitter.particleCountMax | number |
redFlares.emitter.randomVelocity | [number , number , number ] |
redFlares.emitter.size | [number , number , number ] |
redFlares.emitter.spawnRate | number |
redFlares.emitter.velocity | [number , number , number ] |
redFlares.material | { blendMode : "ADDITIVE" = 'ADDITIVE'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_glow_01_albedo' } |
redFlares.material.blendMode | "ADDITIVE" |
redFlares.material.colorEnd | [number , number , number , number ] |
redFlares.material.colorStart | [number , number , number , number ] |
redFlares.material.gradientColorRandom | number |
redFlares.material.gradientTexture | string |
redFlares.material.particleTexture | string |
redFlares.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0.5; lifetime : number = 2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 1; sizeRandom : number = 0.5; sizeStart : number = 1 } |
redFlares.particle.billboardAlign | "VIEW" |
redFlares.particle.lifeRandom | number |
redFlares.particle.lifetime | number |
redFlares.particle.rotationWobbleAmount | number |
redFlares.particle.rotationWobbleFrequency | number |
redFlares.particle.sizeEnd | number |
redFlares.particle.sizeRandom | number |
redFlares.particle.sizeStart | number |
redFlares.velocityModifier | { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
redFlares.velocityModifier.forceGravity | number |
redFlares.velocityModifier.wobbleFrequency | [number , number , number ] |
redFlares.velocityModifier.wobbleVelocity | [number , number , number ] |
redFlares.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
redFlares.wrapBox.offset | [number , number , number ] |
redFlares.wrapBox.size | [number , number , number ] |
snow | { emitter : { continuous : true = true; emitterLifeTime : number = -1.0; emitterMesh : string = ''; inheritVelocity : number = 0.0; offset : [number , number , number ] ; particleCountMax : number = 2000; randomVelocity : [number , number , number ] ; shape : "BOX" = 'BOX'; size : [number , number , number ] ; spawnRate : number = 1000.0; traceGround : false = false; velocity : [number , number , number ] } ; material : { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; depthSort : false = false; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; linearColorRandom : number = 0.0; particleTexture : string = 'particle_smoke_01_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 1.0; lifetime : number = 4.566; randomRotation : number = 1.0; randomRotationSpeed : number = -0.413; rotationSpeed : number = 11.7770004; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 10.0; sizeEnd : number = 0.015; sizeRandom : number = 0.341; sizeStart : number = 0.015 } ; velocityModifier : { collisionBounceFactor : number = 0.5; collisionMode : "NONE" = 'NONE'; forceAirRes : number = 1.818; forceGravity : number = -0.9; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
snow.emitter | { continuous : true = true; emitterLifeTime : number = -1.0; emitterMesh : string = ''; inheritVelocity : number = 0.0; offset : [number , number , number ] ; particleCountMax : number = 2000; randomVelocity : [number , number , number ] ; shape : "BOX" = 'BOX'; size : [number , number , number ] ; spawnRate : number = 1000.0; traceGround : false = false; velocity : [number , number , number ] } |
snow.emitter.continuous | true |
snow.emitter.emitterLifeTime | number |
snow.emitter.emitterMesh | string |
snow.emitter.inheritVelocity | number |
snow.emitter.offset | [number , number , number ] |
snow.emitter.particleCountMax | number |
snow.emitter.randomVelocity | [number , number , number ] |
snow.emitter.shape | "BOX" |
snow.emitter.size | [number , number , number ] |
snow.emitter.spawnRate | number |
snow.emitter.traceGround | false |
snow.emitter.velocity | [number , number , number ] |
snow.material | { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; depthSort : false = false; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; linearColorRandom : number = 0.0; particleTexture : string = 'particle_smoke_01_albedo' } |
snow.material.blendMode | "ALPHA_BLEND" |
snow.material.colorEnd | [number , number , number , number ] |
snow.material.colorStart | [number , number , number , number ] |
snow.material.depthSort | false |
snow.material.gradientColorRandom | number |
snow.material.gradientTexture | string |
snow.material.linearColorRandom | number |
snow.material.particleTexture | string |
snow.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 1.0; lifetime : number = 4.566; randomRotation : number = 1.0; randomRotationSpeed : number = -0.413; rotationSpeed : number = 11.7770004; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 10.0; sizeEnd : number = 0.015; sizeRandom : number = 0.341; sizeStart : number = 0.015 } |
snow.particle.billboardAlign | "VIEW" |
snow.particle.lifeRandom | number |
snow.particle.lifetime | number |
snow.particle.randomRotation | number |
snow.particle.randomRotationSpeed | number |
snow.particle.rotationSpeed | number |
snow.particle.rotationWobbleAmount | number |
snow.particle.rotationWobbleFrequency | number |
snow.particle.sizeEnd | number |
snow.particle.sizeRandom | number |
snow.particle.sizeStart | number |
snow.velocityModifier | { collisionBounceFactor : number = 0.5; collisionMode : "NONE" = 'NONE'; forceAirRes : number = 1.818; forceGravity : number = -0.9; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
snow.velocityModifier.collisionBounceFactor | number |
snow.velocityModifier.collisionMode | "NONE" |
snow.velocityModifier.forceAirRes | number |
snow.velocityModifier.forceGravity | number |
snow.velocityModifier.wobbleFrequency | [number , number , number ] |
snow.velocityModifier.wobbleVelocity | [number , number , number ] |
snow.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
snow.wrapBox.offset | [number , number , number ] |
snow.wrapBox.size | [number , number , number ] |
toxicGreen | { emitter : { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 100; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 30; traceGround : true = true; velocity : [number , number , number ] } ; material : { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_smoke_01_albedo' } ; particle : { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0; lifetime : number = 10; randomRotation : number = 0.2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 7; sizeRandom : number = 1; sizeStart : number = 7 } ; velocityModifier : { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } ; wrapBox : { offset : [number , number , number ] ; size : [number , number , number ] } } |
toxicGreen.emitter | { continuous : true = true; emitterLifeTime : number = -1; offset : [number , number , number ] ; particleCountMax : number = 100; randomVelocity : [number , number , number ] ; size : [number , number , number ] ; spawnRate : number = 30; traceGround : true = true; velocity : [number , number , number ] } |
toxicGreen.emitter.continuous | true |
toxicGreen.emitter.emitterLifeTime | number |
toxicGreen.emitter.offset | [number , number , number ] |
toxicGreen.emitter.particleCountMax | number |
toxicGreen.emitter.randomVelocity | [number , number , number ] |
toxicGreen.emitter.size | [number , number , number ] |
toxicGreen.emitter.spawnRate | number |
toxicGreen.emitter.traceGround | true |
toxicGreen.emitter.velocity | [number , number , number ] |
toxicGreen.material | { blendMode : "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd : [number , number , number , number ] ; colorStart : [number , number , number , number ] ; gradientColorRandom : number = 0.0; gradientTexture : string = 'particle_gradient_in_out_01_albedo'; particleTexture : string = 'particle_smoke_01_albedo' } |
toxicGreen.material.blendMode | "ALPHA_BLEND" |
toxicGreen.material.colorEnd | [number , number , number , number ] |
toxicGreen.material.colorStart | [number , number , number , number ] |
toxicGreen.material.gradientColorRandom | number |
toxicGreen.material.gradientTexture | string |
toxicGreen.material.particleTexture | string |
toxicGreen.particle | { billboardAlign : "VIEW" = 'VIEW'; lifeRandom : number = 0; lifetime : number = 10; randomRotation : number = 0.2; rotationWobbleAmount : number = 0.0; rotationWobbleFrequency : number = 0.0; sizeEnd : number = 7; sizeRandom : number = 1; sizeStart : number = 7 } |
toxicGreen.particle.billboardAlign | "VIEW" |
toxicGreen.particle.lifeRandom | number |
toxicGreen.particle.lifetime | number |
toxicGreen.particle.randomRotation | number |
toxicGreen.particle.rotationWobbleAmount | number |
toxicGreen.particle.rotationWobbleFrequency | number |
toxicGreen.particle.sizeEnd | number |
toxicGreen.particle.sizeRandom | number |
toxicGreen.particle.sizeStart | number |
toxicGreen.velocityModifier | { forceGravity : number = 0; wobbleFrequency : [number , number , number ] ; wobbleVelocity : [number , number , number ] } |
toxicGreen.velocityModifier.forceGravity | number |
toxicGreen.velocityModifier.wobbleFrequency | [number , number , number ] |
toxicGreen.velocityModifier.wobbleVelocity | [number , number , number ] |
toxicGreen.wrapBox | { offset : [number , number , number ] ; size : [number , number , number ] } |
toxicGreen.wrapBox.offset | [number , number , number ] |
toxicGreen.wrapBox.size | [number , number , number ] |
Functions
addVec
addVec(x
, y
): number
[]
Apply addition between arrays or numbers, padding out any reminder in length with the default value 0
.
Parameters
Name | Type | Description |
---|---|---|
x | number | number [] | addend 1 |
y | number | number [] | addend 2 |
Returns
number
[]
resulting array of summations.
Example
const currentPos = [1, 2, 3];
const nextPos = addVec(currentPos, [-1, 2]); // [0, 4, 3]
divVec
divVec(x
, y
): number
[]
Apply division to arrays or numbers, padding out any reminder in length
with the default value 1
.
Parameters
Name | Type | Description |
---|---|---|
x | number | number [] | dividend |
y | number | number [] | divisor |
Returns
number
[]
resulting array of quotients.
Example
const size = [2, 6, 4];
const center = divVec(size, 2); // [1, 3, 2]
getSpotifyEmbedUrl
getSpotifyEmbedUrl(url
): string
Return Spotify embed URL.
Parameters
Name | Type | Description |
---|---|---|
url | string | link to Spotify track. |
Returns
string
getYoutubeEmbedUrl
getYoutubeEmbedUrl(url
): string
Return Youtube embed URL.
Parameters
Name | Type | Description |
---|---|---|
url | string | link to youtube video. |
Returns
string
mulVec
mulVec(x
, y
): number
[]
Apply multiplication to arrays or numbers, padding out any reminder in length
with the default value 1
.
Parameters
Name | Type | Description |
---|---|---|
x | number | number [] | multiplicand |
y | number | number [] | multiplier |
Returns
number
[]
resulting array of products.
Example
const currentPos = [0, 10, 0];
const dimensions = [5, 2, 3];
const normal = [1, 0, 0]
const nextPos = addVec(currentPos, mulVec(normal, dimensions)); // [5, 10, 3]
orbitTimeFromWheelRotation
orbitTimeFromWheelRotation(radiusOrbit
, wheelRadius
, wheelRotationDuration
): number
Calculates the duration of a full orbit around a circle, given the radius of the circle, the radius of the wheel, and the duration it takes for the wheel to make a full rotation. Good for cars with spinning wheels orbiting around a circle.
Parameters
Name | Type | Description |
---|---|---|
radiusOrbit | number | The radius of the circle |
wheelRadius | number | The radius of the wheel |
wheelRotationDuration | number | The duration it takes for the wheel to make a full rotation |
Returns
number
placeInCircle
placeInCircle<T
>(opt
): T
[]
Distribute objects around a point.
Type parameters
Name |
---|
T |
Parameters
Name | Type |
---|---|
opt | PlaceInCircleOptions <T > |
Returns
T
[]
Array of returned objects
Example
root.add(...placeInCircle({
radius: 4,
numberOfItems: 10,
onEach: (data: PlaceInCircleOnEachProps) => {
return create({transform: data});
},
}));
scaleVec3
scaleVec3(vec
, scale
): Vec3
Convenience function to scale a Vec3 uniformly using vector multiplication
Parameters
Name | Type |
---|---|
vec | Vec3 |
scale | number |
Returns
Vec3
subVec
subVec(x
, y
): number
[]
Apply subtraction to arrays or numbers, padding out any reminder in length with the default value 0
.
Parameters
Name | Type | Description |
---|---|---|
x | number | number [] | minuend |
y | number | number [] | subtrahend |
Returns
number
[]
resulting array of differences.
Example
const currentPos = [1, 2, 3];
const descend = [0, 2, 0]
const nextPos = subVec(currentPos, descend); // [1, 0, 3]
timeline
timeline<Keys
>(n
, objOrFn
): Keys
This lets you create a timeline of values to be used with create().animate()
Type parameters
Name | Type |
---|---|
Keys | extends object |
Parameters
Name | Type | Description |
---|---|---|
n | number | number of frames |
objOrFn | Partial <TimelineFns <Keys >> | TimelineFn <Keys > | object of functions which return a value to be animated or a function which returns an object of values to be animated |
Returns
Keys
transformPropsToVec3
transformPropsToVec3(props
, position
, rotation
, scale
): Object
Convert single transform props to Vec3
Parameters
Name | Type |
---|---|
props | DeepPartial <VectorProperties & RotationProperties & ScaleProperties > |
position | undefined | Vec3 |
rotation | undefined | Vec3 |
scale | undefined | number | Vec3 |
Returns
Object
Name | Type |
---|---|
position | undefined | Vec3 |
rotation | undefined | Vec3 |
scale | undefined | number | Vec3 |