WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■【マスク使用例】場所移動時の演出
(更新:2024/05/15)


場所移動を実行する時に、マスク機能を使った演出を表示する方法を紹介します。


ショートカット
■設定前の補足情報
■マスク機能で円形に拡大縮小して主人公を隠して場所移動
■光の玉になって場所移動
■光の幕で場所移動

マスク機能に使用に関する基本的な説明は別ページにあります。
【マスク機能の使用に関する説明ページを開く】


  
■設定前の補足情報

当ページのイベント設定は、アイテム、技能、転送装置などを使った時や異世界を行き来する時など、
遠くの場所へ移動する時の演出用の使用を想定しています。



当ページの処理では、場所移動後に主人公の向きを下向きにしています。

この下向きにする設定は【動作指定】ではなく、変数呼び出し値「9180006」を使っています。

変数呼び出し値「9180006」を使う理由は【動作指定】がイベントコードにする事ができないためです。

同じような処理を自作する場合は、わざわざ変数呼び出し値「9180006」を使わなくても、
普通に【動作指定】を使って向きを変更すれば良いでしょう。



マップイベントは、縦に0.5マスずれていても実行する事ができます。

▼この状態で実行できます


もしも0.5マスずれている時にはイベントの実行ができないようにする場合は、
当ページで紹介しているマップイベントの0行目に以下のイベントコマンドを追加してください。

【イベントコード表示】

▼ ■■■■■■■■■■0.5マズずれている場合は実行しない
■変数操作+: このEvのSelf0 = 主人公 の Y座標(精密) *キャラ足下-1位置
■変数操作+: このEvのSelf0 -= 呼出マップイベント の Y座標(精密) *キャラ足下-1位置
■条件分岐(変数): 【1】 このEvのSelf0 が 0 以外
-◇分岐: 【1】 [ このEvのSelf0 が 0 以外 ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇


▲トップへ戻る▲


  
■マスク機能で円形に拡大縮小して主人公を隠して場所移動

マスクの黒設定が円形に拡大し、そして縮小する時に主人公たちを包み込む形で消えていく演出を設定します。


出現時も同様の形で出現させます。



基本的に白黒画像の黒の部分を大きくすれば、マスクの表示範囲が広がりますが、
白黒画像の読み込み処理には拡大縮小の機能が無いため、
例えば黒の大きさが8段階に変わる場合は、黒の大きさが異なる8種類の画像を用意する必要があります。



今回のイベント設定では、円の直径が16ピクセルずつ大きくなっていくように設定します。

【クリックして今回のイベント設定で使用する画像をダウンロード】



円の中にある背景は、ウディタに付属している画像を使用しています。



フォルダー[Data]フォルダー[Fog_BackGround]の中にあります。



マスク機能を使った場所移動の処理は、コモンイベントに設定します。

▼基本設定

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「マスク円形拡縮場所移動」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 移動先マップID 0 システムDB」のタイプ「0」番
-1「現在のマップ」 -2「現在のマップ」 -3「現在のマップ
数値2 標準or精密 0 [0]標準
[1]精密
数値3 移動先X座標 0  
数値4 移動先Y座標 0  

▼ マスク機能で円形に拡大縮小して主人公を隠して場所移動/基本設定
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ セルフ[0]:場所移動:マップID
▼ セルフ[1]:場所移動:セルフ[2〜3]の設定 [0=標準][1=精密]
▼ セルフ[2]:場所移動:X座標
▼ セルフ[3]:場所移動:Y座標
▼ セルフ[10]:主人公の中心X
▼ セルフ[11]:主人公の中心Y
▼ セルフ[12]:キャラ番号を設定(-2=先頭の主人公/-7=6番目の主人公)
▼ セルフ[18]:表示する黒画像のサイズ
▼ セルフ[19]:ループ回数(ループ1回で黒の直径が8ピクセル増減(320×240[x2]の場合は4ピクセル増減))
▼ セルフ[20]:変数呼出値(9180006=主人公の向き)
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ■■■■■■■■■■ループ回数を設定(1〜32)

■変数操作: CSelf19[ループ回数] = 32 + 0
▼ ■■■■■■■■■■主人公の中心をマスク黒の設定位置にする
■変数操作+: CSelf10[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
▼ ■■■■■■■■■■準備処理
■マスク機能:[マスクを全面[非表示]に塗る]
■ピクチャ表示:-1 [中心]ファイル「Fog_BackGround/[BackGround]space2_pipo.jpg」
       X:CSelf10[主人公の中心X] Y:CSelf11[主人公の中心Y] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■マスク機能:[このピクチャIDをマスク対象にする] => ID -1
▼ ■■■■■■■■■■消滅処理
■変数操作: CSelf18[黒画像のサイズ] = 0 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] += 16 + 0
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクONにする] =>ID -7 〜 -2
■ウェイト:10 フレーム
■変数操作: CSelf19[ループ回数] -= 1 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] -= 16 + 0
|■マスク機能:[マスクを全面[非表示]に塗る]
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[マスクを全面[非表示]に塗る]
▼ ■■■■■■■■■■場所移動
■ウェイト:10 フレーム
■条件分岐(変数): 【1】 CSelf0[移動先マップID] が -1 以下
-◇分岐: 【1】 [ CSelf0[移動先マップID] が -1 以下 ]の場合↓
|■変数操作+: CSelf0[移動先マップID] = 現在のマップID
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[標準or精密] が 0 と同じ
-◇分岐: 【1】 [ CSelf1[標準or精密] が 0 と同じ ]の場合↓
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf2[移動先X座標] Y:CSelf3[移動先Y座標] [トランジション + 暗転有り]
|■
-◇上記以外
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf1[標準or精密] Y:CSelf2[移動先X座標] [精密] [トランジション + 暗転有り]
|■
◇分岐終了◇
■ウェイト:10 フレーム
▼ ■■■■■■■■■■下向きにする
■変数操作: CSelf20[変数呼出値] = 9180006 - 10
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf20[変数呼出値] += 10 + 0
|■変数操作: V[CSelf20[変数呼出値]] = 2 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■主人公の中心をマスク黒の設定位置にする
■変数操作+: CSelf10[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
▼ ■■■■■■■■■■出現処理
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] += 16 + 0
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクを解除] =>ID -7 〜 -2
■ウェイト:10 フレーム
■変数操作: CSelf19[ループ回数] -= 1 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] -= 16 + 0
|■マスク機能:[マスクを全面[非表示]に塗る]
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[マスクを全面[非表示]に塗る]
■ピクチャ消去:-1 / 0(0)フレーム



