1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

【質問】ローグライクのような移動ができるプラグインについて

ワタベ2018-12-15に開始した「ゲーム制作」の中の討論

  1. ワタベ

    ワタベ ユーザー

    ググって調べたのですが、見つからないので教えていただきたいです。
    ローグライクRPGのような移動が出来るプラグインを、ご存知の方はいないでしょうか?

    具体的に挙げますと、
    「プレイヤーが一歩移動する」 → 「イベントも一歩移動する」
    というような移動です。

    プラグインについての情報を御存知の方は、
    教えていただけると助かります。
     
    #1
    エルトン神無月サスケ がいいね!しています
  2. 猫二郎

    猫二郎 ユーザー

    プレイヤーが一歩移動するとイベントも一歩移動するプラグインや方法は自分は知りませんが、マウス操作を廃止して、キーボードでの移動操作やトリアコンタン様のピクチャーのボタンを利用したボタン移動方法なら、思いつきます。

    ・「イベントエディタ」にある条件分岐のボタン[ ]を押している時という命令文
    ・シンボルエンカウントでも利用されるようなイベントの範囲内と範囲外で反応することができるイベントかプラグイン

    などの二つを利用すれば、できるのではないのでしょうか?

    もしくは、ツクールMVで距離を計算するプラグイン

    https://qiita.com/sakura-crowd/items/a8067e4889c70cd1baa6

    これをかなり細く設定し、別のプラグインも併用しながらやれば、もしかしたら、マウス操作でも可能かもしれません。
     
    #2
    ワタベ神無月サスケ がいいね!しています
  3. ワタベ

    ワタベ ユーザー

    猫二郎さん。
    ご返信ありがとうございます。いつもお世話になっております。

    自動イベントで選択肢を表示し、
    プレイヤーが『上』『下』『左』『右』を選択して移動後に敵イベントも移動・・・。
    というシステムをイベントコマンドで試しにツクってみたのですが、
    テンポが非常に悪かったのです。

    普通に移動できて、こちらが一歩動くとイベントも一歩動く・・・
    みたいなプラグインがあったらな~と思って質問してみました。

    もう少し調べてみます。
    ありがとうございました。
     
    #3
    神無月サスケ がいいね!しました
  4. zontagu

    zontagu ユーザー

    #4
    ワタベ神無月サスケ がいいね!しています
  5. 猫二郎

    猫二郎 ユーザー

    自分は単に

    ・プレイヤー操作用イベント
    →イベントは自動実行で、方向キー毎に移動する様にするだけ
    スクリーンショット 2018-12-17 20.21.03.png
    このイベント内に決定キーやキャンセルキーで何らかのアクションを追加できると思いますが・・・。
    スクリプトで決定キーやキャンセルキー、シフトキー以外のボタン設定はできます。ツクマテの方で再々見かけます。

    ・プレイヤーを認識して行動するイベント
    視界内で一歩ずつ前進し、視界外だとランダムに行動するプラグイン又はイベントを作るだけ。

    のつもりでしたが・・・。
    マウス操作はできませんが、キーボードや何らかのボタン形式だと割と動きます。
     
    最後に編集: 2018-12-17
    #5
    エルトン, ワタベ神無月サスケ がいいね!しています
  6. ネコタ

    ネコタ ユーザー

    その方法をやってみたことがあるのですが、たしか押しっぱなしの時の挙動が問題になった気がします。あと、キーを何回か押したときのタイミングでも狂うことがあった気が。

    プレイヤーとイベントの移動にずれが出てきたり、壁なんかで進めないときの認識も組まなきゃいけなかったりと、想像以上に煩雑でした。

    なので、この問題はプラグインでないとちょっと厳しいと判断した記憶があります。
     
    #6
    エルトン, 猫二郎, 神無月サスケ他1人 がいいね!しています
  7. ワタベ

    ワタベ ユーザー

    いちおう希望通りの動きが出来るものを見つけたので、アップしておきます。

    見つけたのはツクマテさんで、厳密にはプラグインじゃないみたいですけど。
    https://tm.lucky-duet.com/viewtopic.php?t=4471
    エラーとか怖いけど、とりあえず試作していきます。

    情報については引き続きいただけると助かります。
     
    #7
    猫二郎 がいいね!しました
  8. ワタベ

    ワタベ ユーザー

    お~、本格的なローグライクのプラグインですね!
    ただ自分はガチのローグライクをツクろうとしていたわけではないので、
    ここまで高性能なものは必要なかったです。
    情報、ありがとうございました。
     
    #8
    猫二郎 がいいね!しました
  9. エルトン

    エルトン ユーザー

    既に見つけているようですが、自分なりの解法を。

    とりあえず5体を動かしてみた。

    まずは並列処理用のイベントを適当なところへ、
    下以外は1しかフラグをONにしてないが、見やすくするためで実際には各方向に1~5を入れる。
    rlw1.PNG

    で、敵はこんな感じ。
    イベントの1ページには特に何もないコウモリが表示されるだけのイベントです。
    rlw2.PNG

    ただ移動速度変更とかをしてあげないと、5体が順番に移動していくので1歩にとても時間がかかります。

    追記:
    移動速度変更してもかなり時間がかかりました!
    これはだめですね(オイ

    追記2:
    これ、別にキー分岐いらなくね?
    と思ったらやっぱりいらなかった!これでマウスにも対応だ!
    でも追記の問題は解決してないね!
     
    最後に編集: 2018-12-18
    #9
    ワタベ猫二郎 がいいね!しています
  10. エルトン

    エルトン ユーザー

    改良した。
    並列処理にはとりあえずキー条件分岐はいらない。
    そして敵とは別にウェイト用のイベント用スイッチを追加。
    rlw1.PNG

    敵は、移動が自動実行だったのを並列実行に変更。
    移動速度を6(4倍)に設定。

    そして敵と似たような構成のウェイト用イベントを作成
    こちらは自動実行。1ページ目には相変わらず何もないイベント。
    rlw2.PNG

    これでダッシュしても敵が何体してもスムーズに移動した。
    私がためした限りだと、自分や敵の移動の同期がズレる事もなかった。
     
    #10
    ネコタワタベ がいいね!しています
  11. ワタベ

    ワタベ ユーザー

    画像まで添付していただき、ありがとうございます!
    見つけたプラグインがエラーなどで、どうしようもなくなった時に導入するかもです。
    一点、気になったのは戦闘イベントが正常に動作するかです。
    自分がイベントでやろうとしたときは敵イベントを『すり抜け』にし、
    プレイヤーの位置を取得した変数と敵イベントの変数が合致すれば戦闘開始としていました。
    ただ、そうすると敵が移動するときに壁をすり抜けてしまったりと、いろいろ問題があったので。

    ご検討下さり、ありがとうございます。
     
    #11
  12. エルトン

    エルトン ユーザー

    「すり抜け」を有効にするのではなく、
    イベントのプライオリティを「通常キャラの下」「通常キャラの上」のどちらかにすれば問題なく動作します。
    方法も座標一致の判定で問題ないかと。

    あと敵の「移動ルートの設定」だけど、上記例だと「移動できない場合は飛ばす」が有効になってなかった。
    「移動できない場合は飛ばす」をチェックしないと若干挙動がおかしくなるので注意。
     
    #12
    ワタベ がいいね!しました
  13. ワタベ

    ワタベ ユーザー

    >イベントのプライオリティを「通常キャラの下」「通常キャラの上」のどちらかにすれば問題なく動作します。

    それは盲点でした!
    なるほど、確かにその通り!
    ありがとうございます!
     
    #13
  14. エルトン

    エルトン ユーザー

    もういいだろと自分で思ったが、さらに改良。

    改善内容はスイッチの共通化。
    動きは変わらないが、使うスイッチが1つになって敵も完全コピペで量産できるようになった。
    敵が増やしやすくなって制作効率がUPだ!

    まず歩数を監視する並列処理でONにするスイッチを1個に変更。
    rlw1.PNG

    ウェイト用の自動実行イベントでOFFにするスイッチを、その1個のスイッチに変更。
    あとウェイトを9に変更。8でもいいけど、7だとNG。
    敵の移動処理などを増やす場合はウェイトを適時調整する。
    rlw2.PNG

    敵イベントの1ページ目、プライオリティは通常より上に設定。
    プレイヤーから接触されたら戦闘にする。
    rlw3.PNG
    2ページの実行条件を、並列処理でONにした一つのスイッチにする。
    今まであってスイッチON操作は削除。
    条件分岐スクリプトの内容はプレイヤーとの座標一致の確認。
    別にスクリプト使わなくてもできるが、
    使わないほうが変数も使わないし、見やすく処理が軽くなる(気がする)
    rlw4.PNG

    参考までに一応、同座標か調べる条件分岐スクリプト
    (this.character(-1).x == this.character(0).x) && (this.character(-1).y == this.character(0).y)
     
    #14
    ネコタワタベ がいいね!しています
  15. ネコタ

    ネコタ ユーザー

    条件分岐をプレスキーでなく、歩数にする発想は当時無かったです。その着眼点、凄いです。
    確かにそれなら、同期させられますね(試してみたところ内部では先に座標移動が完了し、画像が後から付いてくるような順番っぽいので、プレイヤーとイベントの移動速度を合わせれば見かけ上ほぼ同時に動いているように見えると思われる。もしかしたら、誤差が数フレームあるかもしれないけれど)。

    ランダム移動やプレイヤーに近づくだと、ちょっとした障害物があるとき、そこに向かって歩く(見かけ上は止まっている)のをどうにかしたいところですね。そこは、何かプラグインがあったでしょうか(やろうと思えばイベントでも出来るけれど)。
     
    #15
    ワタベ がいいね!しました
  16. ネコタ

    ネコタ ユーザー

    バグを見つけました。
    プライオリティ下の透明イベントなど、イベントが居る方向には、イベントが移動できないようです。
    聖域の巻物みたいなことができますけど、罠イベントを置いても移動できないから、イベントが通行不可になったり罠の場所がばれるということが起きますね・・・。

    ※追記
    透明イベントにすり抜けを入れたら、行けました。罠イベントを作るときは、すり抜けのチェックを忘れないようにしないといけませんね。
     
    最後に編集: 2018-12-19
    #16
    ワタベ がいいね!しました
  17. ワタベ

    ワタベ ユーザー

    プラグインに頼らずにシステムが出来上がっていく様子がスゴイ。
     
    #17
    ネコタ がいいね!しました
  18. ネコタ

    ネコタ ユーザー

    うーん、何度も動かしてると、稀に戦闘にならないときがありますね・・・。
    スイッチが切れるタイミングなのか、並列処理の敵イベントが走るタイミングなのか・・・。

    あと、細かいところですが、敵が動いてないのに戦闘に突入したように見えるのが気になりました。移動処理(ウエイトなし)後にウェイト4-6フレーム程度入れると、接触して戦闘に入るように見えますが、これやると戦闘にならないという現象が起きやすくなるんですよね。

    戦闘の処理結果が勝っても負けても同じ処理の場合は、一時消去でいいのですが、勝ったとき、逃げた時、負けた時で処理を分ける場合にスイッチ制御のイベントによってスイッチが切られてるせいか処理されなくなることがあります。

    簡便に増やせて良いなと思ったんですが、環境に依存したり、処理が増えたりすると実用に耐えられないかもしれません。凄く惜しいなぁ・・・何とかできないものか・・・。
     
    最後に編集: 2018-12-19
    #18
    エルトンワタベ がいいね!しています
  19. エルトン

    エルトン ユーザー

    さすがにストッパーがないと不安定だったようですね。
    これで直るか試してもらってもいいでしょうか?

    変更するのは敵イベントのみです。

    まず1ページ目のプレイヤー接触戦闘はいらないし邪魔なので削除してください(画像なし)

    2ページ目では移動とセルフスイッチの操作に
    rlw1.PNG

    3ページで戦闘等の処理を入れてください。
    セルフスイッチを元に戻す事と、自動実行であることに注意してください。
    rlw2.PNG


    ランダム移動やプレイヤーに近づくで壁に邪魔されるのを直接解決するプラグインはわかりませんね。
    イベントでどうにかするか、経路探索プラグインを併用するか、やりたい内容次第かな。
    個人的には移動しないパターンはパターンでそれでいいかなって思ってます。

    追記:
    ちなみに前の奴はウェイトイベントのウェイトは短すぎても長すぎてもNGだったんですが、
    少なくとも今回の奴は十分なウェイトがあればいい、はず。
    だめだった場合はウェイトを長くしてみてください。
    カクカクが増えるのでウェイトを長くするも好ましくはないのですが。

    追記2:
    ちなみにアイコンアニメの表示は、処理に十分な時間がかかりそうなイベントをテスト用にひっつけただけです。当然ですが、このシステムには全く無関係なので消しても問題ありません。
     
    #19
    ワタベ がいいね!しました
  20. ネコタ

    ネコタ ユーザー

    これなら、いけました。マウスでのタッチ操作には対応しなくなりました(自動実行なので、動きを止められる)が、仕方ないですよね。敵イベントの移動ページを並列処理にするとタッチで移動しても止まらなくなりますが、戦闘に入らなくなるので、自動実行にしました。
     
    #20
    ワタベ がいいね!しました

このページを共有