ゲーム内時間の導入プラグイン – Chronus.js

タイトル
ゲーム内時間の導入プラグイン
作者名
ヘルプ
ゲーム内で時刻と天候の概念を表現できるプラグインです。
自動、マップ移動、戦闘で時間が経過し、時間と共に天候と色調が変化します。
これらの時間は調節可能で、またイベント中は時間の進行が停止します。

さらに、現実の時間をゲーム中に反映させる機能もあります。
設定を有効にすると現実の時間がゲーム内とリンクします。

日付や曜日も記録し、曜日の数や名称を自由に設定できます。
現在日付はフォーマットに従って、画面左上に表示されます。

日付フォーマットには以下を利用できます。
YYYY:年 MON:月名 MM:月 DD:日 HH24:時(24) HH:時(12)
AM:午前 or 午後 MI:分 DY:曜日 TZ 時間帯名称
DDALL:累計日数

また、規格に沿った画像を用意すればアナログ時計も表示できます。
表示位置は各画像の表示可否は調整できます。

画像の規格は以下の通りです。
・文字盤 : 任意のサイズの正方形画像
・長針  : 文字盤と同じサイズの画像で、上(0)を指している針の画像
・短針  : 文字盤と同じサイズの画像で、上(0)を指している針の画像

ツクマテにて規格に合った時計画像をリクエストしました。
使用する場合は、以下のURLより利用規約を別途確認の上、ご使用ください。
http://tm.lucky-duet.com/viewtopic.php?f=47&t=555&p=1615#p1615

プラグインコマンド詳細
イベントコマンド「プラグインコマンド」から実行。
指定する値には制御文字\V[n]を使用できます。
(引数の間は半角スペースで区切る)

C_ADD_TIME [分] : 指定した値(分単位)だけ時間が経過します。
C_ADD_DAY [日] : 指定した値(日単位)だけ日数が経過します。
C_SET_TIME [時] [分] : 指定した時間に変更します。
C_SET_DAY [年] [月] [日] : 指定した日付に変更します。
C_STOP : 時間の進行を停止します。
C_START : 時間の進行を開始します。
C_SHOW : カレンダーを表示します。
C_HIDE : カレンダーを非表示にします。
C_DISABLE_TINT : 時間帯による色調の変更を禁止します。
C_ENABLE_TINT : 時間帯による色調の変更を許可します。
C_DISABLE_WEATHER : 時間経過による天候の変化を禁止します。
C_ENABLE_WEATHER : 時間経過による天候の変化を許可します。
C_SET_SNOW_LAND : 悪天候時に雪が降るようになります。
C_RESET_SNOW_LAND : 悪天候時に雨もしくは嵐が降るようになります。
C_SET_SPEED [分] : 実時間1秒あたりの時間の経過速度を設定します。
C_SHOW_CLOCK : アナログ時計を表示します。
C_HIDE_CLOCK : アナログ時計を非表示にします。
C_SET_TIME_REAL : 時間の取得方法を実時間に変更します。
C_SET_TIME_VIRTUAL : 時間の取得方法をゲーム内時間に変更します。
C_SET_RAINY_PERCENT [確率] : 降水確率(0-100)を設定します。
C_INIT_TOTAL_TIME : 累計時間、累計日数を初期化します。

・アナログ時計画像変更コマンド
アナログ時計の画像ファイル名(img/pictures)を変更できます。
ただし、実際に画像が変更されるのはマップを移動した後になります。
C_SET_CLOCK_BASE [ファイル名] : 文字盤画像のファイル名を変更します。
C_SET_HOUR_HAND [ファイル名] : 短針画像のファイル名を変更します。
C_SET_MINUTE_HAND [ファイル名] : 長針画像のファイル名を変更します。

・タイマー操作系コマンド
コマンド実行から指定した時間[分]が経過後にスイッチやセルフスイッチを
ONにできるコマンドです。
実時間連動機能と併せて使用することもできます。
スイッチの場合はIDを、セルフスイッチの場合は種類(A,B,C,D)を指定します。

C_SET_SWITCH_TIMER [分] [スイッチID] [ループ]
指定例(ゲーム内時間で30分経過後する度にスイッチ[10]をONにする)
C_SET_SWITCH_TIMER 30 10 ON

C_SET_SELF_SWITCH_TIMER [分] [セルフスイッチ種類] [ループ]
指定例(ゲーム内時間で3時間過後にセルフスイッチ[B](※)をONにする)
C_SET_SELF_SWITCH_TIMER 180 B OFF
※対象イベントはプラグインコマンドを実行したイベントです。

途中で解除や一時停止する可能性がある場合は[タイマー名]を指定するコマンドを
実行してください。解除などの際にタイマー名を指定する必要があるためです。

