Skip to content

Releases: jbunke/stipple-effect

Stipple Effect v1.2.1

06 Sep 08:09
d8eb2f3
Compare
Choose a tag to compare

1_2_1-cover

Update Summary

Full changelog: v1.2.0...v1.2.1

Added:

  • Minimum values are enforced on startup for settings that could lead to crashes
  • Extended the Color Picker tool with two alternate modes
    • Holding Shift searches layer by layer for the highest non-transparent color at the specified pixel; does nothing if no such pixel is found
    • Holding Ctrl samples the pixel from the flattened project
  • Normal map color sampler with quantization option

Fixed:

  • Bug: Attempting to validate a script with no return type crashes the program
  • Bug: Crashes due to impossible layout/sizing logic

Stipple Effect v1.2.0

03 Sep 15:08
6d5c0c9
Compare
Choose a tag to compare

Hey everyone!

I'm happy to announce that I have just released a huge update to Stipple Effect! This update massively extends and improves the scripting API, the preview window and the onion skinning system.

You can read the full blog post here: https://flinkerflitzer.itch.io/stipple-effect/devlog/793216/120-major-improvements-and-additions-to-scripting-preview-window-and-onion-skinning

As always, you can download the Windows installer or the cross-platform binary if you have purchased Stipple Effect on Itch.io, or you can compile the update from source with the instructions found in the README.

Screenshot (2843) Screenshot (2845)

Admin

I am in the process of reorganizing the projects related to Stipple Effect. The documentation, API, and DeltaScript are all housed in their own dedicated repositories now. This will make it easier to deploy documentation to different places, such as the personal website I am working on in my spare time.

What's Next?

I have big plans for v1.3, which will be centered around a command-line tool that will enable users to test and run scripts without the UI.

However, before I start working on that, to make the program and its technical features more accessible, I will be working on the DeltaScript language specification and the Stipple Effect documentation, and I need your help! If you are a Stipple Effect user and a fluent English speaker with good technical writing skills, I would love for you to help me with the documentation. You can do this by forking the documentation repository linked above, making changes like correcting typos or adding content, and submitting a pull request for my consideration. I will be sure to write a contribution guide ASAP to go into more detail.

Update Summary

Full changelog: v1.1.0...v1.2.0

Added:

  • Layer visibility actions to navbar under "Layer" -> "Visibility status"
  • Bug reporting, scripting API, VS Code extension links to navbar under "Stipple Effect" -> "Resources"
  • Setting for whether preview windows are opened in a separate window
  • Reimport a preview into Stipple Effect with layers preserved
  • Generate time lapses that track project changes
  • New brush shapes
    • Square
    • Line + angle
  • Added setting to propagate changes made to breadth tool properties to all tools; affected tools:
    • Brush
    • Shade Brush
    • Script Brush
    • Eraser
    • Line Tool
    • Shape Tool
    • Gradient Tool
  • Frames with non-standard durations show an asterisk (*) next to their frame number
  • Added { and } to the illegal character set for names (filename, layer name, etc.)

Changed:

  • Overhauled and extended onion skin system
    • Onion skins can now be rendered below or above the cel contents
    • Onion skin types:
      • Standard translucent copy of contents
      • Outline
      • Tinted
    • Render skins for up to 6 cels behind or ahead of the current frame index
  • Improved file dialogs on Windows
  • Combined file dialog file filters for .stip and image files into a single filter
  • (image -> image) preview scripts can be run on animated projects
  • Cosmetic and layout changes
    • Simplified and shortened color sampler labels
    • Updated Zo theme colors
    • Updated layer button layout and flipbook panel sizing
  • Preview window changes
    • Preview windows are now resizeable
    • Preview windows can run in the main program window or a separate window as before
    • Preview windows now persist across project context switches
  • Palette colors are assigned differently according to the mouse button clicked:
    • Left click: primary color
    • Right click: secondary color
    • Middle click: selected color (most recently assigned or modified of primary and secondary)

Fixed:

  • Bug: $SE.single_outline() calls a double outline instead of a single outline
  • Bug: void helper functions cannot be called
  • Bug: suspended execution due to file dialog display leads to a playback backlog
  • Bug: attempts to create the settings folder every time the program writes settings

