プラグインコマンドで数式や制御文字を有効に【RPGツクールMZ&MVプラグイン】

2022年07月28日

 プラグインコマンドでJavaScript計算式や制御文字を使用できるようにします。

 ※当プラグインはMV時代に作者が思いつきで作ったものですが、わりと問題を引き起こしやすいのでご利用には注意してください。ぶっちゃけ、必要がなければ使用自体を避けたほうがいいかもしれません。

MZの場合


 以下のように\v[1], \n[1]などの制御文字をパラメータに設定すれば、変換した値が渡ります。


MVの場合



 例えば、変数1をパラメータに使用する場合、以下の二通りの方法が有効となります。
command $gameVariables.value(1)
command \v[1]

 また、戦闘中は『a』で行動主体を参照できます。
 ※ただし、ターン開始・終了時など行動主体を特定できない状況では使えません。
command a.hp

 理論上は複雑な数式も使用可能ですが、半角スペースが区切りとして扱われる点にはご注意ください。

目次


導入方法

更新履歴

注意点

プラグインパラメータ


導入方法


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMV、MZの両方で有効です。

 NRP_EvalPluginCommand.js ver1.031(2022/07/28)

更新履歴


2021/11/15 -> 2022/07/28(ver1.03 -> 1.031)

  • note型のプラグインパラメータを渡した際にエラーとなる不具合修正。
    ※要するに競合でエラーとなるプラグインを減らしました。
  • パラメータの『\\』を無視するように調整。これによりEventCommandByCode.jsの制御文字が有効にならない競合に対処(2022/07/28 ver1.031)

2021/06/11(ver1.02)

  • 処理が非常に重くなる重大な問題に対処。

2020/09/22(ver1.01 -> 1.011)

  • ツクールMZに対応。
  • 初期状態では数式を無効にした。それに伴い『数式評価を行うかどうか?』のプラグインパラメータを追加した。
  • 変数の値を変更しても、プラグインコマンドに反映されない不具合修正。(09/23 ver1.011)

2020/06/08(ver1.00)

  • 公開!

注意点


  • ver1.01より標準では数式は無効となっています。\v[1]などの制御文字のみ有効となっています。
    数式を有効にしたい場合はパラメータで切替してください。

  • DynamicAnimation&Motionから呼び出せるプラグインコマンドには効果ありません。あちらでは、元から関数は使用できますが、\v[1]などの制御文字は効きません。微妙に挙動が違うのでご注意ください。
    気が向いたら、あちらにも実装するかもしれません。

  • トリアコンタン様のDTextPicture.js(動的文字列ピクチャ生成プラグイン)とも併用できる模様です。ただし、MV版の古いバージョンだと問題が発生するそうなので、DTextPicture.js(MV版)を最新版に更新すればOKです。


プラグインパラメータ


数式評価を行うかどうか?(enableEvaluate)

 パラメータの数式評価(eval)を有効にします。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 13:37 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする

ゲームウィンドウのサイズを変更&オプションに追加【RPGツクールMZ&MVプラグイン】

2022年07月25日

 ゲーム全体のウィンドウサイズを変更します。また、オプション画面にも変更機能を追加できます。


 主な特徴。

  • 解像度とは別に独立してウィンドウサイズを設定可能。
  • オプション画面にウィンドウサイズの変更機能を追加可能。
    変更すると以降、起動時にも反映されます。

 なお、モバイルやブラウザ起動では意味がないので、このプラグインは自動で無効化されます。

目次


導入方法

更新履歴

使用方法

注意点(MZ)

注意点(MV)

プラグインパラメータ

ウィンドウ横幅 (windowWidth )

ウィンドウ縦幅 (windowHeight )

画面の幅(screenWidth) ver1.03

画面の高さ(screenHeight) ver1.03


プラグインパラメータ(オプション)

オプションに表示 (useOption )

オプション挿入位置 (optionPosition) ver1.021

オプション表示名 (optionName )

オプション表示形式 (optionDispType )

最小ウィンドウサイズ (windowSizeMin )

最大ウィンドウサイズ (windowSizeMax )

変更単位(windowSizeOffset )


プラグインパラメータ(外部連携)

SceneManager.runを上書 (overWriteSceneManagerRun )


導入方法


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMV、MZの両方で有効です。

 NRP_GameWindowSize.js ver1.05(2022/07/25)

更新履歴


2022/07/25(ver1.05)

  • ウィンドウの表示位置(縦)が想定よりズレる不具合修正。

