LNS005a マウス操作

LNS005 Input拡張の拡張スクリプト。ゲーム全体にマウス操作を適用します。





参考資料

デモ動画

手が震えまくってますが気にしないでください。
※動画では以下のスクリプトを併用しています。
LNS005b マウスカーソル
LNS020 Window_Base拡張
LNS026 メッセージ拡張
LNS026a フキダシ
LNS040 マップ,キャラ拡張


基本情報

前提スクリプト

LNS000 追加機能
LNS005 Input拡張
上記のスクリプトが全て必要です。

挿入位置



説明

概要

 ゲームの様々な場面でマウスによる操作を可能にします。ホイール操作についてはLNS005 Input拡張の注意書きを参照してください。

◆ ウィンドウ操作

Window_Selectable 及びそのサブクラスでは、
  • マウスがウィンドウの領域内にあると自動的に相当位置のコマンドを選択します。
  • 左クリックで決定右クリックで(定義されていれば)キャンセルを行います。
  • ホイールが使える場合は、ホイールの操作によってスクロールを行います。
  • Window_Selectable に準じた操作方法のウィンドウ(Scene_Fileのセーブファイルや、Window_NumberInputなど)でも同様の操作が可能です。

◆ マップ操作

  • LNS040 マップ,キャラ拡張 を導入している場合、マップ上の通行可能なマスを左クリックすると、可能ならばそこへ移動します。移動中にイベントが起動した場合、そこで止まります。
    • 迷路などの意義を考慮して、目的地まで 35 マス以上歩く必要がある場合はその場から動きません。この値は RStep_Limit で変更できます。nil にすれば上限を設けませんが、移動量が大きくなると探索に時間がかかるためラグが発生します。
    • LNS040 マップ,キャラ拡張 を導入していない場合、マウス左クリックは隣接するイベントの起動になります。
  • クリックしてからボタンを押し続けると、その方向に進み続けます。縦と横どちらかの方向にしか進めませんが、片方に進めない場合はもう片方に進もうと試みます。SmartDash が有効な場合、プレイヤーキャラからクリック位置までの距離に応じて自動的に移動速度が変化します。
    • LNS040 マップ,キャラ拡張 を導入している場合、マウスボタンを押してから30フレーム経過するとこちらのモードに以降します。
  • 中央ボタンは Aボタン として扱われ、押している間ダッシュします。
    • ただし、SmartDash が有効な場合はそちらが優先されます。
  • イベントに隣接した状態でそのイベントをクリックすると、そのイベントを起動します。カウンターを挟んで反対側にいるイベントを起動したい場合も、そのイベントをクリックします(カウンターをクリックしても何も起こりません)。プレイヤーの足元をクリックすると足元のイベントを起動します。
    • この機能は、標準の Cボタン によるイベント起動とは明確に異なります。Cボタンによる起動では、足元と正面にそれぞれ起動可能なイベントがある場合、足元のが優先され正面のイベントは無視されます。マウスを使う場合、正面のイベントを起動したければ正面のイベントをクリックし、足元のイベントを起動したければ足元をクリックするというように起動対象を自分で選ぶことができます。
    • 足元や正面に複数のイベントが重なっている場合は、ID が最も小さい1つだけが起動されます(標準の動作)。
  • 右クリックでメニューを開きます。
  • メッセージウィンドウなどの操作は上記の [ウィンドウ操作] と同様です。
  • LNS040 マップ,キャラ拡張 を導入している場合、ALTを押しながらマウスカーソルを乗せると、移動可能な地面は緑色に、当たり判定のあるイベントは赤く光ります。当たり判定のない(プライオリティが「通常キャラと同じ」ではない)イベントでは変化しません。また、その位置から移動可能な方向が矢印で表示されます。

◆ 戦闘時操作

  • 通常の選択に加えて、画面上のエネミー画像からも対象を選択できるようにします。
    • 手前に表示されるエネミーが選択される仕様上、配置によっては選択できないエネミーがいる可能性があります。エネミーの配置の際にはなるべく重ならないようにご注意ください。なおそのような場合は通常通りウィンドウから選択してください。
    • カーソルキーで選択する場合、それに合わせてマウスも移動しますが、そのままマウスを動かさなければ対象エネミーが他のエネミーに隠れていても選択対象が変わることはありません。
  • バトラーの選択の際、バトラーグラフィックの周囲が縁取られてより選択状態が分かりやすくなります。
  • ももまるLab様のLNS11a XPスタイルバトル(※現在公開停止中)を導入している場合、アクターも同様にグラフィックから選択できるようになります。


備考

再定義されるメソッド

  • Window_ItemList#select_last
  • Window_SkillList#select_last
選択するべきアイテムが存在しない場合、最後に有効だったインデックスに移動します。

  • Game_Player#real_move_speed
プレイヤー位置からマウスまでの距離に応じて自動的に速度が変更されます(SmartDash 有効時)。
  • Game_Player#move_by_input
マウスによる移動についての動作を追加します。

上記のメソッドを拡張するスクリプトはこれよりも後ろに入れてください。

設定項目

SmartDash<初期値:true>
マウス移動時、マウスカーソルとプレイヤーとの距離に応じて移動速度を変更する。偽の場合、ダッシュキー(Aボタン)が押されている間だけ加速する、通常の処理になる。
RStep_Limit<初期値:35>
マップをクリックしたときに探索する経路の歩数上限。nilで無制限。LNS040 マップ,キャラ拡張を未導入の場合無効。
Alias_Mouse_Input<初期値:(省略)>
マウス入力を通常のボタン入力として扱うシーンとキーのリスト。記述例と記法は以下。
Alias_Mouse_Input[Window_Base] = { A: :M , B: :R , C: :L ,  L: :X1,    R: :X2  }
#                 (クラス名)   = {(内容), (内容), ...}
現在のシーンやウィンドウがキーにない場合、スーパークラスの設定を参照する。(例:Window_SelectableでのBボタンは、Window_BaseでのBボタンの設定に従う)
(内容)の記法は、「:(キー)=>(値)」又は「(キー): (値)」

(値)の意味
nil(未定義)
親クラスの設定に従う
false
エイリアスしない
シンボル
そのシンボルに対応したマウス入力
:L    => 左クリック
:R    => 右クリック
:M    => ホイールクリック
:X1   => 拡張ボタン1(戻る)クリック
:X2   => 拡張ボタン2(進む)クリック
:UP   => ホイール上(奥側)回転
:DOWN => ホイール下(手前側)回転
:ANY  => ホイール回転(方向不問)
[シンボル]
マウスカーソルがウィンドウの外にあった場合 → 中に矯正するメソッドを呼ぶ(Window.auto_adjust が真の場合)
ウィンドウの中にあった場合 → シンボル単体で書いたときと同じ動作



更新履歴

  • 2020/11/29 敵を直接マウスで選択できない不具合を修正


コメント:

すべてのコメントを見る
最終更新:2020年11月29日 01:29