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


ドラホコの作り方を紹介します。



ドラホコに関する説明は、別ページをご覧ください。
【ドラホコとは?のページを見る】


動作見本用のサンプルデータ
サンプルのダウンロードは↓をクリックしてください。
サンプルのイベント設定状況を見る場合は、
ツクールの作品データが入っているフォルダを開いて、
その中にサンプルの作品データを入れてください。
【ツクールのフォルダの開き方を見る】
このサンプルデータのイベント設定をコピー&貼り付けして、
制作中の作品に使用する場合は、
イベントの処理構造を理解した上自己責任でご利用ください。

動作確認用のサンプル内では正常に動いていたイベントが、
制作中の作品にコピー&貼り付けしたら正常に動かなくなった場合は、
明らかにコピー&貼り付けの作業に問題があった事になります。
サンプルには、パーティーメンバーの入れ替え確認のため、
顔パーティー編成も組み込まれています。

【顔パーティー編成のページを開く】



☆ドラホコで使うイベント
ドラホコは、主に3種類のイベントを使って処理します。

■後続キャライベント
後続キャラ(後ろに付いて来る主人公)を表示するためのイベントです。
このイベントは、マップイベントで設定します。

■初期設定
主にドラホコを起動した時別のマップへ移動した時に実行します。
このイベントを実行する事で、先頭の主人公がいる位置に後続キャライベントを設定したり、
ドラホコで使う変数の値を初期化したり、画面の表示(フェードイン)を実行したりします。
このイベントは、コモンイベントに設定します。

■ドラホコシステム
先頭の主人公の移動に合わせて、後続キャラを移動させるイベントです。
このイベントは、コモンイベントに設定します。



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

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

変数
番号 名前 使用内容
0001 マップID 現在のマップIDを記憶。
0002 X座標 後続キャライベントを主人公の位置へ移動する時に使用。
0003 Y座標 後続キャライベントを主人公の位置へ移動する時に使用。
0004 XY 主人公の現在位置を設定。
0005 パーティー人数 現在のパーティー人数を代入します。
 
0011 マップID2 現在のマップIDを記憶し、変数0001番と比較。
0012 XY2 主人公の現在位置を設定し、変数0004番と比較。
0013 向き 2人目 2人目の移動方向を設定。
0014 向き 3人目 3人目の移動方向を設定。
0015 向き 4人目 4人目の移動方向を設定。

スイッチや変数は、用途別に10番単位で区切って使用しています。
0001〜0010=初期設定イベント
0011〜0020=ドラホコシステム

無理に10番単位に区切って使用する必要はありませんが、
イベント設定に慣れていない方は、上記の通りに設定された方が良いでしょう。
なお、スイッチや変数の番号を+1000番(変数0001番→変数1001番)で設定しても問題ありません。

変数[0004:XY]変数[0012:XY2]の値は、
X座標×1000Y座標の計算結果を代入しています。
この計算処理は、歩くと実行するイベントで紹介しています。
【歩くと実行するイベントのページを開く】



☆マップイベントを設定
後続キャラを表示するマップイベントを3つ設定します。

マップイベントの設定位置は、マップの左上など、分かりやすい所が良いでしょう。

このマップイベントは、ドラホコを使う全てのマップに設定する必要があります。
※2人目までしか登場しないマップでも、4人目までのイベントを設定してください。

ドラホコを使わないマップには、設定する必要はありません。
※ドラホコ用のマップイベントが無いマップでは、自動的にコモンイベントも停止します。

このマップイベントは、全てのマップで同じイベントIDにする必要があります。
【イベントIDについての説明を見る】

イベントIDは以下のように設定してください。
2人目を表示するマップイベントイベントID:0001番
3人目を表示するマップイベントイベントID:0002番
4人目を表示するマップイベントイベントID:0003番

既にマップイベントが設定されている場合は、
ドラホコ用のイベントID(0001〜0003)を空けてください。

2人目のイベントには3ページ、
3〜4人目のイベントは2ページを設定します。
1ページ目:透明のイベント
2ページ目:主人公を表示
3ページ目:ドラホコ用のマップイベントがあるかどうかの確認するイベント
※2人目のイベントのみ

マップイベントの移動速度は、主人公の移動速度と一緒にしてください。



■マップイベント「ドラホコ2人目」
▼1ページ目
イベント出現条件:なし
イベント開始条件:決定キーが押されたとき
グラフィック:透明
移動速度:標準速
イベント実行内容には何も設定しません。

▼2ページ目
イベント出現条件:変数[0005:パーティー人数]が2以上
イベント開始条件:決定キーが押されたとき
グラフィック:2人目のグラフィック
移動速度:標準速
イベント実行内容には何も設定しません。