2022/05/24(ver1.04)

  • 項目を追加した場合、オプションの縦幅を伸ばすように修正。

2022/05/06 -> 2022/05/24(ver1.03 -> 1.032)


2020/11/09(ver1.02 -> 1.021)

  • MZにてオプションからウィンドウサイズを変更した際、マウスカーソル下の項目にフォーカスが移動してしまう問題に対応。
  • オプション挿入位置を変更可能にした。(ver1.021)
    ※MZの場合、デフォルトの挿入位置が以前のverと変化しますのでご注意!

2020/08/26(ver1.01)

  • ツクールMZに対応。

2020/06/03(ver1.00)

  • 公開!

使用方法


 導入すれば、タイトル&メニューのオプション画面にウィンドウサイズの項目が追加されます。
 後はプラグインパラメータの説明を参考にお好みで調整してください。

 もちろん、初期状態のウィンドウサイズも設定可能です。

注意点(MZ)


起動直後のウィンドウサイズについて

 ゲームを起動した瞬間のウィンドウサイズは、このプラグインでは変更できません。通常は以下のように一拍遅れて、ウィンドウサイズが切り替わるはずです。


 MZでは起動直後のウィンドウサイズは、システム2にある『画面の幅』『画面の高さ』によって決定されます。
 これらはゲーム内で処理する解像度(ピクセルサイズ)と共有する値です。

 ※ピクセルサイズとウィンドウサイズが同じ項目で決定されるのは、少々おかしな仕様なのですが、現状ではどうにもなりません。

 完璧ではありませんが、以下は一応の対処法です。

 プラグインパラメータで『画面の幅』と『画面の高さ』の設定をすれば、システム2の設定値とは別に、ゲームのピクセルサイズだけを変更できます。
 この場合、システム2の設定値にはウィンドウサイズを設定しておきます。

 ただし、システム2の設定値はエディタでも参照しているため、副作用としてデータベースの敵グループ画面の表示領域が狭まってしまいます。
 開発終盤やARPGなどで敵グループ画面を使わないなら問題ありません。
 また、ブラウザ実行時の動作は未検証なのでご注意ください。


 また、画面サイズを縮めた場合に横スクロールバーが表示される場合がありますが、
 [プロジェクト]\css\game.css
 に以下の三行を追記することで抑制できます。

body::-webkit-scrollbar {
display:none;
}

 ※なお、game.cssは本体のバージョンアップ時に、上書きされる可能性があるファイルなのでご注意ください。

注意点(MV)


 注意点として、ゲームを起動した瞬間のウィンドウサイズは、このプラグインでは変更できません。通常は一拍遅れて、ウィンドウサイズが切り替わるはずです。

起動直後のウィンドウサイズについて

 MVでは起動した瞬間のウィンドウサイズを、プロジェクト直下の『package.json』で設定できます。
 標準のウィンドウサイズを変更する場合は、こちらの値も合わせておくとベターです。
 起動直後にウィンドウサイズが切り替わる挙動を抑制できます。

 ※ツクールMZではデータベースのシステム2にある『画面の幅』『画面の高さ』によって、『package.json』の値が上書きされます。ファイルを直接書き換えても意味がないのでご注意ください。

YEP_CoreEngineとの競合について

 YEP_CoreEngineには、強制的にウィンドウサイズを解像度に合わせる仕様があります。
 併用する場合は『SceneManager.runを上書』をオンにしてください。その上で、このプラグインをYEP_CoreEngineの下へ配置すれば、適切にウィンドウサイズだけを変更できます。

プラグインパラメータ


ウィンドウ横幅 (windowWidth )

ウィンドウ縦幅 (windowHeight )

 標準とするウィンドウの横幅と縦幅(枠除く)です。
 初期値の『Graphics.width』と『Graphics.height』は解像度と同じ値になります。

 値を変更する場合も『Graphics.width * 2/3』というようにすれば、解像度に対する比率で入力できます。細かい計算が不要となるので便利です。

 ※ver1.00では『SceneManager._screenWidth, screenHeight』を使用していましたが、MZでは無効となるため『Graphics.width, height』に変更しました。こちらはMV、MZの両方で有効です。

画面の幅(screenWidth)ver1.03

 画面の横幅です。
 入力時のみシステム2の値を上書きします。

画面の高さ(screenHeight)ver1.03

 画面の縦幅です。
 入力時のみシステム2の値を上書きします。

