V2AnimationProperties - Aeroluna/Heck GitHub Wiki

Noodle Extensions

Chroma

_position

_position may be used in both AnimateTrack and AssignPathAnimation

Describes the position offset of an object. It will continue any normal movement and have this stacked on top of it.

Track _position and path _position will be added together.

Note: One unit in _position is equal to the width of one lane. (0.6 meters)

Point definition: [x, y, z, time, (optional)easing, (optional)spline]

Examples

// Point Definition
{
  "_name": "examplePositionPointDef",
  "_points": [
    [0, 0, 0, 0],
    [0, 5, 0, 0.5, "splineCatmullRom"],
    [0, 0, 0, 1, "splineCatmullRom"]
  ]
}, {
  "_name": "examplePositionPath",
  "_points":[
    [0, 0, 0, 0],
    [0, 5, 0, 0.25, "splineCatmullRom"],
    [0, 0, 0, 0.5, "splineCatmullRom"]
  ]
}
// AnimateTrack
{
  "_time": 4,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "firstPositionDemo",
    "_duration": 8,
    "_position": "examplePositionPointDef"
  }
}

Above event results in:

AnimateTrackPosition

// AssignPathAnimation
{
  "_time": 12,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "firstPositionDemo",
    "_duration": 4,
    "_easing": "easeInBounce",
    "_position": "examplePositionPath"
  }
}, {
  "_time": 16,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "firstPositionDemo",
    "_duration": 4,
    "_easing": "easeOutBounce"
    "_position": [
      [0, 0, 0, 0]
    ]
  }
}

Above event results in:

AssignPathPosition

_localRotation

_localRotation may be used in both AnimateTrack and AssignPathAnimation

This property describes the local rotation offset of an object. This means it is rotated with itself as the origin. Uses euler values. Do note that the note spawn effect will be rotated accordlingly

Track _localRotation, path _localRotation, and standard _localRotation will be added together.

Point definition: [pitch, yaw, roll, time, (optional)easing, (optional)spline]

Examples

// Point Definition
{
  "_name": "localSpinDemoAnimate",
  "_points": [
    [0, 0, 0, 0],
    [90, 0, 0, 0.25],
    [180, 0, 0, 0.5],
    [270, 0, 0, 0.75],
    [360, 0, 0, 1]
  ]
}, {
  "_name": "localSpinDemoAnimateRev",
  "_points": [
    [0, 0, 0, 0],
    [-90, 0, 0, 0.25],
    [-180, 0, 0, 0.5],
    [-270, 0, 0, 0.75],
    [-360, 0, 0, 1]
  ]
}, {
  "_name": "localSpinDemoPath",
  "_points": [
    [0, 0, 0, 0],
    [0, 0, 90, 0.125],
    [0, 0, 180, 0.25],
    [0, 0, 270, 0.375],
    [0, 0, 360, 0.5]
  ]
}
// AnimateTrack
{
  "_time": 20,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "localRotationDemo",
    "_duration": 5,
    "_easing": "easeInOutExpo",
    "_localRotation": "localSpinDemoAnimate"
  }
}, {
  "_time": 25,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "localRotationDemo",
    "_duration": 5,
    "_easing": "easeInOutExpo",
    "_localRotation": "localSpinDemoAnimateRev"
  }
}

Above event results in:

AnimateTrackLocalRotation

// AssignPathAnimation
{
  "_time": 30,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "localRotationDemo",
    "_localRotation": "localSpinDemoPath"
  }
}

Above event results in:

AssignPathLocalRotation

_rotation

_rotation may be used in both AnimateTrack and AssignPathAnimation

This property describes the world rotation offset of an object. This means it is rotated with the world as the origin. Uses euler values. Think of 360 mode.

Track _rotation, path _rotation, and standard _rotation will be added together.

Point definition: [pitch, yaw, roll, time, (optional)easing]

Examples

// Point Definition
{
  "_name": "RotationPointsAnimate",
  "_points": [
    [0, 0, 0, 0],
    [0, 90, 0, 0.25],
    [0, 180, 0, 0.5],
    [0, 270, 0, 0.75],
    [0, 360, 0, 1]
  ]
}, {
  "_name": "RotationPointsPath",
  "_points":[
    [0, 0, 0, 0],
    [0, 45, 0, 0.125, "splineCatmullRom"],
    [0, -45, 0, 0.25, "splineCatmullRom"],
    [0, 22.5, 0, 0.375, "splineCatmullRom"],
    [0, -22.5, 0, 0.5, "splineCatmullRom"],
    [0, 0, 0, 0.625, "splineCatmullRom"]
  ]
}
// AnimateTrack
{
  "_time": 40,
  "_type": "AnimateTrack",
  "_data":{
    "_track": "RotationDemo",
    "_duration": 10,
    "_rotation": "RotationPointsAnimate"
  }
}

