A toolset for Arcaea aff files.
- Aff2Preview: 2D chart preview generator
- AffAnalyzer: Analyze aff files
Generate 2D chart preview image by aff file.
Use System.Drawing.Common to generate images by default. To use another image library,
pass graphicsAdapterFactory and imageFactory to the AffRenderer constructor.
Usage:
using AffTools.Aff2Preview;
AffRenderer affRenderer = new("assets/2.aff")
{
Title = "Gift",
Artist = "Notorious(Nota & TRIAL)",
Charter = "Misaka12456",
Side = 0, // 0:hikari 1:tairitsu 2:dynamix or tempestissimo
Difficulty = 2,
Rating = 10.3f,
Notes = 0, // notes are counted by internal note counter now
ChartBpm = 200, // also used as the preview layout BPM; 0 uses the AFF base timing
IsMirror = false, // controls whether the chart is mirrored or not
GlobalArcSamplingDensity = 1f, // values above 1 make curved arcs smoother
};
// image resource to generate chart preview.
// for each side, please specify the image manually.
affRenderer.LoadResource(
"assets/note.png",
"assets/note_hold.png",
"assets/arc_body.png",
"", // sound arctap; empty string falls back to arc_body.png
"", // designant arctap; empty string falls back to arc_body.png
"assets/base.jpg", // empty string if unwanted
"assets/base.jpg"); // empty string if unwanted
var image = affRenderer.Draw();
image?.SaveToPng("output.png");Arcaea 6.8 Designant arcs are supported. The parser accepts both the traditional boolean form and the extended form with an optional per-arc sampling density:
arc(0,1000,0.00,1.00,b,0.00,1.00,0,none,true);
arc(0,1000,0.00,1.00,b,0.00,1.00,0,none,designant,2.0)[arctap(500)];
Designant arcs and their arctaps are visual guides and are excluded from note
analysis and note counts. Difficulty value 4 is displayed as Eternal.
Example output: assets/2.aff
Can analyze aff file and generate chart data.
- Note timing
- Segment timing, bpm and beat per segment
- Aff flaw detection
- Note counting
- Note count at specific timing
- Note density
Assets: CC-BY-NC Arcaea-Infinity/OpenArcaeaArts
Gift: Source: BOFXVI
Aff & cover 616 SB License Misaka12456 from Arcaea-Infinity/FanmadeCharts
Part of note counting code modified from Lolitania/ArcaeaChartNoteCounterLibrary under BSD-3-Clause license.
Licensed under 616 SB License.
