【解決済み】YEP_ButtonCommonEventsでボタンの反応を抑制したい

アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by しぐれん » 2017年10月22日(日) 06:02

コンソールの警告ですが、キーコンフィグで既に何らかのシンボルが設定されているボタンを上書きした場合の警告です。
重複しているけど、大丈夫?と表示しています。
InputConfigの上の方に警告のON/OFFの設定があります。
前回何故かボタンを押しても反応しないという報告があったので、その時に追加しました。
動いている限りは問題ないです。

US/JISですが、変更はできなくはないのですがボタンの中身がコロコロ変わると混乱することもあるので、意図的にこの仕様です。
画面のキーレイアウトでそれなりに判断できるだろうと思っています。

回答を忘れていましたが、背景が透けてしまうのは仕様です。
どこをいじるとあのようになるかわかりませんが、個人的に重要度が低いのでスルーです。

現時点での最新版を添付しておきます。

現在、プラグイン依頼はお休み中です。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by にゃたま » 2017年10月22日(日) 11:00

しぐれん様

ほぼ今の仕様で問題はないところまでいきました。
先程キー配置に記載し忘れたのですがNumキーの右側の空いているところにenterキー
が欲しいですね。自分でやってみようかとも思いましたが上下連結させないと
いけないので断念しました。
ちなみにデフォでsimbolにokが指定されている状態が好ましいです。

よろしければご検討いただけましたらと思います。
恐らくこれが最後のお願いになるかと思います。
使っていて何か問題ありましたら連絡させていただきます。

追記
すみません。まだありました。
背景に背景画像を表示したいのでそのような設定項目は作れませんでしょうか?
それか外部から変更できる状態にしていただいても構いません。
パッド及びキーボード画面についてシーン名(Scene_xxxxxxxx.prototype.create)及び
thisなんちゃらっていうウィンドウ名さえ教えていただけたら
自分で加えることもできます。よろしくお願いします。
(最低限シーン名だけでもお願いします。それがわかればウィンドウ名は自分で調べられますので)
あとこちらの一文も先頭に加えていただけたら有効状態を判定できますのでお願いします。
var Imported = Imported || {};
Imported.Mano_InputConfig = true;
アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by しぐれん » 2017年10月22日(日) 12:09

コンフィグのSceneとWindowですが、即時間数で隠してあるので外部からの参照用オブジェクト追加しました。
グローバル名前空間から、Mano_InputConfig.クラス名で取得できます。
Mano_InputConfig.Scene_KeyConfigであれば、キーコンフィグのシーンが取れます。
詳しくはプラグインの一番下にある、exportClassという部分を参照してください、

コード: 全て選択

const exportClass ={
    Scene_KeyConfig:Scene_KeyConfig_MA,
    Scene_GamepadConfig: Scene_GamepadConfigMA,
    Window_InputSymbolList:Window_InputSymbolList,
    Window_GamepadConfig:Window_GamepadConfig_MA,
    Window_KeyConfig:Window_KeyConfig_MA,
};

実際に参照するときは左にある、MAのついていないクラス名を参照してください
右のMAがついているのは、重複を避けるための名前ですので。

NUMキーの隣にあるEnterですが、取得できる入力が通常のEnterと同様のため省略しています。
余計な分岐を一つ増やさないといけないため、EnterRectで処理が増えてしまうのです。
また、Enterキーは変更できないようにロックしているため、表示する必要がないと考えています。
現在、プラグイン依頼はお休み中です。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by にゃたま » 2017年10月22日(日) 13:18

しぐれん様

しぐれん さんが書きました:コンフィグのSceneとWindowですが、即時間数で隠してあるので外部からの参照用オブジェクト追加しました。
グローバル名前空間から、Mano_InputConfig.クラス名で取得できます。
Mano_InputConfig.Scene_KeyConfigであれば、キーコンフィグのシーンが取れます。
詳しくはプラグインの一番下にある、exportClassという部分を参照してください、

コード: 全て選択

const exportClass ={
    Scene_KeyConfig:Scene_KeyConfig_MA,
    Scene_GamepadConfig: Scene_GamepadConfigMA,
    Window_InputSymbolList:Window_InputSymbolList,
    Window_GamepadConfig:Window_GamepadConfig_MA,
    Window_KeyConfig:Window_KeyConfig_MA,
};

実際に参照するときは左にある、MAのついていないクラス名を参照してください
右のMAがついているのは、重複を避けるための名前ですので。


コード: 全て選択

var _Scene_KeyConfig_CreateBackground = Scene_KeyConfig.prototype.createBackground;
        Scene_KeyConfig.prototype.createBackground = function(){
            if(bgBitmapKeyConfig){
                this._backgroundSprite = new Sprite();
                this._backgroundSprite.bitmap =
                ImageManager.loadPicture(bgBitmapKeyConfig);
                this.addChild(this._backgroundSprite);
                return;
            }
            // キーコンフィグ画面の背景ファイルが無い場合
            _Scene_KeyConfig_CreateBackground.call(this);
        };


