WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■【マスク使用例】光を当ててマップイベントを表示(懐中電灯)
(更新:2023/04/15)


主人公の前方に光を表示し、見えないマップイベントに光を当てて可視化する処理を設定します。


ショートカット
■設定前の補足説明
■画像の準備
■基本イベントの設定
■アイテム「霊感電池」を追加

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


  
■設定前の補足説明

当ページの処理は、幽霊のような通常では見えないマップイベントを見つける時に使用する事を想定しています。

処理としては「光を当てるとマップイベントが見えるようになる」なので、
例えば光を当てるとマップイベントが光る(アイテムの場所が分かる)のような使い方もできます。




主人公の前方に表示する光はピクチャで表示し、マップイベントが見えるようにする処理はマスク機能を使います。



懐中電灯がONの時には、常にイベントコマンド[マスクを全面[非表示]に塗る]が実行しているので、
他の用途のマスク機能を併用する事はできません。

懐中電灯がOFFの場合は、マスク関連の処理は実行されないので、他の用途のマスク機能を使っても問題ありません。


▲トップへ戻る▲


  
■画像の準備

当ページの処理では、1枚のピクチャ画像8枚のマスク用の白黒画像が必要です。

ピクチャ画像は画像を回転させる事で1枚の画像ファイルで8方向に対応させる事ができますが、
マスク用の白黒画像の場合は8方向それぞれの画像ファイルが必要です。



ゲーム画面のサイズ[320×240[x2]]の場合は、ピクチャの画像サイズの2倍のサイズで白黒画像を準備する必要があります。



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

ピクチャ用
▼[320×240[倍]]用 ▼[640×480]以上用
  
マスク用   

 

  

ピクチャは「位置:中心」、マスクの白黒は「中央基準」で表示します。

そのため、水滴型のとがった部分が画像の中心になるように、水滴型の反対側に余白を設定する必要があります。



ピクチャ用の画像は暗い色になっていますが、ゲーム画面上では「表示形式:加算」で表示するため、
実際のゲーム画面では明るく表示されます。
【表示形式に関する説明を見る】


▲トップへ戻る▲


  
■基本イベントの設定

アイテム「懐中霊灯」を持っている時に電源スイッチをONにすると、
主人公の前方に光が表示され、光に当たったマスクONのマップイベント(幽霊)が見えるように設定します。



電源スイッチはアイテムメニューから懐中霊灯を使用、またはサブキーを押すとON/OFFが切り替わります。

※「アイテムメニューから使用」「サブキーを押す」のどちらか一方しか操作する事ができないように設定する事もできます。



ユーザーDB[2:アイテム]に「懐中霊灯」を準備してください。

0:アイテム名 懐中霊灯
1:説明文 光を当てると幽霊が可視化できる魔法の道具。
アイテムを使用、またはサブキーでON/OFFが切り替えられます。
2:使用可能な場面 [0]マップ時のみ
3:効果タイプ [3]イベント起動
ON/OFFの切り替えがサブキーのみの場合は「[0]効果のないアイテム」を設定。
6:イベント番号指定 500215
500215」はコモンイベント「懐中霊灯」をコモンID[215]に設定した時の設定値です。
ON/OFFの切り替えがサブキーのみの場合は「0」のままで良いです。
7:使用回数制限 [1]無制限に使用可能





サブキーでON/OFFの切り替えができないようにする場合は、37行目のループ回数を「0回」にしてください。

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

■コモンイベント「懐中霊灯」

起動条件:並列実行(常時)

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 OFF処理 1 [1]OFFにする(SEあり)
[2]OFFにする(SEなし)

