Boltで入力関係のイベントを組み込む【Unity】

ゲームでは当然入力処理の実装が必要です。ここではBoltを使ったときに入力処理をどのように実装するかお見せしたいと思います。

Boltで入力関係のイベントを実装する

ここで扱うのは「入力関係のイベント」を扱います。入力関係のデータを扱うのとはちょっとだけ違いますが、違いに関しては、なんとなく使っていくうちになれるはず。そういった点はビジュアルスクリプティングは良いツールだなーと思いました。

イベントの選択・追加

FlowGraphでUnitを追加します。ここまでは普段どおり。今回は入力イベントを追加したいので、「Events>Input」で表示される中から入力したいものを選択します。今回はOnButtonInputを利用します。

入力処理を設定

OnButtonInputのイベントを追加したら設定箇所が2つあります。今回は下図のように設定をしてみましょう。内容としてはジャンプボタンが押し下げられたときにイベントが発生します。

NameInputManagerに設定してあるキーを指定
Actionイベントの内容を指定
Hold
Down
Up

Jumpボタンなんて設定した記憶ないんだけど?と思うかもしれませんが、こちらのキー名はUnityの設定であらかじめ設定されています。Nameに指定するキーは「Edit>Project Settings」のInput Managerで確認することが出来ます。

下図はJumpのの設定を開いています。UnityEditorでチェックする時はspaceボタンがジャンプボタンにアサインされています。こちらのボタンでゲームを整えると、なにか設定を変更するときも簡単に出来ます。普通のUnityでも利用される機能なので、いつでも使えるようにしておくと便利ですよ。

ボタンが押されたらログを出してみましょう

今回は押されたことがコンソールで確認できるように、ログを表示してみます。

Unitを追加:Debug.Log

まずはUnitを追加します、検索ウインドに「debug.log」と入力します。同じ関数や似たような関数が並んでいます。引数ごとにUnitが用意されているので、自分が使いたいものを選択しましょう。今回はmessageのみを引数としたUnitを選びます

追加されるとこのような状態になります

Inputイベントとログをつなぐ

この状態ではまだログを表示することが出来ません。入力イベントがデバッグログにつながるように線を引きましょう。

線をつなぐ順番はどちらが前後しても違いはありません。ドラッグ&ドロップでも繋がりますし、始点をクリックしてから終点をクリックという順番にクリックしても繋がります。うまく出来ずに一度キャンセルしたい場合は、右クリックでやり直すことが出来ます。

うまくつなげるとこのような色になると思います。

デバッグログのメッセージを入力

オレンジ色の状態はまだ未入力の情報を残したままという意味になっています。messageに文字列を指定する必要があります。

まずはDebug.Logのmessageにある緑のポッチをクリックして線を引っ張ります。なにもないところで再度クリックをします。(ドラッグ&ドロップでも同様のことが出来ます)

すると新規にUnitの追加が表示されます。ここではstring Literalを選択してください。

するとstring(文字列)を入力することができるようになります。

ここにはボタンが押されたときに表示させるメッセージを入力します。今回は「pushed」とコンソールに表示させましょう。stringの中に「pushed」と入力してください。

実行して確認

準備が出来たら実行して確認してみましょう。Unityをプレイしてスペースボタンを押してみましょう。うまく設定が出来ていたらスペースボタンを押したタイミングでフローに変化が出るはずです。

コンソールウインドにもpushedの文字が表示されていれば正常にBoltで入力処理が実装できました。

シンプルな実装ではありますが、基本的にはいろんな入力処理もこれの応用になります。まずはこういった基本ができるようになってから、必要な場所をどんどん変更していくと、自然と複雑な処理もできるようになると思います。