Stipple Effect v1.2.0
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.
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.
- Stipple Effect API
- Stipple Effect documentation
- DeltaScript (the base language the Stipple Effect API extends)
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
- Scope constants that evaluate to
- Added
layer
functions; for somelayer L
...-
L.get_name() -> string
-
L.set_name(string);
-
- Added
project
functions; for someproject 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
-
- New types
-
Changed:
- Renamed
layer
functions; for somelayer L
...- Renamed
L.get_frame(int)
toL.get_cel(int)
- Renamed
L.set_frame(int, image)
toL.set_cel(int, image)
- Renamed
L.wipe_frame(int, image)
toL.wipe_cel(int, image)
- Renamed
L.edit_frame(int, image)
toL.edit_cel(int, image)
- Renamed
L.link_frames()
toL.link_cels()
- Renamed
L.unlink_frames()
toL.unlink_cels()
- Renamed
L.disable_layer()
toL.disable()
- Renamed
L.enable_layer()
toL.enable()
- Renamed
- Renamed