▼3ページ目
イベント出現条件:スイッチ[0001:ドラホコ配置確認]がON
イベント開始条件:自動的に始まる
グラフィック:透明
◆スイッチの操作:[0002:ドラホコ初期設定]をONにする
◆スイッチの操作:[0001:ドラホコ配置確認]をOFFにする




■マップイベント「ドラホコ3人目」
▼1ページ目
イベント出現条件:なし
イベント開始条件:決定キーが押されたとき
グラフィック:透明
移動速度:標準速
イベント実行内容には何も設定しません。

▼2ページ目
イベント出現条件:変数[0005:パーティー人数]が3以上
イベント開始条件:決定キーが押されたとき
グラフィック:3人目のグラフィック
移動速度:標準速
イベント実行内容には何も設定しません。



■マップイベント「ドラホコ4人目」
▼1ページ目
イベント出現条件:なし
イベント開始条件:決定キーが押されたとき
グラフィック:透明
移動速度:標準速
イベント実行内容には何も設定しません。

▼2ページ目
イベント出現条件:変数[0005:パーティー人数]が4以上
イベント開始条件:決定キーが押されたとき
グラフィック:4人目のグラフィック
移動速度:標準速
イベント実行内容には何も設定しません。

※1つのマップの設定が終わりましたら、
 他のマップでのイベント設定は、コピー&貼り付けで設定すると良いでしょう。
 他のマップで既にマップイベントが設定されている場合は、
 ドラホコ用にイベントID(0001〜0003番)を空けた上で、貼り付けを行ってください。
 正しいイベントIDにしないと正常には動きません。




☆初期設定イベント
コモンイベント「ドラホコ:初期設定」を設定します。

■コモンイベント「ドラホコ:初期設定」
イベント開始条件:自動的に始まる
出現条件スイッチ:[0002:ドラホコ初期設定]
◆現在の場所を記憶:[0001],[0002],[0003]
◆イベントの位置を設定:ドラホコ2人目, (V[0002],V[0003])<主人公の位置にマップイベントを設定
◆イベントの位置を設定:ドラホコ3人目, (V[0002],V[0003])
◆イベントの位置を設定:ドラホコ4人目, (V[0002],V[0003])
◆キャラクターの動作指定:ドラホコ2人目,すりぬけ開始<すり抜けを設定しておく
◆キャラクターの動作指定:ドラホコ3人目,すりぬけ開始
◆キャラクターの動作指定:ドラホコ4人目,すりぬけ開始
◆変数の操作:[0004:XY]代入,主人公のX座標<主人公の現在位置(XY)を設定
◆変数の操作:[0004:XY]乗算,1000
◆変数の操作:[0004:XY]加算,主人公のY座標
◆変数の操作:[0005:パーティー人数]代入,パーティー人数
◆変数の操作:[0013〜0015]代入,0<向き情報を初期化
◆条件分岐:スイッチ[0003:フェードイン不要]がOFF<フェードインを実行する時
 ◆画面の表示:フェードイン
 ◆
:分岐終了
◆スイッチの操作:[0003:フェードイン不要]をOFFにする
◆スイッチの操作:[0004:乗り物に乗っている]をOFFにする<乗り物が作品内で登場する時のみ設定
◆スイッチの操作:[0011:ドラホコ起動中]をONにする
◆スイッチの操作:[0002:ドラホコ初期設定]をOFFにする


フェードインの設定は、場所移動の時に使います。
場所移動の設定時に、
◆画面の消去:フェードアウト
◆場所移動

と設定する事でコモンイベント「ドラホコ:初期設定」画面の表示(フェードイン)が実行します。

場所移動先で勝手にフェードインをして欲しくない時には、
◆画面の消去:フェードアウト
◆スイッチの操作:[0003:フェードイン不要]をONにする
◆場所移動

と設定する事で、別のマップへ移動しても画面の表示(フェードイン)は実行されません。

同じマップ内を場所移動する時には、
自動的にコモンイベント「ドラホコ:初期設定」が起動しませんので、
◆画面の消去:フェードアウト
◆場所移動
◆イベントの呼び出し:初期設定イベント

と設定してください。



☆ドラホコシステム
コモンイベントに後続キャラを移動するためのイベントを設定します。

イベント処理の流れは以下の通りです。
◆マップIDを比較して、別のマップへ移動したかどうかを調べる
同じマップ



   別のマップ
     ↓
 イベント処理を中断してドラホコ用の
 マップイベントがあるかどうかを調べる
◆乗り物に乗っているかどうかを調べる
乗ってない



   乗っている
     ↓
 後続キャラの表示を消して、
 乗り物から降りたら、後続キャラを再配置する