コモンイベントを呼び出すマップイベントは以下のように設定。

【イベントコード表示】

■マップイベント「場所移動」

起動条件:プレイヤー接触

■イベントの挿入[名]: ["マスク円形拡縮場所移動"] <コモンEv 215> / -1:現在のマップ / 0:標準 / 0 / 0



上記の設定では「ループ回数=32」になっているため、黒の円の直径は最大で512ピクセルまで大きくなります。

これは6人パーティ斜めに移動して実行した時の表示サイズになります。



パーティが3人までしかいない場合や斜め移動を考慮しない場合は、ループ回数を減らすと最大直径を小さくする事ができます。

また下記にある追加設定をする事で、主人公の状態に合わせてマスクの表示範囲を変えたり、
先頭の主人公がいる所へ仲間全員が集合してからマスクの処理を実行するような方法もあります。



▼仲間との距離を測ってループ回数(黒のサイズ)を設定

先頭の主人公と後続の仲間との距離を測って、適切なサイズでループ回数を変えるように設定します。



この色の設定は▼基本設定と同じ設定内容です。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「マスク円形拡縮場所移動」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 移動先マップID 0 システムDB」のタイプ「0」番
-1「現在のマップ」 -2「現在のマップ」 -3「現在のマップ
数値2 標準or精密 0 [0]標準
[1]精密
数値3 移動先X座標 0  
数値4 移動先Y座標 0  

▼ マスク機能で円形に拡大縮小して主人公を隠して場所移動/仲間との距離を測ってループ回数を設定
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ セルフ[0]:場所移動:マップID
▼ セルフ[1]:場所移動:セルフ[2〜3]の設定 [0=標準][1=精密]
▼ セルフ[2]:場所移動:X座標
▼ セルフ[3]:場所移動:Y座標
▼ セルフ[10]:主人公の中心X
▼ セルフ[11]:主人公の中心Y
▼ セルフ[12]:キャラ番号を設定(-2=先頭の主人公/-7=6番目の主人公)
▼ セルフ[13]:先頭と主人公と後続の主人公との距離X
▼ セルフ[14]:先頭と主人公と後続の主人公との距離Y
▼ セルフ[15]:角度
▼ セルフ[16]:COS
▼ セルフ[17]:SIN
▼ セルフ[18]:表示する黒画像のサイズ
▼ セルフ[19]:ループ回数(ループ1回で黒の直径が8ピクセル増減)
▼ セルフ[20]:変数呼出値(9180006=主人公の向き)
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ■■■■■■■■■■白黒の設定範囲を計測し、ループ回数を設定

■変数操作: CSelf12[キャラ番号] = -1 + 0
■変数操作: CSelf19[ループ回数] = 0 + 0
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf12[キャラ番号] -= 1 + 0
|■変数操作+: CSelf13[距離X] = キャラ[CSelf12[キャラ番号]] の X座標(標準)
|■変数操作+: CSelf14[距離Y] = キャラ[CSelf12[キャラ番号]] の Y座標(標準)
|■変数操作+: CSelf13[距離X] = 主人公 の 画面X座標
|■変数操作+: CSelf14[距離Y] = 主人公 の 画面Y座標
|■変数操作+: CSelf13[距離X] -= キャラ[CSelf12[キャラ番号]] の 画面X座標
|■変数操作+: CSelf14[距離Y] -= キャラ[CSelf12[キャラ番号]] の 画面Y座標
|■変数操作: CSelf13[距離X] 絶対値= CSelf13[距離X] + 0
|■変数操作: CSelf14[距離Y] 絶対値= CSelf14[距離Y] + 0
|■変数操作: CSelf15[角度] = 角度[x10]←傾き X: CSelf13[距離X] Y: CSelf14[距離Y]
|■変数操作: CSelf16[COS] = cos[x1000]←角度[x10] = CSelf15[角度] + 0
|■変数操作: CSelf17[SIN] = sin[x1000]←角度[x10] = CSelf15[角度] + 0
|■変数操作: CSelf13[距離X]〜CSelf14[距離Y] *= 1000 + 0
|■変数操作: CSelf13[距離X] /= CSelf16[COS] + 0
|■変数操作: CSelf14[距離Y] /= CSelf17[SIN] + 0
|■変数操作: CSelf19[ループ回数] 下限= CSelf13[距離X] + 0
|■変数操作: CSelf19[ループ回数] 下限= CSelf14[距離Y] + 0
|■
◇ループここまで◇◇
■変数操作: CSelf19[ループ回数] += Sys118:[読]タイルサイズ + 0
■変数操作: CSelf19[ループ回数] /= 8 / Sys119:[読]基本画面倍率x[1-3]
■変数操作: CSelf19[ループ回数] 上限= 32 + 0

