ステージデザイナー・ヘルプファイル - チュートリアル

マップを移動する
マップを移動することで、より大きなゲームを作ることができるようになります。
チュートリアル3で取り込んだオブジェクトの中には、マップ移動を支援するオブジェクトも入っています。
今回はこれを使いつつ、マップ移動の仕組みを説明します。


マップ移動オブジェクトをつかう
まずは移動先のマップを新規作成します。(作成手順はチュートリアル1のときと同じ)
つぎに、以下の図のように移動オブジェクトを配置します。

ここで、それぞれの配置オブジェクトの大きさに決まりはありませんが、上図のように通行できるところをカバーするように
配置してください。また、配置オブジェクトはオレンジ色で示されていますが、サイズ変更してもオレンジ色の領域の大きさが変化しません。
これは、表示の更新ボタン()を押すことで、オレンジ色の領域が設定したサイズに変化します。
(表示の更新の問題なので、ゲームの影響には何ら関係はありません。また、実行時は透明になります。)
この配置オブジェクトに主人公が触れると、マップを移動します。

また、マップの端は通行不可に設定してください。
右図のように、タブ「チップ」を選択し、
配置モードを「通行可否設定」にすると、
・マップ上を右クリックで通行許可
・マップ上を左クリックで通行不可
とすることができます。

bar.png(864 byte)

このオブジェクトを使うには、いくつかの設定が必要です。

はじめに、移動元マップにある「移動パーツ1(→)」の設定をします。
まず上図@部分から「移動パーツ1(→)」を選択し、A部分から「データの設定をする」項目を選択、「設定する」ボタンを押します。
すると、データ設定ダイアログボックスが表示されます。
B部分の「設定する」を設定し、C部分「移動先マップ」と「ペアとなるワープオブジェクト」を設定します。
「移動先マップ」の場合は、D部分を押し、移動先のマップを選択し、設定した後E部分の「変更を適用」ボタンを押して設定します。
「ペアとなるワープオブジェクト」の設定は、D部分を押し、以下の図を参考に設定します。
setmoveparts2.png(61983 byte)
これらの設定が終わったら、E部分の「変更を適用」ボタンを押してください。

移動先マップにある「移動パーツ2(←)」にも同様に設定します。
データ設定ダイアログを表示させた後、「移動先マップ」には移動元のマップを設定し、「ペアとなるワープオブジェクト」には
移動元マップに存在する「移動パーツ1(→)」を設定します。

これで、主人公キャラクターのマップ間移動ができるようになりました。

bar.png(864 byte)


この状態で実行してみましょう。マップ間で移動できていることが確認できます。ただ、移動先マップから元のマップに戻ると、
主人公キャラクターが増えてしまっています。
※作成したマップによっては、主人公キャラクターが2つになってしまったことにより画面の表示がおかしくなる場合もあります。
(カメラ追跡配置オブジェクトがマップ上に2つ存在すると、画面表示が正常に動作しないことがあるため)

これは、再びマップが読み込まれるときに配置オブジェクトを作成してしまうためにおこる現象です。

これを回避するには、以下の設定を主人公配置オブジェクトにほどこす必要があります。
limcreate.png(16595 byte)


マップ移動のしくみ
マップ移動もイベントコマンドによって行われています。移動パーツのイベントをつかって解説します。

このイベントでは、おおむね以下のことを行っています。
行番号 設定内容
0 オブジェクトデータベース「引き継ぐオブジェクト」に設定されている配置オブジェクトとあたり判定されたオブジェクトが
等しいかどうかを比較します。
1 オブジェクトデータベース「あたり判定フラグ」が「判定する」と等しいかどうかを比較します。
2 移動先のマップを読み込む(このイベントコマンドを実行しただけでは移動先のマップは読み込まれません。)
→移動先マップが読み込まれるのは、このイベントを抜けた後です。
(つまりイベントが終了した、もしくは並列処理にてイベントを一時抜けたあとに移動先マップが読み込まれます。)

このイベントコマンドについてはマップをよみこむを参照してください。
イベントの実行制御についてはイベント:イベントの処理方法についてを参照してください。
3 移動元マップにある配置オブジェクトを移動先のマップに移動させます。
(ここでは、主人公キャラクターを移動させています。)
移動先の配置位置は数値で設定することができます。

このイベントコマンドについてはオブジェクトの設定を他マップに引き継ぐ(座標引継ぎ)を参照してください。
また、接続点を設定して配置オブジェクトを移動させることもできます。くわしくは、
オブジェクトの設定を他マップに引き継ぐ(接続点指定)を参照してください。
4,5 移動する配置オブジェクトの配置先を計算しています。
6 配置先にある「移動パーツ2(←)」の「座標設定をする」イベントを呼び出します。

通常、読み込まれていないマップに配置されているオブジェクトを操作したり、呼び出すことはできませんが、
ここで使用されている他配置オブジェクトイベント開始条件を呼び出すに限っては、呼び出し先の
配置オブジェクトが存在するマップが読み込まれた時点で、呼び出したイベントが実行されます。
(このコマンドが実行されている時点では、まだ移動先のマップは読み込まれていません。このコマンドが実行された直後、
並列処理となっているためイベントを抜けることで、移動先マップが読み込まれます。)

行番号2で設定されたマップ読み込み処理は、このイベントが終了したときと、イベントを一時抜けたときに実行されます。
並列処理の場合は、1つのイベントコマンドを実行した直後にいったんイベントを抜けるため、このときにもマップが読み込まれます。
マップが読み込まれると、切り替え元のマップにある配置オブジェクトが実行しているイベントは破棄されます。
ここで、行番号6以外のイベントコマンドには直列処理()が設定されています。
これは、行番号2以降の処理を実行するためには不可欠なものです。(並列処理のイベントコマンドを実行した後はイベントを一時抜けるため、以降の処理が実行されないため)

マップ移動の際は、このようにマップをよみこむイベントコマンドを実行した後に引き継ぎ配置オブジェクトを設定する動作が必要になります。

bar.png(864 byte)

←チュートリアル7へ戻る  チュートリアル9へ進む→
←チュートリアルもくじへ戻る
←トップページへ戻る