移動ルートを 確保する

 

 
 
使用スイッチ 使用変数
なし 0001:共通X座標
0002:共通Y座標
0003:若者Y座標
0004:主婦X座標
 
 

 

 
 
上の図は主人公がマップ中央右にいる子どもに話しかけると
子どもがマップ中央上の宝箱まで歩いていくイベントを
現したものです。

当然キャラクターの動作指定でそこまで行かせるわけですが
ここで問題となってくるのがランダム移動をする若者と主婦の
存在です。彼らがランダム移動の結果子どもの動作ルートに
入り込んでしまうと子どもの動きが止まります。

子どもの動作指定のオプション「移動できない場合は無視」を
チェックしないとその場でゲームがフリーズしてしまいますし、
チェックしても「定期的に並列処理する」でない限り彼らは
動けないので子どもは宝箱までたどり着けません。

そこで今回のテクニックを使うわけです。

最初に言っておくと図の青の「9」と直線はマップのX座標
9の範囲を、図の赤の「8」と直線はマップのY座標8の範囲を、
図のオレンジは子どもの移動ルートを示しています。

まず最初に若者の対処をします。若者は今、図の青の部分の
左側つまりX座標が9より小さい場所にいます。
そこでこの若者をX座標が9より大きい場所に行かせなければ
子どもの移動ルートを遮ることがないことに気づきませんか?

次に主婦の対処をします。主婦は今、図の赤の部分の下側
つまりY座標が8より大きい場所にいます。
同様にこの主婦をY座標が8より小さい場所に行かせなければ
子どもの移動ルートを遮ることはありません。

このテクニックでは彼らの移動を遮る道具としてこんな
イベントを用います。

-------------------------------------------------------
開始条件:決定キーが押されたとき
プライオリティタイプ:通常キャラの下,
別のイベントと重ならない
グラフィック:なし
-------------------------------------------------------

赤字がこのイベントの重要な点です。このイベントをランダムに
歩くイベント分、今回は若者と主婦の2人なので2つ作成し、
適当なところに置きます。

ここで若者のイベントIDを「EV0001」、主婦のイベントIDを
「EV0002」、上記イベント2つをそれぞれ「EV0003」「EV0004」
とします。

最後に以下のイベントを適当なところに設置します。

-------------------------------------------------------
開始条件:定期的に並列処理する
プライオリティタイプ:通常キャラの下
グラフィック:なし

◆変数の操作:[0001:共通X座標]代入,9
◆変数の操作:[0002:共通Y座標]代入,8
◆変数の操作:[0003:若者Y座標]代入,EV0001のY座標
◆変数の操作:[0004:主婦X座標]代入,EV0002のX座標
◆イベントの位置を設定:EV0003,(V[0001],V[0003])
◆イベントの位置を設定:EV0004,(V[0004],V[0002])
◆ウェイト:0.0秒
-------------------------------------------------------

もうお気づきでしょう。このイベントが発生している限り若者は
マップX座標9より大きい場所には行けず、主婦はマップY座標
8より小さい場所には行けないことを。

キャラを増やしたければ同じように設置して青の直線より
左にいれば若者と同じようにイベントを作成し、赤の直線より
下にいれば主婦と同じように設置すればOKです。

欠点があるとすればマップ右上のほう(X座標9より大きくかつ
Y座標8より小さい場所)にはこのイベントは置けないという点です。
 
 

 

 
 
考察
慣れてこないとこういうイベントの位置を取得、判断するイベントの
作成は難しいかもしれません。

ですがきっと順を追って見ていけば内容が理解できると思います。

このイベントは私の様々な経験から作り出されたものです。

現状システムでは不可能なことをなんとか可能にできないかと
考えるところからこうしたテクニックは生まれます。

これはさておき、イベントの考察ですがイベントでイベントを止める
というアイデアはなかなかのものだと思います。

これを応用すればいろいろなイベントが作れるかもしれません。
 
 

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