Above event results in:

AnimateTrackRotation

// AssignPathAnimation
 {
  "_time": 50,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "RotationDemo",
    "_duration": 5,
    "_rotation": "RotationPointsPath"
  }
}, {
  "_time": 55,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "RotationDemo",
    "_duration": 5,
    "_rotation":[
      [0, 0, 0, 0]
    ]
  }
}

Above event results in:

"AssignPathRotation"

_scale

_scale may be used in both AnimateTrack and AssignPathAnimation

Decribes the scale of an object. This will be based off their initial size. A scale of 1 is equal to normal size, anything under is smaller, over is larger.

Track _scale and path _scale will be multiplied.

Point definition: [x, y, z, time, (optional)easing, (optional)spline]

Examples

// Point Definition
{
  "_name": "AnimateTrackScale",
  "_points": [
    [1, 1, 1, 0],
    [0.80, 0.80, 0.80, 0.15, "easeOutCirc"],
    [2, 2, 2, 0.5, "easeOutBounce"],
    [2, 2, 2, 0.6],
    [2.5, 1, 1, 0.8, "easeOutExpo"],
    [1, 1, 1, 1, "easeOutBounce"]
  ]
}, {
  "_name": "PathScale",
  "_points": [
    [1, 1, 1, 0],
    [4, 0.5, 1, 0.20, "easeInElastic"],
    [1, 1, 1, 0.50, "easeOutElastic"]
  ]
}
// AnimateTrack
{
  "_time": 165,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "scaleTrack",
    "_scale": "AnimateTrackScale",
    "_duration": 5
  }
}

Above event results in:

AnimateTrackScale

// AssignPathAnimation
{
  "_time":175,
  "_type":"AssignPathAnimation",
  "_data":{
    "_track":"scaleTrack",
    "_scale":"PathScale"
  }
}

Above event results in:

AssignPathScale

_dissolve

_dissolve may be used in both AnimateTrack and AssignPathAnimation

This property controls the dissolve effect on both notes and walls. It's the effect that happens when things go away upon failing a song. Keep in mind that notes and the arrows on notes have seperate dissolve properties, see _dissolveArrow

Note: How this looks will depend on the player's graphics settings.

0 is fully transparent and 1 is fully opaque.

Track _dissolve and path _dissolve will be multiplied together.

Point definition: [transparency, time, (optional)easing]

It is possible to "disable" the jump animation when objects cannot be animated.

// This note will be invisible during the jump animation.
// Remember that if you want the note to be invisible for longer, you should use Chroma's _disableSpawnEffect to hide the spawn effect.
{
  "_time": 60,
  "_lineIndex": 1,
  "_lineLayer": 0,
  "_type": 0,
  "_cutDirection": 1,
  "_customData": {
    "_disableSpawnEffect": true,
    "_animation": {
      "_dissolve": [
        [0, 0],
        [1, 0],
      ]
    }
  }
}

Examples

// Point Definition
{
  "_name": "dissolveDemoAnimate",
  "_points": [
    [1, 0],
    [0, 0.25],
    [0.5, 0.50],
    [0, 0.75],
    [1, 1]
  ]
}, {
  "_name": "dissolveDemoPath",
  "_points": [
    [0, 0],
    [1, 0.125],
    [1, 0.30],
    [0, 0.35]
  ]
}
// AnimateTrack
{
  "_time": 60,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "dissolveDemo",
    "_duration": 10,
    "_dissolve": "dissolveDemoAnimate"
  }
}

Above event results in:

AnimateTrackDissolve

// AssignPathAnimation
{
  "_time": 70,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "dissolveDemo",
    "_dissolve": "dissolveDemoPath"
  }
}

Above event results in:

AssignPathDissolve

_dissolveArrow

_dissolveArrow may be used in both AnimateTrack and AssignPathAnimation

This property controls the dissolve effect on the arrows of notes. Similar to the look of the disappearing notes modifier.

This property has no effect on obstacles.

Track _dissolveArrow and path _dissolveArrow will be multiplied together.

Point definition: [transparency, time, (optional)easing]

Examples

