Difference between revisions of "Visual Novel Busts (Irina)"

From Yanfly.moe Wiki
Jump to navigation Jump to search
Line 946: Line 946:
 
[[Category:RPG Maker MV Quality of Life Plugins]]
 
[[Category:RPG Maker MV Quality of Life Plugins]]
 
<!-- [[Category:RPG Maker MV Plugin Tips & Tricks]] -->
 
<!-- [[Category:RPG Maker MV Plugin Tips & Tricks]] -->
[[Category:Text Codes MV]]
+
[[Category:Text Codes (MV)]]
[[Category:Script Calls MV]]
+
[[Category:Script Calls (MV)]]

Revision as of 20:38, 24 June 2019

Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.



Download

  • [link Mirror]

System

This is a plugin created for RPG Maker MV.

For help on how to install plugins, click here.

For help on how to update plugins, click here.

Got errors with your RPG Maker MV plugin? Click here.


Masterarbeit Writer

Atelier Irina

IrinaAvatar.png

This is a plugin created by Atelier Irina.

You can also follow Atelier Irina on itch.io.

RPG Maker Version

This plugin is made for and tested on RPG Maker MV with version 1.6.2. I cannot guarantee if it works on lower versions. Some of the plugin parameters require the later updates of RPG Maker MV for you to be able to use their entries so please update RPG Maker MV to the latest version if you want the best experience in using this plugin.

Terms of Use

You are only allowed to use the plugins made by Atelier Irina if you agree to all of the following:

  1. These plugins may be used in free or commercial games.
  2. 'RPG Maker Irina' must be given credit in your games.
  3. You are allowed to edit the code.
  4. Do NOT change the filename, parameters, and information of the plugin.
  5. You are NOT allowed to redistribute these Plugins.
  6. You may NOT take code for your own released Plugins.

Introduction

This plugin adds bust support to RPG Maker MV's message system. You can control all bust functions from either the Show Text event command itself or through Script Calls. This plugin supports one bust on the Message Window and ten other busts on the screen behind it.

Busts can move, fade in and out, change opacity, slide in and out, mirror themselves, change scale, and have tones applied to them. While some of these options can be done through Show Picture event commands, having too many pictures on the screen can cause performance dips. By making busts separate sprites from pictures, there are less issues, too.

Quick Understanding on How Busts Work

Screen busts are located behind pictures. The message bust is located in front of the Message Window but behind the Message Window's text. Since the Message Window is located above pictures, that means the message bust is located above them, too.

Busts are temporal. They will NOT persist through a scene change. This means if you go to a different map or enter a menu, the busts will disappear from the screen. That also means that saving while a bust is on the screen will not have them persist either as you would have to change scene to save. If you want to make something persist, I would recommend using pictures.

Plugin Parameters

There are Plugin Parameters that you may configure for this plugin.

Bust Defaults

You can set where each bust is located on the screen and the settings that apply to them. You can make some smaller, some larger, some located on a higher Y position, and how they're anchored at the base. You don't have to adjust any of these settings since they'll work fine as they will scale to your game's resolution. Tweak them only if you want to.

Bust Settings

This is a section of mostly duration settings used by the various text codes made and used by this plugin. This is to let you set a default value if you ever decide to just cut the duration aspect out of the text codes to save time or to set up consistency.

Auto Clear

Other than the message bust, screen busts don't reset by themselves normally. You can turn this on by setting it to true and the busts will then disappear and automatically reset themselves each time after an event is over to save you the work of having to manually clear everything. Switching between pages in an Autorun event will also trigger Auto Clear.

Even if this option is on, you will need to manually clear busts for busts that were made with parallel events or battle troop events. Don't worry, the code for that is simple if you just want to run a Script Call:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].forEach(function(i) {
  $bust(i).clear();
});

Expression List

Busts are capable of supporting multiple expressions. By default, busts will only have one expression: "Normal". To add more expressions to a single bust sheet, you will have to name your file a certain way.

filename[BUST][Exp4x2].png

Replace 4x2 with the number of cells going horizontal by vertical. 4x2 means there are 4 cells going horizontal and 2 cells going vertical. The cells can be used as expressions through the \bustExpression[id, expression] text code where 'expression' can be replaced by a number to represent the index (with zero as the starting index) or replaced by a keyword.

