画面のフェードアウト・画面のフェードイン / ツクールVXAceスクリプト(RGSS3)wiki
ツクールVXAceで画面のフェードアウト・画面のフェードインをスクリプトで行うなら以下の通りです。
画面のフェードアウト
#メッセージウィンドウを閉じたい時は「Fiber.yield~」のコードを追加
Fiber.yield while $game_message.visible
screen.start_fadeout(フェードアウトするまでの時間)
wait(フェードアウトに合わせてイベントを止める時間)
サンプルコード(30フレームでフェードアウト、フェード中にウェイトをかける)
Fiber.yield while $game_message.visible
screen.start_fadeout(30)
wait(30)
画面のフェードイン
#メッセージウィンドウを閉じたい時は「Fiber.yield~」のコードを追加
Fiber.yield while $game_message.visible
screen.start_fadein(フェードインするまでの時間(フレーム)) #フェードインする場合
wait(フェードインに合わせてイベントを止める時間)
サンプルコード(30フレームでフェードイン、フェード中にウェイトをかける)
Fiber.yield while $game_message.visible
screen.start_fadein(30)
wait(30)
コード解説
1行目:"Fiber.yield while $game_message.visible"
メッセージウィンドウが閉じるまで待つという意味のコードになります。
"$game_message.visible"とはメッセージウィンドウが開かれているかどうかを判定する変数で、メッセージウィンドウが開かれている限りtrueを返します。
この"$game_message.visible"がtrueを返す間はずっと"Fiber.yield"、つまり、ウェイトをかけるという処理です。
イベントコマンドでメッセージの表示を行っているのならこのコードは必要ありませんが、スクリプトで画面のフェードイン・アウトを行う前にメッセージを表示する処理を入れることがあれば、このコードは入れてください。
2行目:"screen.start_fadein(フェードインするまでの時間(フレーム))"
screenとはGame_Screenクラスを指します。
このGame_Screenクラスのstart_fadeinメソッドでは指定したフレーム数が"fadein_duration"という変数に代入され、update_fadeinメソッドにて使用されます。
このupdate_fadeinメソッドでは画面輝度を下げる処理が行われます。
このことから画面のフェードイン・フェードアウトとは画面の輝度を操作することによって処理されているということが分かりますね。
3行目:"wait(フェードアウトに合わせてイベントを止める時間)"
()内に入力した数値ウェイトをかけます。
このウェイトはイベントコマンドで行うウェイトと同じ性質のものです。
イベントコマンドではフェードの時間は自動的に決まってしまいますが、スクリプトで行うことでフェードする時間を指定することが出来ます。
さらに、スクリプトではウェイトのコードを省略することでフェードイン・アウトしている最中にプレイヤーが移動を行うことも出来ます。
ツクールVXAceスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。