◆XY値を比較して、主人公が別のマスへ移動したかどうかを調べる
移動してない





    移動した
     ↓
 ◆後続キャラを移動させる
     ↓
 ◆主人公の向きを取得して
  次の2人目以降の移動で使う

     ↓
イベント処理終了 ← ← ←

下記のイベントの設定で、乗り物の設定はこの色で表示しています。
作品内に乗り物が登場しない時には、この色の部分を設定する必要はありません。

■コモンイベント「ドラホコシステム」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0011:ドラホコ起動中]
◆変数の操作:[0011:マップID2]代入,主人公のマップID
◆条件分岐:変数[0001:マップID]がV[0011]以外<別のマップへ移動した時
 ◆スイッチの操作:[0001:ドラホコ配置確認]をONにする<移動先でのマップイベントの有無を確認
 ◆スイッチの操作:[0011:ドラホコ起動中]をOFFにする<このドラホコイベントを止めます
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:小型船に乗っている<小型船が作品内で登場する時のみ設定
 ◆変数の操作:[0005:パーティー人数]代入,0
 ◆スイッチの操作:[0004:乗り物に乗っている]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:大型船に乗っている<大型船が作品内で登場する時のみ設定
 ◆変数の操作:[0005:パーティー人数]代入,0
 ◆スイッチの操作:[0004:乗り物に乗っている]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:飛行船に乗っている<飛行船が作品内で登場する時のみ設定
 ◆変数の操作:[0005:パーティー人数]代入,0
 ◆スイッチの操作:[0004:乗り物に乗っている]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:スイッチ[0004:乗り物に乗っている]がON<1つ以上の乗り物が登場する時のみ設定
 ◆スイッチの操作:[0003:フェードイン不要]をONにする
 ◆スイッチの操作:[0002:ドラホコ初期設定]をONにする
 ◆スイッチの操作:[0011:ドラホコ起動中]をOFFにする
 ◆イベント処理の中断
 ◆
:分岐終了

◆注釈:------------------------------
:  :主人公の移動確認
:  : 

◆変数の操作:[0012:XY2]代入,主人公のX座標<主人公の現在位置(XY)を設定
◆変数の操作:[0012:XY2]乗算,1000
◆変数の操作:[0012:XY2]加算,主人公のY座標
◆条件分岐:変数[0004:XY]がV[0012]以外<前と異なる座標にいる時
 ◆変数の操作:[0004:XY]代入,変数[0012]の値<新しいXY位置を代入
 ◆注釈:------------------------------
  :  :後続キャラの移動
  :  : 

 ◆条件分岐:変数[0013:向き 2人目]が2
  ◆キャラクターの動作指定:ドラホコ2人目,下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が4
  ◆キャラクターの動作指定:ドラホコ2人目,左に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が6
  ◆キャラクターの動作指定:ドラホコ2人目,右に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:向き 2人目]が8
  ◆キャラクターの動作指定:ドラホコ2人目,上に移動
  ◆
 :分岐終了
 ◆注釈:------------------------------<見やすくする区切り線
 ◆条件分岐:変数[0014:向き 3人目]が2
  ◆キャラクターの動作指定:ドラホコ3人目,下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が4
  ◆キャラクターの動作指定:ドラホコ3人目,左に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が6
  ◆キャラクターの動作指定:ドラホコ3人目,右に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0014:向き 3人目]が8
  ◆キャラクターの動作指定:ドラホコ3人目,上に移動
  ◆
 :分岐終了
 ◆注釈:------------------------------<見やすくする区切り線
 ◆条件分岐:変数[0015:向き 4人目]が2
  ◆キャラクターの動作指定:ドラホコ4人目,下に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が4
  ◆キャラクターの動作指定:ドラホコ4人目,左に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が6
  ◆キャラクターの動作指定:ドラホコ4人目,右に移動
  ◆
 :分岐終了
 ◆条件分岐:変数[0015:向き 4人目]が8
  ◆キャラクターの動作指定:ドラホコ4人目,上に移動
  ◆
 :分岐終了
 ◆変数の操作:[0015:向き 4人目]代入,変数[0014]の値<4人目の次の移動方向を設定
 ◆変数の操作:[0014:向き 3人目]代入,変数[0013]の値<3人目の次の移動方向を設定
 ◆変数の操作:[0013:向き 2人目]代入,主人公の向き<2人目の次の移動方向を設定
 ◆
:分岐終了




☆ドラホコを起動する
ドラホコは、
◆スイッチの操作:[0001:ドラホコ配置確認]をONにする
を実行する事で起動します。

オープニングイベントがある時には、
そのオープニングが終わる時に、スイッチ0001番をONにしてください。

