Opening the Animation Editor
From Main Menu
~ (tilde) to open the debug menu, then select Animation EditorDirect Launch
FEATURE_ANIMATION_EDITOR compiler flag enabled.Interface Modes
The Animation Editor has two main views that you can switch between:View Switching
Spritesheet View
The spritesheet view displays the entire sprite atlas for a character:Features
- Full Atlas Display: Shows the complete spritesheet texture
- Frame Outlines: Red outlines around each animation frame
- Frame Information: Displays frame dimensions and count
- File Information: Shows the XML/JSON file being used
Navigation
- Mouse Wheel: Zoom in/out on the spritesheet
- Middle Mouse + Drag: Pan around the view
- H: Toggle HUD visibility
- F4: Return to main menu
Animation Offset View
This is the primary mode for editing character animations:Loading a Character
Open Character Dropdown
Select Character
- bf (Boyfriend)
- dad (Daddy Dearest)
- gf (Girlfriend)
- pico
- mom
- And all other registered characters
Character Loads
Keyboard Controls
Animation Selection
Offset Adjustment
Additional Controls
Saving Offsets
The Animation Editor provides two save formats:Save Options
Adjust All Animations
Choose Save Format
- Use
Ctrl+Sfor modern JSON format (recommended) - Use
Ctrl+Shift+Sfor legacy text format
File Saved
- JSON:
[characterId].json - Legacy:
[characterId]Offsets.txt
Mouse Controls
You can also adjust offsets directly with the mouse:Click and Drag Offset
Position Mouse
Click on Character
Drag to Adjust
- The offset values update in real-time
- Release to set the new offset
Onion Skin Feature
Onion skinning helps visualize animation differences:What is Onion Skin?
A semi-transparent overlay showing a reference pose:- Displays at 60% opacity
- Shows the “idle” animation by default (or danceLeft/danceRight)
- Helps align different animations consistently
Using Onion Skin
Enable Onion Skin
F to toggle the onion skin on/offSelect Animation to Edit
Compare and Adjust
When to Use Onion Skin
When to Use Onion Skin
- Aligning all sing animations to match idle position
- Ensuring miss animations align with regular animations
- Maintaining consistent character position across all frames
- Fixing “jumpy” animations that don’t line up
Animation Dropdown
The Animation Dropdown in the editor dialog provides:- Complete list of all animations for the character
- Alphabetically sorted for easy navigation
- Current animation highlighted
- Click to instantly switch to any animation
Character Flipping
Some characters are drawn facing the wrong direction:Load Character
Check Direction
Flip if Needed
G to flip the character horizontallyAdjust Offsets
Understanding Offsets
Animation offsets compensate for different frame sizes:Why Offsets Matter
- Different animations have different frame dimensions
- Without offsets, characters “jump” between animations
- Offsets ensure smooth position transitions
- Proper offsets make animations feel polished
Offset Coordinate System
Common Offset Patterns
Idle Animation
Idle Animation
[0, 0] as the reference point. All other animations are offset relative to idle.Sing Up
Sing Up
Sing Down
Sing Down
Sing Left/Right
Sing Left/Right
Miss Animations
Miss Animations
Offset Display
The current offset is displayed at the bottom of the screen:- Updates in real-time as you adjust
- Shows exact pixel values
- Persists across animation switches (shows offset for current animation)
Camera Controls
Similar to other debug tools:2), the camera automatically focuses on the character and sets zoom to 0.95.Output Formats
New JSON Format (Ctrl+S)
Saves complete character data:
Legacy Text Format (Ctrl+Shift+S)
Simple text format:
Workflow Guide
Load Character
Start with Idle
Space to view the idle animation- This is usually the reference animation (offset 0,0)
Test Each Animation
- Press
Wfor singUP - Press
Sfor singDOWN - Press
Afor singLEFT - Press
Dfor singRIGHT
Identify Misalignments
Adjust Offsets
- Use arrow keys to adjust position
- Use
Ctrl+Arrowsfor fine adjustments - Or click and drag with mouse
Use Onion Skin
F to enable onion skin for reference while adjustingTest Miss Animations
Shift while pressing WASD to check miss animationsSave Your Work
Ctrl+S to save the character JSONTest In-Game
Tips for Perfect Offsets
Use Visual Landmarks
Use Visual Landmarks
Check Multiple Frames
Check Multiple Frames
Enter to replay and check each frame.Test with Music
Test with Music
Reference Original Characters
Reference Original Characters
Consistent Miss Offsets
Consistent Miss Offsets
Troubleshooting
Character Not Loading
Character Not Loading
- Verify character ID exists in character registry
- Check that sprite atlas file exists
- Ensure animation data is properly formatted
Animations Not Playing
Animations Not Playing
- Verify animation names match exactly (case-sensitive)
- Check that sprite atlas includes the animation frames
- Use Spritesheet View to verify frames are present
Offsets Not Saving
Offsets Not Saving
- Ensure you’re pressing
Ctrl+S(not justS) - Check file permissions in the character data directory
- Verify the character JSON path is writable
Onion Skin Not Visible
Onion Skin Not Visible
- Press
Fto toggle it on - Check if the character has an idle/danceLeft animation
- Try selecting a different animation and toggling again
Related Tools
- Chart Editor - Use characters in charts
- Stage Editor - Position characters on stages
- Debug Hotkeys - Quick access shortcuts