いままではこんな感じでいけてたのですがScene_KeyConfig is not definedとなってしまいます。
どこがおかしいのでしょうか?クラスとか詳しく知らないのですみません。
アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by しぐれん » 2017年10月22日(日) 13:24

Scene_KeyConfigではなく、Mano_InputConfig.Scene_KeyConfigでお願いします。
名前重複などの事故を避けるために、クラス名に苗字を付けています。

コード: 全て選択

var _Scene_KeyConfig_CreateBackground = Mano_InputConfig.Scene_KeyConfig.prototype.createBackground;
        Mano_InputConfig.Scene_KeyConfig.prototype.createBackground = function(){
            if(bgBitmapKeyConfig){
                this._backgroundSprite = new Sprite();
                this._backgroundSprite.bitmap =
                ImageManager.loadPicture(bgBitmapKeyConfig);
                this.addChild(this._backgroundSprite);
                return;
            }
            // キーコンフィグ画面の背景ファイルが無い場合
            _Scene_KeyConfig_CreateBackground.call(this);
        };
現在、プラグイン依頼はお休み中です。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by にゃたま » 2017年10月22日(日) 13:49

しぐれん様

しぐれん さんが書きました:Scene_KeyConfigではなく、Mano_InputConfig.Scene_KeyConfigでお願いします。
名前重複などの事故を避けるために、クラス名に苗字を付けています。


ありがとうございます。これでいけました。
すみません。また1つ気になったのですがゲームパッドコンフィグのほうで並び順が

select      start
初期設定に戻す   設定を保存
設定を破棄

となっていますが以下のようにしたいです。

select      start
初期設定に戻す  
設定を保存     設定を破棄

設定を保存の前に空欄の項目を入れたいのですがどのようにいじればよいでしょうか?
細かいことですみませんがお願いします。
アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by しぐれん » 2017年10月22日(日) 13:55

コード: 全て選択

Window_GamepadConfig_MA.prototype.exitCommandIndex =function(){
    return this._list.length+2;
};
Window_GamepadConfig_MA.prototype.applyCommandIndex =function(){
    return this._list.length+1;
};
Window_GamepadConfig_MA.prototype.defaultCommandIndex =function(){
    return this._list.length;
};


上のような部分があるので、+1などになっている部分を適当に数値を変更してください。
これで並び順が変わります。
空白入れる場合はサポート外です。
うーん、どうしましょう。
現在、プラグイン依頼はお休み中です。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by にゃたま » 2017年10月22日(日) 14:17

しぐれん様

しぐれん さんが書きました:上のような部分があるので、+1などになっている部分を適当に数値を変更してください。
これで並び順が変わります。


配置は代わりましたが空欄を選択すると画像のエラーになるようです。
回避方法ありましたら教えていただきたく思います。
添付ファイル
スクリーンショット 2017-10-22 14.16.06.png
アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by しぐれん » 2017年10月22日(日) 21:23

processOkを以下のように書き換えてください。
これで落ちなくなるはずです。

コード: 全て選択

Window_GamepadConfig_MA.prototype.processOk =function(){
    const index =this.index();
    if(index <0){
        return;
    }
    if(index===this.defaultCommandIndex()){
        this.processDefault();
        return;
    }
    if(index ===this.applyCommandIndex()){
        this.processApply();
        return;
    }
    if(index ===this.exitCommandIndex()){
        SoundManager.playCancel();
        this.callCancelHandler();
        return;
    }
    if(this._list[index]){
        this.updateInputData();
        this.deactivate();
        this.playOkSound();
        this.callOkHandler();   
    }
};

現在、プラグイン依頼はお休み中です。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: YEP_ButtonCommonEventsでボタンの反応を抑制したい

投稿記事by にゃたま » 2017年10月23日(月) 02:21

しぐれん さんが書きました:processOkを以下のように書き換えてください。
これで落ちなくなるはずです。

ありがとうございます。これで全く問題なくなりました。完全解決です。
キー配置がまだしっくりこない部分もありますがこれはこれで不足はないと思います。
自分で自由に変えれない以上人様に頼るしかありませんので。
今まで長い間お付き合いいただきましてありがとうございました。

完成した暁にはクレジットのほうにプラグイン提供者として掲載させていただきます。
今後もしこのプラグインがバージョンアップした際にはまた世話になることも
あるかもしれませんがその際にはどうかよろしくお願い致します。

結局はYEPのボタンの反応が連続すぎて使いづらいという話でしたが
まさかここまで大掛かりになるとは思っても見ませんでした。
もっと簡単にできると思ってた自分が浅はかでした。
途中で諦めようかと思いましたが粘って正解でした。しぐれん様にはご迷惑おかけしましたが…
キーボード設定の仕様は変わってしまいましたが実はYEPのゲームパッドは
コンフィグ画面で勝手にキーが押されたりしてたまにバグったりしてたので旧GamepadConfigに
乗り換えたのですが今となってはこちら(InputConfig)でかなり満足しております。
あれはかなりイライラの原因になってましたね…
やはりUS/JISが切替できるのは正義です。本当に助かりました!ありがとうございました。
これにて解決済みとさせていただきます。

それでは要件のみですが失礼します。

“MV:質問” へ戻る