RPGツクール2000/システム
ドラホコ(主人公を列にして歩かせる)を作る
■斜め階段処理を追加
(更新:2015/12/19)


YADOTのドラホコ斜め階段処理を追加します。




このページは応用ページです
このページは応用ページであり、
基礎ページドラホコ(主人公を列にして歩かせる)を作るになります。
【ドラホコ(主人公を列にして歩かせる)を作るのページを開く】

まず基礎ページのイベントを設定して頂き、問題なく動いた後に、
このページで紹介している改良を行った方が良いでしょう。

基礎ページと同じイベント設定は、この色で表示しています。



☆斜め階段処理とは?
斜め階段処理を設定しますと、
主人公と後続キャラを斜めに移動させる事ができます。


後続キャラの移動は、
向き番号1番:左上に移動
向き番号3番:左下に移動
向き番号7番:右上に移動
向き番号9番:右下に移動
と設定します。

斜め階段のマスであるかどうかの判断は、
地形IDを調べて判断します。



☆斜め階段の下層チップを準備
データベース「地形」にて斜め階段用の地形番号を準備してください。
今回の設定例では、
地形番号5番:左上に上がる階段
地形番号6番:右上に上がる階段
としています。



データベース「チップセット」の画面を開き、
斜め階段にしたい下層チップ斜め階段の地形番号を設定してください。



斜め階段の下層チップでは必ず上下移動のみにしておく必要があります。
下層チップの「通行・4方向」の設定は上下のみ移動可能としておいてください。



左上の上層チップ以外の上層チップを斜め階段のマスに設定する時には、
上層チップの「通行・4方向」の設定も上下のみ移動可能にしてください。


設定が終わりましたら、画面下の[OK]をクリックして、
データベースの設定を終了してください。


あとは斜め階段にしたいマス斜め階段の下層チップを設定してください。


階段のマスの上下のマス移動できないマスを設定してください。




☆スイッチ・変数
スイッチと変数の番号使用内容の一覧表です。

スイッチ
番号 名前 使用内容
0001 ドラホコ配置確認 マップ内にドラホコ用のイベントがあるかどうかを調べます。
0002 ドラホコ初期設定 初期設定を行うイベントを起動します。
0003 フェードイン不要 OFFの時には、後続キャラの配置後にフェードインを実行。
0004 乗り物に乗っている 乗り物に乗るとON。※乗り物が登場する作品のみ必要
0011 ドラホコ起動中 後続キャラを動かすためのイベントを起動します。

変数
番号 名前 使用内容
0001 マップID 現在のマップIDを記憶。
0002 X座標 後続キャライベントを主人公の位置へ移動する時に使用。
0003 Y座標 後続キャライベントを主人公の位置へ移動する時に使用。
0004 XY 主人公の現在位置を設定。
0005 パーティー人数 現在のパーティー人数を代入します。
0008 地形ID 斜め階段の地形IDを読み取る時に使用。
0010 キー入力 斜め階段の前で左右キーを押しているかどうかを調べます。
 
0011 マップID2 現在のマップIDを記憶し、変数0001番と比較。
0012 XY2 主人公の現在位置を設定し、変数0004番と比較。
0013 向き 2人目 2人目の移動方向を設定。
0014 向き 3人目 3人目の移動方向を設定。
0015 向き 4人目 4人目の移動方向を設定。
0018 後続移動方向 斜め階段の移動方向を設定します。
0019 移動中ウェイト 斜め階段の移動が完了するまでのウェイトを設定。



☆ドラホコシステム
コモンイベント「ドラホコシステム」に斜め階段処理を追加します。

■コモンイベント「ドラホコシステム」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0011:ドラホコ起動中]
◆変数の操作:[0011:マップID2]代入,主人公のマップID
◆条件分岐:変数[0001:マップID]がV[0011]以外
 ◆スイッチの操作:[0001:ドラホコ配置確認]をONにする
 ◆スイッチの操作:[0011:ドラホコ起動中]をOFFにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:小型船に乗っている
 ◆スイッチの操作:[0004:乗り物に乗っている]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:大型船に乗っている
 ◆スイッチの操作:[0004:乗り物に乗っている]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:飛行船に乗っている
 ◆スイッチの操作:[0004:乗り物に乗っている]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:スイッチ[0004:乗り物に乗っている]がON
 ◆スイッチの操作:[0003:フェードイン不要]をONにする
 ◆スイッチの操作:[0002:ドラホコ初期設定]をONにする
 ◆スイッチの操作:[0011:ドラホコ起動中]をOFFにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆注釈:------------------------------