C_SET_SWITCH_NAMED_TIMER [タイマー名] [分] [スイッチID] [ループ]
指定例(ゲーム内時間で30分経過後する度にスイッチ[10]をONにする)
C_SET_SWITCH_NAMED_TIMER timer 30 10 ON

C_SET_SELF_SWITCH_NAMED_TIMER [タイマー名] [分] [セルフスイッチ種類] [ループ]
指定例(ゲーム内時間で3時間過後にセルフスイッチ[B](※)をONにする)
C_SET_SELF_SWITCH_NAMED_TIMER timer 180 B OFF
※対象イベントはプラグインコマンドを実行したイベントです。

解除、停止、再開のコマンドは以下の通りです。
C_CLEAR_TIMER timer # タイマー名「timer」を解除します。
C_STOP_TIMER timer # タイマー名「timer」を一時停止します。
C_START_TIMER timer # タイマー名「timer」を再開します。

時間ではなく時刻指定でスイッチ操作できるアラーム機能です。
[年月時分]は、「YYYYMMDDHHMM」形式で指定してください。
解除はタイマー用のコマンドを使います。
C_SET_SWITCH_ALARM [年月時分] [スイッチID] [インターバル]
C_SET_SELF_SWITCH_ALARM [年月時分] [セルフスイッチ種類] [インターバル]
C_SET_SWITCH_NAMED_ALARM [アラーム名] [年月時分] [スイッチID] [インターバル]
C_SET_SELF_SWITCH_NAMED_ALARM [アラーム名] [年月時分] [セルフスイッチ種類] [インターバル]

指定例(ゲーム内時間で2019/10/22 15:00を過ぎるとセルフスイッチ[B]をONにする)
C_SET_SELF_SWITCH_ALARM 201910221500 B

インターバルを指定した場合、スイッチがONになった後も指定した期間が経過すると
再度、スイッチがONになるようになります。単位は分ですが計算式が使えます。

指定例(ゲーム内時間で2019/10/22 15:00を過ぎるとセルフスイッチ[B]をONにする。
    その後、1日経過ごとに再度セルフスイッチ[B]をONにする)
C_SET_SELF_SWITCH_ALARM 201910221500 B 2460

メモ欄詳細
タイトルセットおよびマップのメモ欄に以下を入力すると、
一時的に天候と色調変化を自動で無効化できます。
屋内マップやイベントシーンなどで一時的に無効化したい場合に利用できます。
設定はマップのメモ欄が優先されます。

<C_Tint:OFF> # 色調の変更を一時的に無効化します。
<C_色調:OFF> # 同上
<C_Weather:OFF> # 天候を一時的に無効化します。
<C_天候:OFF> # 同上
<C_Snow:ON> # 天候を雪に設定します。
<C_雪:ON> # 同上

イベント実行中にも時間経過するかどうかをイベントごとに設定できます。
この設定はパラメータの設定よりも優先されます。
イベントのメモ欄に以下を入力してください。
<C_時間経過:ON> # イベント実行中に時間経過します。(ON/OFF)
<C_NoStop:ON> # 同上

高度な設定
ソースコード中の「ユーザ書き換え領域」を参照すると以下を変更できます。
時間帯の情報(朝が何時から何時まで等)
時間帯ごとの色調(ただし、悪天候の場合は補正が掛かります)

スクリプト
frameで指定したフレーム数を自然時間加算間隔に設定します。
$gameSystem.chronus().setAutoAddInterval(frame);

利用規約:
作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
についても制限はありません。
このプラグインはもうあなたのものです。
パラメータ
param 月ごとの日数配列
desc 各月の日数の配列です。カンマ区切りで指定してください。個数は自由です。
default 31,28,31,30,31,30,31,31,30,31,30,31

param 月名配列
desc 月の名称配列です。カンマ区切りで指定してください。個数は自由です。
default Jan.,Feb.,Mar.,Apr.,May.,Jun.,Jul.,Aug.,Sep.,Oct.,Nov.,Dec.

param 曜日配列
desc 曜日の名称配列です。カンマ区切りで指定してください。個数は自由です。
default (日),(月),(火),(水),(木),(金),(土)

param 自然時間加算
type number
desc 1秒(自然時間加算間隔で指定した間隔)ごとに加算されるゲーム時間(分単位)の値です。イベント処理中は無効です。
default 5

param 自然時間加算間隔
type number
desc ゲーム時間の自然加算が行われる間隔(フレーム数)です。1F=1/60秒
default 60

param 場所移動時間加算
type number
desc 1回の場所移動で加算されるゲーム時間(分単位)の値です。
default 30

