【質問】MVにて 表示画像のランダム化

おおあ
記事: 3
登録日時: 2018年9月02日(日) 19:25

【質問】MVにて 表示画像のランダム化

投稿記事by おおあ » 2018年9月08日(土) 02:15

こんにちわ。
現在MVにてゲームを作っています!

作業に当たり、複数のNPCもしくはアイテム等の表示画像を
ゲーム開始時にランダムに選択、表示する方法を探しています。

たとえば、お店のカウンターに展示されているアイテムを
準備してる画像の中からランダムに表示するといった形です。

NPCもセリフやモーションごとランダムに表示されてくれるといいのですが…
並行処理をするとなぜか一つだけしか反応しないなど
変数や乱数を使用してもうまくいかず…

作業が行き詰まってしまいました…
どうかよろしくおねがいします。

アバター
fm445
記事: 5
登録日時: 2018年6月05日(火) 10:36

Re: 【質問】MVにて 表示画像のランダム化

投稿記事by fm445 » 2018年9月11日(火) 21:03

こんばんは!
お店の展示アイテムの画像なら
ゲーム開始時に乱数を発生させて条件分岐
乱数=1の時スイッチ1をon、EVページ出現条件の設定をしてAの画像表示、
乱数=2の時スイッチ2をon、EVページ出現条件の設定をしてBの画像表示…
でいけると思うのですが
EVページは1つあたり20ページが上限なので、それ以上の画像の設定はデフォルトだとできないです。

並列処理、移動ルートの設定→画像の変更でランダムな画像の表示を行うやり方も考えられますが、
EVページで個別に管理した方が作りやすいと思います。

NPC のセリフ、モーションのランダム表示はどんな感じにしたいのか
ちょっとイメージできなかったので、もう少し具体的に教えて下さると
他の方からの反応もあるかもと思います。
おおあ
記事: 3
登録日時: 2018年9月02日(日) 19:25

Re: 【質問】MVにて 表示画像のランダム化

投稿記事by おおあ » 2018年9月17日(月) 09:54

お返事ありがとうございます!

乱数からの条件分岐は思いついたのですが、
スイッチとEVページまでは思いついてませんでした…
やってみます!


>>NPC のセリフ、モーションのランダム表示はどんな感じにしたいのか

セリフ自体は「こんにちわ」や「いらっしゃい」などの凡庸的な内容です。
イベントの絵柄にまた、モーションなども同じように固定している
ものを、複数個用意して、それをランダムで出現させる…というのを想定してました。
(※ランダムで表示されるため、すべて同じ住人が現れてもそれは面白いなと思っていました。)
アバター
fm445
記事: 5
登録日時: 2018年6月05日(火) 10:36

Re: 【質問】MVにて 表示画像のランダム化

投稿記事by fm445 » 2018年9月18日(火) 18:03

こんにちは!
先日スイッチを使ったやり方をご紹介しましたが、
街の人など大量のイベントをランダムにしたい場合は大変だろうなと思い、
少し複雑で難しくみえるかもしれないですが、別なやり方を勉強がてら組んでみたのでご参照下さい~。


●最初に準備するもの

*イベント
・ランダム変化させたい分だけ。画像無しでOK

*スイッチ
・並列処理を行うためのスイッチ

*変数
・ランダム変化させたい人、物の数分の変数(10個のイベントをランダムに変化させたい場合変数を10個用意する)
・代入用の変数
・マップIDを収めるための変数
・イベントIDを収めるための変数

1.png
1.png (44.28 KiB) 閲覧数: 2941 回


1 準備している画像分を上限とした乱数を発生させます。
  それを変化させたいイベント分繰り返します。
  変数の操作が終わったら、スイッチをオンにします。
2.png


2 コモンイベントで「並列処理」を行います。
  細々書き込んでいくのも何なので、下にサンプルの画像を貼りました。
  マップIDの取得は、変数の操作→オペランド[ゲームデータ]→マップIDでできます。
  イベントIDは、イベントをダブルクリックした時に左上に表示されている数字です。
3.png


3 コモンイベントその2。
  変数を使いたかった関係でスクリプトで移動ルートの設定(画像の変更)を行っています。
  表示させたい画像の名前を、ひたすら打ち込んでいって下さい

this.character($gameVariables.value(イベントIDを収めた変数番号)).forceMoveRoute({
"list":[{"code":41, "parameters":['画像名',番号]},
{"code":0}],
"repeat":false,
"skippable":false,
})
  
4.png


セリフのランダム表示については、
文章そのものをランダムに変化させたい場合は、乱数、条件分岐のテキスト入力で
文章の一部をランダムに変化させたい場合は、変数の操作→オペランド[スクリプト]に'文字列'で
書き込んでいけば良い感じではないでしょうか。

説明ベタなもので、わかりにくかったらごめんなさい。
間違っている部分等あったら、それもごめんなさい。
ご参考になれば幸いです。

 

“MV:質問” へ戻る