ページ 11

【解決済】MessageWindowHidden.jsでボタンを割り当てる際、英字キーを割り当てられるか?

Posted: 2022年12月27日(火) 20:46
by まさゆ
MessageWindowHidden.jsを利用させてもらっています。
基本的な使い方は理解しておりますが、一点質問があります。

実際ボタンを割り当てるとき、選択肢でshift, control, tab などを選択して割り当てが可能ですが、英字キーを割り当てることは可能でしょうか?

私の方では、「テキスト」タブから直接英字キー(DとかFとか・・)を入力して試したのですが、機能しませんでした。
ただ、添付の画像に、「プラグインなどで入力可能なボタンを追加した場合は直接入力」と記載されているので、
何か別のプラグインを入れると英字キーも登録出来るようになるのかな??と思いました。
もしそのような方法があれば教えてください。
windowhidden.png
※元々、こちらで、tabキーをウィンドウ隠しに設定させてもらっていたのですが、ゲームパッド設定管理のプラグイン(Mano_InputConfig.js)の方でtabが割り当てられないとのことだったので、MessageWindowHiddenの方で何かできないか、といった経緯になります。
viewtopic.php?f=99&t=13436

ご確認よろしくお願い致します。

Re: MessageWindowHidden.jsでボタンを割り当てる際、英字キーを割り当てられるか?

Posted: 2022年12月28日(水) 10:31
by Plasma Dark
プラグインの名前だけでなく、入手元も明らかにしておくと回答者や後日記事を参照する方にとって優しいので、意識してみてください。

MessageWindowHidden.js:
https://github.com/triacontane/RPGMaker ... wHidden.js

Mano_InputConfig.js:
https://github.com/Sigureya/RPGmakerMZ/ ... tConfig.js


ツクールMZのキーボード・ゲームパッド操作は、キーコードやボタンIDに対して、操作名(MessageWindowHidden.jsで言われている「入力可能なボタン」のこと)を割り当てることで実現されています。
rmmz_core.jsに Input.keyMapper, Input.gamepadMapper として定義されています。
これはプラグインにより拡張可能で、Mano_InputConfig.js (v9.1.0) でも入力拡張/inputExtensionの設定で追加定義できるように見えます。

Mano_InputConfg.jsでは「入力可能なボタン」が「シンボル」と呼ばれています。
上級者向けの設定で詳しい説明がないので、これについては設定画面を見てわからなければコードを読むか、しぐれんさんにご説明いただくのが良いかと思います。


自前でプラグインを書いて拡張する手段もあります。

コード: 全て選択

(() => {
  'use strict';

  // Dキーにメッセージ隠し操作を割り当てる
  Input.keyMapper[68] = "hideMessage";
})();
Dキーのコードは68です。 (参考: MDN)
hideMessage が「入力可能なボタン」にあたります。
これをプラグインとして保存して読み込み、MessageWindowHidden.jsの設定に文字列として入力することで、Dキーによってメッセージウィンドウを隠すことができます。

これだけではゲームパッドに対応できないので、ゲームパッドも適当な空きボタンに hideMessage を割り当ててあげるのが親切でしょうか。

コード: 全て選択

(() => {
  'use strict';

  // Dキー、LTボタンにメッセージ隠し操作を割り当てる
  Input.keyMapper[68] = "hideMessage";
  Input.gamepadMapper[6] = "hideMessage";
})();
当然ですが、操作を増やせば増やすほどプレイヤーが覚えるべき操作は増えますし、マウス・スマホタッチ操作への対応が難しくなることに注意してください。

Re: MessageWindowHidden.jsでボタンを割り当てる際、英字キーを割り当てられるか?

Posted: 2022年12月28日(水) 13:41
by まさゆ
Plasma Dark さん、フォローアップありがとうございます。

InputExtensionに設定しても動作せず、しぐれんさんとやり取りさせてもらっていました。
未対応とのことでした。

一瞬、MessageWindowHidden.jsのテキストに直に68って書けばDキーでも操作できるようになるのかなと思って試したのですが、ダメでした。そういうことじゃないってことですね。。

それで、わざわざコードありがとうございます。
ただ、既存のコードを一行変更したりというレベルだったら何とかなるのですが、
自分で理解して作成するとなるとまたハードルが高くなってしまい、ちょっと手が出なさそうです。。

ただ、昨日から今日にかけて現状の制約の中で自分で問題解決することが出来まして、
具体的には、MessageWindowHiddenにはPgUp/PgDnキーも追加で割り当て可能で、
Mano_InputConfigがPgUp/PgDnキーに対応していたので、両者を紐付けて解決出来ました。

わざわざお返事いただきありがとうございました。
お手数お掛けしました。