param 戦闘時間加算(固定)
type number
desc 1回の戦闘で加算されるゲーム時間(分単位)の値です。
default 30

param 戦闘時間加算(ターン)
type number
desc 1回の戦闘で消費したターン数ごとに加算されるゲーム時間(分単位)の値です。
default 5

param 年のゲーム変数
type variable
desc 指定した番号のゲーム変数に「年」の値が自動設定されます。
default 0

param 月のゲーム変数
type variable
desc 指定した番号のゲーム変数に「月」の値が自動設定されます。
default 0

param 日のゲーム変数
type variable
desc 指定した番号のゲーム変数に「日」の値が自動設定されます。
default 0

param 曜日IDのゲーム変数
type variable
desc 指定した番号のゲーム変数に「曜日」のIDが自動設定されます。
default 0

param 曜日名のゲーム変数
type variable
desc 指定した番号のゲーム変数に「曜日」の名称が自動設定されます。
ゲーム変数に文字列が入るので注意してください。
default 0

param 時のゲーム変数
type variable
desc 指定した番号のゲーム変数に「時」の値が自動設定されます。
default 0

param 分のゲーム変数
type variable
desc 指定した番号のゲーム変数に「分」の値が自動設定されます。
default 0

param 累計時間のゲーム変数
type variable
desc 指定した番号のゲーム変数に「累計時間」(分単位)の値が自動設定されます。
default 0

param 累計日数のゲーム変数
type variable
desc 指定した番号のゲーム変数に「累計日数」の値が自動設定されます。
default 0

param 時間帯IDのゲーム変数
type variable
desc 指定した番号のゲーム変数に「時間帯」のIDが自動設定されます。
0:深夜 1:早朝 2:朝 3:昼 4:夕方 5:夜
default 0

param 天候IDのゲーム変数
type variable
desc 指定した番号のゲーム変数に「天候」のIDが自動設定されます。
0:なし 1:雨 2:嵐 3:雪
default 0

param フォーマット時間の変数
type variable
desc 「フォーマット時間の計算式」に基づいて計算した結果が自動設定されます。
default 0

param フォーマット時間の計算式
desc 日時フォーマットを使った計算式の内容です。
YYYY:年 MON:月名 MM:月 DD:日 など(詳細はヘルプ参照)
default HH2460 + MI

param 日時フォーマット1
desc マップ上の日付ウィンドウ1行目に表示される文字列です。
YYYY:年 MON:月名 MM:月 DD:日 など(詳細はヘルプ参照)
default YYYY年 MM月 DD日 DY

param 日時フォーマット2
desc マップ上の日付ウィンドウ2行目に表示される文字列です。
YYYY:年 MON:月名 MM:月 DD:日 など(詳細はヘルプ参照)
default AMHH時 MI分

param 日時フォーマット行間
type number
desc カレンダー表示の行間です。
default 0

param カレンダー表示X座標
type number
desc カレンダーの表示 X 座標です。
default 0

param カレンダー表示Y座標
type number
desc カレンダーの表示 Y 座標です。
default 0

param カレンダーフォントサイズ
type number
desc カレンダーのフォントサイズです。0を指定するとデフォルトとなります。
default 0

param カレンダー不透明度
type number
desc カレンダーの背景の不透明度(0-255)です。
default 192

param カレンダー枠の非表示
type boolean
desc カレンダーのウィンドウ枠を非表示にします。
default false

param カレンダーの非表示
type boolean
desc カレンダーを非表示します。プラグインコマンドから表示できます。
default false

param カレンダー余白
type number
desc カレンダーの余白(8-)です。
default 8

param 文字盤画像ファイル
desc アナログ時計を表示する場合の文字盤画像ファイル名(拡張子は不要)です。
画像は「img/pictures/」以下に保存してください。
default
require 1
dir img/pictures/
type file

param 長針画像ファイル
desc アナログ時計を表示する場合の長針画像ファイル名(拡張子は不要)です。
画像は「img/pictures/」以下に保存してください。
default
require 1
dir img/pictures/
type file

param 短針画像ファイル
desc アナログ時計を表示する場合の長針画像ファイル名(拡張子は不要)です。
画像は「img/pictures/」以下に保存してください。
default
require 1
dir img/pictures/
type file

param 時計X座標
type number
desc アナログ時計の表示X座標です。画像の中心座標を指定してください。
default 84

param 時計Y座標
type number
desc アナログ時計の表示Y座標です。画像の中心座標を指定してください。
default 156

param イベント中時間経過
desc イベント実行中も時間経過するようになります。(ON/OFF)
default false
type boolean

ライセンス表記
作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
(C) 2015 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php

紹介ページ https://github.com/triacontane/RPGMakerMV/blob/master/Chronus.js