【解決】「会話から嘘つき鬼を探す!」のをやりたい

返信する
nemuimon
記事: 10
登録日時: 2022年6月02日(木) 11:49

【解決】「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by nemuimon »

いつもお世話になっております。
またまた詰まってしまったので質問させてください。

結論から言いますと、今回知りたいことは、イベントの移動ルートをスクリプトから変更するやつで歩行画像を変更した際、ランダム移動で歩かせることができない問題の解決です。

コード: 全て選択

this.character(0).forceMoveRoute({
"list":[
{"code":41, "parameters":['Actor3',1]},
{"code":9},
{"code":0}
],
"repeat":false,
"skippable":false,
"wait":false
})
↑この指定で画像を変更すると、なぜか、このイベントをランダム歩行することができません。



ただ、全体としてやりたいことが分からないと伝わらないと思ったので、長文になりますが経緯をいっておきます。



▼やりたいこと
例えば、
村人が4人いて、その中に一人だけ鬼がいるとします。プレイヤーは鬼を見つけ出したい。しかし鬼は嘘つきなので一見すると誰が鬼か分かりません。
プレイヤーがそれぞれに話を聞くと、皆、同じようなコトを話します。しかし、何度か話を聞くと矛盾が出てきて、なんとなく鬼が誰かわかります。
しかし時間制限か質問回数に制限があるので限られた情報で鬼を見つけなければなりません。

このようなコトをやりたいと、思っています。

ただし、二度目にプレイする際にも、見た目だけでは鬼が誰か分からなくしたい(ランダム)
そのためには毎回キャラクター画像(歩行画像)をランダムに変更したい。
また、できれば出現場所もランダムにしたい。(コレは必須ではない)

▼考えたこと
①まずイベントとして、それぞれ別の会話を話す4人の村人を作成。
②ゲームスタート時、4人の歩行画像(キャラクター画像)を重複しないランダムで設定。
③これはゲーム終了まで変わらないよう変数などに記録しておく。


▼やってみたこと
①トリアコンタン氏の「テンプレートイベントプラグイン」を使用
別のマップに考えうるパターンのイベントを作成し、メインマップで作製したランダム変数に沿って読み込む。

これはたぶんできそうなんですが、なにせ作成イベント数が大量になってしまう。
4種類の人格があるとして、その画像をすべて変えるとすると、1人格につき4つの画像パターンを作成し、それが4人分必要なので、単純計算で16のイベントを作らないといけない。
で、実際には10人くらいの人数を考えているので、そうすると、、、、、ちょっと大変かな~と思っています。


②そこで考えたのが、歩行画像のランダム化です。
4人分の人格キャラクターを作って、その画像をランダムにすれば、誰が誰だかわからなくなるだろう!
実はこれ、簡単にできるだろうと思っていたのですが、探し方が悪いのか方法がひとつしか見つかりませんでした。

それは、イベントの移動ルートをスクリプトで指定するやつの中で、画像を変更する方法です。

いろいろ調べ、以下のようにしたところ、画像はActor3の1に変わるのですが、なぜか歩行してくれません。
ランダム移動の指定は{"code":9}だと思うのですが、、、

コード: 全て選択

this.character(0).forceMoveRoute({
"list":[
{"code":41, "parameters":['Actor3',1]},
{"code":9},
{"code":0}
],
"repeat":false,
"skippable":false,
"wait":false
})
とりあえず、今ぶちあたってる問題としては、この指定で、ランダム移動ができれば良いと思っています。


③その他試したこと、しぐれん氏プラグインの使用
viewtopic.php?t=8805

↑にある、しぐれん氏のプラグインで画像を修正すると歩行させることはできました。
ただ、このプラグインの場合、指定する箇所がそれぞれのイベントの移動ルート内に直接記述することになるため、複数人の指定をランダム関数で重複しないように設定することができない気がするのです。
それができるのならベストかもしれません。


以上、長々と分かりにくい文章ですみませんが、よろしくお願いします。
最後に編集したユーザー nemuimon [ 2022年6月15日(水) 14:33 ], 累計 1 回
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: 「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by 名無し蛙 »

code9はランダム4方向に一歩前進するコマンドであって
ランダム移動ルーチンに切り替えるコマンドではありません。
具体的にどのように初期化しているのかは知らないですけど最初から「自律移動」をランダムにすれば良いのでは。
一応、._moveTypeを1にする事で切り替えられない事もないです。
イベントページが切り替わった時にリセットされますが。

コード: 全て選択

this.character(0)._moveType = 1;
nemuimon
記事: 10
登録日時: 2022年6月02日(木) 11:49

Re: 「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by nemuimon »

またまた名無し蛙さん、ありがとうございます。
なるほど、1歩だけ動かす指定だったのですね。
ただし、、、実際には一歩も動かないんですよねえ。
また、最初から自律移動はランダムにしています。

▼念のためキャプチャを掲載します
001.PNG
これだと画像は変わりますが一歩も動きません

002.PNG
念のため9を取ってみましたが同様です。

003.PNG
そして画像変更の指示を入れない場合には、動き回りますw
この動き方も高速すぎるので、なにかあるのかな?とも思いますが、、、、

ちょっとわけがわからないのです。
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: 「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by 名無し蛙 »

どう見ても「トリガー」を並列処理に指定しているのが原因ですね。
並列処理は独立したインタプリタで毎フレーム実行を繰り返す、という特徴があります。
話の流れで並列処理について触れられてないのでただの設定ミスですかね?
扱いが難しく高負荷の原因になるのでしっかりと挙動を理解していない限り使わない方が良いですよ。
nemuimon
記事: 10
登録日時: 2022年6月02日(木) 11:49

Re: 「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by nemuimon »

途中経過報告です。

名無し蛙さんのコードを参考にいろいろ調べたところ次のコードでできそうな予感です。

コード: 全て選択

this.character(0).setImage("Actor3", 1);
まだ、動いた!って段階なのですが、どなたかが検証していただいていたら申し訳ないので、途中報告をしておきます。
nemuimon
記事: 10
登録日時: 2022年6月02日(木) 11:49

Re: 「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by nemuimon »

名無し蛙さん

ご指摘ありがとうございます。
モロモロちょっと見直してみます。

確かに「並列処理」って、響きだけで負担が大きそうで嫌なんですが、テスト時は手っ取り早いかとおもって指定してしまってました。
nemuimon
記事: 10
登録日時: 2022年6月02日(木) 11:49

Re: 「会話から嘘つき鬼を探す!」のをやりたい

投稿記事 by nemuimon »

とりあえず、、、これでいけそうです!
004.PNG
名無し蛙さん、自分がぜんぜん理解してないのでお手数をおかけしましたが、ありがとうございました!
何かひとつクリアすると別の問題が出てきて、なかなか進みませんので、、、、

今後ともよろしくお願いいたします!
返信する

“MV:質問”に戻る