概要

ゲーム中に昼夜の概念を作成します。
うまく使えば、夜だけ起こるイベントなども作成可能です。
(「現実時間」を使えば、某RPGのように現実世界とリンクしたゲームを作成可能?)

稼動中は、イベントコマンド「画面の色調変更」が正常に機能しなくなります。
「画面の色調変更」を使用する際は、必ず機能を停止させてください。
(停止方法は「使用法」を参照)

スクリーンショット

ScreenShot
夜になりました。

更新履歴

2006/03/27

操作用メソッドを変更。
リファクタリング。

2005/12/24

戦闘時、背景のみに色調を適用する機能を追加。

2005/10/15

仕様変更。

2005/07/17

「曜日」を追加。

2005/05/05

状態切り替え時のフェード時間設定機能を追加。

2005/04/28

トループの出現条件設定機能を追加。

2005/03/22

「時間経過」使用時、数秒以上メニュー等を開いていた場合は時間が進行しないように設定。
(メニューを閉じた瞬間に夜になったりする現象を抑止)
「時間経過」使用時、イベント中は時間を止める機能を追加。

2005/03/15

「経過日数」機能を追加。
ニューゲームから始めなくても動作するように改良。

2004/12/12

「デフォルトの状態に戻す」「現在の状態を適用」機能を追加。

2004/11/15

「時間経過」方式の処理を多少厳密(?)にしてみた。

2004/11/05

「現実時間」方式に対応。

2004/11/01

新規作成

スクリプト

KGC_DayNight

使用法

導入後、カスタマイズ項目を好みに応じて変更してください。

イベントコマンド「スクリプト」で $game_system.daynight_change = (true|false) を入力すると、昼夜切り替えを制御できます。
(↑trueまたはfalseを指定)
戦闘中のみ昼夜切り替えを制御する場合は $game_system.daynight_change_battle = (true|false) を使用します。

ただし、$game_system.daynight_changefalseの場合は戦闘中も無効になります。

現在の状態・曜日を表わす数値は x = DayNight.now # 状態 y = DayNight.now_week # 曜日 で取得できます。 イベントの条件分岐等に使用する場合は $game_variables[id] = DayNight.now を使います。(idは変数ID)

phase 内容
0
1 夕方
2
3
(改造した場合は変動)

x = DayNight.now_name y = DayNight.now_week_name で現在の状態名(昼や夜など)・曜日名が取得できます。

宿屋の処理等のため、昼や夜に手動で変える場合は DayNight.change(phase[, duration, pass_days]) を使用します。
phaseは変更後の状態(↑を参照)、durationは変更にかける時間(フレーム)です。
(省略するとduration = 40になります)
pass_daysは状態変化後に経過させる日数を入力します。
(省略すると日数は加算しません)
イベント等で日数を経過させたい場合にも使用できます。
<例> DayNight.change(0, 0, 1)  # 0フレームで昼に移行し、1日経過させる
現在の経過日数は x = $game_system.daynight_pass_days で取得できます。(直接書き換えることも可能)
なお、経過日数は曜日の判定にも使用します。
0日目が最初の曜日になりますので、日曜以外から開始したい場合はカスタマイズ項目を変更してください。

建造物の内部に入ったとき等、一時的に通常時に戻したい場合もあります。
その場合は $game_system.daynight_change = false DayNight.set_default(0) を実行することで、通常の色調に戻すことができます。
逆に、該当場所から出る際には $game_system.daynight_change = true DayNight.apply(0) を実行することで、以前の状態を再現することができます。
(0)には、切り替え時間をフレーム単位で指定します。

トループ名に[DN ...]を加えると、敵の出現条件を設定できます。
...には、そのトループを出現させる状態(phase)をカンマ区切りで入力します。
指定時、数値の前に-を入れると、指定したphaseを出現条件から除外します。

「夜」のみ出現させる場合:[DN 2]
「昼・朝」は出現させない場合:[DN -0,-3]
([DN-0,-3]や[DN -0, -3]のように、空白を入れても入れなくても構いません)