// Point Definition
{
  "_name": "dissolveArrowDemoAnimate",
  "_points": [
    [1, 0],
    [0, 1]
  ]
}, {
  "_name": "dissolveArrowDemoPath",
  "_points": [
    [0, 0.10],
    [1, 0.20],
    [1, 0.30],
    [0, 0.35]
  ]
}
// AnimateTrack
{
  "_time": 80,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "dissolveArrowDemo",
    "_duration": 5,
    "_dissolveArrow": "dissolveArrowDemoAnimate"
  }
}, {
  "_time": 85,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "dissolveArrowDemo",
    "_duration": 5,
    "_dissolveArrow": [
      [0, 0],
      [1, 1]
    ]
  }
}

Above event results in:

AnimateTrackDissolveArrow

// AssignPathAnimation
{
  "_time": 90,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "dissolveArrowDemo",
    "_dissolveArrow": "dissolveArrowDemoPath"
  }
}

AssignPathDissolveArrow

_color

_color may be used in both AnimateTrack and AssignPathAnimation

Describes the color of an object. Will override any other color the object may have had.

Color is on a scale from 0 - 1, and NOT 0 - 255.

Track _color and path _color will be multiplied together.

Point definition: [red, green, blue, alpha, time, (optional)easing]

Examples

// Point Definition
{
  "_name": "RightColorWallAnimate",
  "_points": [
    [1, 0, 0, 1, 0.2],
    [0, 1, 0, 1, 0.4],
    [0, 0, 1, 1, 0.6],
    [0, 1, 1, 1, 0.8],
    [1, 1, 1, 1, 1]
  ]
}, {
  "_name": "LeftColorWallAnimate",
  "_points": [
    [1, 0, 0, 0, 0.2],
    [0, 1, 0, 0, 0.4],
    [0, 0, 1, 0, 0.6],
    [0, 1, 1, 0, 0.8],
    [1, 1, 1, 0, 1]
  ]
}, {
  "_name": "GradientPathOne",
  "_points": [
    [1, 0, 0, 0.5, 0.0416],
    [0, 1, 0, 0.5, 0.0832],
    [0, 0, 1, 0.5, 0.1248],
    [1, 0, 0, 0.5, 0.1664],
    [0, 1, 0, 0.5, 0.208],
    [0, 0, 1, 0.5, 0.2496],
    [1, 0, 0, 0.5, 0.2912],
    [0, 1, 0, 0.5, 0.3328],
    [0, 0, 1, 0.5, 0.3743],
    [1, 0, 0, 0.5, 0.416],
    [0, 1, 0, 0.5, 0.4576],
    [0, 0, 1, 0.5, 0.4992]
  ]
}, {
  "_name": "GradientPathTwo",
  "_points": [
    [0, 1, 0, 0.5, 0.0416],
    [0, 0, 1, 0.5, 0.0832],
    [1, 0, 0, 0.5, 0.1248],
    [0, 1, 0, 0.5, 0.1664],
    [0, 0, 1, 0.5, 0.208],
    [1, 0, 0, 0.5, 0.2496],
    [0, 1, 0, 0.5, 0.2912],
    [0, 0, 1, 0.5, 0.3328],
    [1, 0, 0, 0.5, 0.3743],
    [0, 1, 0, 0.5, 0.416],
    [0, 0, 1, 0.5, 0.4576],
    [1, 0, 0, 0.5, 0.4992]
  ]
}
// AnimateTrack
{
  "_time": 98,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "RightColorWall",
    "_color": "RightColorWallAnimate",
    "_duration": 10
  }
}, {
  "_time": 98,
  "_type": "AnimateTrack",
  "_data": {
    "_track": "LeftColorWall",
    "_color": "LeftColorWallAnimate",
    "_duration": 10
  }
}

Above event results in:

AnimateTrackColor

// AssignPathAnimation
{
  "_time": 110,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "RightColorWallStatic",
    "_duration": 2,
    "_color": "GradientPathOne"
  }
}, {
  "_time": 114,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "RightColorWallStatic",
    "_duration": 6,
    "_easing": "easeOutElastic",
    "_color": "GradientPathTwo"
  }
}, {
  "_time": 110,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "LeftColorWallStatic",
    "_duration": 2,
    "_color": "GradientPathTwo"
  }
}, {
  "_time": 114,
  "_type": "AssignPathAnimation",
  "_data": {
    "_track": "LeftColorWallStatic",
    "_duration": 6,
    "_easing": "easeOutElastic",
    "_color": "GradientPathOne"
  }
}

Above event results in:

AssignPathColor

_interactable

_interactable may be used in both AnimateTrack and AssignPathAnimation