オープニングイベントが無い時には、
ゲームが開始するマップのどこかに、以下のイベントを設定してください。
■マップイベント「ドラホコ起動」
▼1ページ目
イベント出現条件:なし
イベント開始条件:自動的に始まる
グラフィック:透明
◆スイッチの操作:[0001:ドラホコ配置確認]をONにする
◆スイッチの操作:[0101:ドラホコを起動した]をONにする

▼2ページ目
イベント出現条件:スイッチ[0101:ドラホコを起動した]がON
イベント開始条件:決定キーが押されたとき
グラフィック:透明
イベント実行内容には何も設定しません。



☆表示人数を変える
仲間が増えた時、または減った時に、画面上の主人公の表示人数を変える時には、
◆メンバーの入れ替え:主人公02を加える
◆変数の操作:[0005:パーティー人数]代入,パーティー人数

と設定してください。



☆場所移動後、ドラホコ準備完了後に自動的に始まるを実行
場所移動を行ったあとに、自動的に始まるのマップイベントを実行したい時には、
その自動的に始まるイベント出現条件スイッチ[0011:ドラホコ起動中]がONにしてください。
▼設定例
▼1ページ目
イベント出現条件:スイッチ[0011:ドラホコ起動中]がON
イベント開始条件:自動的に始まる
グラフィック:透明
◆キャラクターの動作指定:主人公,上に移動,上に移動,上に移動,上に移動
◆指定動作の全実行
◆文章:やっと着いたぞ!
◆スイッチの操作:[0101:街に着いた]をONにする

▼2ページ目
イベント出現条件:スイッチ[0101:街に着いた]がON
イベント開始条件:決定キーが押されたとき
グラフィック:透明
イベント実行内容には何も設定しません。



☆同じマップ内での場所移動
同じマップ内で場所移動した場合、後続キャラは場所移動前の位置に残ってしまいます。
このような時には、以下のように設定してください。
◆場所移動
◆スイッチの操作:[0002:ドラホコ初期設定]をONにする


移動先でのフェードインが要らない場合は、
◆場所移動
◆スイッチの操作:[0003:フェードイン不要]をONにする
◆スイッチの操作:[0002:ドラホコ初期設定]をONにする

と設定してください。



☆テレポート(エスケープ)で確実に後続キャラを表示する
テレポート(エスケープ)を実行する際、移動前と移動先が同じマップである場合は、
後続キャラが移動前の場所に残ってしまいます。
このような時には、テレポート後(エスケープ後)に、
スイッチ[0002:ドラホコ初期設定]がONになるように設定してください。


なお、テレポート先のマップに後続キャライベントが設定されていない場合は、
このONにするスイッチの設定は行わないようにしてください。



☆ロードしたら後続キャラがいない
セーブする前にはちゃんといた後続キャラが、ロードした時にはいなくなる事があります。
セーブした時
ロードした時

ツクールの仕様には、セーブしたマップを編集して保存したあとにロードしますと、
マップイベントが初めに設定されていた位置に戻ってしまうと言う仕様があります。

作品を公開した時には、ゲームの途中でマップを編集する事はありませんので、
このような後続キャラがいなくなる現象にはなりませんが、もしも作品を公開した後に、
作品をバージョンアップ(セーブできるマップを編集)した時には、
このような現象になる事があります。

ツクールの仕様なので、
マップイベントが元の位置へ戻ってしまう現象を防ぐ事はできませんが、
コモンイベント「ドラホコシステム」の中に、
◆条件分岐:変数[0006:バージョン]が1より小さい
 ◆変数の操作:[0006:バージョン]代入,1
 ◆スイッチの操作:[0003:フェードイン不要]をONにする
 ◆スイッチの操作:[0002:ドラホコ初期設定]をONにする
 ◆スイッチの操作:[0011:ドラホコ起動中]をOFFにする
 ◆イベント処理の中断
 ◆
:分岐終了

を設定する事で、自動的に後続キャラを再配置するイベントを実行する事はできます。
条件分岐変数の操作に設定する値はバージョンアップごとに数値を上げてください。



☆補足
後続キャラの移動にキャラクターの動作指定を使っていますので、
別のイベントで指定動作の全実行指定動作の全解除を実行しますと、
正常には動かなくなる事があります。



主人公の並びは、データベース「主人公」主人公の番号通りに並べてください。
 先頭:主人公01
2人目:主人公02
3人目:主人公03
4人目:主人公04

主人公の並び順を変えたり、5人以上の主人公が登場する場合は、
応用ページの並び替えに対応させるを設定してください。



ドラホコは主人公が次のマスへ移動したら、後続キャラの移動が開始されます。
そのために主人公の移動開始2人目の移動開始若干のずれ(隙間)が生じます。
これは構造上、改善する事はできません。



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

 ●ドラホコとは?
 ●歩くと実行するイベント


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