キーコンフィグ・ゲームパッドコンフィグ

しぐれん

ユーザー
MV/MZ両対応のチャンネルが増えたので再投稿します。
3年間にわたる改造の末、様々な機能を搭載しました。

RPGツクールMV/MZに対応してないコントローラー(ゲームパッド)は少なくないです。
このプラグインを入れることで、対応できるコントローラーが格段に増えます。
間違いなく入れた方が良いと言えるプラグインです。
  • WASD移動
  • ボタンによるコモンイベント呼び出し
  • 他のプラグインによる入力拡張との連携
  • 接続されているゲームパッド情報の表示
  • 設定ミスがある際のガイドメッセージ表示
最新版はgithubへどうぞ。

VisuMZ_1_OptionsCoreとの併用方法
 

Attachments

  • Mano_InputConfig.js
    154.3 KB · 閲覧: 67
最後に編集:

しめさば

ユーザー
メッセージ失礼致します。

Mano_InputConfig.jsをダウンロードさせていただきました。
素晴らしいプラグインをありがとうございます。

一点お伺いしたいことがございまして
設定したキーorボタンを変数に代入する方法はございますか?
「決定キー」を例にしますと・・・

【操作方法説明イベント】
メッセージ:Zで話すことができます。

キーコンフィグで決定(Zキー)をBキーに変更

メッセージ:Bで話すことができます。

といった様に表現したいと思っております。
突然で恐縮ですがお知恵をお貸しいただければ幸いです。
宜しくお願い致します。
 
最後に編集:

しぐれん

ユーザー
機能的には可能ですので調整します。
ただ、どのようにプラグインコマンドやパラメータを設定するかが問題です。
現在の実装では内部実装であるシンボルを意識させない方針のため、現状では難しい部分があります。
 

しぐれん

ユーザー
最近実装を進めていた別の機能と重複する部分があったので素早く実装できました。
新たにプラグインコマンドを追加しました。
ただし、適当な実装なので今後修正する可能性はあります。
 
最後に編集:

しめさば

ユーザー
迅速なご対応ありがとうございます!
ダウンロードさせていただきました!

追記:
使用ツクールをMVとお伝えするのを失念しておりました・・・
今後のご更新でMVにも実装いただければ幸いです。ありがとうございました。
 
最後に編集:

しぐれん

ユーザー
MV向けにプラグインコマンドを追加する予定は無いです。
ヘルプへの追記が必要になり、その管理に手間がかかるためです。

隠し機能扱いとして、MV用にスクリプトで動かせる機能を入れました。
扱いは上級者向け機能ですので、わからない場合はMZへの移行をお勧めします。
◆変数の操作:#0018 一時記録変数 = Mano_InputConfig.GetButtonNameMV("ok")
 

しめさば

ユーザー
隠し機能扱いとして、MV用にスクリプトで動かせる機能を入れました。
ありがとうございます!

添付してくださったjsファイルをMVの新規プロジェクトに導入したところオプションにコフィングが表示されませんでした。
また、SceneManager.push(Mano_InputConfig.Scene_KeyConfig);を実行したところ添付画像のエラーが出ました。
(ver 5.3.0では正常に動作いたしました。)

度々申し訳ございません。
 

Attachments

  • era.png
    era.png
    105.3 KB · 閲覧: 12

しめさば

ユーザー
MVにて動作を確認いたしました。
誠にありがとうございます!理想のキーコンフィグです!

余談ですがMV環境のパッド&キーコンフィグにて「設定を消去」が正常に動作されていない事と
「WASD」を選択すると添付画像のエラーが出ましたこと報告致します。
 

Attachments

  • era-.png
    era-.png
    348.5 KB · 閲覧: 12
最後に編集:

大鳥椎名

ユーザー
お世話になっております。
こちらのプラグインの最新版である7.0.0を確認していたところ、テストプレイ開始時にエラーが発生し、ゲームが起動できない状態になっていたので報告です。
コアスクリプトはバージョン1.4.0で、ダウングレードしてもエラーは解消できませんでした。
お時間のあるときに確認して頂くことは可能でしょうか。

