イベントを20個以上に増やしたいのですが可能か?

KITCHEN
記事: 47
登録日時: 2021年8月01日(日) 18:10

イベントを20個以上に増やしたいのですが可能か?

投稿記事by KITCHEN » 2022年8月10日(水) 09:52

お世話になります。

2022-08-10_09h45_36.png


画像の様にイベント数が20を超えてしまいそれ以上にしたいと考えています。
可能でしょうか?


100程度欲しいのですが、上限20が仕様なようで悩んでいます。
1度のイベントのテキスト数が膨大な為、出来れば細かく分けたいという希望から
この様な事になりました。
・方法があればよろしくお願い致します。
・無理・難しいと思う方もご指摘いただければ諦めが付きますのでお願い致します

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by しぐれん » 2022年8月10日(水) 12:10

本当に20個以上必要なのでしょうか?
コピペで増やした内容が一部にあったりしませんか?

イベントの見た目が変化しないのであれば、イベント内で条件分岐する方法があります。
ただイベントが巨大なようなので、中身を見ない事には判断できません。
マップデータをアップしていただければ、より精密なアドバイスが出せるかもしれません。
(該当イベントのあるマップの番号に対応したMap000のようなファイルをアップする必要があります。)
現在、プラグイン依頼はお休み中です。
KITCHEN
記事: 47
登録日時: 2021年8月01日(日) 18:10

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by KITCHEN » 2022年8月10日(水) 12:30

お世話になります。ご返信くださりありがとうございます。

>本当に20個以上必要なのでしょうか?
切り詰めて設定をしましたが本当に必要な状態です。

>イベントの見た目が変化しないのであれば、イベント内で条件分岐する方法があります。
コチラも考えました。テキスト量が膨大な為に、分岐での追い掛けが難しい事と後で手直しをする為に
イベントタイトルの付けられたスイッチ名で管理したい為に、イベント数が増やせればと希望しています。

>マップデータをアップしていただければ、より精密なアドバイスが出せるかもしれません。
ご覧頂いてアドバイスを受けられれば幸いですが、内容の事もありそれが叶わず残念です。
お気遣いくださり大変感謝致しております。ありがとうございます。

今考えているのは隣接するマスに続きの20個のイベントを作成し、一つずらして移動させるという方法です。
もし20個以上のイベントを作成する方法がなければ、その手段を用いようと考えます。

引き続き、どなたかイベントを20個以上にする方法がありましたらアドバイス頂ければ幸いです。
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by しぐれん » 2022年8月10日(水) 13:52

可能な限りの対策を行ったうえで、現状の状態なのですね。
そもそも、このイベントが何を実現するためのイベントなのかというのも問題です。
どういった内容のゲームなのか、なぜ単一のイベントのページが20まで大きくなったのか、理由がわかりません。

純粋にテキストの量が多いとしても、普通はそこまで増えないです。
ノベルゲームのような中身である可能性もありますが、他の解決策も考えられるでしょう。
ストーリーの進行に応じて細かく様子が変わる街などであれば、そのぐらいページが増えるのもあり得るでしょうが。

他にはイベント内容をコモンイベントへ押し込む方法があります。
最終手段として、マップ上にあるほかのイベントを起動する形式が考えられますが、これは本当に最終手段です。
(やり方として不安定なため)
現在、プラグイン依頼はお休み中です。
KITCHEN
記事: 47
登録日時: 2021年8月01日(日) 18:10

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by KITCHEN » 2022年8月10日(水) 15:52

しぐれん様
ご返信くださり、ありがとうございます。

>そもそも、このイベントが何を実現するためのイベントなのかというのも問題です。
>どういった内容のゲームなのか、なぜ単一のイベントのページが20まで大きくなったのか、理由がわかりません。
簡単な説明ですが
RPGで、いつも同じ場所にいるキャラクターが進行状況(スイッチ別)ごとに、異なる・長い台詞を言うケースです。
このキャラクターは、MAPの特性上、定位置にいなければなりません。

説明だけですと難しいですが、幾つかアイデアをくださったので、少し大変ですが工夫してみます。
コモンも管理しやすい様に、ほぼ1000個埋まっている状態ですが何とかスキマを作って管理し易いように努力してみます。

何作か作りましたが、毎回こだわって現状この様な形の作品になり、
今回初めてイベントが20以上作れない事を知りました。

ご相談に乗って頂き、ありがとうございます。
また、何か思いつかれましたら、どうかよろしくお願い致します。感謝します。
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by しぐれん » 2022年8月10日(水) 16:59

コモンイベントをすでに1000個使っているのであれば、コモンイベントでの解決は不適切ですね。
一時しのぎにしかなりません。

他の対策は以下のようなものが考えられます。
1.マップをコピーして、対応する。
■利点
今後のイベント増加にも対応しやすい。
■欠点
・移動処理の組みなおしが必要。今後そのマップに入る場合は、コモンイベント経由で行う必要が出てしまう。
・他にも20ページあるようなイベントがある場合、ページ切り換え条件を細かくできない。
ストーリーの大きな動きである程度区切る必要が出る。
今更この方法で解決すると、手間が大きい。
2.ページ多用+内部での条件分岐で対応する。
文章が長いと言ってもさすがに1ページに付き20行を超えることは無いでしょう…と仮定します。
以下の形でイベントコマンドを組むことで、イベントの中身を大きくできる。

コード: 全て選択

◆条件分岐:中ボス撃破済みがON
  ◆文章:なし, ウィンドウ, 下
  :  :たくさんの文章
  :  :その2
  ◆イベント処理の中断
  ◆
:分岐終了
◆条件分岐:王様会話済みがON
  ◆文章:なし, ウィンドウ, 下
  :  :たくさんの文章
  :  :その1
  ◆イベント処理の中断
  ◆
:分岐終了

■利点
・現状で一番低コスト。
・対応可能な範囲が大きい。1ページあたり10分岐と仮定すれば、200通りに対応できる。
・イベント処理の中断を使うことで、他の文章の表示を避ける
・条件分岐である程度まとまるので、イベントが見づらいという問題が発生しない。
■欠点
・既にこの対処方法を使っている可能性がある。

3.この部分だけ別ファイルに記述する。
csvファイルに文章の内容を記載し、それを使う。
利点:理論上無限に容量を取れる。
欠点:イベント編集が面倒。エディタの補助が使えない。

最後の最後の手段として、マップ上の他のイベントを呼び出して起動することでページ数を水増しする方法もあります。
しかし、これは本当に最後の手段であり、管理が複雑になるのでお勧めしません。
最後に編集したユーザー しぐれん on 2022年8月10日(水) 21:29 [ 編集 1 回目 ]
現在、プラグイン依頼はお休み中です。
KITCHEN
記事: 47
登録日時: 2021年8月01日(日) 18:10

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by KITCHEN » 2022年8月10日(水) 18:03

ありがとうございます。とても視野が広がりました。
自分もアレコレ考えては見ましたが、アドバイス頂いた内のいくつかは思い付くことが出来ませんでした。

まだ製作途中なので、どのへんで終わるか、などを想定しこの中から良さそうな案を参照致します。
本当に色々と親身になってアドバイスを下さり嬉しく思います。
改めてお礼申し上げます。本当にありがとうございます。
名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by 名無し蛙 » 2022年8月10日(水) 18:42

KITCHEN さんが書きました:画像の様にイベント数が20を超えてしまいそれ以上にしたいと考えています。
可能でしょうか?

横からですが上限20を突破するだけなら可能ですよ。原理は昔書いたこれと同じですね。
ページ数が20以上になると「EVページ作成」ボタンが無効化されるだけなのでそれ以外の方法でページを増やしちゃえば良いんです。
スクリプト勘がある人ならMapXXX.jsonを開いて該当箇所を直接増やすのも容易ですけど
昔書いたコードに倣ってsaveフォルダに変更したマップデータを出力するコードを貼っておきます。