プラグインパラメータ(オプション)


オプションに表示 (useOption )

 ウィンドウサイズの変更機能をオプション画面(タイトル、メニュー)に追加します。

オプション挿入位置 (optionPosition)ver1.021

 オプション画面に項目を挿入する位置です。
 初期値は2。コマンド記憶の下になります。

オプション表示名 (optionName )

 オプション画面での表示名を設定します。

オプション表示形式 (optionDispType )

 オプション画面での表示形式を設定します。
 例えば、以下のように表示されます。

  • %表示:100%
  • 横*縦表示:816*624

 66.6...%など半端な%表示になる場合も『横*縦表示』ならごまかせます。

最小ウィンドウサイズ (windowSizeMin )

最大ウィンドウサイズ (windowSizeMax )

 変更可能な最小〜最大のウィンドウサイズです。
 初期値は50〜150(%)です。

変更単位(windowSizeOffset )

 ウィンドウサイズの変更単位(間隔)です。
 初期値は25(%)です。

 100/3(=33.3..)というように分数などの式も使えます。
 ※分数のほうが綺麗な比率(ドットが崩れにくい)を求めやすいという利点もあります。

 あまりないと思いますが、最小・最大ウィンドウサイズと噛み合わない場合は、表示がおかしなことになるので注意です。例えば、変更単位が50なのに、最小・最大が75〜125など。

プラグインパラメータ(外部連携)


SceneManager.runを上書 (overWriteSceneManagerRun )

 SceneManager.run関数を上書きします。

 一見、意味不明ですが、要するにMVにてYEP_CoreEngineのウィンドウサイズ変更を無効化するための機能です。
 YEP_CoreEngineを併用しない場合は余計なので、オフ推奨です。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 11:48 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする

奥義システムの実装【RPGツクールMZプラグイン】

2022年07月24日

 ゲージを溜めて発動する特別なスキルを実装します。
 いわゆる奥義のようなものです。


 既存のTP制に類似していますが、ゲージを複数持たせることができます。
 また、TPをレベル成長させるプラグイン(NRP_LevelGrowTP.js)との併用も可能です。

 ゲージが溜まる条件やレイアウトについても調整できます。
 ミスティックスターの奥義システムを再現するために作ったプラグインですが、工夫次第で色々なシステムができるかもしれません。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

スキルのメモ欄(奥義用)(Note of Skills [Special])

スキルのメモ欄(通常用)(Note of Skills [Normal])

ステートのメモ欄(Note of States)

プラグインコマンド

レイアウトについて

プラグインパラメータ

奥義タイプ一覧(SpecialTypeList)

奥義所有時のみゲージ表示(ShowGaugeWhenLearned)

全回復にゲージを含める(RecoverGauge)

命中時のみ加算(PlusOnlyHit)

奥義発動時は加算しない(NotPlusWhenUsed)

同じ対象は加算しない(NotPlusSameTarget)

複数ヒット時に減衰(MultipleAttenuation)

【ゲージのレイアウト関連】
数値の表示(ShowGaugeNumber)

ラベルの横幅(LabelWidth)

横幅(GaugeWidth)

縦幅(GaugeHeight)

ゲージの間隔(GaugeInterval)

ゲージフラッシュ(GaugeFlash)

メニュー画面に表示(ShowMenu)

開始X座標(メニュー)(MenuStartGaugeX)

開始Y座標(メニュー)(MenuStartGaugeY)

ステータス画面に表示(ShowStatus)

開始X座標(ステータス)(StatusStartGaugeX)

開始Y座標(ステータス)(StatusStartGaugeY)

戦闘画面に表示(ShowBattle)

開始X座標(戦闘)(BattleStartGaugeX)

開始Y座標(戦闘)(BattleStartGaugeY)

HP調整Y座標(BattleAdjustNameY)

名前〜HPの間隔(BattleNameHpInterval)


プラグインパラメータ(奥義タイプ一覧)

有効条件(Condition)

最大値(GaugeMax)

戦闘後もゲージ持越(PreserveGauge)

戦闘開始時の上昇値(BattleStartValue)

行動毎の上昇値(ActionValue)

行動終了時の上昇値(ActionEndValue)

ターン毎の再生値(RegenerateValue)

ダメージ時の上昇値(DamageValue)

回避時の上昇値(EvadedValue)

仲間死亡時の上昇値(FriendsDeadValue)

敵撃破時の上昇値(DefeatEnemyValue)