:  :主人公の移動確認
:  : 

◆変数の操作:[0019:移動中ウェイト]減算,1
◆変数の操作:[0012:XY2]代入,主人公のX座標
◆変数の操作:[0012:XY2]乗算,1000
◆変数の操作:[0012:XY2]加算,主人公のY座標
◆条件分岐:変数[0004:XY]がV[0012]以外(オプション:ON)
 ◆変数の操作:[0004:XY]代入,変数[0012]の値
 ◆注釈:------------------------------
 :  :後続キャラの移動
 :  : 

 ◆条件分岐:変数[0013:向き 2人目]が2
  ◆キャラクターの動作指定:ドラホコ2人目,下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が4
  ◆キャラクターの動作指定:ドラホコ2人目,左に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が6
  ◆キャラクターの動作指定:ドラホコ2人目,右に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が8
  ◆キャラクターの動作指定:ドラホコ2人目,上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が1<斜め階段を左上に移動
  ◆キャラクターの動作指定:ドラホコ2人目,左を向く,左上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が3<斜め階段を左上に移動
  ◆キャラクターの動作指定:ドラホコ2人目,左を向く,左下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が7<斜め階段を左上に移動
  ◆キャラクターの動作指定:ドラホコ2人目,右を向く,右上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が9<斜め階段を左上に移動
  ◆キャラクターの動作指定:ドラホコ2人目,右を向く,右下に移動
  ◆
 :分岐終了

 ◆注釈:------------------------------
 ◆条件分岐:変数[0014:向き 3人目]が2
  ◆キャラクターの動作指定:ドラホコ3人目,下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が4
  ◆キャラクターの動作指定:ドラホコ3人目,左に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が6
  ◆キャラクターの動作指定:ドラホコ3人目,右に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が8
  ◆キャラクターの動作指定:ドラホコ3人目,上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が1
  ◆キャラクターの動作指定:ドラホコ3人目,左を向く,左上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が3
  ◆キャラクターの動作指定:ドラホコ3人目,左を向く,左下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が7
  ◆キャラクターの動作指定:ドラホコ3人目,右を向く,右上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が9
  ◆キャラクターの動作指定:ドラホコ3人目,右を向く,右下に移動
  ◆
 :分岐終了

 ◆注釈:------------------------------
 ◆条件分岐:変数[0015:向き 4人目]が2
  ◆キャラクターの動作指定:ドラホコ4人目,下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が4
  ◆キャラクターの動作指定:ドラホコ4人目,左に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が6
  ◆キャラクターの動作指定:ドラホコ4人目,右に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が8
  ◆キャラクターの動作指定:ドラホコ4人目,上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が1
  ◆キャラクターの動作指定:ドラホコ4人目,左を向く,左上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が3
  ◆キャラクターの動作指定:ドラホコ4人目,左を向く,左下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が7
  ◆キャラクターの動作指定:ドラホコ4人目,右を向く,右上に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が9
  ◆キャラクターの動作指定:ドラホコ4人目,右を向く,右下に移動
  ◆
 :分岐終了

 ◆変数の操作:[0015:向き 4人目]代入,変数[0014]の値
 ◆変数の操作:[0014:向き 3人目]代入,変数[0013]の値
 ◆変数の操作:[0013:向き 2人目]代入,主人公の向き
 ◆条件分岐:変数[0018:斜め階段:移動方向]が0以外<斜めの移動方向が設定されている時
  ◆変数の操作:[0013:向き 2人目]代入,変数[0018]の値
  ◆
 :分岐終了
 ◆変数の操作:[0019:移動中ウェイト]代入,7
<主人公の移動中は斜め階段処理を止める
 ◆