当方は長らくバージョン5.1.0を使用していたのですが、任天堂Swichのプロコントローラーを接続したときにXボタンとYボタンの表示が実際の入力と逆になるバグと、ホリクラシックコントローラーが頻繫にXbox360のコントローラーと誤認されるバグ(こちらのPCの問題かもしれません。初めのうちはホリコンと認識していました)に頭を悩ませていました。
そのため、バージョンで6.0.0から実装された『特定のアクションに対してボタンを割り当てる機能を役立てることができないかと思い、最新版をダウンロードしました。

rmmz_managers.js:2030 ReferenceError: PP_Option is not defined
at setupPP_option (Mano_InputConfig.js:5386)
at Function.DataManager.loadDatabase (Mano_InputConfig.js:5420)
at Scene_Boot.create (rmmz_scenes.js:269)
at Function.SceneManager.changeScene (rmmz_managers.js:2084)
at Function.SceneManager.updateMain (rmmz_managers.js:2056)
at Function.SceneManager.update (rmmz_managers.js:1938)
at Function.Graphics._onTick (rmmz_core.js:811)
at TickerListener.emit (pixi.js:9474)
at Ticker.update (pixi.js:9928)
at Ticker._tick (pixi.js:9679)
 

しぐれん

ユーザー
お世話になっております。
こちらのプラグインの最新版である7.0.0を確認していたところ、テストプレイ開始時にエラーが発生し、ゲームが起動できない状態になっていたので報告です。
コアスクリプトはバージョン1.4.0で、ダウングレードしてもエラーは解消できませんでした。
お時間のあるときに確認して頂くことは可能でしょうか。

当方は長らくバージョン5.1.0を使用していたのですが、任天堂Swichのプロコントローラーを接続したときにXボタンとYボタンの表示が実際の入力と逆になるバグと、ホリクラシックコントローラーが頻繫にXbox360のコントローラーと誤認されるバグ(こちらのPCの問題かもしれません。初めのうちはホリコンと認識していました)に頭を悩ませていました。
そのため、バージョンで6.0.0から実装された『特定のアクションに対してボタンを割り当てる機能を役立てることができないかと思い、最新版をダウンロードしました。
ver7.0.1以降で修正してあります。
最新版はgithubにあるので、プラグインに記載されたURLからリンクを開いてダウンロードしてください。
 
最後に編集:

大鳥椎名

ユーザー
無事に7.0.1にアップデートできました。ありがとうございます。
導入したところ、アクションに対してボタンを割り当てる機能が動いていないように思えます。ボタンに対してアクションを割り当てる従来の機能が優先されて、何度設定を保存しても元に戻ってしまうようです。そちらのほうで、再現できるか確認して頂けないでしょうか。

これとは別に質問があります。
ゲームパッドコンフィグにおいて、ボタンの初期設定(初期配置)を変更する方法について解説しては頂けないでしょうか。パラメータやコードを見ながら試行錯誤しているのですが、どうしてもうまくいかなくて困っています。ご検討よろしくお願いします。
(実在する人物を主人公にしたゲームを作っており、本人に遊んでもらおうと考えています。その人が任天堂のコントローラーをよく使うので、初期設定を○/A=決定、×/B=キャンセルにしたいのです)
 

しぐれん

ユーザー
>アクションに対してボタンを割り当てる機能
これですが、少し前の機能調整の際にデバッグし忘れた部分があります。
今後の更新で無効にする可能性があります。
元々海外フォーラムでリクエストされたので付けたのですが、想定以上に複雑だったのでメンテナンスが大変なのです。

>ボタンの初期設定(初期配置)を変更する方法
今後の更新予定の機能として、初期表示を改善する機能を予定しています。
現在のボタン配置はXBOX/任天堂の設定が混ざっており、半端な状態になっています。
 

大鳥椎名

ユーザー
>アクションに対してボタンを割り当てる機能
これですが、少し前の機能調整の際にデバッグし忘れた部分があります。
今後の更新で無効にする可能性があります。
元々海外フォーラムでリクエストされたので付けたのですが、想定以上に複雑だったのでメンテナンスが大変なのです。