■変数操作: CSelf20[ピクチャ番号] = 1000 + 0
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯を持っていない
■イベントの挿入[名]: CSelf16[所持数:懐中霊灯] = ["▲アイテム所持数取得"] <コモンEv 17> / 24:懐中霊灯
■条件分岐(変数): 【1】 CSelf16[所持数:懐中霊灯] が 0 以下
-◇分岐: 【1】 [ CSelf16[所持数:懐中霊灯] が 0 以下 ]の場合↓
|■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||■ピクチャ消去:CSelf20[ピクチャ番号] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■変数操作: CSelf12[懐中霊灯ON] = 0 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf0[OFF処理] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■強制OFF処理
■条件分岐(変数): 【1】 CSelf0[OFF処理] が 1 以上
-◇分岐: 【1】 [ CSelf0[OFF処理] が 1 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||■条件分岐(変数): 【1】 CSelf0[OFF処理] が 1 と同じ
||-◇分岐: 【1】 [ CSelf0[OFF処理] が 1 と同じ ]の場合↓
|||■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|||■
||◇分岐終了◇
||■ピクチャ消去:CSelf20[ピクチャ番号] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■変数操作: CSelf12[懐中霊灯ON] = 0 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf0[OFF処理] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■サブキーでON/OFFを切り替え
▼ サブキーの切り替えを使わない場合は、以下のループ回数を「0回」に変更。
■回数付きループ [ 1 ]回
|■キー入力:CSelf10[キーコード] サブキー(12)
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
          【2】 CSelf11[二重キー防止] が 1 と同じ
          【3】 CSelf10[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[二重キー防止] = 0 + 0
||■
|-◇分岐: 【2】 [ CSelf11[二重キー防止] が 1 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf10[キーコード] が 1 以上 ]の場合↓
||■変数操作: CSelf11[二重キー防止] = 1 + 0
||■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
||-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
|||■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|||■変数操作: CSelf12[懐中霊灯ON] += 1 + 0
|||■変数操作: CSelf12[懐中霊灯ON] %= 2 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■アイテムメニューからの使用でON/OFFを切り替え
■変数操作+: CSelf13[アイテムメニュー使用] = このコモンイベントID(コモンでなければ-1)
■変数操作: CSelf13[アイテムメニュー使用] += 500000 + 0
■変数操作+: CSelf13[アイテムメニュー使用] -= 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■条件分岐(変数): 【1】 CSelf13[アイテムメニュー使用] が 0 と同じ
-◇分岐: 【1】 [ CSelf13[アイテムメニュー使用] が 0 と同じ ]の場合↓
|■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|■変数操作: CSelf12[懐中霊灯ON] += 1 + 0
|■変数操作: CSelf12[懐中霊灯ON] %= 2 + 0
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯OFF
■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 0 と同じ
-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 0 と同じ ]の場合↓
|■変数操作+: CSelf22[ピクチャ使用中] = ピクチャ:CSelf20[ピクチャ番号] の ピクチャが使用中?(1=YES)
|■条件分岐(変数): 【1】 CSelf22[ピクチャ使用中] が 1 と同じ
|-◇分岐: 【1】 [ CSelf22[ピクチャ使用中] が 1 と同じ ]の場合↓
||■ピクチャ消去:CSelf20[ピクチャ番号] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯表示処理
■変数操作+: CSelf23[X] = 主人公 の 画面X座標
■変数操作+: CSelf24[Y] = 主人公 の 画面Y座標
■変数操作: CSelf24[Y] -= Sys118:[読]タイルサイズ / 2
■変数操作+: CSelf25[向き] = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 CSelf25[向き] が 1 と同じ
         【2】 CSelf25[向き] が 2 と同じ
         【3】 CSelf25[向き] が 3 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 1 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 1350 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 2 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 900 + 0
|■
-◇分岐: 【3】 [ CSelf25[向き] が 3 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 450 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf25[向き] が 4 と同じ
         【2】 CSelf25[向き] が 6 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 4 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 1800 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 6 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 0 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf25[向き] が 7 と同じ
         【2】 CSelf25[向き] が 8 と同じ
         【3】 CSelf25[向き] が 9 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 7 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 2250 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 8 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 2700 + 0
|■
-◇分岐: 【3】 [ CSelf25[向き] が 9 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 3150 + 0
|■
◇分岐終了◇
■マスク機能:[マスクを全面[非表示]に塗る]
■マスク機能:[マスクに表示範囲(黒)を追加] =>[Picture/kaichuu_\cself[25].png] XCSelf23[X] YCSelf24[Y] (中心)
■文字列操作:CSelf5[黒ファイルアドレス] = "Picture/kaichuu_p\sys[119].png"
■ピクチャ表示:CSelf20[ピクチャ番号] [中心]ファイル(CSelf5[黒ファイルアドレス])
       X:CSelf23[X] Y:CSelf24[Y] / 0(0)フレーム / パターン 1 / 透 255 / 加算 /
       角 CSelf26[角度] / 拡 100% / カラー R[100] G[100] B[100]



マスクONにするマップイベントがいるマップには、初期設定用のマップイベントを設定してください。

▼マップイベント[1]をマスクONにする場合


【イベントコード表示】

■マップイベント「懐中霊灯初期設定」

起動条件:並列実行

■マスク機能:[マスクを全面[非表示]に塗る]
■マスク機能:[次IDのキャラのマスクONにする] =>ID 1
■イベントの一時消去:このEv (0フレーム)

別のマップへ移動すると、自動的にマップイベントのマスクONの設定がOFFになるので、
別のマップへ移動する時に、わざわざマップイベントのマスクをOFFにする設定を実行する必要はありません。



▼懐中霊灯をOFFにする処理について

イベントコマンド【イベントの挿入】コモンイベント「懐中霊灯」を呼び出すと、強制的にOFFにする事ができます。

例えばダンジョンから出ると、自動的に懐中霊灯がOFFになるようにしたい時に活用してください。

▼サンプルゲームのダンジョンマップから外に出る時にOFFにする場合の設定例
【イベントコード表示(追加分のみ)】

■マップイベント[00:入口場所移動]

▼ セーブを許可する
■イベントの挿入: コモン15:[ ○セーブ許可・禁止設定 ] / 100
▼ 場所移動
■場所移動:主人公 ▲マップID1[サンプルマップA] X:34 Y:12 [トランジション + 暗転有り]
■イベントの挿入[名]: ["懐中霊灯"] <コモンEv 215> / 1:OFFにする(SEあり)

なお「SEあり」を設定にしても、懐中霊灯を持っていない場合や、
場所移動前から既にOFFにしてある場合は、OFFにする時のSEは演奏されません。


▲トップへ戻る▲


  
■アイテム「霊感電池」を追加

アイテム「霊感電池」を追加し、電池の残量が無いと懐中霊灯が使えないように設定します。





懐中霊灯電池残量を設定します。

電池残量が「0」になった時に予備の霊感電池を持っている場合は、自動的に電池交換を行い、引き続き使用する事ができます。

電池残量が「0」の時に霊感電池を持っていない場合は、電源スイッチをONにする事はできますが、当然ながら光は出ません。

電池残量が「0」でスイッチがONの時に霊感電池を入手すると、すぐに電池が使用され、光を出します。



今回の設定例には、電池を消費する仕様が2種類あります。
どちらから良い方を選択してください。

移動すると電池消費 通常変数[懐中霊灯(残量)]に使用できる歩数を保存し、
1歩移動するごとに電池残量を1減らします。
点灯する時に電池残量を1減らします。
この点灯時の消費が無いと、点灯して移動せずにすぐに消灯する事で、
「点灯したのに電池が減らない」と言った不自然な状態になります。
並列処理以外のイベント実行中は、移動しても電池は減りません。
電池1個で、0.5マス単位で400歩分が使用できます。
時間が経つと電池消費 通常変数[懐中霊灯(残量)]に使用できる時間をフレーム単位で保存し、
電源をONにしている間は、ずっと減り続けます。
こちらの場合は点灯時の消費はありません。
並列処理以外のイベント実行中は、電池の消費が一時停止します。
電池1個で、2分間(7200フレーム)使用できます。



システムDB[14:通常変数名]に「懐中霊灯(残量)」と「懐中霊灯(表示%)」を準備してください。

懐中霊灯(残量) 懐中霊灯内の残量を保存します。
歩数の場合は「0.5マス=1」で保存し、
時間の場合は「1フレーム単位」で保存します。
懐中霊灯(表示%) アイテムメニューやゲーム画面上に残量%を表示する時に使います。
▼アイテムメニューの残量表示

設定例では通常変数[1〜2]を使用します。





ユーザーDB[2:アイテム]に「霊感電池」を準備してください。

0:アイテム名 霊感電池
1:説明文 懐中霊灯で使う特殊な電池。
3:効果タイプ [0]効果のないアイテム





アイテム「懐中霊灯」の説明文を修正してください。

1:説明文 光を当てると幽霊が可視化できる魔法の道具。【残量:\v[2]%】
アイテムを使用、またはサブキーでON/OFFが切り替えられます。





設定例では、通常変数[1〜2]アイテムID[24〜25]を使用しています。

別の通常変数やアイテムIDで設定する場合は、イベントコードやコモン出力ファイルを読み込んだあとに、
変数番号やアイテムIDを修正する必要があります。



▼移動すると電池消費

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

■コモンイベント「懐中霊灯+移動消費」

起動条件:並列実行(常時)

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 OFF処理 1 [1]OFFにする(SEあり)
[2]OFFにする(SEなし)

■変数操作: CSelf20[ピクチャ番号:光] = 1000 + 0
■変数操作: CSelf21[ピクチャ番号:表示] = CSelf20[ピクチャ番号:光] + 1
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯を持っていない
■イベントの挿入[名]: CSelf16[所持数:懐中霊灯] = ["▲アイテム所持数取得"] <コモンEv 17> / 24:懐中霊灯
■イベントの挿入[名]: CSelf17[所持数:霊感電池] = ["▲アイテム所持数取得"] <コモンEv 17> / 25:霊感電池
■条件分岐(変数): 【1】 CSelf16[所持数:懐中霊灯] が 0 以下
-◇分岐: 【1】 [ CSelf16[所持数:懐中霊灯] が 0 以下 ]の場合↓
|■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||■ピクチャ消去:CSelf20[ピクチャ番号:光] 〜 CSelf21[ピクチャ番号:表示] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■変数操作: CSelf12[懐中霊灯ON] = 0 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf0[OFF処理] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■強制OFF処理
■条件分岐(変数): 【1】 CSelf0[OFF処理] が 1 以上
-◇分岐: 【1】 [ CSelf0[OFF処理] が 1 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||■条件分岐(変数): 【1】 CSelf0[OFF処理] が 1 と同じ
||-◇分岐: 【1】 [ CSelf0[OFF処理] が 1 と同じ ]の場合↓
|||■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|||■
||◇分岐終了◇
||■ピクチャ消去:CSelf20[ピクチャ番号:光] 〜 CSelf21[ピクチャ番号:表示] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■変数操作: CSelf12[懐中霊灯ON] = 0 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf0[OFF処理] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■サブキーでON/OFFを切り替え
▼ サブキーの切り替えを使わない場合は、以下のループ回数を「0回」に変更。

■回数付きループ [ 1 ]回
|■キー入力:CSelf10[キーコード] サブキー(12)
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
          【2】 CSelf11[二重キー防止] が 1 と同じ
          【3】 CSelf10[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[二重キー防止] = 0 + 0
||■
|-◇分岐: 【2】 [ CSelf11[二重キー防止] が 1 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf10[キーコード] が 1 以上 ]の場合↓
||■変数操作: CSelf11[二重キー防止] = 1 + 0
||■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
||-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
|||■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|||■変数操作: CSelf12[懐中霊灯ON] += 1 + 0
|||■変数操作: CSelf12[懐中霊灯ON] %= 2 + 0
|||■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||||▼ 点灯時に残量を減らす。
||||■変数操作: V1[懐中霊灯(残量)] -= 1 + 0
||||■
|||◇分岐終了◇

|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■電池消耗処理(移動したら残量を減らす)
■変数操作+: CSelf30[現在X] = 主人公 の X座標(精密)
■変数操作+: CSelf31[現在Y] = 主人公 の Y座標(精密)
■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
|■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
|-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
||▼ イベントを実行していない時に、別の座標へ移動したら、残量を減らす。
||■条件分岐(変数): 【1】 CSelf30[現在X] が CSelf32[保存X] 以外
          【2】 CSelf31[現在Y] が CSelf33[保存Y] 以外
||-◇分岐: 【1】 [ CSelf30[現在X] が CSelf32[保存X] 以外 ]の場合↓
|||■変数操作: V1[懐中霊灯(残量)] -= 1 + 0
|||■
||-◇分岐: 【2】 [ CSelf31[現在Y] が CSelf33[保存Y] 以外 ]の場合↓
|||■変数操作: V1[懐中霊灯(残量)] -= 1 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作+: CSelf32[保存X] = 主人公 の X座標(精密)
■変数操作+: CSelf33[保存Y] = 主人公 の Y座標(精密)

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■電池交換と電池残量%計算
■条件分岐(変数): 【1】 CSelf16[所持数:懐中霊灯] が 1 以上
-◇分岐: 【1】 [ CSelf16[所持数:懐中霊灯] が 1 以上 ]の場合↓
|■条件分岐(変数): 【1】 V1[懐中霊灯(残量)] が 0 以下
|-◇分岐: 【1】 [ V1[懐中霊灯(残量)] が 0 以下 ]の場合↓
||■条件分岐(変数): 【1】 CSelf17[所持数:霊感電池] が 1 以上
||-◇分岐: 【1】 [ CSelf17[所持数:霊感電池] が 1 以上 ]の場合↓
|||■イベントの挿入[名]: ["○アイテム増減"] <コモンEv 0> / 25:霊感電池 / -1 / 0:なし
|||■変数操作: V1[懐中霊灯(残量)] = 400 + 0
|||▼ 点灯時に残量を減らす。
|||■変数操作+: CSelf22[ピクチャ使用中] = ピクチャ:CSelf20[ピクチャ番号:光] の ピクチャが使用中?(1=YES)
|||■条件分岐(変数): 【1】 CSelf22[ピクチャ使用中] が 0 と同じ
|||-◇分岐: 【1】 [ CSelf22[ピクチャ使用中] が 0 と同じ ]の場合↓
||||■変数操作: V1[懐中霊灯(残量)] -= 1 + 0
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: V1[懐中霊灯(残量)] 下限= 0 + 0
■変数操作: V1[懐中霊灯(残量)] 上限= 400 + 0
■変数操作: V2[懐中霊灯(表示%)] = V1[懐中霊灯(残量)] + 3
■変数操作: V2[懐中霊灯(表示%)] *= 100 + 0
■変数操作: V2[懐中霊灯(表示%)] /= 400 + 0

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯OFF
■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 0 と同じ
-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 0 と同じ ]の場合↓
|■変数操作+: CSelf22[ピクチャ使用中] = ピクチャ:CSelf21[ピクチャ番号:表示] の ピクチャが使用中?(1=YES)
|■条件分岐(変数): 【1】 CSelf22[ピクチャ使用中] が 1 と同じ
|-◇分岐: 【1】 [ CSelf22[ピクチャ使用中] が 1 と同じ ]の場合↓
||■ピクチャ消去:CSelf20[ピクチャ番号:光] 〜 CSelf21[ピクチャ番号:表示] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯表示処理
■条件分岐(変数): 【1】 CSelf17[所持数:霊感電池] が 0 以下
-◇分岐: 【1】 [ CSelf17[所持数:霊感電池] が 0 以下 ]の場合↓
|▼ (予備電池なし)
|■ピクチャ表示:CSelf21[ピクチャ番号:表示] [右上]文字列[<R>\E残量:\v[2]%\f]
       X:Sys116:[読]画面サイズX Y:2 / 0(0)フレーム / パターン 1 / 透 255 / 通常 /
       角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
-◇上記以外
|▼ (予備電池〜個)
|■ピクチャ表示:CSelf21[ピクチャ番号:表示] [右上]文字列[<R>\E残量:\v[2]%\f]
       X:Sys116:[読]画面サイズX Y:2 / 0(0)フレーム / パターン 1 / 透 255 / 通常 /
       角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇

■変数操作+: CSelf23[X] = 主人公 の 画面X座標
■変数操作+: CSelf24[Y] = 主人公 の 画面Y座標
■変数操作: CSelf24[Y] -= Sys118:[読]タイルサイズ / 2
■変数操作+: CSelf25[向き] = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 CSelf25[向き] が 1 と同じ
         【2】 CSelf25[向き] が 2 と同じ
         【3】 CSelf25[向き] が 3 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 1 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 1350 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 2 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 900 + 0
|■
-◇分岐: 【3】 [ CSelf25[向き] が 3 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 450 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf25[向き] が 4 と同じ
         【2】 CSelf25[向き] が 6 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 4 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 1800 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 6 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 0 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf25[向き] が 7 と同じ
         【2】 CSelf25[向き] が 8 と同じ
         【3】 CSelf25[向き] が 9 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 7 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 2250 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 8 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 2700 + 0
|■
-◇分岐: 【3】 [ CSelf25[向き] が 9 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 3150 + 0
|■
◇分岐終了◇
■マスク機能:[マスクを全面[非表示]に塗る]
■条件分岐(変数): 【1】 V1[懐中霊灯(残量)] が 0 以下
-◇分岐: 【1】 [ V1[懐中霊灯(残量)] が 0 以下 ]の場合↓
|■ピクチャ消去:CSelf20[ピクチャ番号:光] / 0(0)フレーム
|■イベント処理中断
|■
◇分岐終了◇

■マスク機能:[マスクに表示範囲(黒)を追加] =>[Picture/kaichuu_\cself[25].png] XCSelf23[X] YCSelf24[Y] (中心)
■文字列操作:CSelf5[黒ファイルアドレス] = "Picture/kaichuu_p\sys[119].png"
■ピクチャ表示:CSelf20[ピクチャ番号:光] [中心]ファイル(CSelf5[黒ファイルアドレス])
       X:CSelf23[X] Y:CSelf24[Y] / 0(0)フレーム / パターン 1 / 透 255 / 加算 /
       角 CSelf26[角度] / 拡 100% / カラー R[100] G[100] B[100]



▼時間が経つと電池消費

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

■コモンイベント「懐中霊灯+時間消費」

起動条件:並列実行(常時)

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 OFF処理 1 [1]OFFにする(SEあり)
[2]OFFにする(SEなし)

■変数操作: CSelf20[ピクチャ番号:光] = 1000 + 0
■変数操作: CSelf21[ピクチャ番号:表示] = CSelf20[ピクチャ番号:光] + 1
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯を持っていない
■イベントの挿入[名]: CSelf16[所持数:懐中霊灯] = ["▲アイテム所持数取得"] <コモンEv 17> / 24:懐中霊灯
■イベントの挿入[名]: CSelf17[所持数:霊感電池] = ["▲アイテム所持数取得"] <コモンEv 17> / 25:霊感電池
■条件分岐(変数): 【1】 CSelf16[所持数:懐中霊灯] が 0 以下
-◇分岐: 【1】 [ CSelf16[所持数:懐中霊灯] が 0 以下 ]の場合↓
|■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||■ピクチャ消去:CSelf20[ピクチャ番号:光] 〜 CSelf21[ピクチャ番号:表示] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■変数操作: CSelf12[懐中霊灯ON] = 0 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf0[OFF処理] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■強制OFF処理
■条件分岐(変数): 【1】 CSelf0[OFF処理] が 1 以上
-◇分岐: 【1】 [ CSelf0[OFF処理] が 1 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
|-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
||■条件分岐(変数): 【1】 CSelf0[OFF処理] が 1 と同じ
||-◇分岐: 【1】 [ CSelf0[OFF処理] が 1 と同じ ]の場合↓
|||■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|||■
||◇分岐終了◇
||■ピクチャ消去:CSelf20[ピクチャ番号:光] 〜 CSelf21[ピクチャ番号:表示] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■変数操作: CSelf12[懐中霊灯ON] = 0 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf0[OFF処理] = 0 + 0
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■サブキーでON/OFFを切り替え
▼ サブキーの切り替えを使わない場合は、以下のループ回数を「0回」に変更。

■回数付きループ [ 1 ]回
|■キー入力:CSelf10[キーコード] サブキー(12)
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
          【2】 CSelf11[二重キー防止] が 1 と同じ
          【3】 CSelf10[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[二重キー防止] = 0 + 0
||■
|-◇分岐: 【2】 [ CSelf11[二重キー防止] が 1 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf10[キーコード] が 1 以上 ]の場合↓
||■変数操作: CSelf11[二重キー防止] = 1 + 0
||■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
||-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
|||■サウンド:SE ファイル[SE/[Action]Switch1_Komori.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|||■変数操作: CSelf12[懐中霊灯ON] += 1 + 0
|||■変数操作: CSelf12[懐中霊灯ON] %= 2 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■電池消耗処理(時間経過で残量を減らす)
■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 1 と同じ
-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 1 と同じ ]の場合↓
|■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
|-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
||▼ イベントを実行していない時に、残量を減らす。
||■変数操作: V1[懐中霊灯(残量)] -= 1 + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■電池交換と電池残量%計算
■条件分岐(変数): 【1】 CSelf16[所持数:懐中霊灯] が 1 以上
-◇分岐: 【1】 [ CSelf16[所持数:懐中霊灯] が 1 以上 ]の場合↓
|■条件分岐(変数): 【1】 V1[懐中霊灯(残量)] が 0 以下
|-◇分岐: 【1】 [ V1[懐中霊灯(残量)] が 0 以下 ]の場合↓
||■条件分岐(変数): 【1】 CSelf17[所持数:霊感電池] が 1 以上
||-◇分岐: 【1】 [ CSelf17[所持数:霊感電池] が 1 以上 ]の場合↓
|||■イベントの挿入[名]: ["○アイテム増減"] <コモンEv 0> / 25:霊感電池 / -1 / 0:なし
|||■変数操作: V1[懐中霊灯(残量)] = 7200 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: V1[懐中霊灯(残量)] 下限= 0 + 0
■変数操作: V1[懐中霊灯(残量)] 上限= 7200 + 0
■変数操作: V2[懐中霊灯(表示%)] = V1[懐中霊灯(残量)] + 71
■変数操作: V2[懐中霊灯(表示%)] *= 100 + 0
■変数操作: V2[懐中霊灯(表示%)] /= 7200 + 0

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯OFF
■条件分岐(変数): 【1】 CSelf12[懐中霊灯ON] が 0 と同じ
-◇分岐: 【1】 [ CSelf12[懐中霊灯ON] が 0 と同じ ]の場合↓
|■変数操作+: CSelf22[ピクチャ使用中] = ピクチャ:CSelf21[ピクチャ番号:表示] の ピクチャが使用中?(1=YES)
|■条件分岐(変数): 【1】 CSelf22[ピクチャ使用中] が 1 と同じ
|-◇分岐: 【1】 [ CSelf22[ピクチャ使用中] が 1 と同じ ]の場合↓
||■ピクチャ消去:CSelf20[ピクチャ番号:光] 〜 CSelf21[ピクチャ番号:表示] / 0(0)フレーム
||■マスク機能:[マスクを全面[非表示]に塗る]
||■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■懐中霊灯表示処理
■条件分岐(変数): 【1】 CSelf17[所持数:霊感電池] が 0 以下
-◇分岐: 【1】 [ CSelf17[所持数:霊感電池] が 0 以下 ]の場合↓
|▼ (予備電池なし)
|■ピクチャ表示:CSelf21[ピクチャ番号:表示] [右上]文字列[<R>\E残量:\v[2]%\f]
       X:Sys116:[読]画面サイズX Y:2 / 0(0)フレーム / パターン 1 / 透 255 / 通常 /
       角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
-◇上記以外
|▼ (予備電池〜個)
|■ピクチャ表示:CSelf21[ピクチャ番号:表示] [右上]文字列[<R>\E残量:\v[2]%\f]
       X:Sys116:[読]画面サイズX Y:2 / 0(0)フレーム / パターン 1 / 透 255 / 通常 /
       角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇

■変数操作+: CSelf23[X] = 主人公 の 画面X座標
■変数操作+: CSelf24[Y] = 主人公 の 画面Y座標
■変数操作: CSelf24[Y] -= Sys118:[読]タイルサイズ / 2
■変数操作+: CSelf25[向き] = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 CSelf25[向き] が 1 と同じ
         【2】 CSelf25[向き] が 2 と同じ
         【3】 CSelf25[向き] が 3 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 1 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 1350 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 2 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 900 + 0
|■
-◇分岐: 【3】 [ CSelf25[向き] が 3 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 450 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf25[向き] が 4 と同じ
         【2】 CSelf25[向き] が 6 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 4 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 1800 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 6 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 0 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf25[向き] が 7 と同じ
         【2】 CSelf25[向き] が 8 と同じ
         【3】 CSelf25[向き] が 9 と同じ
-◇分岐: 【1】 [ CSelf25[向き] が 7 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 2250 + 0
|■
-◇分岐: 【2】 [ CSelf25[向き] が 8 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 2700 + 0
|■
-◇分岐: 【3】 [ CSelf25[向き] が 9 と同じ ]の場合↓
|■変数操作: CSelf26[角度] = 3150 + 0
|■
◇分岐終了◇
■マスク機能:[マスクを全面[非表示]に塗る]
■条件分岐(変数): 【1】 V1[懐中霊灯(残量)] が 0 以下
-◇分岐: 【1】 [ V1[懐中霊灯(残量)] が 0 以下 ]の場合↓
|■ピクチャ消去:CSelf20[ピクチャ番号:光] / 0(0)フレーム
|■イベント処理中断
|■
◇分岐終了◇

■マスク機能:[マスクに表示範囲(黒)を追加] =>[Picture/kaichuu_\cself[25].png] XCSelf23[X] YCSelf24[Y] (中心)
■文字列操作:CSelf5[黒ファイルアドレス] = "Picture/kaichuu_p\sys[119].png"
■ピクチャ表示:CSelf20[ピクチャ番号:光] [中心]ファイル(CSelf5[黒ファイルアドレス])
       X:CSelf23[X] Y:CSelf24[Y] / 0(0)フレーム / パターン 1 / 透 255 / 加算 /
       角 CSelf26[角度] / 拡 100% / カラー R[100] G[100] B[100]



動作テストする場合は、調べたらアイテムが入手できるマップイベントを準備すると、
アイテムを持っている時と持っていない時の動作テストがスムーズに行えます。





▼残量のパーセント(通常変数[懐中霊灯(表示%)])の計算設定について

残量のパーセントを計算する処理では、以下のようなイベントを設定しています。

■変数操作: V1[懐中霊灯(残量)] 下限= 0 + 0
■変数操作: V1[懐中霊灯(残量)] 上限= 400 + 0
■変数操作: V2[懐中霊灯(表示%)] = V1[懐中霊灯(残量)] + 3
■変数操作: V2[懐中霊灯(表示%)] *= 100 + 0
■変数操作: V2[懐中霊灯(表示%)] /= 400 + 0

上記の中にある「+ 3」は「101%になる手前の値」になるように設定しています。

例えば電池の残量が上限の「400」の時には「400+3=403」になります。
そして「403×100÷400=100」と計算されて、残量は「100%」になります。

もしも「+ 4」にすると「(400+4)×100÷400=101」の計算で「101%」になってしまいます。
そのため、101%にならないギリギリの「+ 3」を設定しています。

「+ 3」で「101%になる手前の値」になるように設定する事で、
電池の残量が「1」の場合は「(1+3)×100÷400=1」の計算によって、「1%」の表示になります。

もしも「+ 3」の設定が無い場合は「(1+0)×100÷400=0」の計算によって、
電池の残量がまだあるのに「0%」の表示になってしまいます。


時間経過の方も…
■変数操作: V1[懐中霊灯(残量)] 下限= 0 + 0
■変数操作: V1[懐中霊灯(残量)] 上限= 7200 + 0
■変数操作: V2[懐中霊灯(表示%)] = V1[懐中霊灯(残量)] + 71
■変数操作: V2[懐中霊灯(表示%)] *= 100 + 0
■変数操作: V2[懐中霊灯(表示%)] /= 7200 + 0
の「+ 71」の設定によって、「101%になる手前の値」になるように設定しています。


▲トップへ戻る▲



◎関連ページ

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

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

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