Keywords can be inserted into the plugin parameter's Expression List, which automatically converts into an index. If "Angry" is the first string in the Expression List plugin parameter, using \bustExpression[0, Angry] will be the same as using \bustExpression[0, 1] as a text code. This means that the string entries correspond to their exact order in the Expression List plugin parameter so organize your bust cells to fit that usage.

Let's take a look at an example bust:

It's 2x2 cells. The filename format would be filename[BUST][Exp2x2].png. I hope that makes sense.

Move Type

This plugin supports move easings for busts. Move easings let a bust move in a non-linear fashion to make it look less stiff. You can still pick linear if you want, but this lets you set the default move type for each bust each time its settings are reset. Look deeper into the help section to what kind of easings there are.

How to Use Bust Controls

First Things First

There's two different ways of controlling busts, 1) through the Show Text, event command and 2) script calls. Sane people will most likely be controlling the busts through the Show Text event, but for the people who want absolute control over the bust sprites, you can use the script calls.

Where to Place Your Bust Images

There's two places you can put your bust images: the img/faces/ or img/pictures/ folders. If you place them in img/faces/, you are able to change their bitmaps through both Show Text's text codes and Script Calls. If you place them in img/pictures/, then you can only change their bitmaps through Script Calls. Outside of changing the images, you can control them through both Show Text text codes and Script Calls.

Bust Text Codes Are Instant Unless Modified

I just want to put this out there that bust text codes listed below are instant unless you modify them a certain way. That certain way is to add 'Msg' in between \bust and the keyword depicting the action. For example,

\bustExpression[0, Angry]

becomes

\bustMsgExpression[0, Angry]

When you use 'Msg' in the text code, it will delay the instant nature of the text code to wait until the message window reaches that placement of where the 'Msg' version of the text code is. Let's take a look at this example:

Hello! \!
\bustMsgExpression[0, Angry]Now I'm angry!
\bust[0]\bustSlideIn[0]

What will happen first is that the bust gets assigned to bust 0, the Message Window bust. The bust will slide in as per the instructions of the text code \bust[0]\bustSlideIn[0]. The text displayed will be 'Hello!' followed by a wait for input using the \! text code. The bust then changes to the angry expression through \bustMsgExpression[0, Angry] and displays the text 'Now I'm angry!' as the final action. That's the sequence of orders for the timings in the listed message.

Displaying a Bust

Does exactly what it means, display a bust. There are 11 busts that can be controlled. 0 is the Message Window's bust graphic. 1 through 10 are the busts that are shown on the screen behind the Message Window.

Insert [BUST] into the filenames of face graphics and they will be setup automatically to change as the bust graphic. Harold.png will become Harold[BUST].png. This makes it unnecessary for you to use \bust[0] every time you want to set a bust to the message window itself. This only works for images in the img/faces/ folder.

Text Code:
     \bust[id]
     - Requirement: Select a face graphic.
     - Replace id with the bust ID you want to implant the face graphic on.
       - 0 if you want to use the message bust.
       - 1 through 10 if you want to use the screen busts.
     - Examples:
       - \bust[0]
       - \bust[1]

Script Call:
     $bust(id).loadBitmap('face', 'filename')
     $bust(id).loadBitmap('picture', 'filename')
     - Replace id with the bust ID you want to implant the face graphic on.
       - 0 if you want to use the message bust.
       - 1 through 10 if you want to use the screen busts.
     - Decide if you're going to load from img/faces/ or img/pictures/
     - Replace 'filename' with the exact case sensitive filename of the file
     while keeping the quotes.
     - Examples:
       - $bust(0).loadBitmap('face', 'Harold[BUST]')
       - $bust(1).loadBitmap('picture', 'Therese[BUST]')

Clear

Clearing a bust removes it from view and resets it to the default settings so that the next time it's used, it will be a fresh slate. This is done automatically for message busts after the Message Window closes. A plugin parameter setting can be turned on to make all busts clear after an event finishes running.