>ボタンの初期設定(初期配置)を変更する方法
今後の更新予定の機能として、初期表示を改善する機能を予定しています。
現在のボタン配置はXBOX/任天堂の設定が混ざっており、半端な状態になっています。
ご返信、そして解説を頂き、ありがとうございます。

>>今後の更新で無効にする可能性
なるほど。了解しました。実際に動かしてみたところ、かえってプレイヤーを混乱させてしまいそうなので、無くても良さそうな機能かもしれないと思っておりました。

>>今後の更新予定の機能
了解しました。マップ製作など、他の部分を作りながらゆっくり更新をチェックしていこうと思います。
ありがとうございました。
 

じよん

ユーザー
お世話になっております。
オプションからゲームパッドコンフィグ、またはキーコンフィグを選ぶと

下記のようなエラーでした
rmmz_managers.js:2030 TypeError: Cannot read property '1' of null
at Function.SceneManager.goto (GALV_AutoCommonEventsMZ.js:262)
at Function.SceneManager.push (rmmz_managers.js:2169)
at Object.gotoGamepad (Mano_InputConfig.js:5663)
at Window_Options.processOk (Mano_InputConfig.js:5509)
at Window_Options.Window_Selectable.processHandling (rmmz_windows.js:1151)
at Window_Options.Window_Selectable.update (rmmz_windows.js:1116)
at WindowLayer.update (rmmz_core.js:4215)
at Scene_Options.Scene_Base.updateChildren (rmmz_scenes.js:129)
at Scene_Options.Scene_Base.update (rmmz_scenes.js:52)
at Scene_Options.Scene_Base.update (CharacterPictureManager.js:820)


GALV_AutoCommonEventsMZ.jsの
下記の部分を除く事でエラーが無くなりました

//Galv.ACE.SceneManager_goto = SceneManager.goto;
//SceneManager.goto = function(sceneClass) {
// if (Galv.ACE.exists('gameOver') && sceneClass && !Galv.ACE.doGameOver) {
// // if gameover scene tries to goto - Cancel and run common event instead - unless event command is used
// const sceneName = String(sceneClass).match(/Scene_(.*)\(/i);
// if (sceneName[1] == 'Gameover') {
// Galv.ACE.runId('gameOver'); // whenever game over happens when NOT using the event command
// return;
// };
// };
// Galv.ACE.SceneManager_goto.call(this,sceneClass);
//};

スクリプトに関しては知識はありません
これは単に競合でどちらかを諦めるべきなのかmzエディターでの設定で回避できることなのか等
アドバイスが頂けたらと思います
 

しぐれん

ユーザー
該当プラグインを調査し、原因が判明しました。
正規表現は失敗した場合の処理が必要ですが、上記のプラグインはその処理を行っていません。
下記の内容に書き換えれば正しく動作するでしょう。

コード:
Galv.ACE.SceneManager_goto = SceneManager.goto;
SceneManager.goto = function(sceneClass) {
    if (Galv.ACE.exists('gameOver') && sceneClass && !Galv.ACE.doGameOver) {
        // if gameover scene tries to goto - Cancel and run common event instead - unless event command is used
        const sceneName = String(sceneClass).match(/Scene_(.*)\(/i);
        if ( sceneName&& sceneName[1] == 'Gameover') {
            Galv.ACE.runId('gameOver'); // whenever game over happens when NOT using the event command
            return;
        };
    };
    Galv.ACE.SceneManager_goto.call(this,sceneClass);
};
 

じよん

ユーザー
エラーなく動作しました
Mano_InputConfig.jsが原因ではないにも関わらず、調査解決をして頂き申し訳なく思います
感謝します、ありがとうございました
 
Mano_InputConfig.jsを使用しオプションからキーボードコンフィグを選ぶと
Cannot read property 'currentName' of null
というエラーが出て止まってしまいます
新しいプロジェクトで試してもダメでした

MZ Core v1.6.0
Mano_Input v9.2.0
 
トップ