マップ画面であるキーを押すと○○へぷたなすくろーるRPGツクールのブログです。s/ash]プロフィールHN:奈々(なな)RPGツクールVXAceを中心に製作を行っています。できる範囲で他のツクーラーさんのお手伝いができたらなと思っています。マップ画面であるキーを押すと○○このコーナーでは、主に初心者さんに向けたイベントのテクニックを紹介していきます。RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。第六回はマップ画面でキーの入力を受け取るイベントの紹介です。シフトキーを押すとジャンプができるようにするとか或いは仲間との会話ができる、飛行船を呼び出すetc...自作システムの追加には欠かせない機能ですよね!※コメントでの指摘を受けて書きなおしました。アドバイスありがとうございます。つづきはこちら、からどうぞ。キー入力コモン今日も今日とて、使うのは並列処理のコモンイベントですよ~。短~い!しかしこれで完成です。勘の良いひとは気が付いたかもしれませんが殆ど第三回の「判定コモン」と同じです。結局のところキー入力というのは「キーが押されたか」を「判定」するだけなんですね。それから「Input.press?(:C)」は第五回で載せたやつですね。「ボタン○○が押されている」と同じですが、まあスクリプトに慣れてみようということで。若干ですが指定できるキーの数も多いですしね。注意点として、決定キーとキャンセルキーは避けた方が良いです。「決定キーが押されているとメッセージを表示する」と作った場合1、メッセージを送るために決定キーを押すとメッセージが閉じ2、次の瞬間、並列処理なので再びボタンが押されているかの判定が入り3、押しっぱなしの決定キーによって再びメッセージが表示されて1に戻ると無限ループを引き起こしてしまいます。(人間の反応速度では回避ができない)決定キーとキャンセルキーは、他にも選択肢やメニューなど押されることが多いので思わぬ暴発や無限ループを引き起こしてしまうのが難点です。押しっぱなしでは反応しない「Input.trigger?(:C)」はこのイベントとは相性が悪いです。並列処理の起動が2F毎に落とされてるらしく、1/2の確率で入力を感知できなくなります。コメントで指摘して頂いて初めて知りました。triggerを勧める間違った記事を書いてしまって申し訳ないです。「Input.trigger?(:C)」を使えるようにする方法は番外編をご覧下さい。状況を考えて変更するさてさて余談ですが、イベントにしろスクリプトにしろ大事なのはどういう仕組みで動いているかを理解することと状況に応じて使い方を工夫したり手を加えたりすることですね。私が紹介してきた「キー入力コモン」と「判定コモン」は・並列処理の判定部分でスイッチを切り替え・そのスイッチを条件にした自動実行のメイン部分にバトンタッチする方式です。しているかというと、1つは判定とメインの処理を別けることで手直ししやすいのがありますが1番の理由は判定のときは「他のイベントの邪魔をしたくない」のに対してメインの処理を行うときは「他のイベントに邪魔をされたくない」ためです。逆に常に他のイベントを邪魔したくないし、邪魔されることもない「時刻システム」や「装備/状態でキャラグラ変化」は判定の後に直接処理を入れていました。こっちのタイプで、処理が多くなったから別けたいなと思ったときは「コモンイベントの呼び出し」を使うことになります。条件分岐の使い方も同じです。今回のイベント例ではそれ以外の場合でスイッチAのoffが入っています。これを例えば無くして、その代わりにスイッチAで起動するイベントの最後にスイッチAのoffをさせることもできます。単純な処理ならどちらでも大差ないですが、複雑になってくるとこれを使い分けることもあります。