▼ ■■■■■■■■■■主人公の中心を黒の設定位置にする
■変数操作+: CSelf10[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
▼ ■■■■■■■■■■準備処理
■マスク機能:[マスクを全面[非表示]に塗る]
■ピクチャ表示:-1 [中心]ファイル「Fog_BackGround/[BackGround]space2_pipo.jpg」
       X:CSelf10[主人公の中心X] Y:CSelf11[主人公の中心Y] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■マスク機能:[このピクチャIDをマスク対象にする] => ID -1
▼ ■■■■■■■■■■消滅処理
■変数操作: CSelf18[黒画像のサイズ] = 0 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] += 16 + 0
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクONにする] =>ID -7 〜 -2
■ウェイト:10 フレーム
■変数操作: CSelf19[ループ回数] -= 1 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] -= 16 + 0
|■マスク機能:[マスクを全面[非表示]に塗る]
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[マスクを全面[非表示]に塗る]
▼ ■■■■■■■■■■場所移動
■ウェイト:10 フレーム
■条件分岐(変数): 【1】 CSelf0[移動先マップID] が -1 以下
-◇分岐: 【1】 [ CSelf0[移動先マップID] が -1 以下 ]の場合↓
|■変数操作+: CSelf0[移動先マップID] = 現在のマップID
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[標準or精密] が 0 と同じ
-◇分岐: 【1】 [ CSelf1[標準or精密] が 0 と同じ ]の場合↓
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf2[移動先X座標] Y:CSelf3[移動先Y座標] [トランジション + 暗転有り]
|■
-◇上記以外
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf1[標準or精密] Y:CSelf2[移動先X座標] [精密] [トランジション + 暗転有り]
|■
◇分岐終了◇
■ウェイト:10 フレーム
▼ ■■■■■■■■■■下向きにする
■変数操作: CSelf20[変数呼出値] = 9180006 - 10
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf20[変数呼出値] += 10 + 0
|■変数操作: V[CSelf20[変数呼出値]] = 2 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■主人公の中心を黒の設定位置にする
■変数操作+: CSelf10[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
▼ ■■■■■■■■■■出現処理
■変数操作: CSelf19[ループ回数] = 3 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] += 16 + 0
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクを解除] =>ID -7 〜 -2
■ウェイト:10 フレーム
■変数操作: CSelf19[ループ回数] -= 1 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] -= 16 + 0
|■マスク機能:[マスクを全面[非表示]に塗る]
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[マスクを全面[非表示]に塗る]
■ピクチャ消去:-1 / 0(0)フレーム



▼全員集合してからマスク処理を開始

先頭の主人公の位置に後続の仲間を集合させてから、マスク処理を開始するように設定します。




集合させる処理では、イベントコマンド【キャラクターの動作指定】を使います。

▼「-2」を設定すると先頭の主人公が接近目標になります。「-2」の設定はキーボードで入力してください。




この色の設定は▼基本設定と同じ設定内容です。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「マスク円形拡縮場所移動」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 移動先マップID 0 システムDB」のタイプ「0」番
-1「現在のマップ」 -2「現在のマップ」 -3「現在のマップ
数値2 標準or精密 0 [0]標準
[1]精密
数値3 移動先X座標 0  
数値4 移動先Y座標 0  

▼ マスク機能で円形に拡大縮小して主人公を隠して場所移動/全員集合してからマスク処理を開始
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ セルフ[0]:場所移動:マップID
▼ セルフ[1]:場所移動:セルフ[2〜3]の設定 [0=標準][1=精密]
▼ セルフ[2]:場所移動:X座標
▼ セルフ[3]:場所移動:Y座標
▼ セルフ[10]:主人公の中心X
▼ セルフ[11]:主人公の中心Y
▼ セルフ[12]:キャラ番号を設定(-2=先頭の主人公/-7=6番目の主人公)
▼ セルフ[13]:変数呼び出し値(仲間のX座標(精密))
▼ セルフ[14]:変数呼び出し値(仲間のY座標(精密))
▼ セルフ[15]:先頭の主人公と仲間のX座標の距離を設定
▼ セルフ[16]:先頭の主人公と仲間のY座標の距離を設定
▼ セルフ[17]:[0=全員集合した][1=まだ全員は集合していない]
▼ セルフ[18]:表示する黒画像のサイズ
▼ セルフ[19]:ループ回数(ループ1回で黒の直径が8ピクセル増減(320×240[x2]の場合は4ピクセル増減))
▼ セルフ[20]:変数呼出値(9180006=主人公の向き)
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ■■■■■■■■■■ループ回数を設定(1〜32)

■変数操作: CSelf19[ループ回数] = 5 + 0
▼ ■■■■■■■■■■先頭の主人公の所に後続を集合させる
■ループ開始
|■変数操作: CSelf12[キャラ番号] = -1 + 0
|■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
||■変数操作: CSelf12[キャラ番号] -= 1 + 0
||■動作指定:キャラ[CSelf12[キャラ番号]] / Ev-2に接近
||■
|◇ループここまで◇◇
|■動作完了までウェイト
|■変数操作: CSelf13[変数呼出値X] = 9180002 + 0
|■変数操作: CSelf14[変数呼出値Y] = 9180003 + 0
|■変数操作: CSelf17[0=集合した] = 0 + 0
|■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
||■変数操作: CSelf15[距離X] = 主人公のX座標(精密) - V[CSelf13[変数呼出値X]]
||■変数操作: CSelf16[距離Y] = 主人公のY座標(精密) - V[CSelf14[変数呼出値Y]]
||■条件分岐(変数): 【1】 CSelf15[距離X] が 0 以外 【2】 CSelf16[距離Y] が 0 以外
||-◇分岐: 【1】 [ CSelf15[距離X] が 0 以外 ]の場合↓
|||■変数操作: CSelf17[0=集合した] = 1 + 0
|||■
||-◇分岐: 【2】 [ CSelf16[距離Y] が 0 以外 ]の場合↓
|||■変数操作: CSelf17[0=集合した] = 1 + 0
|||■
||◇分岐終了◇
||■変数操作: CSelf13[変数呼出値X]〜CSelf14[変数呼出値Y] += 10 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf17[0=集合した] が 0 と同じ
|-◇分岐: 【1】 [ CSelf17[0=集合した] が 0 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■
◇ループここまで◇◇

▼ ■■■■■■■■■■主人公の中心を黒の設定位置にする
■変数操作+: CSelf10[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
▼ ■■■■■■■■■■準備処理
■マスク機能:[マスクを全面[非表示]に塗る]
■ピクチャ表示:-1 [中心]ファイル「Fog_BackGround/[BackGround]space2_pipo.jpg」
       X:CSelf10[主人公の中心X] Y:CSelf11[主人公の中心Y] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■マスク機能:[このピクチャIDをマスク対象にする] => ID -1
▼ ■■■■■■■■■■消滅処理
■変数操作: CSelf18[黒画像のサイズ] = 0 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] += 16 + 0
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクONにする] =>ID -7 〜 -2
■ウェイト:10 フレーム
■変数操作: CSelf19[ループ回数] -= 1 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] -= 16 + 0
|■マスク機能:[マスクを全面[非表示]に塗る]
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[マスクを全面[非表示]に塗る]
▼ ■■■■■■■■■■場所移動
■ウェイト:10 フレーム
■条件分岐(変数): 【1】 CSelf0[移動先マップID] が -1 以下
-◇分岐: 【1】 [ CSelf0[移動先マップID] が -1 以下 ]の場合↓
|■変数操作+: CSelf0[移動先マップID] = 現在のマップID
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[標準or精密] が 0 と同じ
-◇分岐: 【1】 [ CSelf1[標準or精密] が 0 と同じ ]の場合↓
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf2[移動先X座標] Y:CSelf3[移動先Y座標] [トランジション + 暗転有り]
|■
-◇上記以外
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf1[標準or精密] Y:CSelf2[移動先X座標] [精密] [トランジション + 暗転有り]
|■
◇分岐終了◇
■ウェイト:10 フレーム
▼ ■■■■■■■■■■下向きにする
■変数操作: CSelf20[変数呼出値] = 9180006 - 10
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf20[変数呼出値] += 10 + 0
|■変数操作: V[CSelf20[変数呼出値]] = 2 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■主人公の中心を黒の設定位置にする
■変数操作+: CSelf10[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
▼ ■■■■■■■■■■出現処理
■変数操作: CSelf19[ループ回数] = 3 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] += 16 + 0
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクを解除] =>ID -7 〜 -2
■ウェイト:10 フレーム
■変数操作: CSelf19[ループ回数] -= 1 + 0
■回数付きループ [ CSelf19[ループ回数] ]回
|■変数操作: CSelf18[黒画像のサイズ] -= 16 + 0
|■マスク機能:[マスクを全面[非表示]に塗る]
|■文字列操作:CSelf9[黒画像アドレス] = "Picture/mask_kuro_\cself[18].png"
|■マスク機能:[マスクに表示範囲(黒)を追加] =>[\cself[9]] XCSelf10[主人公の中心X] YCSelf11[主人公の中心Y] (中心)
|■ウェイト:2 フレーム
|■
◇ループここまで◇◇
■マスク機能:[マスクを全面[非表示]に塗る]
■ピクチャ消去:-1 / 0(0)フレーム