会心時の上昇値(CriticalValue)

消費ポイントの色(CostColor)

満タン時のアニメ(ChargedAnimation)

【ゲージのレイアウト関連】
ラベル(Label)

色(左)(GaugeColor1)

色(右)(GaugeColor2)


導入方法(install)


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMZ専用です。

 NRP_SpecialSkill.js ver1.001(2022/07/24)

更新履歴(History)


2022/07/23 -> 2021/07/24(ver1.00 -> 1.001)

  • 公開!
  • 途中のセーブデータに適用した場合、エラーになる不具合修正。
    (2022/07/24 ver1.001)

使用方法(Usage)


 プラグインパラメータの奥義タイプ一覧に、情報を登録してください。
 ゲージが溜まる条件を詳細に設定できます。

 初期状態では一つだけ登録されていますが、複数登録することも可能です。
 先頭のデータが『奥義タイプ = 1』として扱われます。

 さらに奥義タイプに対応する奥義スキルを設定してください。
 ※以下の『スキルのメモ欄』を参照

スキルのメモ欄(奥義用)(Note of Skill [Special])


 奥義となるスキルのメモ欄に以下を記入してください。

<SpecialSkill:[奥義タイプ]>

 スキルを奥義スキルとして設定します。
 <SpecialSkill:1>ならば、奥義タイプ一覧の1番目に対応します。

<SpecialSkillCost:100>

 奥義ゲージを100ポイント消費します。
 指定がない場合は全てを消費します。

スキルのメモ欄(通常用)(Note of Skill [Normal])


 ゲージが溜まる条件をスキル毎に設定できます。
 指定がない場合はプラグインパラメータの既定値を用います。

<SpecialSkillActionValue:10>

 スキル命中時に、スキル使用者の全ゲージを10加算します。
 対象数や連続回数に比例して増加量も大きくなります。
 ※外れても増加する設定もできます。

<SpecialSkillActionEndValue:10>

 スキル使用後に、スキル使用者の全ゲージを10加算します。

<SpecialSkillChargeValue:10>

 スキルを受けた相手の全ゲージを10加算します。
 基本的には補助スキルを想定しています。



 特定のゲージだけを増加させたい場合は、タグ名の末尾に数値を付加してください。
 例:『SpecialSkillActionValue1』ならば一番目のゲージが対象。

<SpecialSkillActionValue1:10>

<SpecialSkillActionEndValue1:10>

<SpecialSkillChargeValue1:10>


ステートのメモ欄(Note of States)


<SpecialSkillChargeValue:10>

 ステートを受けた相手の全ゲージを10加算します。

<SpecialSkillRegenerateValue:10>

 ステート時、ターン毎に全ゲージを10加算します。



 スキルと同じ要領で特定の奥義タイプだけを対象にできます。
<SpecialSkillChargeValue1:10>

<SpecialSkillRegenerateValue1:10>


プラグインコマンド


奥義ゲージの増減

 奥義ゲージを増減させます。
 操作するアクターや奥義タイプを指定可能です。
 アクターを指定しなかった場合は、パーティ全員が対象となります。
 奥義タイプを指定しなかった場合は、全奥義タイプが対象となります。

レイアウトについて


 初期状態では奥義ゲージを表示する場所が狭いので窮屈です。
 特にゲージを複数登録した場合は顕著になります。
 対象はメニュー、ステータス、戦闘の3画面です。

 プラグインパラメータによって、ゲージのレイアウトを設定できますが、このプラグインだけでは厳しいかもしれません。
 その他のレイアウト系プラグインと組み合わせて、いい感じに調整してください。
 ※このプラグイン単体では無理があるので、作者はさじを投げました。

プラグインパラメータ


奥義タイプ一覧(SpecialTypeList)

 奥義タイプの一覧です。それぞれがゲージ情報を保有します。

奥義所有時のみゲージ表示(ShowGaugeWhenLearned)

 アクターが有効な奥義を覚えている場合のみゲージを表示します。

全回復にゲージを含める(RecoverGauge)

 全回復時に奥義ゲージも回復します。

命中時のみ加算(PlusOnlyHit)

 行動毎のゲージ上昇を命中時のみ有効にします。

奥義発動時は加算しない(NotPlusWhenUsed)

 奥義発動時はゲージ上昇を停止します。
 つまり、自身で発動した奥義ではゲージが溜まりません。