コード: 全て選択

const eventId = 1; // 対象イベントID
const increase = 20; // ページ増加数
const srcPage = $dataMap.events[eventId].pages[0];
[...Array(increase)].forEach((_, i) =>$dataMap.events[eventId].pages.push(srcPage));
const fs = require('fs');
const dirPath = StorageManager.localFileDirectoryPath();
const filePath = dirPath + "/destMap.json";
if (!fs.existsSync(dirPath)) fs.mkdirSync(dirPath);
fs.writeFileSync(filePath, JSON.stringify($dataMap));
console.log("出力完了");

イベントコマンド>スクリプトから実行してください。
先頭ページの内容を増加数分だけコピーして追加するスクリプトです。
吐き出されたdestMap.jsonを元のマップファイルに上書きすれば反映されますが、
念の為元ファイルはバックアップとして取っておいた方が良いでしょう。
上限を20から100に伸ばすだけなら喫緊の問題は無いと思いますけどページタブが詰まるのが難点ですね。
流石にこの方法を想定したスクロールバーは実装されてない様子。

保守性をあまり軽視するべきではないので
自分ならコモンイベント呼び出しの内部処理を流用したマップイベントの呼び出しを推奨します。
ツクール2000ではイベントコマンドとして正式採用されていたのでよく利用されていた管理方法です。
マップ内限定の簡易コモンイベントとして活用出来ます。

コード: 全て選択

// 対象のイベントID
const eventId = 2;
// 対象のページインデックス
// ※インデックス管理の為、表記上のページ番号から-1する必要あり
const pageIndex = 1;
const eventList = $dataMap.events[eventId].pages[pageIndex].list;
// 対象マップイベントリストの実行
this.setupChild(eventList, this._eventId);


追記
補足1.ページ数100のイベント
ページ数100.png

見ての通り使用可能ですけど非常に見映えが悪いです。
リミッター解除は程々にしておきましょう。

補足2.コモンイベントの上限撤廃
KITCHEN さんが書きました:コモンも管理しやすい様に、ほぼ1000個埋まっている状態ですが何とかスキマを作って管理し易いように努力してみます。

上記の応用でコモンイベントの上限も外せます。
必要なら5000くらい確保しておいても良いと思います。
コモンイベント5000.png

コード: 全て選択

const increase = 4000; // 増加数
const srcCommonEventId = 1000; // コピー元コモンイベントID
const srcEvent = $dataCommonEvents[srcCommonEventId];
[...Array(increase)].forEach((_, i) => $dataCommonEvents.push(srcEvent));
const fs = require('fs');
const dirPath = StorageManager.localFileDirectoryPath();
const filePath = dirPath + "/destCommonEvents.json";
if (!fs.existsSync(dirPath)) fs.mkdirSync(dirPath);
fs.writeFileSync(filePath, JSON.stringify($dataCommonEvents));
console.log("出力完了");
最後に編集したユーザー 名無し蛙 on 2022年8月10日(水) 22:23 [ 編集 1 回目 ]
KITCHEN
記事: 47
登録日時: 2021年8月01日(日) 18:10

Re: イベントを20個以上に増やしたいのですが可能か?

投稿記事by KITCHEN » 2022年8月10日(水) 19:31

名無し蛙 さま

教えて頂き、ありがとうございます。
まだ詳しく試していないので、分からない点がありますがもしかしたら再度お訪ねする事があるかも知れません。
その時にまた宜しければアドバイス頂戴出来れば幸いです。


>保守性をあまり軽視するべきではないので
>自分ならコモンイベント呼び出しの内部処理を流用したマップイベントの呼び出しを推奨します。

コチラのアドバイスもありがとうございます。
現在作りかけのゲームで、このイベントがどのくらい後必要か、どの位で終わるかなどを考えながら
頂戴したアドバイスを元に考えたいと思います。

お二人とも本当に詳しくご案内頂いて嬉しく思います。ありがとうございます。

“MV:質問” へ戻る