スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ゲーム制作日記<17> リージョン階層

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。



今回紹介するシステムは、リージョン階層です。


前回のゲーム制作日記<16> リージョンコモンイベントの技術を応用し、リージョンによるエリアの区別を作ることで、疑似的な段差(階層)のようなものを生み出そう。そういう発想です。


アイディアが抽象的なので、ピンと来ないかもしれません。
例えば、こんな使い方があります。


tc16-1.png


崖の向こう側に、人がいます。
この男性は、プレイヤーにひたすら近づいてくるウザイ奴です。


tc16-2.png


しかも、崖の向こう側から話しかけてきます。
あろうことか、その態度はとても高圧的。

初対面のくせに「おい」とか言ってくる無礼っぷりです。


tc16-3.png


あんまりウザイので、プレイヤーはレバーを倒してリージョン階層のシステムを起動させます。


tc16-4.png


すると、どうでしょう。

彼は、向こう側から話しかけることが出来なくなったじゃありませんか。


tc16-5.png


気まぐれで、自分のエリアに彼を招き入れてあげたプレイヤー。
しかし、彼の態度は変わりませんでした。


おしまい。




というように、もともとの仕様では崖の向こうからでも接触されたらイベントが起動してしまいます。

ところが、こういう状況では困る!といったことが往々にしてあると思うんです。


それを解消するために、今回のシステムが利用できるわけです。



では、今回のシステムの仕掛けをみてみましょう。


tc16-6.png


このように、プレイヤーの居るエリアはリージョン12番となっています。


このリージョン12番イベントのいるリージョン外はシステムによって区別されているため、イベントの内容が働かない。そんな仕掛けです。

もちろん、最後に話しかけられたように、同じエリアにいればイベントは動くようになっています。



それでは、今回のシステムで必要なものの確認からいきましょう。




【必須】
変数 ×3 (プレイヤー位置X、Y、リージョンID格納用)
変数 ×3 (イベント位置X、Y、リージョンID格納用)
(他、MAP内で追加するイベントの数だけ変数×3が必要)


【推奨】
プレイヤー情報取得用コモンイベント




まずは、コモンイベントの内容を見てみましょう。


tc16-7.png


いくつか方法は考えましたが、今回は一番簡便な方法を紹介します。

はじめに、プレイヤーの位置情報を取得します。
コモンイベントで書いていますが、中身は下の通りです。


コモンイベント : プレイヤー情報取得
tc3-8



これでプレイヤーX軸の位置Y軸の位置を取得できたので、
指定位置の情報取得で、その場所のリージョンID変数プレイヤー階層に格納します。


指定位置の情報取得
tc16-9.png


同様に、注釈内のような形でイベントの位置情報を取得し、変数に格納。
それを使って指定位置の情報取得で、変数イベント階層に格納します。


あとは、これを対象となるイベントの数だけ書いていきます。



全マップに共通する内容であれば、コモンイベントを1個作ればよいですが、実際には全マップ共通にならないことの方が多いかもしれません。

対象のイベントIDが全MAP共通ということは無いでしょうし。


その場合は、


イベント
tc16-10.png


このように、並列処理プレイヤー位置とイベント位置を監視するイベントを各MAPに設置し、場所に応じて内容を変えてください。



これで、プレイヤーイベントリージョンIDは取得できました。
次は、実際の対象となるイベントの内容を見てみましょう。


ウザイ男
tc16-8.png


条件分岐『プレイヤー階層=イベント階層』の時にのみ、イベントの中身が起動するようにします。

こうすることで、接触判定自体は成立しても、条件が整わなければイベントの内容自体は動かないようにできます。



このやり方の場合の注意点ですが、
残念ながら立体交差のところでは通用しません

リージョンIDとしては、キャラクターの層が上だろうと下だろうと、同じリージョンを取得してしまいます。

これについて、何となく対処法の構想はありますが・・・
また必要になったら考えてみます。ちょっと、面倒くさそう。







ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村




☆☆☆☆☆☆☆☆☆ 追記 ☆☆☆☆☆☆☆☆☆



デメリットであった、変数を大量に消費しない方法を思いつきました。


tc16-12.png


よくよく考えたら、こうすれば良かったですね。


イベントのリージョンIDは、イベントが触れた時に直接読み込んじゃう。この処理自体は一瞬なので、結果としては何も起きないように見えます。

これなら、イベントがどんなに増えてもイベント用の変数は3つだけで済みますね。どのイベントが接触してきても、同じ変数に書き込んじゃってOKです。


(ただし、接触のタイミングが悪いと一瞬動きを止められます)
スポンサーサイト

コメント

Secret

プロフィール

猫民のんたん

Author:猫民のんたん

ネコタ:ゲーム作りが趣味の薬剤師。本職とゲーム作りの2足の草鞋を履きこなそうと日々奮闘。

毎週曜日と曜日or曜日に更新予定。


ミノン:ゲーム作り初心者で1児の母。前職はSE/PG。子育てをしながらゲーム作りを行おうと、日々奮闘中。

毎週曜日にブログ更新予定♪

最新記事
最新コメント
月別アーカイブ
カテゴリ
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。