API Changes:

  • Added:

    • New types
      • script
      • save_config
    • Constants
      • Scope constants that evaluate to int
        • $SE.PROJECT = 0
        • $SE.LAYER = 1
        • $SE.FRAME = 2
        • $SE.CEL = 3
      • Save type constants that evaluate to int
        • $SE.NATIVE = 0
        • $SE.PNG_SHEET = 1
        • $SE.PNG_SEPARATE = 2
        • $SE.GIF = 3
        • $SE.MP4 = 4
      • Dimension constants that evaluate to bool
        • $SE.HORZ = true
        • $SE.VERT = false
    • Added layer functions; for some layer L...
      • L.get_name() -> string
      • L.set_name(string);
    • Added project functions; for some project P...
      • P.get_width() -> int
      • P.get_height() -> int
      • P.get_layer(string) -> layer
      • P.get_save_config() -> save_config
      • P.save_as(save_config);
    • Added global functions
      • $SE.read_script(string) -> script
      • $SE.new_save_config(string[], string, int) -> save_config
      • $SE.transform(project, script, bool, bool) -> project
      • $SE.transform(project, script) -> project
      • $SE.new_project(int, int, bool) -> project
  • Changed:

    • Renamed layer functions; for some layer L...
      • Renamed L.get_frame(int) to L.get_cel(int)
      • Renamed L.set_frame(int, image) to L.set_cel(int, image)
      • Renamed L.wipe_frame(int, image) to L.wipe_cel(int, image)
      • Renamed L.edit_frame(int, image) to L.edit_cel(int, image)
      • Renamed L.link_frames() to L.link_cels()
      • Renamed L.unlink_frames() to L.unlink_cels()
      • Renamed L.disable_layer() to L.disable()
      • Renamed L.enable_layer() to L.enable()

Stipple Effect v1.1.0

10 Aug 00:06
2c383b4
Compare
Choose a tag to compare

The UI/UX Update

Full Changelog: v1.0.1...v1.1.0

Update Summary

Added:

  • Draggable buttons: buttons can be clicked and dragged to resort...
    • Frames
    • Layers
    • Palette colors
  • Cel buttons
    • A range of cels across multiple frames and layers can be selected
    • Cel selection operations: copy, cut, paste, delete
  • Multiple color sampling modes
    • RGB-A sliders
    • HSV-A sliders
    • Saturation-value matrix
    • Color wheel
  • Navigation bar
  • Number key icons to first 9 project buttons

Changed:

  • Layout overhaul
    • The layers and frames panels have been replaced with the "flipbook" panel
    • The colors panel now displays the color sampler and the palette simultaneously
  • The preset palettes are no longer preloaded; can now be accessed in the navigation bar

Fixed:

  • Bug: Tool mouse actions can still be executed when the cursor is in a dropdown menu
  • Bug: Cannot use the brush tool without a selected palette

API Changes:

  • Removed:

    • Removed the property mutable of the type palette
  • Changed:

    • API references to LAYER-FRAME have been renamed to CEL; no changed behaviour

Stipple Effect v1.0.1

11 Jul 17:23
00575c9
Compare
Choose a tag to compare

Full Changelog: v1.0.0...v1.0.1

Update Summary

Added:

  • Zoom levels 125%, 150%, and 175% for smoother zooming
  • Pressing Esc while a dialog menu is open will clear the dialog; equivalent of "Cancel" button

Changed:

  • 2x the program frame rate to 60 FPS
  • Tool tips display after hovering over a button for 0.25 seconds, twice as fast as before

Fixed:

  • Bug: Script calls to .keys() not being handled correctly
  • Bug: Box select tool does not select off-canvas pixels inside the selection bounds
  • Bug: Reimporting a scripted preview inherits layer name from its source project

Stipple Effect v1.0.0

13 Jun 18:00
34823df
Compare
Choose a tag to compare

Official Release

This update marks the official release of Stipple Effect!

Full Changelog: v0.5.1...v1.0.0

Update Summary

Changed:

  • Optimized Move Selection tool preview overlay
  • Optimized selection overlay rendering
  • Updated program logo

Fixed:

  • Bug: Breadth tool overlays are not redrawn at a zoom level of 100%

Stipple Effect v0.5.1

12 Jun 16:33
2a507ef
Compare
Choose a tag to compare

Full Changelog: v0.5.0...v0.5.1

Patch

Fixed:

  • Bug: Attempting to pick up a selection with pixels off the grid is causing the program to crash

Stipple Effect v0.5.0

12 Jun 14:22
868e99a
Compare
Choose a tag to compare

The Performance Update

Full Changelog: v0.4.2...v0.5.0

Update Summary

Added:

  • Added tools
    • Shape tool (hotkey R)
    • Script brush (hotkey Q)
  • Polygon Select now has a "close polygon" shortcut (Shift + Left Click)
  • Images can now be pasted from the system clipboard
  • Added themes:
    • Asylum
    • Ramallah
  • Added "snap to target pixel" behaviour (Shift + Enter)
  • Stretch operation can now be snapped to the pixel grid by holding Shift
  • Added relative frame durations so some frames can be displayed for more or less time than others
  • Added history dialog (Shift + Y) where users can browse all cached project states and revert to any of them
  • Added playback controls to preview dialogs
  • Added keyboard controls to the preview window's playback controls