▲トップへ戻る▲


  
■光の玉になって場所移動

主人公の足元から体が消えていくと共に光の玉となり、そして空高く飛んでいく演出を設定します。




主人公が消えていく演出は、主人公1人ずつ行います。

全員をまとめて行わない理由は、下図のようにそれぞれの主人公の足元から同時に消そうとすると、
重なっている他の主人公の画像も消してしまうからです。




場所移動後の主人公の出現処理では、マスク機能を使用せずに、瞬間的に主人公を出現させます。

▼到着した瞬間


瞬間的に出現させる理由は以下のとおりです。
●勢いよく落ちてくるのに、地上付近でゆっくりと出現するのは不自然に見え、テンポも悪くなる。
●キャラが重なっているので、先頭の主人公以外は徐々に表示される状態が見えない。
●場所移動前の消える処理で既に時間がかかっているので、出現の方は早くしている。



場所移動後に光の玉が上から落ちてくる演出で、光の玉の最初のY表示位置をランダムで設定していますが、
これは光の玉が落ちてくる途中のY表示位置を変えるためです。



ランダム設定が無いと、同じ位置が光の玉が何度も表示されて不自然な感じになります。

なお、このランダム設定は、パーティに複数いる時を想定して設定しているので、
パーティに1人しかいない場合は、このランダム設定の効果はありません。



今回のマスク処理では、画面全体を「黒」にして、主人公の足元から「白」を足して、徐々に主人公を消していきます。

▼マスクの白黒の設定イメージ




白黒の画像は下図のような白一色の画像を用意してください。

下図の画像を使う場合は、画像の上で右クリック→「名前を付けて画像を保存」を選択して保存し、
作品内のフォルダー「Picture」の中に移動してください。