Text Codes:
     \bustClear[id, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to clear.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustClear[0]
       - \bustClear[2, 20]

Script Call:
     $bust(id).clear(duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to clear.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(0).clear()
       - $bust(2).clear(20)

Expressions

If you have set up a bust to use expressions, you can use this text code to change the expression of the bust. Please refer to the "Expression List" part of the help section up above to learn how to set up busts to make an expression sheet.

Text Codes:
     \bustExp[id, expression]
     \bustExpression[id, expression]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace expression with either a number index or the string that is
       associated with that expression to display the wanted expression.
     - Examples:
       - \bustExp[0, 1]
       - \bustExpression[2, Angry]

Script Call:
     $bust(id).setExpression(expression)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace expression with either a number index or the string that is
       associated with that expression to display the wanted expression.
     - Examples:
       - $bust(0).setExpression(1)
       - $bust(2).setExpression('Angry')

Battle Animations

You can play battle animations on the busts to depict actions, emotions, whatever you want them to do. These will play the battle animation only once before closing out.

Text Codes:
     \bustAni[id, ani, mirror, delay]
     \bustAnimation[id, ani, mirror, delay]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace ani with the ID of the battle animation
       - Alternatively, you can type out the battle animation's name, too.
     - (Optional) Replace mirror with true/face to mirror the animation.
     - (Optional) Replace delay with the frames to wait before playing.
     - Examples:
       - \bustAni[0, 5]
       - \bustAnimation[2, Healing One 2, true, 20]

Script Call:
     $bust(id).startAnimation(ani, mirror, delay)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace ani with the ID of the battle animation
       - Alternatively, you can type out the battle animation's name, too.
         If you do, make it into a string for the Script Call.
     - (Optional) Replace mirror with true/face to mirror the animation.
     - (Optional) Replace delay with the frames to wait before playing.
     - Examples:
       - $bust(0).startAnimation(5)
       - $bust(2).startAnimation('Healing One 2', true, 20)

Repeating Battle Animations

Play battle animations repeatedly instead of one time. Otherwise, this is the same as playing regular battle animations. Repeating animations will stop automatically for message busts when the window closes. For screen busts, they will vanish once the event terminates.

Text Codes:
     \bustRepAni[id, ani, mirror, delay]
     \bustRepeatAnimation[id, ani, mirror, delay]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace ani with the ID of the battle animation
       - Alternatively, you can type out the battle animation's name, too.
     - (Optional) Replace mirror with true/face to mirror the animation.
     - (Optional) Replace delay with the frames to wait before playing.
     - Examples:
       - \bustRepAni[0, 5]
       - \bustRepeatingAnimation[2, Healing One 2, true, 20]

Script Call:
     $bust(id).setupRepeatingAnimation(ani, mirror, delay)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace ani with the ID of the battle animation
       - Alternatively, you can type out the battle animation's name, too.
         If you do, make it into a string for the Script Call.
     - (Optional) Replace mirror with true/face to mirror the animation.
     - (Optional) Replace delay with the frames to wait before playing.
     - Examples:
       - $bust(0).setupRepeatingAnimation(5)
       - $bust(2).setupRepeatingAnimation('Healing One 2', true, 20)

Clear Repeating Battle Animation

Put an end to a repeating battle animation because otherwise that is going to go on forever until the currently running event fully terminates.

Text Codes:
     \bustClearAni[id]
     \bustClearAnimation[id]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Examples:
       - \bustClearAni[0]
       - \bustClearAnimation[3]

Script Call:
     $bust(id).clearRepeatingAnimation();
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Examples:
       - $bust(0).clearRepeatingAnimation();
       - $bust(3).clearRepeatingAnimation();

Move To

Allows bust sprites to move to specific x and y coordinates. This does not work for message busts as they're locked to the Message Window.

Text Code:
     \bustMoveTo[id, x, y, duration]
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - Replace x with the x coordinate on the screen to move to.
     - Replace y with the y coordinate on the screen to move to.
     - (Optional) Replace duration with how long it takes to move there.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustMoveTo[1, 640, 720]
       - \bustMoveTo[5, 100, 360, 60]

Script Call:
     $bust(id).moveTo(x, y, duration)
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - Replace x with the x coordinate on the screen to move to.
     - Replace y with the y coordinate on the screen to move to.
     - (Optional) Replace duration with how long it takes to move there.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(1).moveTo(640, 720)
       - $bust(5).moveTo(100, 360, 60)

Move By

Allows bust sprites to move relative to their current position. This does not work for message busts as they're locked to the Message Window.

Text Codes:
     \bustMoveBy[id, +x, +y, duration]
     \bustMoveBy[id, -x, -y, duration]
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - Replace x with how far left(-) or right(+) to move by.
     - Replace y with how far up(-) or down(+) to move by.
     - (Optional) Replace duration with how long it takes to move there.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustMoveBy[1, -100, +0]
       - \bustMoveBy[5, +200, -50, 60]

Script Call:
     $bust(id).moveBy(+x, +y, duration)
     $bust(id).moveBy(-x, -y, duration)
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - Replace x with how far left(-) or right(+) to move by.
     - Replace y with how far up(-) or down(+) to move by.
     - (Optional) Replace duration with how long it takes to move there.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(1).moveBy(-100, +0)
       - $bust(5).moveBy(+200, -50, 60)

Move Home

Returns a bust sprite back to the home position. For those moments you're too confused, lazy, or both to figure out how to bring a bust sprite back to the original coordinates it was in. This does not work for message busts as they're locked to the Message Window.

Text Code:
     \bustMoveHome[id, duration]
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to move there.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustMoveHome[1]
       - \bustMoveHome[4, 60]

Script Call:
     $bust(id).moveHome(duration)
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to move there.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(1).moveHome()
       - $bust(4).moveHome(60)

Move Type

Allows you to adjust the rate, acceleration, and easing when a bust moves.

Text Code:
     \bustMoveType[id, type]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace type with the movement type. Look below for a list.
     - Examples:
       - \bustMoveType[0, Linear]
       - \bustMoveType[3, OutBounce]

Script Call:
     $bust(id).moveType('type')
     - Replace id with the bust ID you want to affect.
       - 1 through 10 if you want to affect the screen busts.
     - Replace type with the movement type. Look below for a list.
     - Examples:
       - $bust(0).moveType('Linear')
       - $bust(4).moveType('OutBounce')

Types:
     Linear ......... No easing, no acceleration

     InSine ......... Slight acceleration from zero to full speed
     OutSine ........ Slight deceleration at the end
     InOutSine ...... Slight accel. at beginning and slight decel. at end

     InQuad ......... LV2 Accelerating from zero velocity
     OutQuad ........ LV2 Decelerating to zero velocity
     InOutQuad ...... LV2 Acceleration until halfway, then deceleration

     InCubic ........ LV3 Accelerating from zero velocity
     OutCubic ....... LV3 Decelerating to zero velocity
     InOutCubic ..... LV3 Acceleration until halfway, then deceleration

     InQuart ........ LV4 Accelerating from zero velocity
     OutQuart ....... LV4 Decelerating to zero velocity
     InOutQuart ..... LV4 Acceleration until halfway, then deceleration

     InQuint ........ LV5 Accelerating from zero velocity
     OutQuint ....... LV5 Decelerating to zero velocity
     InOutQuint ..... LV5 Acceleration until halfway, then deceleration

     InExpo ......... Accelerate exponentially until finish
     OutExpo ........ Initial exponential acceleration slowing to stop
     InOutExpo ...... Exponential acceleration and deceleration

     InCirc ......... Increasing velocity until stop
     OutCirc ........ Start fast, decreasing velocity until stop
     InOutCirc ...... Fast increase in velocity, fast decrease in velocity

     InBack ......... Slow movement backwards then fast snap to finish
     OutBack ........ Fast snap to backwards point then slow to finish
     InOutBack ...... Back In, then Back Out

     InElastic ...... Bounces slowly then quickly to finish
     OutElastic ..... Fast acceleration, bounces to zero
     InOutElastic ... Slow start and end, two bounces sandwich a fast motion

     InBounce ....... Bounce increasing in velocity until completion
     OutBounce ...... Bounce to completion
     InOutBounce .... Bounce in and bounce out

Fade In, Fade Out

Fade in to 255 opacity or fade out 0 opacity. This can affect any bust and you can also declare the duration of the fading process.

Text Code:
     \bustFadeIn[id, duration]
     \bustFadeOut[id, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to fade in or out.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustFadeIn[1]
       - \bustFadeOut[6, 40]

Script Call:
     $bust(id).fadeIn(duration)
     $bust(id).fadeOut(duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to fade in or out.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(1).fadeIn()
       - $bust(6).fadeOut(40)

Opacity To

If you don't want to fully change a bust's opacity to either 0 or 255, set it to whatever opacity level you want instead.

Text Code:
     \bustOpacityTo[id, opacity, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace opacity with a number between 0 and 255 for how opaque it is.
     - (Optional) Replace duration with how long it takes to fade in or out.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustOpacityTo[0, 128]
       - \bustOpacityTo[7, 64]

Script Call:
     $bust(id).opacityTo(opacity, duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace opacity with a number between 0 and 255 for how opaque it is.
     - (Optional) Replace duration with how long it takes to fade in or out.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(0).opacityTo(128)
       - $bust(7).opacityTo(64)

Opacity By

This changes the opacity level of a bust relative to its current opacity instead of needing to put in an exact value.

Text Code:
     \bustOpacityBy[id, +opacity, duration]
     \bustOpacityBy[id, -opacity, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace opacity with how much you wish to adjust the opacity by.
     - (Optional) Replace duration with how long it takes to change opacity.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustOpacityBy[0, +32]
       - \bustOpacityBy[8, -64]

Script Call:
     $bust(id).opacityBy(+opacity, duration)
     $bust(id).opacityBy(-opacity, duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace opacity with how much you wish to adjust the opacity by.
     - (Optional) Replace duration with how long it takes to change opacity.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(0).opacityBy(+32)
       - $bust(8).opacityBy(-64)

Slide In, Slide Out

Sliding In and Sliding Out is a small move and fade in/out combo that is based around the bust's home position. This makes busts look like they're fading into the scene or fading out of them.

Text Code:
     \bustSlideIn[id, duration]
     \bustSlideInFromLeft[id, duration]
     \bustSlideInFromRight[id, duration]
     \bustSlideOut[id, duration]
     \bustSlideOutToLeft[id, duration]
     \bustSlideOutToRight[id, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Use the FromLeft, FromRight, ToLeft, ToRight versions to control the
       direction the busts are going or leave it up to the plugin.
     - (Optional) Replace duration with how long it takes to slide in/out.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustSlideIn[0]
       - \bustSlideOut[9, 20]

Script Call:
     $bust(id).slideIn(duration)
     $bust(id).slideInFromLeft(duration)
     $bust(id).slideInFromRight(duration)
     $bust(id).slideOut(duration)
     $bust(id).slideOutToLeft(duration)
     $bust(id).slideOutToRight(duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Use the FromLeft, FromRight, ToLeft, ToRight versions to control the
       direction the busts are going or leave it up to the plugin.
     - (Optional) Replace duration with how long it takes to slide in/out.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(0).slideIn()
       - $bust(9).slideOut(20)

Mirror, Unmirror, MirrorToggle

Lets you set the bust sprite to mirror, unmirror, or toggle the mirror setting it currently has.

Text Code:
     \bustMirror[id]
     \bustUnmirror[id]
     \bustMirrorToggle[id]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Examples:
       - \bustMirror[0]
       - \bustUnmirror[1]
       - \bustMirrorToggle[1]

Script Call:
     $bust(id).mirror()
     $bust(id).unmirror()
     $bust(id).mirrorToggle()
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Examples:
       - $bust(0).slideIn()
       - $bust(9).slideOut(100, 20)

Scale To

This lets you change the scale of the bust sprite to an exact amount. Now, I know that sprites with a negative value for scale flip over, but these text codes and script calls will disable that. If you want to mirror something, use the mirror text codes for it.

Text Code:
     \bustScaleTo[id, scale, duration]
     \bustScaleToX[id, scale, duration]
     \bustScaleToY[id, scale, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace scale with a number value on how to scale it.
       - 0.5 is 50%. 1.0 is 100%. 1.5 is 150%.
     - (Optional) Replace duration with how long it takes to scale.
       - If no duration is used, then use the value in the plugin parameters
     - Use the X and Y variations if you want to adjust those specifically
     - Examples:
       - \bustScaleTo[0, 1.0]
       - \bustScaleToX[2, 0.5, 20]
       - \bustScaleToY[4, 2.5, 60]

Script Call:
     $bust(id).scaleTo(scale, duration)
     $bust(id).scaleToX(scale, duration)
     $bust(id).scaleToY(scale, duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace scale with a number value on how to scale it.
       - 0.5 is 50%. 1.0 is 100%. 1.5 is 150%.
     - (Optional) Replace duration with how long it takes to scale.
       - If no duration is used, then use the value in the plugin parameters
     - Use the X and Y variations if you want to adjust those specifically
     - Examples:
       - $bust(0).scaleTo(1.0)
       - $bust(2).scaleToX(0.5, 20)
       - $bust(4).scaleToX(2.5, 60)

Scale By

This lets you change the scale of the bust sprite relative to its current scale value. This will work with an absolute value of the current scale to remove any confusion about how mirrored scaling works, so just treat a bust that is mirrored the same way you'd treat a bust that's not mirrored.

Text Code:
     \bustScaleBy[id, +scale, duration]
     \bustScaleByX[id, -scale, duration]
     \bustScaleByY[id, +scale, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace scale with a number value on how to scale it.
       - 0.5 is 50%. 1.0 is 100%. 1.5 is 150%.
     - (Optional) Replace duration with how long it takes to scale.
       - If no duration is used, then use the value in the plugin parameters
     - Use the X and Y variations if you want to adjust those specifically
     - Examples:
       - \bustScaleBy[0, -1.0]
       - \bustScaleByX[2, +0.5, 20]
       - \bustScaleByY[4, -2.5, 60]

Script Call:
     $bust(id).scaleBy(+scale, duration)
     $bust(id).scaleByX(-scale, duration)
     $bust(id).scaleByY(+scale, duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace scale with a number value on how to scale it.
       - 0.5 is 50%. 1.0 is 100%. 1.5 is 150%.
     - (Optional) Replace duration with how long it takes to scale.
       - If no duration is used, then use the value in the plugin parameters
     - Use the X and Y variations if you want to adjust those specifically
     - Examples:
       - $bust(0).scaleBy(-1.0)
       - $bust(2).scaleToX(+0.5, 20)
       - $bust(4).scaleToX(-2.5, 60)

Tone

Give busts a tone! Tones will tint the colors on a bust. The bust will then change its tint towards that tone over time.

Text Code:
     \bustTone[id, red, green, blue, gray, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace red with a number between -255 and 255.
     - Replace green with a number between -255 and 255.
     - Replace blue with a number between -255 and 255.
     - Replace gray with a number between 0 and 255.
     - (Optional) Replace duration with how long it takes to change tone.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustTone[0, -68, -68, 0, 68]
       - \bustTone[5, -68, -68, -68, 0, 60]

Script Call:
     $bust(id).setTone(red, green, blue, gray, duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - Replace red with a number between -255 and 255.
     - Replace green with a number between -255 and 255.
     - Replace blue with a number between -255 and 255.
     - Replace gray with a number between 0 and 255.
     - (Optional) Replace duration with how long it takes to change tone.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(0).setTone(-68, -68, 0, 68)
       - $bust(5).setTone(-68, -68, -68, 0, 60)

Dim, Light

Dim and Light are preset tones that are primarily used for tinting busts. Usually visual novels will dim busts that aren't talking and light the busts that are. This is to speed up the process so that you don't have to type out a tone code every time. You can set the dim and light values in the plugin parameters. They'll also use the duration for tones if no duration is used to specify that specific dim or light tone change.

Text Code:
     \bustDim[id, duration]
     \bustLight[id, duration]
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to change tone.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - \bustDim[0]
       - \bustLight[5, 60]

Script Call:
     $bust(id).dim(duration)
     $bust(id).light(duration)
     - Replace id with the bust ID you want to affect.
       - 0 if you want to affect the message bust.
       - 1 through 10 if you want to affect the screen busts.
     - (Optional) Replace duration with how long it takes to change tone.
       - If no duration is used, then use the value in the plugin parameters
     - Examples:
       - $bust(0).dim()
       - $bust(5).light(60)

Mass Bust Script Calls

To have multiple busts do a bunch of things at once, you can use this piece of code in a script to accomplish it with whatever script call listed above.

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].forEach(function(i) {
  $bust(i).slideIn(20);
  $bust(i).moveType('OutBounce');
  $bust(i).scaleTo(1.25, 20);
});

Replace the numbers in the array with the bust ID's that you want it to affect and whatever script calls in the middle after the $bust(i). Do not replace the i because that tells the code which bust to affect.

Any number that's not listed in that array won't have the bust associated with it performing any of the listed actions in the middle.

Changelog

  • 2019.03.09 - Fixed a frame clear issue when an expression face PNG is too large.
  • 2019.03.08 - Major Update #1
  • 2019.03.06 - Fixed a bug that tries to find the _trigger property of a non-existing event if you ever teleport to a different map.
  • 2019.03.02 - Fixed a formula crash for InOutBounce move easing type. This is why ya never look at math at 3am in the morning after ya ran out of coffee.