【解決済み】指定したタイミングで会話文を変更させたい

ぼた餅
記事: 147
登録日時: 2016年7月17日(日) 20:22

【解決済み】指定したタイミングで会話文を変更させたい

投稿記事by ぼた餅 » 2018年10月18日(木) 15:25

こんにちは。
現在行き詰まっておりまして…一言では説明が難しいので、以下を読んでください。

1、1話完結型のゲームを製作中(1話→2話→3話…)
2、各話ごとにNPCの話す内容を変えたい
3、同じ話数の中では何度話しかけても内容は変わらない
4、しかし話数が変わると内容が変わる
5、ただし、一つ前の会話を聞いていないと、次の会話は表示されない

私が頭を抱えているのは「5」のところです。
ようは会話が10パターンあったとして、1話ならパターン1、2話ならパターン2…ではなく、
パターン1を読み、話数が以降すれば次話でパターン2が表示される、ということです。
なので、たとえ6話だろうと、一度も話しかけていなければパターン1で、
二回話しかけていればパターン3が表示されるようにしたいのです。

いろいろと試行錯誤はしたのですが…うーん、私ではどうも閃きません。
みなさん、お知恵をお貸しください。

※NPCごとに変数を用意すれば可能ですが、もっとスマートな方法を希望します。
最後に編集したユーザー ぼた餅 on 2018年10月19日(金) 02:27 [ 編集 1 回目 ]

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

Re: 指定したタイミングで会話文を変更させたい

投稿記事by しぐれん » 2018年10月18日(木) 16:34

セルフスイッチが有効でしょう。
ただし、セルフスイッチは4個しかないのですぐに限界が来ますね。

ただ、これで前の会話を見ているのを必須にする必要はないと思います。
仕様5をカットすれば解決すると思いますが、これをカットできない理由はありますか?
有償でプラグイン作成リクエストに対応しています。
ご興味のある方は、こちらのリンクからどうぞ。
ツクールMV・プラグイン作成依頼受付
ぼた餅
記事: 147
登録日時: 2016年7月17日(日) 20:22

Re: 指定したタイミングで会話文を変更させたい

投稿記事by ぼた餅 » 2018年10月18日(木) 17:06

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

NPCの会話にもゆるーくストーリー的なものを持たせたいと思っていまして、
パターン1「じつはあの子が気になっているんだ」
パターン2「アドレスを交換したんだ」
パターン3「食事に誘ってみたんだ」
パターン4「告白してみようと思うんだ」
みたいなふうに、次話へ以降すると内容が進展するようにしたいのです。

なので、これを「1話ならパターン1」と当てはめてしまうと、
2話3話を見ずに4話のパターン4を見てしまった場合、話が急に飛んでプレイヤーが困惑するのではという懸念がございます。
(上記の例では1から4に飛んでもまぁ理解できますが…)
アバター
しぐれん
記事: 587
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: 指定したタイミングで会話文を変更させたい

投稿記事by しぐれん » 2018年10月18日(木) 17:39

となると、NPCごとに変数しかないと思いますよ。
一番無難で確実です。
プラグインで解決するのは、砂場でトンネルを掘るのにショベルカーを使うようなものです。
有償でプラグイン作成リクエストに対応しています。
ご興味のある方は、こちらのリンクからどうぞ。
ツクールMV・プラグイン作成依頼受付
ぼた餅
記事: 147
登録日時: 2016年7月17日(日) 20:22

Re: 指定したタイミングで会話文を変更させたい

投稿記事by ぼた餅 » 2018年10月19日(金) 02:26

いい感じに解決できたので方法を載せておきます。

○使用プラグイン
トリアコンタンさんの「テンプレートイベントプラグイン」

○イベントの記述内容

コード: 全て選択

◆条件分岐:スクリプト:$gameVariables.value(5) === this.getSelfVariable(2)
  ◆
:それ以外のとき
  ◆プラグインコマンド:TE_SET_SELF_VARIABLE 1 1 1
  ◆
:分岐終了
◆プラグインコマンド:TE_SET_SELF_VARIABLE 2 0 \v[5]
◆条件分岐:スクリプト:this.getSelfVariable(1) === 1
  ◆文章:なし, ウィンドウ, 下
  :  :いち
  ◆
:分岐終了
◆条件分岐:スクリプト:this.getSelfVariable(1) === 2
  ◆文章:なし, ウィンドウ, 下
  :  :に
  ◆
:分岐終了
◆条件分岐:スクリプト:this.getSelfVariable(1) === 3
  ◆文章:なし, ウィンドウ, 下
  :  :さん
  ◆
:分岐終了

変数5=現在の話数
セルフ変数1=会話文のパターン
セルフ変数2=現在の話数(判定用)

上記の例では3パターンまでしか用意していませんが、
「◆条件分岐:スクリプト:this.getSelfVariable(1) === 1」の値を増やすことで、
いくらでもパターンを用意することができます。
また、テンプレートイベントとして呼び出すことで、若干ですが入力の手間も軽減されます。


似たような悩みを抱えている方の力に少しでもなれれば幸いです^^

“MV:質問” へ戻る