並列処理と決定ボタンについて

ネコムスメ
記事: 64
登録日時: 2017年5月17日(水) 00:49

並列処理と決定ボタンについて

投稿記事by ネコムスメ » 2017年11月06日(月) 15:40

現在、鏡の部屋のようなものを作っています

【並列処理】
プレイヤーが「左キー」を押したとき
└右に移動

プレイヤーが「右キー」を押したとき
└左に移動

プレイヤーが「上キー」を押したとき
└下に移動

プレイヤーが「下キー」を押したとき
└上に移動

というふうに設定したいのですが、
そうすると決定ボタンが働かなくなり、キャラクターとの会話が出来なくなってしまいます。

解決策を教えていただきたいです、よろしくお願いします

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

Re: 並列処理と決定ボタンについて

投稿記事by にゃたま » 2017年11月06日(月) 17:59

ネコムスメ様

こんばんは。

思い浮かんだのはコモンイベントにその処理を移植して移動ルートの設定でイベント名を指定する方法です。
コモンイベントは並列処理にしてスイッチを適当な名前で設定して、
鏡のイベントが始まったらそのスイッチをオンにすることで実現できるかと思います。
但し、このイベントが障害物にぶつかると止まってしまったりするので「移動できない場合は飛ばす」に
チェックを入れておいたほうがいいですね。尚、イベントの速度は標準速で頻度は最高が良いようです。
そのへんは自分で調整してください。あとプレイヤーのダッシュも禁止すべきです。
以上でお役に立てたかわかりませんが……制作頑張ってください。
アバター
あかみどり
記事: 57
登録日時: 2017年7月08日(土) 12:07
連絡を取る:

Re: 並列処理と決定ボタンについて

投稿記事by あかみどり » 2017年11月06日(月) 18:06

こんばんは~

Keymapperのスクリプトを使用して、十字キーを入れ替えちゃうという方法はどうでしょうか?

まずその鏡の部屋に入ったときに自動実行で
イベントコマンド→上級(3ページ目)→スクリプト... 
で以下のスクリプトを実行します。
----------------------------------------------------------------------
1ページ目 自動実行
スクリプト:
Input.keyMapper[37] = 'right'
Input.keyMapper[38] = 'down'
Input.keyMapper[39] = 'left'
Input.keyMapper[40] = 'up'
Input.gamepadMapper[12] = 'down'
Input.gamepadMapper[13] = 'up'
Input.gamepadMapper[14] = 'right'
Input.gamepadMapper[15] = 'left'
スイッチの操作:#0001 鏡の部屋操作 = ON

2ページ目
出現条件:スイッチ0001 鏡の部屋操作
イベント内容空っぽ
----------------------------------------------------------------------
スクリプトの部分はべっ!っと一気に貼り付けちゃってください。
Keymapperはキーボードの、gamepadMapperはゲームパッドの方の設定を変えています。
そしてスイッチ操作で2ページ目に切り替えて自動実行イベントを消します。

この方法で入れ替えれば操作方法を逆にすることが出来ますが、
メニューや戦闘時でも操作方法が逆になってしまいますので、
もう少し設定していきます。

別イベントの並列処理で以下の設定をします。
----------------------------------------------------------------------
条件分岐:スクリプト:Input.isTriggered('cancel')
スクリプト:
Input.keyMapper[37] = 'left'
Input.keyMapper[38] = 'up'
Input.keyMapper[39] = 'right'
Input.keyMapper[40] = 'down'
Input.gamepadMapper[12] = 'up'
Input.gamepadMapper[13] = 'down'
Input.gamepadMapper[14] = 'left'
Input.gamepadMapper[15] = 'right'
スイッチの操作:#0001 鏡の部屋操作 = OFF
:分岐終了

条件分岐:スクリプト:Input.isTriggered('menu')
スクリプト:
Input.keyMapper[37] = 'left'
Input.keyMapper[38] = 'up'
Input.keyMapper[39] = 'right'
Input.keyMapper[40] = 'down'
Input.gamepadMapper[12] = 'up'
Input.gamepadMapper[13] = 'down'
Input.gamepadMapper[14] = 'left'
Input.gamepadMapper[15] = 'right'
スイッチの操作:#0001 鏡の部屋操作 = OFF
:分岐終了
----------------------------------------------------------------------

上記のスクリプトで操作を元に戻しています
上の条件分岐はキーボード、下はゲームパッド用です。
また自動実行のスイッチを切っているので、
メニューを閉じた時に、再び鏡部屋の操作に戻ります。

戦闘を入れる場合は、
敵グループのバトルイベントの条件をターン0にし、
上記のメニュー画面に入るときと同じ事をして下さい。
また、他のMAPに移動して操作を戻すときも
自動実行でスクリプトを実行して元に戻すのを忘れないようにしてくださいね

これらのスクリプトは

スマイル工房ブログ室さん の キー入力判定の色々 という記事と
宝石小箱。さん の 【ツクールMV】戦闘スキッププラグインとキー拡張のおはなし 

という記事で詳しく知ることができます。

※追記
イベント等で選択肢を使うときも上下が逆になってしまうので、
その都度スクリプト実行とスイッチ操作をしなくてはならないので
元に戻すスクリプトとスイッチ操作までを一セットにしてコモンイベント化
した方がいいと思います。
また、鏡の部屋が複数MAPに渡るのなら、メニュー開閉操作の並列処理イベントも
コモンイベント化した方がいいと思います。
---------------------------------------------
Twitter
https://twitter.com/aoki_akamidori
---------------------------------------------
ネコムスメ
記事: 64
登録日時: 2017年5月17日(水) 00:49

Re: 並列処理と決定ボタンについて

投稿記事by ネコムスメ » 2017年11月10日(金) 22:39

にゃたまさま
あかみどりさま

通知に気付かずお返事遅くなり申し訳ございませんでした!!
ご提案頂き感謝します;;;;;
まだ試してはいませんが、どちらも試してみたいと思います!!ありがとうございます;;;

“MV:質問” へ戻る