イベント設定では上図の「240×240ピクセル」の画像サイズに合わせて、白黒のXY位置を設定します。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「光の玉になって場所移動」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 移動先マップID 0 システムDB」のタイプ「0」番
-1「現在のマップ」 -2「現在のマップ」 -3「現在のマップ
数値2 標準or精密 0 [0]標準
[1]精密
数値3 移動先X座標 0  
数値4 移動先Y座標 0  

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ セルフ[0]:場所移動:マップID
▼ セルフ[1]:場所移動:セルフ[2〜3]の設定 [0=標準][1=精密]
▼ セルフ[2]:場所移動:X座標
▼ セルフ[3]:場所移動:Y座標
▼ セルフ[10]:キャラ番号
▼ セルフ[11]:変数呼出値(9180009=主人公の画像アドレス)
▼ セルフ[12]:主人公の中心X(光の玉のX位置)
▼ セルフ[13]:主人公の中心Y(光の玉のY位置
▼ セルフ[14]:白画像X
▼ セルフ[15]:線X
▼ セルフ[16]:フラッシュRGB(キャラエフェクトで主人公を光らせる時に使用)
▼ セルフ[17]:光の玉サイズ
▼ セルフ[18]:光の玉不透明度
▼ セルフ[20]:ピクチャ番号:最小値(一括処理用)
▼ セルフ[21]:ピクチャ番号:玉(縦幅を測るための歩行グラフィックの表示でも使用)
▼ セルフ[22]:ピクチャ番号:線
▼ セルフ[23]:キャラ縦サイズ(どれだけ消すのかを設定)
▼ セルフ[24]:Yランダム(光の玉が落ちてくる高さを変える時に使用)
▼ セルフ[25]:ディレイ1
▼ セルフ[26]:ディレイ2
▼ セルフ[27]:ディレイ3
▼ セルフ[30]:光の玉最大サイズ(タイルサイズの4分の3)
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ■■■■■■■■■■■■■■■■■■■■1人ずつ転送する

■変数操作: CSelf20[ピクチャ番号:最小値] = 1000 + 0
■変数操作: CSelf21[ピクチャ番号:玉] = CSelf20[ピクチャ番号:最小値] + 0
■変数操作: CSelf22[ピクチャ番号:線] = CSelf20[ピクチャ番号:最小値] + 10
■変数操作: CSelf30[光の玉最大サイズ] = Sys118:[読]タイルサイズ * 3
■変数操作: CSelf30[光の玉最大サイズ] /= 4 + 0
■変数操作: CSelf10[キャラ番号] = -1 + 0
■変数操作: CSelf11[変数呼出値] = 9180009 - 10
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf10[キャラ番号] -= 1 + 0
|■変数操作: CSelf11[変数呼出値] += 10 + 0
|■文字列操作:CSelf9[白画像アドレス] = 位置[CSelf11[変数呼出値]]の文字列
|■変数操作+: CSelf12[主人公の中心X] = キャラ[CSelf10[キャラ番号]] の 画面X座標
|■変数操作+: CSelf13[主人公の中心Y] = キャラ[CSelf10[キャラ番号]] の 画面Y座標
|■変数操作: CSelf14[白画像X] = CSelf12[主人公の中心X] + 0
|■変数操作: CSelf14[白画像X] -= 120 / Sys119:[読]基本画面倍率x[1-3]
|■変数操作: CSelf15[線X] = CSelf12[主人公の中心X] - 1
|■ピクチャ表示:CSelf21[ピクチャ番号:玉] [左上]ファイル(CSelf9[白画像アドレス]) X:0 Y:0 / 0(0)フレーム /
       パターン 1 / 透 0 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作+: CSelf23[キャラ縦サイズ] = ピクチャ:CSelf21[ピクチャ番号:玉] の 画像サイズ(縦)
|■マスク機能:[次IDのキャラのマスクONにする] =>ID CSelf10[キャラ番号]
|■変数操作: CSelf16[フラッシュRGB]〜CSelf18[光の玉不透明度] = 0 + 0
|■マスク機能:[マスクを全面[表示]に塗る]
|■回数付きループ [ CSelf23[キャラ縦サイズ] ]回
||■変数操作: CSelf13[主人公の中心Y] -= 1 + 0
||■変数操作: CSelf16[フラッシュRGB] += 8 + 0
||■変数操作: CSelf17[光の玉サイズ] += 1 + 0
||■変数操作: CSelf17[光の玉サイズ] 上限= CSelf30[光の玉最大サイズ] + 0
||■変数操作: CSelf18[光の玉不透明度] += 12 + 0
||■キャラエフェクト:キャラ[CSelf10[キャラ番号]][点滅B(自動フラッシュ)]
           RCSelf16[フラッシュRGB]/GCSelf16[フラッシュRGB]/BCSelf16[フラッシュRGB] (1)フレーム
||■マスク機能:[マスクに非表示範囲(白)を追加] =>[Picture/mask_shiro_kaku.png]
        XCSelf14[白画像X] YCSelf13[主人公の中心Y] (左上)
||■ピクチャ表示:CSelf21[ピクチャ番号:玉] [中心]ウィンドウ「<CIRCLE> 」サイズ[CSelf17[光の玉サイズ],CSelf17[光の玉サイズ]]
        X:CSelf12[主人公の中心X] Y:CSelf13[主人公の中心Y] / 0(0)フレーム /
        パターン 1 / 透 CSelf18[光の玉不透明度] / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
||■ウェイト:1 フレーム
||■
|◇ループここまで◇◇
|■キャラエフェクト:キャラ[CSelf10[キャラ番号]][不透明度補正[±]] 補正不透明度 -255 (0)フレーム
|■ピクチャ移動:CSelf21[ピクチャ番号:玉] 相対X:0 Y:0 / 20(0)フレーム /
       パターン 1 / 透 0 / 通常 / 角 0 / 拡 0% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf22[ピクチャ番号:線] [左上]ウィンドウ「<SQUARE>」サイズ[1,-500] X:CSelf15[線X] Y:CSelf13[主人公の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ移動:CSelf22[ピクチャ番号:線] 相対X:0 Y:0 / 20(5)フレーム /
       パターン 1 / 透 0 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf21[ピクチャ番号:玉]〜CSelf22[ピクチャ番号:線] += 1 + 0
|■
◇ループここまで◇◇
■マスク機能:[次IDのキャラのマスクを解除] =>ID -7 〜 -2
■キャラエフェクト:主人公[点滅B(自動フラッシュ)] R0/G0/B0 (0)フレーム
■キャラエフェクト:仲間1[点滅B(自動フラッシュ)] R0/G0/B0 (0)フレーム
■キャラエフェクト:仲間2[点滅B(自動フラッシュ)] R0/G0/B0 (0)フレーム
■キャラエフェクト:仲間3[点滅B(自動フラッシュ)] R0/G0/B0 (0)フレーム
■キャラエフェクト:仲間4[点滅B(自動フラッシュ)] R0/G0/B0 (0)フレーム
■キャラエフェクト:仲間5[点滅B(自動フラッシュ)] R0/G0/B0 (0)フレーム
▼ ■■■■■■■■■■場所移動
■ウェイト:30 フレーム
■条件分岐(変数): 【1】 CSelf0[移動先マップID] が -1 以下
-◇分岐: 【1】 [ CSelf0[移動先マップID] が -1 以下 ]の場合↓
|■変数操作+: CSelf0[移動先マップID] = 現在のマップID
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[標準or精密] が 0 と同じ
-◇分岐: 【1】 [ CSelf1[標準or精密] が 0 と同じ ]の場合↓
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf2[移動先X座標] Y:CSelf3[移動先Y座標] [トランジション + 暗転有り]
|■
-◇上記以外
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf1[標準or精密] Y:CSelf2[移動先X座標] [精密] [トランジション + 暗転有り]
|■
◇分岐終了◇
■ウェイト:30 フレーム
▼ ■■■■■■■■■■■■■■■■■■■■光の玉が1個ずつ到着
■変数操作+: CSelf12[主人公の中心X] = 主人公 の 画面X座標
■変数操作+: CSelf13[主人公の中心Y] = 主人公 の 画面Y座標
■変数操作: CSelf13[主人公の中心Y] -= Sys118:[読]タイルサイズ / 2
■変数操作: CSelf15[線X] = CSelf12[主人公の中心X] + 0
■ピクチャ表示:CSelf22[ピクチャ番号:線] [左上]ウィンドウ「<SQUARE>」サイズ[1,-500] X:CSelf15[線X] Y:CSelf13[主人公の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
▼ ■■■■■■■■■■光の玉を画面の外に配置(Y位置を若干ランダムに設定)
■変数操作: CSelf21[ピクチャ番号:玉] = CSelf20[ピクチャ番号:最小値] + 0
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■ピクチャ移動:CSelf21[ピクチャ番号:玉] X:CSelf12[主人公の中心X] Y:-100 / 0(0)フレーム /
       パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf24[Yランダム] += 0 〜 49
|■変数操作: CSelf24[Yランダム] %= 100 + 0
|■ピクチャ移動:CSelf21[ピクチャ番号:玉] 相対X:0 Y:CSelf24[Yランダム] / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■変数操作: CSelf21[ピクチャ番号:玉] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■光の玉の落下と主人公の出現処理
■変数操作: CSelf21[ピクチャ番号:玉] = CSelf20[ピクチャ番号:最小値] + 0
■変数操作: CSelf25[ディレイ1] = 0 + 0
■変数操作: CSelf26[ディレイ2] = 2 + 0
■変数操作: CSelf27[ディレイ3] = 7 + 0
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■ピクチャ移動:CSelf21[ピクチャ番号:玉] X:CSelf12[主人公の中心X] Y:CSelf13[主人公の中心Y] /
       5(CSelf25[ディレイ1])フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■ピクチャ移動:CSelf21[ピクチャ番号:玉] X:CSelf12[主人公の中心X] Y:CSelf13[主人公の中心Y] /
       5(CSelf26[ディレイ2])フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■ピクチャ移動:CSelf21[ピクチャ番号:玉] X:CSelf12[主人公の中心X] Y:CSelf13[主人公の中心Y] /
       16(CSelf27[ディレイ3])フレーム / パターン 1 / 透 0 / 表示形式:同値 / 角 同値 / 拡 400% / カラー 同値
|■変数操作: CSelf25[ディレイ1]〜CSelf27[ディレイ3] += 5 + 0
|■変数操作: CSelf21[ピクチャ番号:玉] += 1 + 0
|■
◇ループここまで◇◇
■ピクチャ移動:CSelf22[ピクチャ番号:線] 相対X:0 Y:0 / 10(CSelf25[ディレイ1])フレーム /
       パターン 1 / 透 0 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf10[キャラ番号] = -1 + 0
■ウェイト:7 フレーム
■変数操作: CSelf11[変数呼出値] = 9180006 - 10
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf10[キャラ番号] -= 1 + 0
|■変数操作: CSelf11[変数呼出値] += 10 + 0
|■変数操作: V[CSelf11[変数呼出値]] = 2 + 0
|■キャラエフェクト:キャラ[CSelf10[キャラ番号]][不透明度補正[±]] 補正不透明度 0 (0)フレーム
|■キャラエフェクト:キャラ[CSelf10[キャラ番号]][フラッシュ] R100/G100/B100 (20)フレーム
|■ウェイト:5 フレーム
|■
◇ループここまで◇◇
■ピクチャ消去:CSelf20[ピクチャ番号:最小値] 〜 CSelf22[ピクチャ番号:線] / 0(0)フレーム



コモンイベントを呼び出すマップイベントは以下のように設定。

【イベントコード表示(マップ)】

■マップイベント「場所移動」

起動条件:プレイヤー接触

■イベントの挿入[名]: ["光の玉になって場所移動"] <コモンEv 215> / -1:現在のマップ / 0:標準 / 0 / 0


▲トップへ戻る▲


  
■光の幕で場所移動

光の幕の中で足元から消えて場所移動し、移動先で再び光の幕の中で足元から表示します。

→場所移動→



場所移動前に先頭の主人公の位置に後続の仲間を集合させます。


集合させる処理では、イベントコマンド【キャラクターの動作指定】を使います。

▼「-2」を設定すると先頭の主人公が接近目標になります。「-2」の設定はキーボードで入力してください。




光の幕の表示は、ピクチャの図形表示機能を使って横に2枚のピクチャを並べて表示します。


<GRADX-339-779>

<GRADX-779-339>

ピクチャ番号は1000〜1001番を使います。



今回のマスク処理では、画面全体を「黒」にして、主人公の足元から「白」を足して、徐々に主人公を消していきます。

▼マスクの白黒の設定イメージ




場所移動後の出現処理では、主人公の上に「白」の設定して「白」を徐々に上に上げて主人公の足元から表示します。

▼マスクの白黒の設定イメージ




白黒の画像は下図のような白一色の画像を用意してください。

下図の画像を使う場合は、画像の上で右クリック→「名前を付けて画像を保存」を選択して保存し、
作品内のフォルダー「Picture」の中に移動してください。



イベント設定では上図の「240×240ピクセル」の画像サイズに合わせて白黒のXY位置を設定します。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「光の幕で場所移動」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 移動先マップID 0 システムDB」のタイプ「0」番
-1「現在のマップ」 -2「現在のマップ」 -3「現在のマップ
数値2 標準or精密 0 [0]標準
[1]精密
数値3 移動先X座標 0  
数値4 移動先Y座標 0  

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ セルフ[0]:場所移動:マップID
▼ セルフ[1]:場所移動:セルフ[2〜3]の設定 [0=標準][1=精密]
▼ セルフ[2]:場所移動:X座標
▼ セルフ[3]:場所移動:Y座標
▼ セルフ[10]:主人公の中心X
▼ セルフ[11]:主人公の中心Y
▼ セルフ[12]:キャラ番号を設定(-2=先頭の主人公/-7=6番目の主人公)
▼ セルフ[13]:変数呼び出し値(仲間のX座標(精密))
▼ セルフ[14]:変数呼び出し値(仲間のY座標(精密))
▼ セルフ[15]:先頭の主人公と仲間のX座標の距離を設定
▼ セルフ[16]:先頭の主人公と仲間のY座標の距離を設定
▼ セルフ[17]:[0=全員集合した][1=まだ全員は集合していない]
▼ セルフ[18]:変数呼出値(向き)
▼ セルフ[19]:変数呼出値(歩行画像)
▼ セルフ[20]:ピクチャ番号:左側の幕(キャラの縦サイズを調べる時も使用)
▼ セルフ[21]:ピクチャ番号:右側の幕
▼ セルフ[23]:幕の横サイズ
▼ セルフ[24]:幕の縦サイズ(出発時に使用)
▼ セルフ[25]:幕の縦サイズ(到着時に使用)
▼ セルフ[30]:主人公の画面X(幕の表示で使用)
▼ セルフ[31]:主人公の画面Y(幕の表示で使用)
▼ セルフ[32]:白黒:X
▼ セルフ[33]:白黒:Y
▼ セルフ[34]:白黒移動回数
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■変数操作: CSelf20[ピクチャ番号:光幕左] = 1000 + 0
▼ ■■■■■■■■■■先頭の主人公の所に後続を集合させる
■ループ開始
|■変数操作: CSelf12[キャラ番号] = -1 + 0
|■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
||■変数操作: CSelf12[キャラ番号] -= 1 + 0
||■動作指定:キャラ[CSelf12[キャラ番号]] / Ev-2に接近
||■
|◇ループここまで◇◇
|■動作完了までウェイト
|■変数操作: CSelf13[変数呼出値X] = 9180002 + 0
|■変数操作: CSelf14[変数呼出値Y] = 9180003 + 0
|■変数操作: CSelf17[0=集合した] = 0 + 0
|■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
||■変数操作: CSelf15[距離X] = 主人公のX座標(精密) - V[CSelf13[変数呼出値X]]
||■変数操作: CSelf16[距離Y] = 主人公のY座標(精密) - V[CSelf14[変数呼出値Y]]
||■条件分岐(変数): 【1】 CSelf15[距離X] が 0 以外 【2】 CSelf16[距離Y] が 0 以外
||-◇分岐: 【1】 [ CSelf15[距離X] が 0 以外 ]の場合↓
|||■変数操作: CSelf17[0=集合した] = 1 + 0
|||■
||-◇分岐: 【2】 [ CSelf16[距離Y] が 0 以外 ]の場合↓
|||■変数操作: CSelf17[0=集合した] = 1 + 0
|||■
||◇分岐終了◇
||■変数操作: CSelf13[変数呼出値X]〜CSelf14[変数呼出値Y] += 10 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf17[0=集合した] が 0 と同じ
|-◇分岐: 【1】 [ CSelf17[0=集合した] が 0 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■キャラの最大縦サイズを計測+全員下を向く
■変数操作: CSelf18[変数呼出値向き] = 9180006 - 10
■変数操作: CSelf19[変数呼出値画像] = 9180009 - 10
■変数操作: CSelf24[幕:縦サイズ:出発] = 0 + 0
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf18[変数呼出値向き]〜CSelf19[変数呼出値画像] += 10 + 0
|■変数操作: V[CSelf18[変数呼出値向き]] = 2 + 0
|■文字列操作:CSelf9[黒画像アドレス] = 位置[CSelf19[変数呼出値画像]]の文字列
|■ピクチャ表示:CSelf20[ピクチャ番号:光幕左] [左上]ファイル(CSelf9[黒画像アドレス]) X:0 Y:0 /
       0(0)フレーム / パターン 1 / 透 0 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作+: CSelf24[幕:縦サイズ:出発] 下限= ピクチャ:CSelf20[ピクチャ番号:光幕左] の 画像サイズ(縦)
|■
◇ループここまで◇◇
■変数操作: CSelf25[幕:縦サイズ:到着] = CSelf24[幕:縦サイズ:出発] + 0
▼ ■■■■■■■■■■光の幕を表示
■変数操作: CSelf21[ピクチャ番号:光幕右] = CSelf20[ピクチャ番号:光幕左] + 1
■変数操作: CSelf23[幕:横サイズ] = Sys118:[読]タイルサイズ / 2
■変数操作+: CSelf30[主人公の画面X] = 主人公 の 画面X座標
■変数操作+: CSelf31[主人公の画面Y] = 主人公 の 画面Y座標
■ピクチャ表示:CSelf20[ピクチャ番号:光幕左] [右下]ウィンドウ「<GRADX-339-779>」
       サイズ[CSelf23[幕:横サイズ],CSelf24[幕:縦サイズ:出発]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 1 / 透 160 / 通常 / 角 0 / 拡 0% / カラー R[150] G[200] B[200]
■ピクチャ表示:CSelf21[ピクチャ番号:光幕右] [左下]ウィンドウ「<GRADX-779-339>」
       サイズ[CSelf23[幕:横サイズ],CSelf24[幕:縦サイズ:出発]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 1 / 透 160 / 通常 / 角 0 / 拡 0% / カラー R[150] G[200] B[200]
■ピクチャ移動:CSelf20[ピクチャ番号:光幕左] 〜 CSelf21[ピクチャ番号:光幕右] 相対X:0 Y:0 /
       20(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 100% / カラー 同値
■ウェイト:30 フレーム
▼ ■■■■■■■■■■主人公の足元から消す
■マスク機能:[マスクを全面[表示]に塗る]
■マスク機能:[次IDのキャラのマスクONにする] =>ID -7 〜 -2
■変数操作: CSelf32[白黒:X] = -120 / Sys119:[読]基本画面倍率x[1-3]
■変数操作+: CSelf32[白黒:X] += 主人公 の 画面X座標
■変数操作: CSelf33[白黒:Y] = CSelf31[主人公の画面Y] + 0
■変数操作: CSelf34[白黒移動回数] = CSelf24[幕:縦サイズ:出発] / 2
■変数操作: CSelf34[白黒移動回数] += 1 + 0
■回数付きループ [ CSelf34[白黒移動回数] ]回
|■変数操作: CSelf33[白黒:Y] -= 2 + 0
|■マスク機能:[マスクに非表示範囲(白)を追加] =>[Picture/mask_shiro_kaku.png] XCSelf32[白黒:X] YCSelf33[白黒:Y] (左上)
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
■ウェイト:10 フレーム
▼ ■■■■■■■■■■光の幕を消す
■回数付きループ [ CSelf34[白黒移動回数] ]回
|■変数操作: CSelf31[主人公の画面Y] -= 2 + 0
|■変数操作: CSelf24[幕:縦サイズ:出発] -= 2 + 0
|■ピクチャ表示:CSelf20[ピクチャ番号:光幕左] [右下]ウィンドウ「<GRADX-339-779>」
       サイズ[CSelf23[幕:横サイズ],CSelf24[幕:縦サイズ:出発]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
|■ピクチャ表示:CSelf21[ピクチャ番号:光幕右] [左下]ウィンドウ「<GRADX-779-339>」
       サイズ[CSelf23[幕:横サイズ],CSelf24[幕:縦サイズ:出発]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
■ピクチャ消去:CSelf20[ピクチャ番号:光幕左] 〜 CSelf21[ピクチャ番号:光幕右] / 0(0)フレーム
▼ ■■■■■■■■■■場所移動
■ウェイト:20 フレーム
■条件分岐(変数): 【1】 CSelf0[移動先マップID] が -1 以下
-◇分岐: 【1】 [ CSelf0[移動先マップID] が -1 以下 ]の場合↓
|■変数操作+: CSelf0[移動先マップID] = 現在のマップID
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[標準or精密] が 0 と同じ
-◇分岐: 【1】 [ CSelf1[標準or精密] が 0 と同じ ]の場合↓
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf2[移動先X座標] Y:CSelf3[移動先Y座標] [トランジション + 暗転有り]
|■
-◇上記以外
|■場所移動:主人公 ▲マップIDXX<CSelf0[移動先マップID]>
       X:CSelf1[標準or精密] Y:CSelf2[移動先X座標] [精密] [トランジション + 暗転有り]
|■
◇分岐終了◇
■ウェイト:10 フレーム
▼ ■■■■■■■■■■光の幕を表示
■変数操作+: CSelf30[主人公の画面X] = 主人公 の 画面X座標
■変数操作+: CSelf31[主人公の画面Y] = 主人公 の 画面Y座標
■ピクチャ表示:CSelf20[ピクチャ番号:光幕左] [右下]ウィンドウ「<GRADX-339-779>」
       サイズ[CSelf23[幕:横サイズ],CSelf25[幕:縦サイズ:到着]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 1 / 透 160 / 通常 / 角 0 / 拡 0% / カラー R[150] G[200] B[200]
■ピクチャ表示:CSelf21[ピクチャ番号:光幕右] [左下]ウィンドウ「<GRADX-779-339>」
       サイズ[CSelf23[幕:横サイズ],CSelf25[幕:縦サイズ:到着]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 1 / 透 160 / 通常 / 角 0 / 拡 0% / カラー R[150] G[200] B[200]
■ピクチャ移動:CSelf20[ピクチャ番号:光幕左] 〜 CSelf21[ピクチャ番号:光幕右] 相対X:0 Y:0 /
       20(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 100% / カラー 同値
■ウェイト:30 フレーム
▼ ■■■■■■■■■■主人公の足元から表示
■変数操作: CSelf32[白黒:X] = -120 / Sys119:[読]基本画面倍率x[1-3]
■変数操作: CSelf33[白黒:Y] = -240 / Sys119:[読]基本画面倍率x[1-3]
■変数操作+: CSelf32[白黒:X] += 主人公 の 画面X座標
■変数操作+: CSelf33[白黒:Y] += 主人公 の 画面Y座標
■回数付きループ [ CSelf34[白黒移動回数] ]回
|■変数操作: CSelf33[白黒:Y] -= 2 + 0
|■マスク機能:[マスクを全面[表示]に塗る]
|■マスク機能:[マスクに非表示範囲(白)を追加] =>[Picture/mask_shiro_kaku.png] XCSelf32[白黒:X] YCSelf33[白黒:Y] (左上)
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
■ウェイト:10 フレーム
▼ ■■■■■■■■■■光の幕を消す
■回数付きループ [ CSelf34[白黒移動回数] ]回
|■変数操作: CSelf31[主人公の画面Y] -= 2 + 0
|■変数操作: CSelf25[幕:縦サイズ:到着] -= 2 + 0
|■ピクチャ表示:CSelf20[ピクチャ番号:光幕左] [右下]ウィンドウ「<GRADX-339-779>」
       サイズ[CSelf23[幕:横サイズ],CSelf25[幕:縦サイズ:到着]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■ピクチャ表示:CSelf21[ピクチャ番号:光幕右] [左下]ウィンドウ「<GRADX-779-339>」
       サイズ[CSelf23[幕:横サイズ],CSelf25[幕:縦サイズ:到着]]
       X:CSelf30[主人公の画面X] Y:CSelf31[主人公の画面Y] / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■処理終了
■マスク機能:[次IDのキャラのマスクを解除] =>ID -7 〜 -2
■ピクチャ消去:CSelf20[ピクチャ番号:光幕左] 〜 CSelf21[ピクチャ番号:光幕右] / 0(0)フレーム



コモンイベントを呼び出すマップイベントは以下のように設定。

【イベントコード表示(マップ)】

■マップイベント「場所移動」

起動条件:プレイヤー接触

■イベントの挿入[名]: ["光の幕で場所移動"] <コモンEv 215> / -1:現在のマップ / 0:標準 / 0 / 0


▲トップへ戻る▲



◎関連ページ

◆マスク機能を使う
┣◆【マスク使用例】戦闘中にカットインを表示
┣◆【マスク使用例】場所移動時の演出
┣◆【マスク使用例】複数の黒マスクを同時に設定して画面全体を黒マスクに変える
┣◆【マスク使用例】光を当ててマップイベントを表示(懐中電灯)
┣◆【マスク使用例】マウスポインタの位置にマスクを設定(拡大鏡・射撃など)
┗◆【マスク使用例】歩行グラフィックを顔グラフィックに使う

◆イベントコマンド【エフェクト】(マスクのイベントコマンド)

YADOT-WOLFトップ  気紛れな空間へ戻る  メール