ページ 11

【解決】複数の条件のある分岐

Posted: 2017年3月18日(土) 13:23
by F.konosaki
こんにちは!
RPGツクールMVのイベントの作成で質問がありまして投稿致します。

4人全て仲間になっている、かつ生存している場合、
乱数というのを使ってランダムで文章を表示させるというのは出来たのですが、
戦闘後、死亡している可能性を考慮しておらず、
死亡しているキャラが文章を表示…おかしいですよね。

そこで下記のようなイベントにしたいと思ったのですが、
どのようにイベントを作ればいいのか分かりません。

 ・A、B、C、Dの4人のキャラが居ます。
  (そのうち1人は選択肢によっては仲間にならない)

 ・4人のキャラのうち1~3人の誰かが死亡している場合、
  1~3人の生存者の中から誰か1人が選択肢(場所移動をするかしないか)を出す。

多分、出現条件に仲間になっているかいないかのスイッチを使ったり、
変数に仲間のHPを入れたりするのかなと思ってやってはみたのですが、
初めてゲームを作るので変数や乱数が上手く使いこなせずに出来なかったので、
お分かりになる方がいらっしゃいましたら教えて下さい。
宜しくお願い致します。

Re: 複数の条件のある分岐

Posted: 2017年3月18日(土) 14:19
by トリアコンタン
こんにちは!
イベントコマンドの「条件分岐」を使って表現できます。

・生存している場合の条件(「それ以外の場合」の方に処理を記述します)
2017-03-18.png
2017-03-18.png (31.75 KiB) 閲覧数: 8138 回


・パーティにいる場合の条件
2017-03-18 (1).png
2017-03-18 (1).png (28.66 KiB) 閲覧数: 8138 回


・コマンド例

コード: 全て選択

◆条件分岐:Hロルドがパーティにいる
  ◆条件分岐:Hロルドが戦闘不能になっている
    ◆
  :それ以外のとき
    ◆注釈:ここにメッセージとか
    ◆
  :分岐終了
  ◆
:分岐終了

Re: 複数の条件のある分岐

Posted: 2017年3月18日(土) 14:26
by 奏ねこま
スクリプトを使用した方法を提示してみます。

■下記スクリプトを、イベントコマンド「変数の操作...」の"スクリプト"で指定
var p = $gameParty.aliveMembers(); p[Math.randomInt(p.length)]._actorId

00.png

これで変数の中に、生存メンバーのうち、誰かのアクター番号が入ります。
あとはその変数を条件分岐に使えば、生存メンバーを対象としたイベントが作れると思います。

Re: 複数の条件のある分岐

Posted: 2017年3月18日(土) 15:19
by アイス
上記お二方のベテランさんが解答してるので
入る余地がないですが

一度に複数の条件分岐を作ると
最初はややこしくて自分でもワケわからなくなるので
(ましてや初めてゲームを作成される方なら尚更)
実際に作ってみたので参考にしてみて下さい
以下は添付画像についての解説です
(あくまで一例です)

添付画像ではラベルというコマンドを使いました
これはイベントコマンドのラベルを使う事で
復元ポイント(みたいなもの)が作れます

もし乱数結果がパーティにいないキャラや
死んでいるキャラだった場合
ラベルジャンプで復元ポイントまで飛びます

すると再び乱数を決める処理に戻るので
条件が成立するまで繰り返してくれます


ちなみに余談ではありますが
近年のRPG等では死亡状態を戦闘不能と呼ぶ事も多いです
要するに戦闘する事が不可能であって全く喋れないわけではない
という解釈で分けられている事もあります
(詳しくはRPGなどにおける戦闘不能について調べてみて下さい)
なので質問者さんがキャラにどのような
セリフを吐かせるかどうかにもよりますが
(戦闘不能キャラが「俺様の勝利」なんて言ったらクソワロスですが)
一応、死亡と戦闘不能の概念を頭に入れておいた上で
設定してみるとまた面白いかもしれませんね

皆様、ありがとうございます!

Posted: 2017年3月18日(土) 17:32
by F.konosaki
トリアコンタン様、奏ねこま様、アイス様、
画像まで添付して頂いて丁寧に御説明して下さってありがとうございます!

まだ慣れていないので言葉だけだとコマンド等が何処にあるのか分からずに迷う事が多いのですが、
こうして画像を添付して頂けると分かりやすく、とても助かります!

分からない癖に変数でキャラのHPがO以外の時に~とややこしくしってしまっていたので、
トリアコンタン様のコマンド例を見てハッとしました。
ステートの戦闘不能でスッキリしました!

奏ねこま様のスクリプトを使用するというようなやり方もあるのですね。
初心者には変数にスクリプトを入れて~というのは想像すら出来ない事なので、
他にもこういうやり方もあるんだと教えて頂けるのはとても勉強になります!

トリアコンタン様のやり方で1~4の乱数でやってみたところ、戦闘不能のキャラの時にスルーしてしまうので、
どうしたらいいのか再度質問しようと思っていたところ、
アイス様のラベルとラベルジャンプというコマンドで望む動きをしてくれました!
言葉でラベルコマンドを使えばいいんだよと言われてもきっとポカーンとしてしまっていたと思いますが、
こうやって実際に作って添付して頂けてとても助かりました!

分からない事が多く、調べる時間の方が多くて1つのイベントが出来るのに凄く時間が掛かっていますが、
何度も動画を撮って動きを確認し、キャラ達が自分の思った通りの動きをしてくれると本当に嬉しいですね!

ずっと出来なくて、戦闘不能でもメッセージを出すかいっその事削除しようか悩んでいたので、
解決出来て本当に嬉しいです!
トリアコンタン様、奏ねこま様、アイス様、
お休みの日の貴重な時間を割いて教えて下さり、ありがとうございました!