ビデオの内容紹介
すでにチュートリアルの 13 回で、マウスなどからの入力を処理していますが、その時に後回しにしていたゲームパッドとタッチの入力のためにブループリントを組みます。動画はそれほど短くありませんが、あっという間に終わります。
原題 Introduction to Third Person Blueprint game – 15 – Character Blueprint : Gamepad and Touch Controls
[1] タッチの処理は自動的に
モバイル用にタッチ入力を利用しますが、実はすでに組み込まれています。
それを確認するために、まず、エンジンのフォルダを表示します。エンジンのフォルダを表示するためには、
[表示オプション] をクリックして、
[エンジンのコンテンツを表示] をクリックします。そこに表示されている「タッチインターフェイス設定」をダブルクリックします。
すると、「Touch Interface」の設定が表示されます。これを見ると、タッチの入力はゲームパッドの入力に結び付けられていることが分かります。つまり、タッチ用の入力は別途セットアップする必要はありません。
[2] ゲームパッドによる入力に備える
第 13 回のチュートリアルでは、次のようなグラフを組みました。
ここでは、それに付け足します。具体的には、まず、次のような TurnRate のためのグラフを組みます。
TurnRate とは、カメラを回転させるのですが、単なる Turn との違いは、速度 (Rate) を使って回転させることができるということです (サードパーソン ブループリント ゲーム入門 (5) 入力関係の準備を参照してください)。アナログ スティックを大きく動かすと、それに応じて回転の速度も上がります。(予め設定してある速度)×(アナログ スティックが中心からずれた量) となるので、カメラの速度が上がることになります。
また、BaseTurnRate (ベースとなる回転の速度) という変数がありますが、この作り方は、もうおなじみだとは思いますが、次のように [変数] をクリックすることから簡単に作ることができます。
[デフォルト値] を設定するためには、まず [コンパイル] してから、(たとえば) 200 と入力します。(チュートリアルの Zak 先生は、最初、BaseTurnRate の初期値を決めていなかったために、動作しませんでした。)
出来上がったグラフは、「WorldDeltaSeconds (フレーム間の秒数)」と「BaseTurnRate (ベースとなる回転の速度)」と「Axis Value (軸の値)」を掛け合わせて、その結果を「Add Controller Yaw Input (コントローラーのヨーの入力に加える)」に供給することによって、アナログ スティックの動きに応じてカメラを回転させています。
なお、アナログ スティックの動きは、この場合、右側の X 軸方向です。この動きは、すでにサードパーソン ブループリント ゲーム入門 (5) 入力関係の準備で設定しています。
上下のカメラの回転も同じように設定します。結果のグラフだけを挙げます。
[3] タッチでジャンプできるようにする
最後に、画面をタッチしてキャラクターをジャンプできるようにします。
意味
Finger Index がつながっているのは、==(equal) です。等しいかどうかを判定する時に使うノードです。つまり、ここでは、タッチした指 (Finger Index ) が 1 本 (Touch 1) に等しければ、Branch (条件の枝分かれ) の True (正しい) に入って行き、Jump するようになります。
[4] 正しく動くか確認する
[プレイ] の横についている▽マークを展開して、
[モバイル プレビュー] を選択します。
これで仮想的なモバイル環境でプレイできるようになります。左右にある円がのがアナログ スティックを模しています。右の円 (アナログ スティック) を X 軸方向 (横方向) に動かす (マウスでドラッグする) と、カメラが横方向に回転します。
上下に (Y 軸方向に) 動かすとカメラも上下に回転します。
画面をタッチ (この場合はクリック) すると、ちゃんとジャンプします。
なお、左側のアナログ スティックを動かすと、前進後退を行います。これは今回の作業を行う前からできていました。
今回は以上です。ありがとうございました。
コメント
とても参考になり助かっております。
一点引っかかったところとしてBPでtouchイベントを検索しようとして
「input touch」と検索すると無くて焦ります。
結局「touch」が該当するイベントで、 BP上に貼り付けた時と表示が異なるので、ハマる人にはハマってしまうのかなーと思いましたので
こちらに記載させていただきます。
有益な情報をいただきまして、ありがとうございます。助かります!