This property controls whether or not the player can interact with the note/wall.

_interactable either is or isn't, there is no inbetween. When great than or equal to 1, the object can fully be interacted with. When less than 1, the object cannot be interacted with at all.

Track _interactable and path _interactable will be multiplied together.

Point definition: [interactable, time, (optional)easing]

Examples

// Point Definition
{
// neat example goes here
}
// AnimateTrack
{
// neat example goes here
}

Above event results in:

(cool gif goes here)

{
// neat example goes here
}

Above event results in:

(cool gif goes here)

_definitePosition

_definitePosition may be used in AssignPathAnimation

Describes the definite position of an object. Will completely overwrite the object's default movement. However, this does take into account lineIndex/lineLayer and world rotation.

An object with with _definitePosition will still be offset by the _position property.

Note: One unit in _definitePosition is equal to the width of one lane.

Point definition: [x, y, z, time, (optional)easing, (optional)spline]

Examples

// Definite Position
{ 
  "_name": "defPosPath",
  "_points":[
    [0, 0, 20, 0],
    [10, 0, 20, 0.1],
    [10, 10, 20, 0.2],
    [0, 10, 20, 0.3],
    [0, 0, 20, 0.4],
    [0, 0, 10, 0.5],
    [-20, 0, 10, 1.0]
  ]
}, {
  "_name":"defPosNormal",
  "_points":[
    [0,0,23,0],
    [0,0,0,0.5],
    [0,0,-23,1]
  ]
}
{
  "_time":0,
  "_type":"AssignPathAnimation",
  "_data":{
    "_track":"definitePosDemo",
    "_definitePosition":"defPosNormal",
    "_duration":0
  }
}, {
  "_time":132,
  "_type":"AssignPathAnimation",
  "_data":{
    "_track":"definitePosDemo",
    "_definitePosition":"defPosPath",
    "_duration":3
  }
}

Above event results in:

AssignPathDefinitePosition

_time

_time may be used in AnimateTrack

_time is relatively advanced so make sure to have a solid understanding of Noodle Extensions before delving into time. _time can only be used in AnimateTrack as it lets you control what point in the note's "lifespan" it is at a given time using AnimateTrack.

// Example
[
  [0, 0],
  [0.2, 0.2],
  [0.3, 0.4],
  [0.4, 0.4]
]

It is worth noting that every object on one track will get the same time values when animating this property. This means they would suddenly appear to all be at the same point. It is recommended for every object to have its own track when using _time

Say you want a time AnimateTrack on an object that will make it behave normally for starters. You want the AnimateTrack to start right when the object spawns, meaning _time-halfJumpDurationInBeats of the object. It's duration should be halfJumpJurationInBeats*2. With this, the point definition of

[
  [0, 0],
  [1, 1]
]

would behave as normal.

[
  [0, 0],
  [0.45, 0.15],
  [0.15, 0.30],
  [0.5, 0.5],
  [1, 1]
]

would appear to go forwards, then backwards.

Note: If you intend to despawn an object using _time, obstacles require a time that is >1 while note require a time that is >=1.

Point definition: [time, time, (optional)easing]

Examples

It is highly recommended you script/automate anything involving time. This is simply showcasing on one note to help visualize.

// Point Definitions
"_pointDefinitions": [
  {
    "_name": "SingleNoteTime",
    "_points": [
      [0, 0],
      [0.45, 0.15],
      [0.15, 0.30],
      [0.5, 0.5],
      [1, 1]
    ]
  }
]
// AnimateTrack
{
  "_time": 153,
  "_type": "AnimateTrack",
  "_data": {
    "_time": "SingleNoteTime",
    "_duration": 10,
    "_track": "singleNoteTimeTrack"
  }
}

Above event results in:

AnimateTrackTime

_attenuation

_attenuation may be used in AnimateTrack

_attenuation controls the attenuation property of fog. To be used in conjunction with AssignFogTrack.

Point definition: [value, time, (optional)easing]

_offset

_offset may be used in AnimateTrack

_offset controls the offset property of fog. To be used in conjunction with AssignFogTrack.

Point definition: [value, time, (optional)easing]

_startY

_startY may be used in AnimateTrack

_startY controls the heightFogStartY property of fog. To be used in conjunction with AssignFogTrack.

Point definition: [value, time, (optional)easing]

_height

_height may be used in AnimateTrack

_height controls the heightFogHeight property of fog. To be used in conjunction with AssignFogTrack.

Point definition: [value, time, (optional)easing]

⚠️ **GitHub.com Fallback** ⚠️