ノベルゲーム風インターフェース - NovelGameUI.js
シェア用テキスト:
▼ノベルゲーム風インターフェース(nz_prism様作) - NovelGameUI.js
https://plugin-mz.fungamemake.com/archives/4361
マップでのイベント実行中に使用可能なノベルゲーム風インターフェースを提供します。
ふりがな:のべるげーむふういんたーふぇーす
機能概要: マップでのイベント実行中に使用可能なノベルゲーム風インターフェースを提供します。
利用規約(ライセンス): MITライセンス
作者:nz_prism
作者サイト:https://note.com/nz_prism
解説ページ:https://github.com/nz-prism/RPG-Maker-MZ/tree/master/No…
ダウンロードページ:https://raw.githubusercontent.com/nz-prism/RPG-Maker-MZ…
ファイル名:NovelGameUI.js
プラグインのヘルプ:
/*:ja * @target MZ * @plugindesc ノベルゲーム風インターフェースを提供します。 * @author nz_prism * @url https://github.com/nz-prism/RPG-Maker-MZ/blob/master/NovelGameUI/js/plugins/NovelGameUI.js * @base OptionEx * @orderAfter OptionEx * * @help NovelGameUI.js * ver. 1.0.1 * * [バージョン履歴] * 2022/02/20 1.0.0 リリース * 2022/02/21 1.0.1 戦闘に入るとエラーになる問題を修正 * * このプラグインは、マップでのイベント実行中に使用可能なノベルゲーム風インター * フェースを提供します。 * * 本プラグインは「オプション拡張(OptionEx.js)」プラグインのバージョン1.2.2 * (以降)の導入が前提となります。OptionExよりも後に配置してください。 * * 以下の6種類の機能が利用できます。 * * 1. オプション * 2. セーブ * 3. ロード * 4. ログ * 5. スキップ * 6. オート * * 上記機能はいずれも使用するかどうかを個別に選択できます。例えばログ機能だけを * 使用する、といったことも可能です。 * * いずれの機能もそれを呼び出すためのボタンを画面上に表示することができます。こ * れらのボタンが表示されるのはメッセージイベント表示時のみであるという点にご注 * 意ください。ボタンをタップやクリックすることで、対応する上記機能が実行されま * す。また、各機能にはキーボードやゲームパッドのキーを割り当てることが可能であ * り、それらを押下することでも対応機能を実行できます。 * なお本プラグインを導入すると、MZデフォルトでは何も機能が割り当てられていない * ボタンであるゲームパッドのLT・RTボタン(XBoxコントローラーにおける名称)に * それぞれ機能が割り当てられます。LTボタンにはtabキーが、RTボタンにはcontrol * キーが割り当てられます。それらを含めX・Y・LB・RB・LT・RTの6つのボタンにそ * れぞれ割り当てることが可能です。実際のキー割り当てにはプラグインパラメータを * 使用します。 * MZデフォルトではメッセージ表示時、決定ボタンだけでなくキャンセルボタンで * もメッセージ送りができますが、本プラグインを導入するとキャンセルボタンでは * メッセージ送りができなくなります。あらかじめご了承ください。 * * プラグインコマンド「制御ボタンの無効化」を使用すると、上記ボタンがすべて表示 * されなくなります。対応するキー/ボタンを押下してもその機能は実行されません。 * プラグインコマンド「制御ボタンの有効化」を使用することで再びボタンが表示さ * れ、対応キーに反応するようになります。 * * 各ボタンには専用の画像を設定することができます。選択(マウスオーバーされてい * る)時と未選択時とで別々の画像を設定することができます。 * * * 1. オプション * オプション画面を呼び出すことができます。 * * * 2. セーブ * セーブ画面を呼び出すことができます。イベントの実行中であってもセーブ可能で * す。なおイベントによってセーブが禁止されている場合、セーブ不可になります。 * その状態でこのボタンを押すとブザー音が演奏されます。 * * * 3. ロード * ロード画面を呼び出すことができます。イベントの実行中であってもロード可能で * す。 * * * 4. ログ * バックログ画面を呼び出すことができます。ログを有効にすると「文章の表示」お * よび「文章のスクロール表示」で表示された文章がすべて保存されるようになりま * す。バックログ画面では保存された文章を一覧表示できます。また、プラグインパ * ラメータ「ログコマンドの追加」をオンにすることでバックログ画面をメニューか * ら呼び出すためのコマンドを追加することが可能です。これにより、イベントが終 * 了してもログを閲覧できます。保存された文章はセーブ対象ですので、ロードすれ * ば再度表示できます。ログが自動的に消去されることはありませんので、プラグイ * ンコマンド「ログの消去」を適切なタイミングで実行して消去してください。保存 * できるログの量に制限はありませんが、あまりにも溜まりすぎるとセーブデータ容 * 量が肥大化します。 * * プラグインコマンド「ログ保存の無効化」を使用すると、以降のイベントにてログ * が保存されなくなります。プラグインコマンド「ログ保存の有効化」を使用するこ * とで元に戻り、ログが再び保存されるようになります。 * * いま表示されているメッセージもログに含めるかどうかは、プラグインパラメータ * 「表示中メッセージをログから除外」によって設定できます。 * * * 5. スキップ * ある一定範囲のイベントコマンドの実行をスキップすることができます。この機能 * を使用するには、イベントにイベントコマンド「ラベル」を設定する必要がありま * す。ラベルには本来どんな名前でもつけることができますが、この機能を利用する * ためにはラベル名を一意の半角数字にする必要があります。設定するには、まずス * キップの開始地点となる場所に半角数字の名前を持つラベルを設定します(例えば * 「1」)。その下にスキップ対象となるイベント(文章表示など)を任意の数だけ * 設定します。その下に、スキップ終了地点を表すラベルを配置します。このラベル * の名前は、必ず始点ラベル名 +1 にする必要があります(上記例では「2」にしま * す)。この始点・終点ラベルに挟まれたイベントコマンド群を「ラベルサンドイッ * チ」と呼称します。ラベルサンドイッチはプレイヤーによってスキップされる可能 * 性のあるイベントですので、ゲームの進行に必須のイベント(スイッチの操作な * ど)を配置すべきではありません。あるイベントにラベルサンドイッチが2回登場 * し、それらの間にゲーム進行に必須のイベントを配置したいとします。例えば以下 * のような内容です。 * * ラベル:1 * 文章:リード, Actor1(0), ウィンドウ, 下 * :おはよう * ラベル:2 * 文章:プリシア, Actor1(1), ウィンドウ, 下 * :(重要なのでスキップされたくないセリフ) * スイッチの操作:#0001 = ON * ラベル:3 * 文章:ゲイル, Actor1(2), ウィンドウ, 下 * :おはよう、リード、プリシア * ラベル:4 * * 最初のラベルサンドイッチをA、次のサンドイッチをBとします。Aの終点であるラベ * ル名は「2」ですが、Bの始点は「3」です。これらの名前は連番なので、間にある文 * 章表示とスイッチ操作はスキップされてしまう可能性があります。これを防ぐために * は、ラベルサンドイッチBのラベル名を以下のようにしてください。 * * ラベル:1 * 文章:リード, Actor1(0), ウィンドウ, 下 * :おはよう * ラベル:2 * 文章:プリシア, Actor1(1), ウィンドウ, 下 * :(重要なのでスキップされたくないセリフ) * スイッチの操作:#0001 = ON * ラベル:4 * 文章:ゲイル, Actor1(2), ウィンドウ, 下 * :おはよう、リード、プリシア * ラベル:5 * * この場合、AとBは連番でないのでそれらの間のイベントコマンドはスキップ不可にす * ることができます。 * * デフォルトではスキップ可能なのは既読イベントのみです。あるラベルサンドイッチ * が「既読」であるかどうかは、そのサンドイッチの終点ラベルを一度でも通過したこ * とがあるかどうかによって判定されます。通過済みラベル名はセーブデータに保存さ * れます。通過済みであるかどうかはラベル名によって判定されるので、ラベル名が重 * 複すると未読なのに既読とみなされてしまいます。そのため一度使用したラベル名は * メモを取るなどして、ゲーム全体を通して2回以上使うことがないようにしてくださ * い。 * * プラグインパラメータ「マスターセーブファイルの作成」をオンにすると(デフォル * トはオンです)、既読フラグを格納する「master.rmmzsave」というセーブファイ * ルが新たに作成されるようになります。これはどのセーブスロットをロードしたとし * ても、あるいはニューゲームから始めたとしても、ゲーム開始時に読み込まれます。 * つまり既読フラグをセーブデータをまたいで持ち越すことが可能になります。 * * 上記のように通常は既読イベントしかスキップできませんが、「既読のみスキップ可 * 能」というオプションをオフにすると未読イベントもスキップできるようになりま * す。このオプションはプラグインパラメータ「既読のみスキップ可能の使用」をオン * にする(デフォルトはオンです)ことでオプション画面に追加されます。プレイヤー * に未読イベントをスキップさせたくない場合、このパラメータをオフにしてくださ * い。またプラグインパラメータ「デフォルト既読のみスキップ可能」をオンにしてく * ださい(デフォルトはオンです)。このように設定することでゲーム中に設定が変更 * されなくなり、既読しかスキップできない状態に固定できます。 * * いま実行されているイベントが未読であるなどによりスキップできない場合、ボタン * 画像が「スキップ不可」として設定したものになります。スキップ可能である場合は * 「スキップ可」として設定した画像が表示されます。これにより、スキップ可能かど * うかを視覚的に表現できます。 * * * 6. オート * メッセージ送りが自動的に行われるようになります。メッセージの最後や制御文字 * 「\!」による入力待ちが行われなくなり、代わりにウェイトします。ウェイトする時 * 間はプラグインパラメータ「ポーズフレーム数」により指定できます。 * * オートがオンになっている場合、「オン」として設定した画像が表示されます。オフ * の場合は「オフ」として設定した画像が表示されます。これにより、オートのオンオ * フを視覚的に表現できます。 * * * このプラグインはMITライセンスにてリリースされています。 * https://opensource.org/licenses/mit-license.php * * * @param buttonOpacity * @text ボタン不透明度 * @desc 各制御ボタンの不透明度です。 * @type number * @default 192 * * @param options * @text オプション * @desc オプションに関する設定です。 * * @param useOptions * @text オプション有効化 * @desc オンにするとオプションが使用可能になります。 * @parent options * @type boolean * @default true * * @param optionsKey * @text オプションキー * @desc オプションに割り当てるキーボード/ゲームパッドのキー/ボタンです。 * @parent options * @default menu * @type select * @option shiftキー/Xボタン * @value shift * @option Xキー/Yボタン * @value menu * @option pageupキー/LBボタン * @value pageup * @option pagedownキー/RBボタン * @value pagedown * @option tabキー/LTボタン * @value tab * @option controlキー/RTボタン * @value control * * @param optionsButtonImages * @text ボタン画像 * @desc オプションボタンの画像に関する設定です。 * @parent options * * @param optionsButtonUnselectedImageName * @text オプションボタン未選択画像 * @desc 未選択状態のオプションボタンの画像です。 * @parent optionsButtonImages * @type file * @dir img/system * * @param optionsButtonSelectedImageName * @text オプションボタン選択画像 * @desc 選択状態のオプションボタンの画像です。 * @parent optionsButtonImages * @type file * @dir img/system * * @param optionsButtonCoordinates * @text ボタン座標 * @desc オプションボタンの座標に関する設定です。 * @parent options * * @param optionsButtonX * @text オプションボタンX座標 * @desc オプションボタンのX座標です。 * @parent optionsButtonCoordinates * @type number * @default 268 * * @param optionsButtonY * @text オプションボタンY座標 * @desc オプションボタンのY座標です。 * @parent optionsButtonCoordinates * @type number * @default 556 * * @param optionsButtonOrigin * @text オプションボタン原点 * @desc オプションボタンの原点です。 * @parent optionsButtonCoordinates * @default 0.5 * @type select * @option 左上 * @value 0 * @option 中央 * @value 0.5 * * @param save * @text セーブ * @desc セーブに関する設定です。 * * @param useSave * @text セーブ有効化 * @desc オンにするとセーブが使用可能になります。 * @parent save * @type boolean * @default true * * @param saveKey * @text セーブキー * @desc セーブに割り当てるキーボード/ゲームパッドのキー/ボタンです。 * @parent save * @default control * @type select * @option shiftキー/Xボタン * @value shift * @option Xキー/Yボタン * @value menu * @option pageupキー/LBボタン * @value pageup * @option pagedownキー/RBボタン * @value pagedown * @option tabキー/LTボタン * @value tab * @option controlキー/RTボタン * @value control * * @param saveButtonImages * @text ボタン画像 * @desc セーブボタンの画像に関する設定です。 * @parent save * * @param saveButtonUnselectedImageName * @text セーブボタン未選択画像 * @desc 未選択状態のセーブボタンの画像です。 * @parent saveButtonImages * @type file * @dir img/system * * @param saveButtonSelectedImageName * @text セーブボタン選択画像 * @desc 選択状態のセーブボタンの画像です。 * @parent saveButtonImages * @type file * @dir img/system * * @param saveButtonCoordinates * @text ボタン座標 * @desc セーブボタンの座標に関する設定です。 * @parent save * * @param saveButtonX * @text セーブボタンX座標 * @desc セーブボタンのX座標です。 * @parent saveButtonCoordinates * @type number * @default 364 * * @param saveButtonY * @text セーブボタンY座標 * @desc セーブボタンのY座標です。 * @parent saveButtonCoordinates * @type number * @default 556 * * @param saveButtonOrigin * @text セーブボタン原点 * @desc セーブボタンの原点です。 * @parent saveButtonCoordinates * @default 0.5 * @type select * @option 左上 * @value 0 * @option 中央 * @value 0.5 * * @param load * @text ロード * @desc ロードに関する設定です。 * * @param useLoad * @text ロード有効化 * @desc オンにするとロードが使用可能になります。 * @parent load * @type boolean * @default true * * @param loadKey * @text ロードキー * @desc ロードに割り当てるキーボード/ゲームパッドのキー/ボタンです。 * @parent load * @default tab * @type select * @option shiftキー/Xボタン * @value shift * @option Xキー/Yボタン * @value menu * @option pageupキー/LBボタン * @value pageup * @option pagedownキー/RBボタン * @value pagedown * @option tabキー/LTボタン * @value tab * @option controlキー/RTボタン * @value control * * @param loadButtonImages * @text ボタン画像 * @desc ロードボタンの画像に関する設定です。 * @parent load * * @param loadButtonUnselectedImageName * @text ロードボタン未選択画像 * @desc 未選択状態のロードボタンの画像です。 * @parent loadButtonImages * @type file * @dir img/system * * @param loadButtonSelectedImageName * @text ロードボタン選択画像 * @desc 選択状態のロードボタンの画像です。 * @parent loadButtonImages * @type file * @dir img/system * * @param loadButtonCoordinates * @text ボタン座標 * @desc ロードボタンの座標に関する設定です。 * @parent load * * @param loadButtonX * @text ロードボタンX座標 * @desc ロードボタンのX座標です。 * @parent loadButtonCoordinates * @type number * @default 460 * * @param loadButtonY * @text ロードボタンY座標 * @desc ロードボタンのY座標です。 * @parent loadButtonCoordinates * @type number * @default 556 * * @param loadButtonOrigin * @text ロードボタン原点 * @desc ロードボタンの原点です。 * @parent loadButtonCoordinates * @default 0.5 * @type select * @option 左上 * @value 0 * @option 中央 * @value 0.5 * * @param log * @text ログ * @desc ログに関する設定です。 * * @param useLog * @text ログ有効化 * @desc オンにするとログが使用可能になります。 * @parent log * @type boolean * @default true * * @param logKey * @text ログキー * @desc ログに割り当てるキーボード/ゲームパッドのキー/ボタンです。 * @parent log * @default pageup * @type select * @option shiftキー/Xボタン * @value shift * @option Xキー/Yボタン * @value menu * @option pageupキー/LBボタン * @value pageup * @option pagedownキー/RBボタン * @value pagedown * @option tabキー/LTボタン * @value tab * @option controlキー/RTボタン * @value control * * @param excludeCurrentMessage * @text 表示中メッセージをログから除外 * @desc 現在表示されているメッセージをログから除外します。 * @parent log * @type boolean * @default true * * @param logSpeakerNameHeader * @text メッセージ話者名先頭付加文字列 * @desc フォントの色やサイズの変更などに利用する、メッセージの話者名の先頭に付加する文字列です。 * @parent log * @type string * @default \C[14]\FS[20] * * @param logMessagePads * @text メッセージ本文行頭スペース数 * @desc 字下げのためにメッセージ本文の各行頭に付加する半角スペースの数です。話者名が空欄の場合、付加されません。 * @parent log * @type number * @default 2 * @min 0 * * @param addLogCommand * @text ログコマンドの追加 * @desc メニュー画面にログ閲覧用コマンドを追加します。 * @parent log * @type boolean * @default true * * @param logCommandName * @text ログコマンド名 * @desc ログ閲覧用コマンドの表示名です。 * @parent addLogCommand * @type string * @default バックログ * * @param logButtonImages * @text ボタン画像 * @desc ログボタンの画像に関する設定です。 * @parent log * * @param logButtonUnselectedImageName * @text ログボタン未選択画像 * @desc 未選択状態のログボタンの画像です。 * @parent logButtonImages * @type file * @dir img/system * * @param logButtonSelectedImageName * @text ログボタン選択画像 * @desc 選択状態のログボタンの画像です。 * @parent logButtonImages * @type file * @dir img/system * * @param logButtonCoordinates * @text ボタン座標 * @desc ログボタンの座標に関する設定です。 * @parent log * * @param logButtonX * @text ログボタンX座標 * @desc ログボタンのX座標です。 * @parent logButtonCoordinates * @type number * @default 556 * * @param logButtonY * @text ログボタンY座標 * @desc ログボタンのY座標です。 * @parent logButtonCoordinates * @type number * @default 556 * * @param logButtonOrigin * @text ログボタン原点 * @desc ログボタンの原点です。 * @parent logButtonCoordinates * @default 0.5 * @type select * @option 左上 * @value 0 * @option 中央 * @value 0.5 * * @param skip * @text スキップ * @desc スキップに関する設定です。 * * @param useSkip * @text スキップ有効化 * @desc オンにするとスキップが使用可能になります。 * @parent skip * @type boolean * @default true * * @param skipKey * @text スキップキー * @desc スキップに割り当てるキーボード/ゲームパッドのキー/ボタンです。 * @parent skip * @default pagedown * @type select * @option shiftキー/Xボタン * @value shift * @option Xキー/Yボタン * @value menu * @option pageupキー/LBボタン * @value pageup * @option pagedownキー/RBボタン * @value pagedown * @option tabキー/LTボタン * @value tab * @option controlキー/RTボタン * @value control * * @param makeMasterInfo * @text マスターセーブファイルの作成 * @desc ニューゲームにも既読情報を反映するための、既読情報が含まれるマスターセーブファイルを作成します。 * @parent skip * @default true * @type boolean * * @param skipButtonImages * @text ボタン画像 * @desc スキップボタンの画像に関する設定です。 * @parent skip * * @param skipButtonUnselectedDisabledImageName * @text スキップボタン(スキップ不可)未選択画像 * @desc 未選択かつスキップ不可状態のスキップボタンの画像です。 * @parent skipButtonImages * @type file * @dir img/system * * @param skipButtonSelectedDisabledImageName * @text スキップボタン(スキップ不可)選択画像 * @desc 選択かつスキップ不可状態のスキップボタンの画像です。 * @parent skipButtonImages * @type file * @dir img/system * * @param skipButtonUnselectedEnabledImageName * @text スキップボタン(スキップ可)未選択画像 * @desc 未選択かつスキップ可能状態のスキップボタンの画像です。 * @parent skipButtonImages * @type file * @dir img/system * * @param skipButtonSelectedEnabledImageName * @text スキップボタン(スキップ可)選択画像 * @desc 選択かつスキップ可能状態のスキップボタンの画像です。 * @parent skipButtonImages * @type file * @dir img/system * * @param skipButtonCoordinates * @text ボタン座標 * @desc スキップボタンの座標に関する設定です。 * @parent skip * * @param skipButtonX * @text スキップボタンX座標 * @desc スキップボタンのX座標です。 * @parent skipButtonCoordinates * @type number * @default 642 * * @param skipButtonY * @text スキップボタンY座標 * @desc スキップボタンのY座標です。 * @parent skipButtonCoordinates * @type number * @default 556 * * @param skipButtonOrigin * @text スキップボタン原点 * @desc スキップボタンの原点です。 * @parent skipButtonCoordinates * @default 0.5 * @type select * @option 左上 * @value 0 * @option 中央 * @value 0.5 * * @param skipOptions * @text オプション * @desc スキップに関するオプション画面の設定です。 * @parent skip * * @param useLimitSkip * @text 既読のみスキップ可能の使用 * @desc 既読のみスキップ可能オプションを使用するかどうかを設定してください。 * @parent skipOptions * @default true * @type boolean * * @param limitSkipName * @text 既読のみスキップ可能表示名 * @desc 既読のみスキップ可能の表示名を設定してください。 * @default 既読のみスキップ可能 * @parent skipOptions * @type string * * @param defaultLimitSkip * @text デフォルト既読のみスキップ可能 * @desc 既読のみスキップ可能のデフォルト値です。 * @parent skipOptions * @default true * @type boolean * * @param auto * @text オート * @desc オートに関する設定です。 * * @param useAuto * @text オート有効化 * @desc オンにするとオートが使用可能になります。 * @parent auto * @type boolean * @default true * * @param autoKey * @text オートキー * @desc オートに割り当てるキーボード/ゲームパッドのキー/ボタンです。 * @parent auto * @default shift * @type select * @option shiftキー/Xボタン * @value shift * @option Xキー/Yボタン * @value menu * @option pageupキー/LBボタン * @value pageup * @option pagedownキー/RBボタン * @value pagedown * @option tabキー/LTボタン * @value tab * @option controlキー/RTボタン * @value control * * @param autoPauseFrames * @text ポーズフレーム数 * @desc ポーズ状態でのウェイトフレーム数です。 * @parent auto * @type number * @default 30 * * @param autoButtonImages * @text ボタン画像 * @desc オートボタンの画像に関する設定です。 * @parent auto * * @param autoButtonUnselectedOffImageName * @text オートボタン(オフ)未選択画像 * @desc 未選択かつオフ状態のオートボタンの画像です。 * @parent autoButtonImages * @type file * @dir img/system * * @param autoButtonSelectedOffImageName * @text オートボタン(オフ)選択画像 * @desc 選択かつオフ状態のオートボタンの画像です。 * @parent autoButtonImages * @type file * @dir img/system * * @param autoButtonUnselectedOnImageName * @text オートボタン(オン)未選択画像 * @desc 未選択かつオン状態のオートボタンの画像です。 * @parent autoButtonImages * @type file * @dir img/system * * @param autoButtonSelectedOnImageName * @text オートボタン(オン)選択画像 * @desc 選択かつオン状態のオートボタンの画像です。 * @parent autoButtonImages * @type file * @dir img/system * * @param autoButtonCoordinates * @text ボタン座標 * @desc オートボタンの座標に関する設定です。 * @parent auto * * @param autoButtonX * @text オートボタンX座標 * @desc オートボタンのX座標です。 * @parent autoButtonCoordinates * @type number * @default 748 * * @param autoButtonY * @text オートボタンY座標 * @desc オートボタンのY座標です。 * @parent autoButtonCoordinates * @type number * @default 556 * * @param autoButtonOrigin * @text オートボタン原点 * @desc オートボタンの原点です。 * @parent autoButtonCoordinates * @default 0.5 * @type select * @option 左上 * @value 0 * @option 中央 * @value 0.5 * * * @command enableControlButtons * @text 制御ボタンの有効化 * @desc 各制御ボタンを有効化します。 * * @command disableControlButtons * @text 制御ボタンの無効化 * @desc 各制御ボタンを無効化します。 * * @command enableLogging * @text ログ保存の有効化 * @desc ログが保存されるようになります。 * * @command disableLogging * @text ログ保存の無効化 * @desc ログ保存を有効化するまでログを保存しないようになります。 * * @command clearBackLogs * @text ログの消去 * @desc 保存されているすべてのログを消去します。 * */