:それ以外の場合<主人公が別のマスに移動していない時
 ◆注釈:------------------------------
 :  :主人公の斜め階段処理
 :  : 

 ◆条件分岐:変数[0019:移動中ウェイト]が0以下<前の移動が終了している時
  ◆変数の操作:[0018:後続移動方向]代入,0
  ◆変数の操作:[0002:X座標]代入,主人公のX座標
  ◆変数の操作:[0003:Y座標]代入,主人公のY座標
  ◆キー入力の処理:[0010:キー入力](左・右/オプション:OFF)
  ◆条件分岐:変数[0010:キー入力]が2<左キーが押された時
   ◆指定位置の地形ID取得:(V[0002],V[0003]),[0008:地形ID]<主人公のマスのID取得
    ◆条件分岐:変数[0008:地形ID]が5(オプション:ON)<主人公のマスが左上の階段の地形IDの時
    ◆変数の操作:[0018:後続移動方向]代入,1
    ◆キャラクターの動作指定:主人公,すりぬけ開始,左を向く,左上に移動,すりぬけ終了
    ◆
   :それ以外の場合<主人公のマスが左上の階段の地形ID(5番)ではない時
    ◆条件分岐:変数[0008:地形ID]が6(オプション:ON)<主人公のマスが右上の階段の地形IDの時
     ◆変数の操作:[0018:後続移動方向]代入,3
     ◆キャラクターの動作指定:主人公,すりぬけ開始,左を向く,左下に移動,すりぬけ終了
     ◆
    :それ以外の場合<主人公のマスが右上の階段の地形ID(6番)ではない時
     ◆変数の操作:[0002:X座標]減算,1
     ◆変数の操作:[0003:Y座標]減算,1
     ◆指定位置の地形ID取得:(V[0002],V[0003]),[0008:地形ID]<主人公の左上のマスのID取得
     ◆条件分岐:変数[0008:地形ID]が5(オプション:ON)<主人公の左上のマスが左上の階段の地形IDの時
      ◆変数の操作:[0018:後続移動方向]代入,1
      ◆キャラクターの動作指定:主人公,すりぬけ開始,左を向く,左上に移動,すりぬけ終了
      ◆
     :それ以外の場合<主人公の左上のマスが左上の階段の地形IDではない時
      ◆変数の操作:[0003:Y座標]加算,2
      ◆指定位置の地形ID取得:(V[0002],V[0003]),[0008:地形ID]<主人公の左下のマスのID取得
      ◆条件分岐:変数[0008:地形ID]が6<主人公の左下のマスが右上の階段の地形IDの時
       ◆変数の操作:[0018:後続移動方向]代入,3
       ◆キャラクターの動作指定:主人公,すりぬけ開始,左を向く,左下に移動,すりぬけ終了
       ◆
      :分岐終了
      ◆
     :分岐終了
     ◆
    :分岐終了
    ◆
   :分岐終了
   ◆
  :分岐終了
  ◆条件分岐:変数[0010:キー入力]が3<右キーが押された時
   ◆指定位置の地形ID取得:(V[0002],V[0003]),[0008:地形ID]<主人公のマスのID取得
   ◆条件分岐:変数[0008:地形ID]が5(オプション:ON)<主人公のマスが左上の階段の地形IDの時
    ◆変数の操作:[0018:後続移動方向]代入,9
    ◆キャラクターの動作指定:主人公,すりぬけ開始,右を向く,右下に移動,すりぬけ終了
    ◆
   :それ以外の場合<主人公のマスが左上の階段の地形ID(5番)ではない時
    ◆条件分岐:変数[0008:地形ID]が6(オプション:ON)<主人公のマスが右上の階段の地形IDの時
     ◆変数の操作:[0018:後続移動方向]代入,7
     ◆キャラクターの動作指定:主人公,すりぬけ開始,右を向く,右上に移動,すりぬけ終了
     ◆
    :それ以外の場合<主人公のマスが左上の階段の地形ID(6番)ではない時
     ◆変数の操作:[0002:X座標]加算,1
     ◆変数の操作:[0003:Y座標]減算,1
     ◆指定位置の地形ID取得:(V[0002],V[0003]),[0008:地形ID]<主人公の右上のマスのID取得
     ◆条件分岐:変数[0008:地形ID]が6(オプション:ON)<主人公の右上のマスが右上の階段の地形IDの時
      ◆変数の操作:[0018:後続移動方向]代入,7
      ◆キャラクターの動作指定:主人公,すりぬけ開始,右を向く,右上に移動,すりぬけ終了
      ◆
     :それ以外の場合<主人公の右上のマスが右上の階段の地形IDではない時
      ◆変数の操作:[0003:Y座標]加算,2
      ◆指定位置の地形ID取得:(V[0002],V[0003]),[0008:地形ID]<主人公の右下のマスのID取得
      ◆条件分岐:変数[0008:地形ID]が5<主人公の右下のマスが左上の階段の地形IDの時
       ◆変数の操作:[0018:後続移動方向]代入,9
       ◆キャラクターの動作指定:主人公,すりぬけ開始,右を向く,右下に移動,すりぬけ終了
       ◆
      :分岐終了
      ◆
     :分岐終了
     ◆
    :分岐終了
    ◆
   :分岐終了
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆

