近現遠消法

 

 
 
更新記録
2005/6/8 132人目の素数さん@ととか様からのアドバイスにより、
        イベントが1つ減ってコンパクトになりました。

2003/12/4 飛行船対応にしました。
※イベントその2とその3は通常の陸地に置くと飛行船で降りられなくなります。
  海や山などの着陸できない地形に置くようにしてください。
  宝箱の近くに置く必要はありません。
 
 

 

 
 
使用スイッチ 使用変数
0001:宝箱に接近
0002:アイテム取得
0003:宝箱消滅
0001:主人公X座標
0002:主人公Y座標
0003:宝箱X座標
0004:宝箱Y座標
0005:判定範囲
 
 

 

 
 
最初に言っておきますがタイトルの「近現遠消法」は管理人の造語であり、
辞書を引いても載っていないのであしからず・・・(汗

何のことかは大体想像がつくと思いますが、主人公が宝箱に近づくと
宝箱が出現し、また遠ざかると宝箱が消滅するという方法です。
さらに除々に透明度を上げ下げすることによって雰囲気を演出します。
ちなみにここでは主人公が宝箱の周囲4マスに進入したときの
イベントを組んでいます。

作るイベントは2つです。順に見ていくことにします。

 
 

 

 
 
〜イベントその1〜(宝箱イベント)
1ページ目→→→

イベント出現条件:スイッチ「0003:宝箱消滅」がON
グラフィック:オブジェクト1-7(RTPの赤い宝箱)
イベント開始条件:決定キーが押されたとき
プライオリティタイプ:通常キャラと重ならない
アニメーションタイプ:グラフィック完全固定
移動速度:1/2倍速
移動タイプ:移動ルート指定 移動頻度8 透明度アップ,一時停止,透明度アップ,
一時停止,透明度アップ,一時停止,透明度アップ,一時停止,透明度アップ,
スイッチ[0003]をOFF
イベント内容:なし

2ページ目→→→

イベント出現条件:スイッチ「0001:宝箱に接近」がON
グラフィック:オブジェクト1-7(RTPの赤い宝箱)
イベント開始条件:決定キーが押されたとき
プライオリティタイプ:通常キャラと重ならない
アニメーションタイプ:グラフィック完全固定
移動速度:1/2倍速
移動タイプ:移動ルート指定 移動頻度8 透明度アップ,透明度アップ,透明度アップ,
透明度アップ,透明度アップ,透明度ダウン,一時停止,透明度ダウン,一時停止,
透明度ダウン,一時停止,透明度ダウン,一時停止,透明度ダウン
イベント内容:ここに宝箱を開けるイベントやアイテムを入手するイベントを
入れて最後に
◆スイッチの操作:[0002:アイテム取得]をONにする
◆スイッチの操作:[0001:宝箱に接近]をOFFにする
◆スイッチの操作:[0003:宝箱消滅]をOFFにする
の3つを挿入する

 
 

 

 
 
〜イベントその2〜(接近判断イベント)
1ページ目→→→

イベント出現条件:なし
グラフィック:なし(マップチップの左上)
イベント開始条件:定期的に並列処理する
プライオリティタイプ:通常キャラの下
移動速度:1/2倍速
移動タイプ:移動しない
イベント内容:

◆変数の操作:[0001:主人公X座標]代入,主人公のX座標
◆変数の操作:[0002:主人公Y座標]代入,主人公のY座標
◆変数の操作:[0003:宝箱X座標]代入,EV0001(宝箱のID)のX座標
◆変数の操作:[0004:宝箱Y座標]代入,EV0001(宝箱のID)のY座標
◆変数の操作:[0005:判定範囲]代入,
4
◆変数の操作:[0003:宝箱X座標]減算,変数[0001]の値
◆変数の操作:[0004:宝箱Y座標]減算,変数[0002]の値
◆条件分岐:変数[0003:宝箱X座標]が0より小さい
 ◆変数の操作:[0003:宝箱X座標]乗算,-1
 ◆
:分岐終了
◆条件分岐:変数[0004:宝箱Y座標]が0より小さい
 ◆変数の操作:[0004:宝箱Y座標]乗算,-1
 ◆
:分岐終了
◆条件分岐:変数[0003:宝箱X座標]がV[0005]以下
 ◆条件分岐:変数[0004:宝箱Y座標]がV[0005]以下
  ◆スイッチの操作:[0001:宝箱に接近]をONにする
  ◆スイッチの操作:[0003:宝箱消滅]をOFFにする
  ◆
 :それ以外の場合
  ◆条件分岐:スイッチ[0001:宝箱に接近]がON
   ◆スイッチの操作:[0001:宝箱に接近]をOFFにする
   ◆スイッチの操作:[0003:宝箱消滅]をONにする
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆条件分岐:スイッチ[0001:宝箱に接近]がON
  ◆スイッチの操作:[0001:宝箱に接近]をOFFにする
  ◆スイッチの操作:[0003:宝箱消滅]をONにする
  ◆
 :分岐終了
 ◆
:分岐終了
◆ウェイト:0.0秒


2ページ目→→→

イベント出現条件:スイッチ「0002:アイテム取得」がON
グラフィック:なし(マップチップの左上)
イベント開始条件:決定キーが押されたとき
プライオリティタイプ:通常キャラの下
移動速度:1/2倍速
移動タイプ:移動しない
イベント内容:なし
 
 

 

 
 
解説
イベントの紹介が長くなりましたが、早速解説に移らせていただきます。

まずイベントその1は最初どのスイッチも入っていないのでイベント
自体が出現していないということになります。

次にイベントその2で主人公が宝箱に接近しているかどうかを判断します。
赤字の部分はその範囲で、4であれば宝箱の周囲4マスに主人公が
進入したときに発動する仕組みです。
途中で-1を乗算しているのは、主人公の座標と宝箱の座標の差の
絶対値を取得するためです。
132人目の素数さん@ととか様の提案で、簡単に判定範囲を変更
できるようになりました。感謝しますw

ここで宝箱を取らずに判定範囲から出た場合、イベントその2に
よってスイッチ[0001:宝箱に接近]がOFF、スイッチ[0003:宝箱消滅]が
ONになります。
この後イベントその1の1ページ目が連動して働き、除々に
透明になりながら最後は全てのスイッチがOFFになるので
イベントその1自体が消滅します。

これが「近現遠消法」の仕組みです。ひたすら長いイベントも
この解説を見ながら解析すると初心者にも理解できると思います。
 
 

 

 
 
考察
このテクニックの使いどころは「フィールドなどで遠くにいても宝箱が
見えていてはつまらない。近づくと現れ、遠ざかると消えるような
宝箱を設置したい」
という方にオススメな方法です。

宝箱が出現する範囲を広げたければイベントその2の1ページ目に
宝箱が出現する座標の条件分岐を増やしてやればよいのです。

やはりRPGツクールの醍醐味はほぼ無限のテクニックを生み出せる
ことにあるのではないかと思っています。
ソフトの性質上、現状システムでは表現しきれないものも
正確なイベントを組み込めばそれなりに表現できてしまいます。

言い忘れてましたがこのテクニックは結構な自信作ですので、もし
使いたい方がいらっしゃいましたら事前にご一報ください。

さらに言い忘れてましたがこのイベントは「定期的に並列処理する」を
使用してますので、同じマップにあまりたくさん置かないほうがいいです。

それではRPGの製作お互いにがんばりましょうw
 
 

総合トップページ  別館トップページ