デフォルト機能


【変数の小数値利用】

RPGツクールMV、MZでは基本的に変数に格納される値は整数値に変換されます。
MELOSが実装されると、これが小数値も格納できるようになります。
ただし、そのためにはイベントコマンド「スクリプト」で変数を操作する必要があります。

$gameVariables.setValue(id, value, decimals)

id には格納先の変数のIDを、 value には格納したい数値を記入します。
そして decimals にはvalueで指定した値の小数点以下の桁数を記入します。
たとえば value に 10.8 を記入する際、小数点以下の桁数は1桁なので、 decimals には 1 を記入します。

ただし、プログラムは小数の計算が苦手です。
したがって、変数に小数を代入しながらイベントコマンドで計算を行うと、期待する答えが得られないリスクがあることは知っておいてください。


【キャラクターの移動】

キャラクターの移動を簡潔に命令できるようになります。
イベントコマンド「移動ルートの設定」で設定できる「スクリプト」で使用できます。
使用方法や注意事項については、簡易挙動設定でご確認ください。


【リージョン判定】

キャラクターが特定のリージョンの上に乗っているかを判定するための条件式が使用できます。
イベントコマンド「条件分岐」の「スクリプト」で次のように記述します。

this.character(0).isOnRegionId(id);

id には判定したいリージョンのIDの値を記入します。
this.character(0) を $gamePlayer にすると、プレイヤーがリージョンの上に乗っているかを判定します。
リージョンの上に乗っているかの判定自体は、

  • イベントかプレイヤーの座標を取得
  • →その座標を頼りに指定位置の情報取得コマンドを使い、リージョンIDを取得
  • →そのリージョンIDと判定したいリージョンIDを比較して条件分岐

という流れで作ることができます。
しかしご覧の通り、これだけの工数が必要な上に変数の操作が多く、処理への負荷も増えます。
この条件式は変数の操作が不要な上に条件分岐の1行だけで解決するので、手軽にリージョンIDの判定を作ることができるようになります。


【アイテムシーンへ戻る】

アイテムを使用時にコモンイベントを実行することができますが、デフォルトでは一度実行するとアイテム画面へ自動的に戻ることはしません。
これを解決したい場合、実行するコモンイベントの最後に次のスクリプトを記述して下さい。

SceneManager.returnItemScene();


【戦闘敗北回数、討伐回数】

戦闘に負けた回数と、エネミーを倒した回数を数える機能、およびその回数を取得する機能が使用できます。
特に討伐回数に関しては、より具体的なエネミー撃破数を参照できるようになります。
これにより「みんなの恨み」のような倒した数をダメージに反映させるといったスキルが作れます。
それぞれスクリプトは以下の通りです。

  • 敗北回数のカウント : $gameSystem.onBattleLose();
  • 敗北回数の取得   : $gameSystem.loseCount();
  • 討伐回数のカウント : $gameSystem.onBattleBeat();
  • 討伐回数の取得   : $gameSystem.beatCount();

カウントに関しては手動設計を前提としているため、原則自動的に回数が増えることはありません。
必要に応じて全滅時やエネミーの撃破時に演出するコモンイベントに併せて記述して下さい。
全滅時のコモンイベントはプレイヤー操作感のゲームオーバー処理を、討伐時のコモンイベントは撃破演出を参照して下さい。
多少不便かもしれませんが、その方がユーザーそれぞれの個性に応える柔軟なデザインが生まれると思い、このような設計にしています。

もしこのカウントを自動化したい場合は、任意のタイミングで次のスクリプトを実行して下さい。
引数のvalue にtrue を記入すれば自動化On、false を記入すれば自動化Offにできます。

  • 敗北回数の自動カウント変更 : $gameSystem.setLoseCountAuto(value);
  • 討伐回数の自動カウント変更 : $gameSystem.setBeatCountAuto(value);
敗北回数のカウント例

討伐回数取得の例
討伐回数条件の例

【任意テキスト描画】

イベント中の画面に任意のテキストを表示することができます。
このテキストはピクチャと同様、拡大率や不透明度、位置や回転率を操作できる他、ゆがみ具合を変更することも可能です。

任意テキストを表示

SceneManager.drawFreeText('code', 'text', x, y, option);