:分岐終了




☆馬車を設定している場合
馬車を設定している場合は、移動処理の所に他の後続キャラと同じく、
◆条件分岐:変数[0016:向き 馬車]が1
 ◆キャラクターの動作指定:ドラホコ馬車,左を向く,左上に移動
 ◆
:分岐終了
◆条件分岐:変数[0016:向き 馬車]が3
 ◆キャラクターの動作指定:ドラホコ馬車,左を向く,左下に移動
 ◆
:分岐終了
◆条件分岐:変数[0016:向き 馬車]が7
 ◆キャラクターの動作指定:ドラホコ馬車,右を向く,右上に移動
 ◆
:分岐終了
◆条件分岐:変数[0016:向き 馬車]が9
 ◆キャラクターの動作指定:ドラホコ馬車,右を向く,右下に移動
 ◆
:分岐終了

の設定が必要です。


また馬車の向きを設定する所で、
◆条件分岐:変数[0005:パーティー人数]が1
 ◆変数の操作:[0016:向き 馬車]代入,主人公の向き
 ◆
:分岐終了

の設定がありますが、この設定を、
◆条件分岐:変数[0005:パーティー人数]が1
 ◆変数の操作:[0016:向き 馬車]代入,主人公の向き
 ◆条件分岐:変数[0018:斜め階段:移動方向]が0以外
  ◆変数の操作:[0016:向き 馬車]代入,変数[0018]の値
  ◆
 :分岐終了
 ◆
:分岐終了

に変えてください。



☆キャラクターの動作指定を使っているために
斜め階段の処理内に主人公の斜め移動を行うための、
キャラクターの動作指定が設定されていますので、
他のイベントで主人公を操作するキャラクターの動作指定は、
設定しないようにしてください。

なお、階段のマス階段が終わるマスに、
イベント開始条件:主人公から触れたとき
のマップイベントを置いても、
斜め移動を行った時には処理されません。
これもキャラクターの動作指定
使っている事が原因になります。

キャラクターの動作指定で主人公を移動させていますので、
斜め階段の移動時には通常のエンカウントは無効となり、敵は出現しません。



☆補足
ハシゴ処理ツルツル床処理の地形番号が設定されている下層チップのマスと、
この斜め階段処理のマス繋げて設定しないようにしてください。


全体の移動速度が1段階速い場合(2倍速で移動)は、
◆変数の操作:[0019:移動中ウェイト]代入,7
の設定を、
◆変数の操作:[0019:移動中ウェイト]代入,3
に変えてください。

逆に全体の移動速度が1段階遅い場合(1/2倍速で移動)は、
◆変数の操作:[0019:移動中ウェイト]代入,7
の設定を、
◆変数の操作:[0019:移動中ウェイト]代入,15
に変えてください。



◎関連ページ
 ●ドラホコ(主人公を列にして歩かせる)を作る
 ○並び替えに対応させる
 ┣○カンオケの表示を行う
 ┣○馬車を追加
 ┣○ハシゴ処理を追加
 ┣○斜め階段処理を追加
 ┣○ツルツル床を追加
 ┗
○追尾システムを追加

 ●ドラホコとは?


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール