ツクール(特にMV)のイベント・マップについて

アバター
KU0
記事: 31
登録日時: 2015年11月12日(木) 20:23
連絡を取る:

ツクール(特にMV)のイベント・マップについて

投稿記事by KU0 » 2016年3月10日(木) 18:48

長くなりそうなのでさっそく本題ですが、
例えばゲームシステムは数日間同じマップに住むゲームだとして、街Aという拠点的なメインマップがあるとします。
日付毎にその街に出没するキャラ、イベントが違ってきます。

こういった場合の時にツクールMVではどういったイベントの作り方が最終的にゲームが重くなったり支障や負担になったりしないかを教えていただきたいのですが…

例えば

1.一つの街Aマップにスイッチや変数などを使って数日間分全てのイベントを詰め込む。

2.街Aマップを必要なだけコピペして日付毎にイベントとマップを分ける。

ツクール詳しい方よろしければ返答お願いしますm(__)m

================================================
Twitter
https://twitter.com/KUforRPGmv
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: ツクール(特にMV)のイベント・マップについて

投稿記事by トリアコンタン » 2016年3月11日(金) 03:04

こんにちは。

処理が重くなる要因として考えられるのは以下の通りです。

A. マップの広さ
B. マップ中のイベントの数
C. マップ中の並列イベントの数(並列のコモンイベント含む)

A.については仕方ないので置いておくとして、問題はB.かと思います。
ツクールでは、マップ上の全てのイベントについて「イベントそのもの」の更新処理と「イベント画像」の更新処理の二つが
1フレーム(1/60秒)ごとに実行されます。
よってイベントの数に比例して処理に負担が掛かります。

1.のやり方だと大幅にイベントの数が増えてしまう場合は2.を検討した方がいいかもしれません。

また、C.についてですが、並列イベントもまた1フレーム(1/60秒)ごとに処理を繰り返し実行するため、無視できない速度低下の要因になります。
そして、これはあまり知られていませんが、並列処理中で変数の操作等を行うと、マップのリフレッシュフラグというものが設定されます。
このフラグが設定されると、全てのイベントについて「どのイベントページを表示するか」を再計算する処理が実行されます。
こちらも当然、イベントの数に応じて処理時間は増大します。
ただし、並列処理のイベントが存在しても処理の最後に十分なインターバル(ウェイト)を挟めば影響を限りなく小さくできます。

基本的にはバグや作業量の少ない1.のやり方で作成して、かつ街のマップに極力並列処理イベントを配置しないようにする方針をオススメします。
テストプレー中にF2キーを押下すると現在のFPSが表示されるので、街マップ中で放置してFPSが60を下回って安定しないようなら2.のやり方を検討するのもアリかと思います。

ただし、スマホでのプレーを視野に入れている場合は、多少の手間が掛かっても処理の負担が少ない方が望ましいので、その場合は最初から2.で作成した方がいいかもしれません。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

Re: ツクール(特にMV)のイベント・マップについて

投稿記事by terunon » 2016年3月11日(金) 10:33

KU0様

いつもツイッターでの制作状況楽しく拝見させていただいてます。
私個人の意見としては、管理のしやすさからマップを複数作るのがいいのではないかな? と考えます。
ツクールMVさんはイベントの出現条件に変数を使うとき≧しか使えないですし、
エディタ上でのイベントの区別も難しくなるので……。

同じ日にちの中でイベントが変化する(例えば夜になったら街中のねこさんが集会場へ行くみたいな)とかは変数やスイッチで良いと思いますが、やはり日付なりでどこかで区切りを設けて分けた方が楽なのかなのが良いのかなと思います。
恐縮ですが、何かのご参考になれば。。。


トリアコンタン様

いつも素敵なプラグインや情報をありがとうございます。
いま話題に上がりましたリフレッシュフラグに関して実は少し困っておりまして、横からになってすみませんがよろしければご回答いただけないでしょうか……?(新規でトピック立てた方がよかった等でしたらすみません。)

当方が制作しているゲームではマップ上でボタン押下で敵に突進攻撃したりといったアクション要素を設けているのですが、
その再使用時間をコモンイベントのループで変数を減らしていくことで管理しており、リフレッシュフラグの問題を抱えています。
それにあたって、リフレッシュフラグが立たない変数みたいな物が使えれば……と考えているのですが、そのような変数をどう作ればよいかわからなくて、よろしければお知恵をいただけないでしょうか。
($gameTempのinitmembersに要素を追加、などでしょうか……?)
terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
アバター
KU0
記事: 31
登録日時: 2015年11月12日(木) 20:23
連絡を取る:

Re: ツクール(特にMV)のイベント・マップについて

投稿記事by KU0 » 2016年3月11日(金) 12:56

お二方返答する時間を頂いてありがとうございます!

>トリアコンタン様
おぉ!求めてた答え以上の答えが返ってきてとても勉強になります!><
マップの広さ/マップ中のイベント数/マップの並列イベント数(コモンイベント込)ですね!
最近イベント数が多くなってきて、「2」のやり方の方が作業やもしかしたら手間が掛かるかもしれないが
マップ数でゲームの処理が重くならないと判断していいならばマップをコピペして各日付のイベントを管理する事にしてみます!

>terunon様
こちらもエイリアスエイクで良い刺激とアイディアを頂いております!
やはり同じマップにかなりの数のイベントがあると区別ができなくなりそうですし、ゴチャゴチャになってしまいそうですね..
なので最終的な管理のしやすさはマップ数で分ける方良さそうですね!そちらの方が処理的には軽くなると判断しても良さそうですし。


まだイベント数がそこまで多くない段階で、いまならまだ分けられる状況で迷っていたので
手遅れになる前で助かりました!お二人方本当にありがとうございましたm(_ _)m
================================================
Twitter
https://twitter.com/KUforRPGmv
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: ツクール(特にMV)のイベント・マップについて

投稿記事by トリアコンタン » 2016年3月11日(金) 20:59

>terunon様

ありがとうございます。陰ながら制作、応援しております。

カウンタ変数の件ですが、$gameTempでも構わないのですが、$gameTempはセーブデータに含まれない値を扱うオブジェクトですので、クールダウン中にもセーブ可能であれば、セーブ→ロードを挟んだ際に不具合が起きないかあらかじめ確認しておく必要があります。

セーブデータに含めたい場合は、$gameSystemに同様の変数を設けるのがよいかと思います。
(プラグイン素材として配布する場合は、こちらのケースでも別途考慮すべき問題がでてきますが、そうでなければ特に問題はないかと思います)

あるいは、$gameVariables._data(変数の操作で設定するゲーム変数が格納されている内部プロパティ)を直接弄ることで、リフレッシュフラグを立てずにゲーム変数を変更する、という方法もアリかと思います。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

Re: ツクール(特にMV)のイベント・マップについて

投稿記事by terunon » 2016年3月13日(日) 11:54

トリアコンタン様

貴重なご助言ありがとうございます!
$gameVariables._data[n]を使うことで、リフレッシュフラグを立てずに変数カウントができました。
おかげさまで動作が軽くなり、大変助かりました。ありがとうございます。

差し支えなければ、拙作エイリアスエイク(全年齢向けゲーム、問題のある描写はないつもりです)のスペシャルサンクス項にもトリアコンタン様を記載させていただいてもよろしいでしょうか……?
terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: ツクール(特にMV)のイベント・マップについて

投稿記事by トリアコンタン » 2016年3月13日(日) 12:03

ありがとうございます!
では、お言葉に甘えて、ぜひよろしくお願いします。 :D
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/

“MV:質問” へ戻る