同じ対象は加算しない(NotPlusSameTarget)

 多段技などで同一の対象に複数攻撃を当てても、行動毎の上昇値が溜まらないようにします。

複数ヒット時に減衰(MultipleAttenuation)

 範囲技/多段技にてヒット毎のゲージ上昇量を減少させます。
 例:「value / count」で上昇量/ヒット数へと減衰。


【ゲージのレイアウト関連】

数値の表示(ShowGaugeNumber)

 ゲージ上に現在値を数値表示します。

ラベルの横幅(LabelWidth)

 ラベルを表示する横幅です。不要な場合は0にしてください。

横幅(GaugeWidth)

 ゲージの横幅です。初期値は128です。
 ここからラベル幅が引かれることに注意です。

縦幅(GaugeHeight)

 ゲージの縦幅です。初期値は12です。

ゲージの間隔(GaugeInterval)

 ゲージ同士の間隔です。

ゲージフラッシュ(GaugeFlash)

 満タンになったゲージをフラッシュさせます。

メニュー画面に表示(ShowMenu)

 メニュー画面に奥義ゲージを表示します。


 メニューにゲージを表示するX座標です。
 アクター名からの相対座標を指定してください。

 ちなみに、右列(HPなどの列)に表示したい場合は値を180にすればOKです。


 メニューにゲージを表示するY座標です。
 アクター名からの相対座標を指定してください。

ステータス画面に表示(ShowStatus)

 ステータス画面に奥義ゲージを表示します。

開始X座標(ステータス)(StatusStartGaugeX)

 ステータスにゲージを表示するX座標です。
 レベルからの相対座標を指定してください。

開始Y座標(ステータス)(StatusStartGaugeY)

 ステータスにゲージを表示するY座標です。
 レベルからの相対座標を指定してください。

戦闘画面に表示(ShowBattle)

 戦闘画面に奥義ゲージを表示します。

開始X座標(戦闘)(BattleStartGaugeX)

 戦闘にゲージを表示するX座標です。
 アクター名からの相対座標を指定してください。

開始Y座標(戦闘)(BattleStartGaugeY)

 戦闘にゲージを表示するY座標です。
 アクター名からの相対座標を指定してください。

HP調整Y座標(BattleAdjustNameY)

 戦闘時、名前〜TPのY座標を調整します。

名前〜HPの間隔(BattleNameHpInterval)

 戦闘時、名前とHPの間隔を数値分広げます。

プラグインパラメータ(奥義タイプ一覧)


有効条件(Condition)

 奥義ゲージの有効条件です。(aをバトラーとした数式)
 例:a.level >= 10

最大値(GaugeMax)

 奥義ゲージの最大値となる数値です。

戦闘後もゲージ持越(PreserveGauge)

 戦闘終了後も奥義ゲージを保持します。

戦闘開始時の上昇値(BattleStartValue)

 戦闘開始時に加算するゲージ上昇値です。
 例:「Math.randomInt(25)」で0~24

行動毎の上昇値(ActionValue)

 行動毎のゲージ上昇値です。
 ヒット数分加算されます。
 例:10

行動終了時の上昇値(ActionEndValue)

 行動終了時の上昇値です。
 こちらは1回だけです。
 例:10

ターン毎の再生値(RegenerateValue)

 ターン毎の再生値です。
 例:10

ダメージ時の上昇値(DamageValue)

 ダメージを受けた時の奥義ゲージ上昇値です。
 例:50 * damage / a.mhp

回避時の上昇値(EvadedValue)

 攻撃を回避した時の奥義ゲージ上昇値です。
 例:10

仲間死亡時の上昇値(FriendsDeadValue)

 仲間が戦闘不能になった際のゲージ上昇値です。

敵撃破時の上昇値(DefeatEnemyValue)

 敵を撃破した際のゲージ上昇値です。

会心時の上昇値(CriticalValue)

 会心時のゲージ上昇値です。

消費ポイントの色(CostColor)

 奥義の消費ポイントの色です。
 システムカラーの番号を指定。
 空欄なら消費非表示。

満タン時のアニメ(ChargedAnimation)

 奥義ゲージが満タンになった際のアニメーションです。


【ゲージのレイアウト関連】

ラベル(Label)

 表示するラベルです。

色(左)(GaugeColor1)

 奥義ゲージの色(左)です。
 システムカラーの番号を指定してください。

色(右)(GaugeColor2)

 奥義ゲージの色(右)です。
 システムカラーの番号を指定してください。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 12:55 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする