LNS103 マウスカーソル

Windows標準のマウスカーソルでなく、オリジナルの画像を表示します。






基本情報

前提スクリプト


拡張タイプ

★ 既成 (導入するだけでゲームの挙動が変化する)
☆ 要画像素材 (特定の画像ファイルが必要)

素材

● 既定値をそのまま使う場合は、以下の画像を Graphics/System に入れてください。
● RTPの画像を加工しているため、ツクールシリーズ以外での利用はご遠慮ください。
Mouse_Cursor.png

Mouse_Invalid.png

Mouse_Select.png

Mouse_Click.png


説明

概要

マウスカーソルをシステムのものではないオリジナルのアニメーションにします。

設定方法

  • カーソルの設定方法は「画像で指定」と「アニメーション(RPG::Animation)で指定」の2種類があります。
  • 基本的には前者のほうが軽量なのでなるべく前者を使い、複雑なアニメーションにしたい場合だけ後者をご利用ください。
  • ただし、アニメーションを設定する場合は LNS101 アニメーション拡張 が必要になります。

  • カーソル画像は定数 Cursor で定義されます。規定値は以下のとおりです。
Cursor = {
  :default => ["Mouse_Cursor",   1,  1, 24, 24, 2],
  :click   => ["Mouse_Click",   24, 24, 48, 48, 2],
  :select  => ["Mouse_Select",  24, 24, 48, 48, 2, 9],
  :invalid => ["Mouse_Invalid", 12, 12],
}

キーのシンボル
:default
標準状態
:click
左クリック時
:invalid
  1. ウィンドウを開いているとき、ウィンドウの外にある場合
  2. マップ画面で、通行不能な地形を選択中の場合
:select
  1. マップ画面で、起動可能なイベントを選択中の場合
  2. 戦闘画面で、バトラーの上にカーソルがある場合

  • 任意のシンボルは省略可能です。
    • 省略した場合は :default が参照され、それも省略されていた場合はシステムのカーソルが使われます。

  • 各キーに対応する値は指定方法によって変わります。(下記参照)

◆ 画像で指定

:select => ["Mouse_Select", 24, 24, 48,  48 ,     2   ,      9    ],
(キー)  => [   "画像名"   , ox, oy, 幅, 高さ, 更新間隔, ループ位置],
(画像名以外は省略可能)

  • 画像名
    • Graphics/System/(画像名)"が読み込まれます。拡張子は省略できます。
    • 存在しない画像名を指定した場合はシステムのカーソルが使われます。
  • ox, oy
    • 画像の転送元原点です。
    • マウスカーソルの位置はここを基準とされるので、例えば三角形のカーソル画像ならその先端がある位置を指定してください。
    • 省略した場合は「幅と高さ」の中心(つまり画像の中心)となります。
  • 幅, 高さ
    • パターン 1つあたりの幅と高さです。
    • アニメーションの最大パターン数はこれを基準に決定されます。
    • 例えば 幅30, 高さ20 の画像に対して、幅=10, 高さ=10 と設定した場合、最大パターン数は [30 / 10] * [20 / 10] = 6 パターンとなります。
    • 画像の大きさがこれらの整数倍でない場合、余った部分は無視されます。
    • 省略した場合、読み込んだ画像をそのまま使います。
  • 更新間隔
    • パターンを更新する間隔(フレーム数)です。
    • Graphics.frame_count がこれの倍数のときにカーソルパターンのインデックスを 1つ進めます。
    • 省略した場合は 6(およそ0.1秒ごと) になります。
  • ループ位置
    • パターンが最後まで到達した場合、ここで指定されたパターンインデックスまで戻って繰り返します。
    • マイナスの値を指定すると最大のインデックスから数えます。例えば -1 の場合、最後のパターンで固定することを意味します。
    • 省略した場合は 0(最初から) になります。

◆ アニメーションで指定

:default => [:animation, "マウスカーソル",   false ],
(キー)   => [:animation,  アニメーション , 左右反転],
(左右反転は省略可能)


  • アニメーション
    • 再生するアニメーションを指定します。
      • 文字列ならその名前のアニメ、数値なら ID を直接指定することになります。
      • 存在しないアニメが指定された場合はシステムのカーソルが使われます。
    • 指定されたアニメーションがループ再生されます。
    • ループ設定の方法は [LNS101 アニメーション拡張] の説明を参照してください。
  • 左右反転
    • 真の場合、アニメーションを左右反転して描画します。
    • 省略した場合は反転されません。


備考

再定義されるメソッド


設定項目

Cursor
カーソル状態とカーソル画像定義のリスト
SS_Cursor_Show <既定値 true >
LNS040 Graphics拡張導入時、スクリーンショットの際にカーソルを含める
  • 偽の場合、スクリーンショット時にはカーソル画像を隠す


更新履歴

  • 2020/12/29 新版公開

  • こんにちは。不具合を発見したのでご報告いたします。 LNS000 組み込み拡張 LNS010 Input拡張 LNS100 プリセット拡張 LNS102 マウス操作 LNS140 マップ/キャラ拡張 の5つを導入した状態で、マップ画面でマウスカーソルをゲームウインドウの外側で大きく動かすなどすると、「 スクリプト 'LNS 140 マップ/キャラ拡張' の 980 行目で IndexError が発生しました。 index -1 too small for array; minimum: 0 」というエラーメッセージが表示され、ゲームが終了してしまいます。 スクリプトは全て最新で、内容は改変していません。 -- 2022-07-26 01:29:40
  • 確認が遅れましたが、対応修正しました。正確には「既に対応済みであったがアップロードを忘れていた」という状態でした…… -- 2022-11-01 15:39:07
  • 対応ありがとうございます!しかし LNS000, 010, 100, 102, 140 の5つを入れた状態で起動直後に「スクリプト 'LNS140 マップ/キャラ拡張' の 1719 行目で NameError が発生しました。 undefined method 'lns102_dash?' for class 'Game_Player'」と表示され、終了します。 -- 2022-12-24 16:39:35
コメント:

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