Added support for GameMaker Studio 2 individual sprite speeds
Global animation speed arguments have been removed from vngen_object_draw, vngen_log_draw, vngen_emote_create, and vngen_emote_create_ext
Other timing functions have also been improved as a result of this update
Added vngen_file_save_map to facilitate adding VNgen data to fully custom save files
Added vngen_set_vol and audio type macros to replace individual audio volume scripts
Volume control of UI/navigation sounds is now supported
Volume can now be set from the debug command console
Added auto keyword support to vngen_log_add, allowing custom content to be added to the backlog using the system queue
Added looping animation support to emotes
Added support for custom hotspots using rectangular collision masks (bounding boxes) on options and buttons
Added new scanline and radial blur shaders
Added new cubic bezier ease mode
Added new 'output' functions to retrieve the state of many 'input' functions, such as whether or not the engine is paused, or a button or option is held down
Added new 'get' functions for global audio volumes, text alignment, lineheight, text speed, and event read state
Added new vngen_code_execute functions for running arbitrary code as VNgen actions without the use of scripts
Updated vngen_set_lineheight to support per-entity lineheight multipliers
Save functions now also read and write global lineheight multipliers
Updated input functions to use a common prefix and support explicit true/false settings in addition to toggles
Important! See compatibility notes for a list of syntax updates!
Updated vngen_option_clear to support removing option results from history as well as memory
Updated UI visibility toggle script to optionally allow progression while hidden
Updated vngen_room_goto to optionally allow skipping to a VNgen event upon room change
Updated highlight argument in vngen_object_draw and perform argument in vngen_instance_change to be optional (enabled by default)
Updated auto prompts to match text scale and rotation, not just position
Updated backlog audio to match global voice volume
Updated vngen_file_load to support switching rooms upon loading files
Updated vngen_file_load_map to accept ds_maps generated by vngen_file_save_map
Fixed multiple crashes related to running file functions when files or save data do not exist
Fixed room data missing from unencrypted save files loaded with vngen_file_load_map
Fixed text alignment and speed reverting to global defaults after window is resized
Fixed volume functions causing crashes when run outside of a VNgen object or after the running VNgen object has been cleared
Fixed pause state not being preserved if vngen_goto is run while the engine is paused
Fixed indefinite pauses applying even if auto mode is enabled
All negative values will now trigger indefinite pause, but if auto mode is enabled, the literal numeric value will be used instead. (e.g. [pause=-2] will pause for 2 seconds if auto mode is enabled, and pause indefinitely otherwise)
This behavior can be enabled or disabled with vngen_set_auto_type
This update applies to both events and text markup
Fixed options being added to the backlog even when an empty string is used
Image-only options are now properly supported
Fixed vngen_get_option clearing options prematurely if an option ID is provided in the same event as options are presented
Replaced internal timing functions with a simpler, more versatile timing system
Added automatic checks to preserve custom text alignment when drawing VNgen
Previously it was required to manually reset draw_set_halign or draw_set_valign before drawing VNgen. This is no longer necessary, as VNgen properly handles both functions.
(Requires GameMaker Studio v2.2.1.375 or newer)
Added automatic option results logging. Setting an option block ID in vngen_get_option now returns user selections from any previous option!
Option selection data is now also saved/loaded with VNgen file functions
Added vngen_file_load_map for restoring saved VNgen data to a user-defined ds_map for later usage
Improved file functions
Fixed loading only restoring the VNgen object and not the event, in some cases
Save/load can now be performed in non-VNgen objects
Save files now also record the active room when saved
Improved rendering on scenes and debug interface
Blending is now consistent between full/reduced and legacy render modes
Texture filtering is now disabled on debug interface for more legible text
Improved handling of speech animations when text and voice are active simultaneously
Fixed an issue where prematurely skipping text with an indefinite pause skipped the text, but not the pause
Fixed incorrect backlog touch scrolling at non-standard framerates
Fixed perspective shaders drawing a blank frame when initialized
Added auto keyword support to vngen_text_create_* actions to better facilitate NVL-style presentation
Using auto positioning will create the new text entity directly below the previous one, eliminating the need to guess at unpredictable text surface dimensions
Updated prompts and character speech animations to pause while [pause] tags are active
Fixed a bug causing consecutive [pause=-1] tags to fail
Fixed a bug causing incorrect vox playback
General vox behavior and text performance have been improved as a result of this fix
Fixed a bug causing audio volume to be reset if fullscreen mode is changed
Fixed outdated documentation examples in Getting Started guide
GameMaker Studio 1 support now moved to critical updates and bug fixes only
Added native 4K support to internal functions and debug interface
Added *_transformed functions to VNgen options for added hover/select animation and stylization
This also replaced the extra color functionality previously added to vngen_option_create_ext, resulting in a simpler *_ext function
Added on-screen buttons as a new entity type
Log buttons have been rewritten to match the new button standard and can now be used to execute arbitrary code, not just scroll the log
The existing vngen_type_button macro now refers to both log buttons and standard buttons and can be used to check both in property functions
Added support for deformations of any number of subdivisions
Deformation columns and rows can now be set on a per-deformation basis
Updated the included def_wave deformation to display an actual sine wave
Added new underwater-like wave shader
Added vngen_count to replace individual entity *_count functions with a universal function
Added previous keyword support to character face coordinates in character replace actions
Added full keyword support to vngen_audio_modify loop clip settings
Added vngen_event_get_label to complement vngen_event_get_index
Added vngen_script_execute_ext to perform scripts as VNgen actions, including when the running event is skipped
Updated vngen_event_get_index to optionally return the index of an event by label (rather than the current event)
Replaced per-entity text speed with vngen_set_speed, which sets speed for all text entities.
Replaced vngen_instance_create with vngen_instance_change
The existing script was not really necessary and functioned more closely to the built-in instance_change function anyhow
Replaced bracket escape character with ^. Markup can now be drawn literally as ^[ instead of \[
This change was necessary to escape markup in GMS2, but was changed in both versions for interoperability
Removed crop animations from replace transitions for consistency among all entities
Previously, only a few entities supported them, and created undesirable visual effects in some use-cases.
Removed tiled scene deformations from renderlevel 1
It is technically not possible to deform tiled scenes at this renderlevel, therefore scenes will now fall back to non-deformed tiles rather than sacrifice tile mode for deformations
Removed vngen_option_exists as its functionality has been superseded by vngen_exists
Removed language macros as they have been superseded by vngen_type_* macros
Fixed text speeds of 0 or less (instant) causing crashes
Fixed negative interpolation causing crashes if ease_circ_* modes are used
Fixed opaque backgrounds appearing on highlighted objects if certain shaders or blend modes were used
Fixed shaders being duplicated when a deform is also active
Fixed auto mode being disabled when an indefinite event pause is encountered
Fixed backlog override fonts/colors failing to apply
Fixed missing backlog audio data if voice is paused in background while previous voice is played in backlog
Fixed non-looped audio continuing to play when skipped while the engine is paused
Fixed music losing position and clip settings if vngen_goto is run
Fixed non-looped sounds failing to fade in on create
Fixed mouse cursor getting stuck in hover state if vngen_goto is run while in this state
Fixed scaling not updating when launched in fullscreen
Added new tiled scenes system with support for rotation, gradient color blending, wipe transitions, and deforms
Added paragraph alignment support to text (labels coming soon)
Added animation blending support to transforms and deforms
Added color gradient and wipe transition support to deforms
Updated file functions to save/load text alignment and language settings
Improved replace fade transitions to better support transparent entities
Improved text auto linebreak accuracy
Fixed character flipping in vngen_char_replace_ext being absolute instead of relative
Fixed memory leaks in vngen_object_clear
Removed scale from perspective calculations. Distance is now determined solely by z-index for better control and more predictable perspective behavior.
Standardized code to reduce redundancy and improve performance
Added all keyword support to modify, animate, effects, audio, and log button functions
Added idle argument to vngen_char_create_ext for consistency with vngen_char_replace_ext
Added name argument to vngen_text_create_ext and vngen_text_replace_ext for consistency with other functions
Added any keyword support to vngen_exists to check whether any entity of a given type exists
Added optional easing support for all non-extended functions
Added vngen_option_create_ext with support for origin, scaling, and variable text colors, and simplified vngen_option_create
Added support for checking log buttons to vngen_exists and vngen_get_index
Updated prompts to accurately reflect current state during replacement fade and accurately auto-position on rotated text
Updated vngen_get_option to clear option results by default--setting the true argument is no longer required
Updated replace functions to fade the most recently viewed resource when combined with vngen_goto (rather than the most recent resource chronologically, which isn't always visually correct)
Updated animations to rotate coordinates relative to perspective only, not the rotation of the animated entity
Fixed option position being calculated incorrectly
Fixed destroy actions never completing when all keyword is used if no entities of the given type exist
Fixed skip failure when skipping to an event label where the event is last in a series
Fixed effects causing errors during some uses of vngen_goto
Renamed audio functions for consistency with other functions and added wrappers for legacy syntax support
Renamed vngen_get_option_number to vngen_option_count for consistency with other functions
Renamed vngen_get_option_active to vngen_option_exists for consistency with other functions
Standardized code to reduce redundancy and improve performance
Fixed an issue causing touch scrolling to sometimes scroll the backlog infinitely
Fixed manual linebreaks being removed from backlog text
Fixed backlog entries being listed in literal order rather than historical order.
Added vngen_log_get_index script to return historical log entry index from an entry's on-screen order.
Added new proportion scaling modes which scale relatively to changes in display scale
Added new properties functions (vngen_get_*) to return the calculated width, height, x, y, xscale, yscale, and rotation of VNgen entities, factoring in animations and modifications
Updated vngen_exists to optionally check a specific character for attachments, rather than check all characters
Enhanced all built-in animations for use with perspective
Reduced linebreak strictness so that text surface width can expand or shrink to fit text automatically
Renamed vngen_pragma to sys_config for consistency with other new engine functions
Standardized code to reduce redundancy and improve performance
Added additional macros for entity types, which can now be tested with vngen_exists
Added new zoom transitions which replace the old scale transition
Rewrote skip functionality to fix bugs with labels and some jumps taking more than a frame to complete
Fixed backlog data being duplicated when the window is resized, forcing an event restart--without also disabling duplicate data for intentional restarts. This required creating a new backlog queue system to hold all new log data until rescaling is complete.
Fixed attachments scaling to the display rather than the parent character with vngen_attach_replace_ext
Fixed option button sprites not respecting sprite alignment
Renamed existing vngen_emote_create to vngen_emote_create_ext and added a simplified vngen_emote_create in its place.
Standardized code to reduce redundancy and improve performance