Difference between revisions of "Luna Engine MV (Visustella)"

From Yanfly.moe Wiki
Jump to navigation Jump to search
(Using Luna Engine)
(Using Luna Engine)
Line 103: Line 103:
  
 
== Using Luna Engine ==
 
== Using Luna Engine ==
Now that you have gotten a copy of all the configuration files, you can now start customizing your UI! However, it's important to know what you need to customize.
+
Now that you have gotten a copy of all the configuration files, you can now start customizing your UI! However, it's important to know what you need to customize. Please refer to these individual pages to get started:
 +
 
 +
* '''[[Individual Scene Window Guide]]'''
 +
* '''[[Luna Engine Configuration Guide]]'''
 +
* '''[[Luna Engine Limitations]]'''
 +
* '''[[Frequently Asked Questions]]'''
  
 
===Generate a List of all Window Names===
 
===Generate a List of all Window Names===

Revision as of 09:35, 22 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

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

What is Luna Engine?

Luna Engine MV is a tool created for RPG Maker MV (RPGツクールMV) to give you the freedom to manipulate RPG Maker MV's default GUIs and modify them according to your own vision! Luna Engine can also be useful for seasoned programmers, providing a solid core base you can build up on.


The engine is only compatible with RMMV 1.6.1 and above!

The Luna Engine utilizes new features from the latest NWJS that came with the latest RMMV update. This includes ES6 syntax. We cannot guarantee that scripts under 1.5.x will work properly.

Installation Instructions

It is important to remember that Luna Engine only works on RPG Maker MV 1.6.1 and latest versions. It will not work with older versions of RPG Maker. This is because Luna Engine is using ES6 functions which requires the latest Nodejs version.

Before you Start

Install a Text IDE. This is required to prevent any errors on the user side as Text IDEs highlight important syntax. More importantly, it gives you a visual cue in regards to spacing. YAML files are sensitive to spacing (similar to Python) so this is a necessity. Here are some recommended free IDEs you can download right now!

  • Notepad++ (https://notepad-plus-plus.org/)
    • A free source code editor and Notepad replacement that supports several languages. It is a lot more involved and it’s not easy to install extensions unlike VSCode or Atom.

Starting from Scratch

If you don’t have a project yet, just simply copy the Luna Engine Base Folder and rename it to whatever you’d like. This will be your main project folder and doesn’t require any additional set up.

Adding to an existing Project

If you have an existing project then you will need to do the following:

  • Open your index.html with a Text IDE and add the following just below the lz-string.js entry. When in doubt, check the Luna Engine Base’s index.html to be safe.
<script type="text/javascript" src="js/libs/js-yaml.min.js"></script>
<script type="text/javascript" src="js/libs/tween.js"></script>
  • Copy the following files from the Luna Engine Base’s js/libs folder to your project’s js/libs folder.
Js-yaml-master folder
Js-yaml.min.js
Tween.js
  • Copy the following files from the Luna Engine Base’s js/plugins folder to your project’s js/plugins folder.
LunaEngine.js
LunaEngine.js.map
  • Copy the luna folder from the Luna Engine Base folder to your project’s root folder. It should look something like this.

  • Open your project in RPG Maker, go to Plugin Manager and add Luna Engine to the plugin list. It must be below all the other scripts like this:

Getting Started

All customization in Luna is done through yaml files (file extension: .yml) stored in the project’s main folder under a folder labeled “luna”.


Opening the folder will yield all the yaml files and should look something like below:


These files are where all configuration and customization of Luna happens.

If Luna is installed correctly, any changes made to these files should be reflected both test plays and published versions of the project. To refresh the playtest to see these changes in action, simply press F12 to restart the game. It’s not necessary to reopen the playtest like with plugin changes. It’s highly recommended to save often and to test newly changed or implemented configurations to ensure that no unintended errors have appeared and to narrow down ones that have appeared quickly.

Understanding YAML (.yml) Files

Due to the nature of yaml files, format and indentation of lines is highly important for Luna to understand what is being customized. As a result, many errors can be caused by mistakes in syntax.

Indentation

As a rule, all indented lines under an un-indented line are “nested” and properties of the un-indented line. As lines can be nested under already nested lines, it becomes very easy to see the configuration as done in tiers.


Nesting Visualized As everything under “components” is more indented than components, it is considered to be nested under it in the blue box.

The purple box outlines what’s considered to be nested under “Background”. However, as “x” and “type” are on the same level of indentation, they both form their individual red boxes. As “type: Background” doesn’t have a line directly under it that is more indented, nothing is nested under it. “X” on the other hand has “type: percentage” is more indented than “x”, thus meaning it is nested under “x”.

Syntax

As yaml is technically a coding language, it is extremely picky with syntax. Something as simple as wrong capitalization or missing/extra spaces will cause errors. Usually, your Text IDE will suggest the correct term/word with the correct capitalization, but it is still important to take note of the following syntax rules.

  • Lines must be separated properly:

Both nested and un-nested lines must have their own individual line. Accidentally crowding into the above line will cause errors. Empty lines are allowed and recommended for help with organization.


  • The format must be:
<parameter>: <string>          OR             - <component name>

There must be a space between “:” and <string>. No more, no less. The text should display in the correct colours if the syntax is correct.


For component lists, there must be a space between “-” and <component name>. It will not display the wrong colour if incorrect, but will produce an error when run.

  • Names used must be consistent across all instances referring to the same thing:

This includes capitalization, spacing, spelling, etc. They must be completely the same when referring to the same window/object/item, otherwise Luna give an error stating that the referenced object is undefined.


Using Luna Engine

Now that you have gotten a copy of all the configuration files, you can now start customizing your UI! However, it's important to know what you need to customize. Please refer to these individual pages to get started:

Generate a List of all Window Names

We added a way to show all window names in current scene by using any of the console commands. This is helpful when you are using custom scripts that add new functionality to UI, such as Yanfly Status Core, and still be able to modify them using Luna Engine.

Luna.getWindowList();
SceneManager.getWindowList();

Common Terms

This is a list of common terms you will find throughout all the configurations.

KEY DESCRIPTION
components A map of components and windows in the scene. The key is the window class name. Default windows (windows that are defined by RMMV) will have a more friendly name defined by LunaEngine. For the config of each component, see Component table.

It is important to remember that Components are only shown once and are not updated every instance.

layouts A map of layouts in the scene. MainLayout is required as it is the scene itself. The name of layout can be anything. See Layout table for more information.
events A conditional that triggers something to happen. Exclusively used for common UI animations such as transition in, transition out, on option select, and other similar effects.
lunatic Lunatic mode for each component. The key name will be the key name of component/window you want to activate lunatic mode.

Lunatic is always updated for every instance.

lunatic item A special type of component that is rendered for every entry in a list of data. Examples include things such as per party member during battle screens/status screens, per skill on skill screen, per item on the item screen, per command on a menu, etc.
type Defines what type of asset is rendered or how it is rendered. Examples for type of asset include: image, text, grid. Examples for styles of rendering include: horizontal, vertical, freestyle, fixed. Scenes/screens are also defined by type. In this case, the type will be scene, this to make sure LunaEngine knows this config is a scene config.
version This is a marker to see what version or iteration your current configuration is. This is helpful to keep track of your changes and what version has a previous feature you might’ve removed and what returned and so forth.