x y で指定した場所に、text で設定したテキストを表示します。
code はテキストを入れる箱のようなもので、後述する変形機能で利用します。
描画自体には影響しないので、ユーザーが区別できる任意の文字を設定して下さい。

option は様々な追加設定が可能です。
設定する場合、{"fontSize": a, "opacity": b, "scaleX": c, "scaleY": d, "anchorX": e, "anchorY": f, "skewX": g, "skewY": h, "rotation": i, "color": j, "outlineColor": k}を、 option の部分に記入します。
あるいは const opiton = {~~}; を先に記述し、その次の行で上記のスクリプトを”optionのまま”記述すれば、可読性をあまり損なわずに設定できます。
a~kはそれぞれ数値で設定します。
{"opacity": b, "rotation": i}だけのように、必要なパーツだけで構成しても問題ありません。
(※β5.0.0〜)optionに color と outlineColor が追加されました。

code や text も事前に設定できます
  • fontSize

    テキストの文字サイズを設定します。
    小さいサイズを設定した状態で拡大率を上げると、描画が荒くなってしまいます。
    拡大率を操作する場合は、予め大きめのサイズに設定しておくと無難です。

  • opacity

    テキストの不透明度を0~255の値で設定します。

  • scaleX scaleY

    テキストのX方向、Y方向における拡大率をそれぞれ設定します。値は倍率で設定する形式となっており、等倍設定の場合は1となります。

  • anchorX anchorY

    テキストのX軸、Y軸における原点の位置をそれぞれ設定します。
    この原点はピクチャの表示における原点と同様の挙動をします。
    値は0~1で設定し、X方向はテキストの幅、Y方向はテキストの高さに対する倍率となります。
    そのため、テキストの中心に原点を置きたい場合はどちらも 0.5 で設定して下さい。

  • skewX skewY

    テキストのX方向、Y方向へのゆがみを角度指定で設定します。

  • rotation

    テキストの回転率を角度指定で設定します。
    360度刻みで1周し、負の値で反時計回りに回転します。

  • color

    テキストの色を設定します。
    半角英数による英名、RGB表記、HEX表記が利用できます。

  • outlineColor

    テキストの周りを縁取る色を設定します。
    半角英数による英名、RGB表記、HEX表記が利用できます。

※色についてはこちらを参照してください。

任意テキストを削除

SceneManager.eraseFreeText('code');

指定した code を持つテキストを一斉削除します。
code はdrawFreeTextで描画した際に指定した任意のコードです。
以下の機能とは異なり、同じコードを持つテキストをすべて対象とします。

任意テキストを変形

一度描画した任意テキストは、下記のスクリプトで後からパラメーターを変更することができます。
さらに、それぞれで指定できる duration の引数により、ピクチャの移動と同様にアニメーションを施すことも可能です。
なお、eraseFreeTextとは異なり、code で指定できるテキストは、一番最初にその code で描画されたテキストのみを対象とします。
また、各goal (goalX, goalY)は、アニメーションが終了した時点での値を記入します。

任意テキストを動かす

SceneManager.updateFreeTextPosition('code', goalX, goalY, duration);
goalX, goalYはスクリーンの座標で指定します。マップの座標とは異なるので注意して下さい。

任意テキストを拡大・縮小する

SceneManager.updateFreeTextScale('code', goalX, goalY, duration);
goalX, goalYは倍率で指定します。

任意テキストの不透明度を変更する

SceneManager.updateFreeTextOpacity('code', goal, duration);
goalは0~255の値で指定します。

任意テキストの歪み度合いを変更する

SceneManager.updateFreeTextSkew('code', goalX, goalY, duration);
goalX, goalYは角度で指定します。

任意テキストを回転させる

SceneManager.updateFreeTextRotation('code', goal, duration, times);
goalは角度で指定します。
times は回転回数を記入します。

任意テキストに制御文字を使う※β4.3.0〜

変数表示の\v[n]やMELOSで実装される\pad[name]など、多くの制御文字がこの任意テキストで使用できます。
textの部分に制御文字を入れることで、自動的に変換されます。
使用上の注意点として、エスケープ用とは別にもう1つバックスラッシュ(\)が必要です。
たとえば変数1の値を任意テキストに表示したい場合は以下のように記述します。(code, x, yには任意の値を入れます)

SceneManager.drawFreeText('code', '\\v[1]', x, y);