/AFFINE

A plugin for Quaver, designed to automate and simplify timing lines.

Primary LanguageLuaMozilla Public License 2.0MPL-2.0

AFFINE v1.1.2

GitHub commit activity GitHub commits since latest release GitHub License

AFFINE (pronounced aff-een) is a Quaver plugin designed to simplify map making. In particular, AFFINE assists with the creation of static and dynamic timing lines.

Features:

  • Automatically place no-SV timing line batches.
  • Place frames of timing lines.
  • Create versatile timing line animations.
  • Automatically update with affine-updater.exe.

Menus:

  • (Standard > Spread) Place a gradient of timing lines over a selected region.
  • (Standard > At Notes) Place timing lines at selected notes.
  • (Standard > Rainbow) Select a group of notes to apply the given colors to the notes, cycling when the end of the list is reached.
  • (Fixed > Manual) Place still timing lines at desired height.
  • (Fixed > Automatic) Place a gradient of still timing lines between designated heights.
  • (Fixed > Random) Place a random amount of still timing lines within a region, at random locations.
  • (Animation > Manual (Basic)) Set up keyframes for individual timing lines to move from one MSX to another.
  • (Animation > Increment) Setup a base manual frame. For each note present within the animation boundary, a new frame is generated, progressively forming the base manual frame.
  • (Animation > Boundary (Static)) Hide and show backdrop timing lines using a boundary.
  • (Animation > Boundary (Dynamic)) Scale backdrop timing lines with a boundary.
  • (Animation > Glitch) Create an animation with constantly changing random notes.
  • (Animation > Spectrum) Create an animation with a spectrum with variable height.
  • (Animation > Expansion / Contraction) Create an animation with expanding / contracting timing lines.
  • (Deletion) Easily delete all timing lines and scroll velocities within a certain range.

Basic Tutorial:

  • Select the primary line placement type (Standard, Fixed, Animation).
  • Select the secondary line placement type. This is the second dropdown below the primary line placement dropdown.
  • Adjust settings as desired.
  • Press Place Lines or press the A key.
  • If the effect does not look correct, adjust the MS Spacing setting until it does. Ideally, this number should be as low as possible.

Installation:

  1. Go to the latest release and download AFFINE.zip.

  2. Inside the zip folder will be a folder called AFFINE. Place this into your Quaver plugin folder.

    2a. If you're having trouble finding the plugin folder, go to the song selection menu. Then, right-click any map, and select the Open Folder option. In your file explorer, backtrack to the Quaver folder. Inside the Quaver folder will be a folder called Plugins. Place AFFINE here.

  3. Done!

Building and Modifying:

DO NOT EDIT THE PLUGIN.LUA FILE.

All files necessary are contained within the src directory. When you're finished editing, run src/compiler.js to compile all files into plugin.lua. Note: compilation is only possible with Node.js installed.

TO DO (before v1.2):

  • Add documentation to all helper functions

Special thanks to:

  • amoguSV: The internal logic for displacements, increments, and teleportation was taken from this plugin. Highly recommended to use this plugin alongside AFFINE.
  • IceDynamix' Plugin Guide: All imgui documentation was from this document. This is almost necessary for new plugin developers.