2016年5月7日土曜日

半歩移動プラグイン

 RPGツクールMVで使用可能な自作プラグイン「半歩移動プラグイン」の紹介です。


プラグインの説明

 キャラクターの移動単位が1タイルの半分になります。乗り物以外は全て半歩移動になります。イベントごとに半歩移動可否が設定可能で、さらにイベントのトリガーも自由に拡張できます。オプションで斜め移動も選択可能です。通常の斜め移動だと角を移動したときに、不自然に見えてしまうことがありますが、半歩移動と組み合わせると自然に斜め移動できます。

スクリーンショット

OverpassTile.jsとの組み合わせについて

 OverpassTile.jsと組み合わせて使用する場合、ver1.4.4以降をご利用の上、橋のリージョンを以下の例を参考に設定してください。

デモ

デモ(Demonstration)

ダウンロード

プラグインファイルはGithubで公開しています。

ダウンロード(Download)

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

http://opensource.org/licenses/mit-license.php

46 件のコメント:

  1. こんにちは。
    これは要望なのですが歩行モーションフレームを標準の3から最大で8まで増やすことは可能でしょうか?

    ツクールMVの公式プラグインの中に MoreCharacterFrames というものがあります。
    このプラグインは歩行モーションを標準の3フレームから8フレームに増やしてくれますが
    モーションを1ループ(8フレーム)表示するのに5マス程を必要とします。
    要するに月を歩いているようなゆっくりとしたモーションになってしまいます。

    これを2マスで1ループ(8フレーム)、最初の1マス(4フレーム)で右足、後の1マス(4フレーム)で左足を出すようなモーションが欲しいのです。

    もし出来そうであれば実装をお願いします。

    返信削除
    返信
    1. こんにちは。
      プラグインのご利用ありがとうございます。

      むしろ、MoreCharacterFramesを改変した方が早いかもしれません。
      余裕があれば方法を検討してみます。

      削除
  2. ありがとうございました。
    こちらでもいろいろとやってみます。

    返信削除
  3. こんにちは。
    RPGツクールMVの準公式プラグインOverpassTile.jsを使用して橋の上を歩行する際、
    半歩移動許可のままだと、橋をすり抜けてしまって橋の下を歩いてしまいます。
    ※橋の下の階層へと移動してしまいます
    橋の一歩手前で半歩移動を禁止にすれば、正常に橋の上を歩行する事は可能では有りますが・・・、
    どうしても半歩移動のまま橋を渡りたいので、何か方法は有りませんか?
    宜しく願い致します。

    返信削除
    返信
    1. こんにちは!
      プラグインのご利用ありがとうございます。

      上記問題に対応しました。
      ver1.4.4をご利用のうえ、リージョンの設定を追加したブログの画像のとおりに行ってください。

      削除
    2. 迅速な対応に頭が下がります。
      早速、最新Verを使わせて戴きました。
      御陰様で半歩移動のまま橋の上下を移動する事が可能となりました!

      橋の両端に半歩移動の禁止と許可を置いたりして、出来る限り色々と試してみたのですが、
      一歩後に押し戻されてしまったり、閉じ込められて移動出来なくなったりしてしまい、
      どれも上手く行かなかったので、この度のプラグインの改善は大変助かりました!
      本当にありがとうございました。

      削除
  4. こんにちは。半歩移動の座標の取得ですが通常は1マスごとにしか座標を取得できないので
    半歩ごとに取得するようにできないでしょうか?

    いまアクションRPGを作っているのですが主人公のX座標とY座標を割り出してアニメーションが
    出るようにしています。主人公の座標がタイルとタイルの間、つまり半歩ずれた位置にいると
    24pxの誤差が生じてしまいます。ずれていると言ってもほんの少しの差なのですが
    改善できればそのほうが良いと思っています。
    よろしくお願いします。

    返信削除
    返信
    1. たびたびすみません。
      もう一つあるのですが隣接されたイベントに半歩のところから話しかけるとそのどちらも
      同時に起動してしまうのですがどちらか一方だけを起動するというやり方はあるのでしょうか?

      削除
    2. こんにちは。
      プラグインのご利用ありがとうございます。
      どちらも修正が必要なので、可能かどうか検討してみます。

      削除
    3. 検討していただきどうもありがとうございました。

      削除
    4. こんにちは。
      色々検討したのですが半歩移動の座標の取得について、ツクールの変数には小数を入れることが仕様上できない(無理やり入れると他の機能に影響が出る可能性が高い)ので申し訳ないのですが対応は難しいです。

      隣接されたイベントに半歩のところから話しかけた場合に片方しか起動しない件については対応しました。(ver1.4.5)

      削除
    5. 無理な要求をしてすみませんでした。仕様の問題であれば仕方ないと思います。
      隣接イベントの対応有難うございました。

      削除
    6. こんにちは。

      やや面倒ですが新規「変数の小数演算プラグイン」を使って指定範囲内の変数を小数演算可能にしました。
      ここで指定した変数にX座標やY座標を格納すると小数のまま格納できます。
      よろしければお試しください。

      https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/FloatVariables.js

      削除
    7. ありがとうございます。試させていただきます。

      削除
    8. こんばんは。HalfMove と FloatVariables を使っています。
      座標の位置情報の少数演算自体は上手くいっているのですが半歩ずれた位置から移動ルートの設定で移動しようとすると
      本来の指定した歩数よりも短い(半分)距離しか移動しません。
      ずれていない位置からは問題なく命令通りの距離を移動することが出来るので同じような挙動になるように
      対応できないでしょうか。

      削除
    9. こんばんは。
      半歩ズレ位置からの移動ルートの設定でいろいろと試してみた結果、FloatVariables は全く関係がなく
      HalfMoveだけでも同様の事象が起こるようです。

      削除
    10. 強制中無効の設定がONになっているでしょうか?
      同設定が有効になっている場合でも、半歩ズレの位置にいる限りは半歩移動になってしまいます。

      この設定により制作に大きく支障が出る場合、詳細をご相談ください。
      可能であれば別の解決策を提案いたします。

      削除
    11. 強制中無効の設定はONになっています。
      アクションRPG製作中でイベント同士の接触で座標判定を行っています。
      遠投攻撃を行うときに FloatVariables を使うとプレイヤーが半歩の位置にいても座標を取得することが出来、
      その取得したプレイヤーの位置から攻撃用のイベントを発生させて遠投攻撃が出来るようにしています。
      このときにプレイヤーの位置が通常の1マスだと遠投攻撃が移動ルートの命令通りに動きますが
      半歩ずれた位置にいると移動ルートの半分になってしまうといった状態です。

      私はスクリプトは全くの素人なので他の方法があればお教えお願いします。

      削除
    12. 強制中無効をOFFにすることはできないでしょうか?
      もともと同設定はプラグイン適用前に、イベントシーン等をすでに作成しまっている方向けの設定となっています。
      OFFであればどんな場合でも半歩しか移動しないので、プラグイン本来の移動(常に半歩移動)になる想定です。

      削除
    13. 強制中無効をOFFにする。こんな簡単なことに気づかなかった自分が情けないです。
      強制中無効をOFFにすると半歩ずれた位置ではさらに移動距離が半歩になると勝手に思い込んでいました。
      普通に考えれば HalfMove なので0.5の半分にはならないのにいろいろと考えすぎていたようです。
      返答頂きありがとうございました。

      削除
    14. いえいえ、こちらこそ仕様が不完全で混乱させてしまい申し訳ないです。。
      また何かありましたらいつでもご相談ください!

      削除
  5. こんにちは、こちらのプラグイン使用させてもらっています。
    パラメータの設定で左半分や右半分に対しての移動不可地形の設定は出来ないのでしょうか?

    返信削除
    返信
    1. こんにちは。プラグインのご利用ありがとうございます!
      現状では上半分、下半分のみとなります。
      それっぽい感じのタイルセットがあれば機能追加を検討してみます。

      削除
  6. ありがとうございます、了解しました!

    返信削除
  7. イベントのメモ欄にと入れると領域を拡大できると記載されていますが
    それを実行するとY座標が無限に拡大されてしまいます。そこでというように
    真ん中の【.】を【,】に変えると正常に動作するようになりました。
    私の使い方が間違っているかもしれないので前者と後者どちらが正しいか確認をお願いします。

    返信削除
    返信
    1. すみません。タグ閉じでコメントが正常に打てていませんでした。正しくは

      イベントのメモ欄に HM拡大領域:0,0.0,0 と入れると領域を拡大できると記載されていますが
      それを実行するとY座標が無限に拡大されてしまいます。そこで HM拡大領域:0,0,0,0 というように
      真ん中の【.】を【,】に変えると正常に動作するようになりました。
      私の使い方が間違っているかもしれないので前者と後者どちらが正しいか確認をお願いします。

      削除
    2. こんにちは。
      確認しましたところ、カンマ「,」が正しいです。
      座標を「1,1,1,1」のようにすべてカンマ区切りで指定してください。

      ヘルプの記載ミスなので修正しました。
      この度はお手数をお掛けしました。

      削除
    3. 確認していただいてありがとうございました。

      削除
  8. こちらのデモで「キャラクターの浮遊プラグイン」にて浮遊状態の時に外灯の足場へ移動すると
    足場の通行設定が反映されて脱出できなくなるんですが

    返信削除
    返信
    1. デモですので実際の運用の際は、通常の足場と水場の両方を通行可能地形タグに設定する等してください。

      削除
  9. 初めまして。
    トリアコンタン様のプラグインにはいつもお世話になっております。
    重宝させていただいている半歩移動プラグインなのですが
    画面の比率を16:9に変更して減速斜め移動ONにするとキャラクターがぶれながら動いてしまいます。
    できれば16:9の画面でも減速斜め移動を使いたいのですが…対応可能かご検討お願いいたします…!


    返信削除
    返信
    1. はじめまして!
      プラグインのご利用ありがとうございます!

      現象について確認してみますのでしばらくお待ちください。

      削除
  10. すみません、
    自分のほうで改めて調べてみたらYEP様のYEP_CoreEngineで解像度を変更すると
    比率関係なく減速斜め移動がぶれてしまうようで、
    他の方の画面解像度変更プラグイン、ウィンドウリサイズプラグインだと大丈夫でした。
    自分の調査不足でお時間取らせてしまい申し訳ないです…
    半歩移動プラグインはぜひ使いたいものなので、
    他の方のプラグインで解像度を変えたいと思います。

    ご返信ありがとうございました!

    返信削除
    返信
    1. 一応解決ということで了解しました!
      また問題等が発生しましたらいつでもご相談ください。

      削除
  11. デフォルト設定で使用した場合、角回避でイベントがあっても滑って移動できますが
    もどきぷにコンプラグイン併用時にイベント前で停止してしまいます。
    ぷにコン併用時でもイベントがあっても滑って移動できるようにはならないでしょうか?

    返信削除
    返信
    1. こんにちは!
      どちらも移動制御系のプラグインで、8方向移動をそれぞれ別に実装しているので
      対応はちょっと難しいです。

      削除
  12. はじめまして。トリアコンタン様のプラグインにはいつも大助かりしております。
    こちらのプラグインで確認させていただきたいことがあります。
    イベントすり抜けをONに設定時に左右のすり抜けが有効にならないのは仕様でしょうか?
    デモをプレイしている限りだと仕様のようにも思えますが、ヘルプメッセージが「横から接触したとき」となっているので確信が持てなくて…

    返信削除
    返信
    1. はじめまして!
      プラグインのご利用ありがとうございます!

      すり抜けONを設定時でも左右のすり抜けは有効にならない仕様です。
      少し分かりにくいですが「横から接触したとき」は下図のようになるので「上下のすり抜け」が該当します。

      ●←プレイヤー

      削除
    2. 新年早々お返事ありがとうございます。
      環境の問題かともやもやしてたつっかえが取れてすっきりしました。

      削除
  13. もどきぷにコンプラグインの記事がないのでこちらで報告させてもらいますが
    イベントの最初、または文章の表示を1回表示した直後に数字入力の処理を行うイベントを
    マウスやタップ操作で話しかけた場合、個数入力の画像アイコンが表示されません

    返信削除
    返信
    1. 現象を確認しました。
      修正方法を検討しますのでしばらくお待ちください。

      削除
    2. あとダッシュ禁止マップでもダッシュが禁止されません

      削除
    3. こちら対応しました。
      https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/RelativeTouchPad.js

      削除
  14. こんにちは!
    プラグインを便利に利用させていただいております!

    当方スクリプトが残念レベルなため初歩的な質問で申し訳ありませんが、
    移動速度について、斜め移動の際の辺と対角線の差の分速度を遅くしたいと思った場合、斜め方向分どこか4カ所のパラメーターを減らすのかも知れないと思っておりますが
    どの辺を弄れば良さそうでしょう?

    返信削除
    返信
    1. こんばんは!
      プラグインのご利用ありがとうございます!
      プラグインの修正が必要になります。
      おそらく789行目を以下の通りに変更すればご希望の機能が実現できるかと思います。
      この修正を行った上でパラメータ「斜め移動中減速」をONにしてください。

      789行目:
      (paramDiagonalSlow && this.isMovingDiagonal() ? 0.8 : 1);
       ↓
      (paramDiagonalSlow && this.isMovingDiagonal() ? 1 / Math.sqrt(2) : 1);

      削除
    2. 平方根・・危うく実数ぶっこんで小数点に引っかかったりして爆死するところでした・・
      スマートな改造方法をーまで教えていただき有り難う御座います!

      削除