Changed:

  • Optimized selection overlays
  • Optimized selection logic
  • Optimized search algorithm (Wand and Fill tools)
  • Now discards intermediate (granular) project states after five new checkpoint project states
  • Updated themes:
    • Zo
    • Neon
    • Bunkering
  • Move selection and pick up selection action previews are rendered in a different style
  • Changed frame limit from 100 to 300 and layer limit from 100 to 50
  • Increased maximum canvas bounds to 1920 x 1080 pixels
  • Improved selection transform node manipulation

Fixed:

  • Bug: PIXEL_GRID_ON_BY_DEFAULT setting flag is not persistent

API Changes:

  • Added:

    • project frame duration functions:
      • P.get_frame_duration(int i) -> float
      • P.get_frame_durations() -> float[]
      • P.set_frame_duration(int i, float frame_duration);
  • Changed:

    • Separated selection from scope in color actions
      • Modified scope enumeration:
        0: PROJECT
        1: LAYER
        2: FRAME
        3: LAYER_FRAME
      • Changed project color action function signatures:
        • P.palettize(palette pal, int scope, bool include_disabled, bool ignore_selection);
        • P.extract_to_pal(palette pal, int scope, bool include_disabled, bool ignore_selection);
        • P.hsv_shift(int scope, bool include_disabled, bool ignore_selection, int h_shift, N s_shift, N v_shift);
        • P.color_script(int scope, bool include_disabled, bool ignore_selection, string script_path);

Stipple Effect v0.4.2

26 May 00:32
e398ea2
Compare
Choose a tag to compare

Full Changelog: v0.4.1...v0.4.2

Update Summary

Added:

  • Color scripts that encounter errors now display their errors

Changed:

  • Color action previews (HSV level shift, color script execution) now show transparency checkerboard behind previewed image

API Changes:

Note: This update completely redesigned the API and altered the syntax of every API function. Scripts that utilize API functions that were written for versions 0.4.0 or 0.4.1 will need to be rewritten in order to execute on subsequent versions of Stipple Effect.

  • Added:
    • palette type
    • Global namespace $SE
    • project color action functions: (#87)
      • P.palettize(palette pal, int scope, bool include_disabled);
      • P.extract_to_pal(palette pal, int scope, bool include_disabled);
      • P.hsv_shift(int scope, bool include_disabled, int h_shift, float s_shift, float v_shift);
      • P.color_script(int scope, bool include_disabled, string script_path);
  • Changed:
    • Renamed set_frame_content to set_frame
    • Renamed get_frame_content to get_frame

Stipple Effect v0.4.1

22 May 04:45
27e9f9c
Compare
Choose a tag to compare

Full Changelog: v0.4.0...v0.4.1

Patch

Changed:

  • Running Stipple Effect on Windows will now read and write settings from %appdata%.

Stipple Effect v0.4.0

21 May 05:04
340a9d6
Compare
Choose a tag to compare

The Scripting Update

Read the blog post here!

Full Changelog: v0.3.0...v0.4.0

Update Summary

Added:

  • Added scripting (#34, #60, #64, #70, #71, #72, #73, #78)
    • Added automation scripts (#74)
    • Added preview scripts (#69)
    • Added color scripts (#82)
  • Added HSV level shifting (#46)
  • Added "Flatten project" layer action (#77)
  • Added themes (#62, #80)
    • Added "Zo" theme inspired by Haiti
    • Added "Neon" theme
    • Added "Bunkering" theme inspired by the environmental degradation the Niger Delta
  • Added transparency checkerboard to the color slider core
  • Dialog menus can now be closed by pressing {Enter} if the precondition is passing (#56)
  • Added settings for windowed program size
  • Added flag to include or exclude disabled layers in color actions (#55)

Changed:

  • Overhauled outlines (#76, #79)
    • Outlines can now be internal as well as external and up to 10 pixels thick
    • Redesigned outlines dialog menu
  • Optimization: "Project" menu elements are no longer redrawn after the canvas is edited (#81)

Fixed:

  • Bug: The dynamic label showing an example file name for the prefix and suffix doesn't update
  • Bug: Lowest menu elements were clipped on the default settings page (#50)
  • Bug: Not redrawing menus after a panel is shown/hidden in the panel manager dialog
  • Bug: Setting pixel grid and checkerboard via shortcut (Ctrl + B) is resetting window size and theme (#61)