UE4 スマホ用インプットタッチノード解説

こんにちは、なっつーです。

今回はUE4のスマホ用のインプットタッチノードに関する内容が、探しても意外と出てこなかったので、
備忘録的に記事にしておきます。(Nexsus5にて確認)
※UE4.12.5時点の情報です。

イベントグラフを表示し、ノード一覧からインプットの一番下のリストにタッチノードあり。
d001

d002

Pressedはタッチしたときに実行

Releasedはリリースしたときに実行

Movedはタッチしたまま指を移動させたときにフレーム単位で実行(タッチだけの場合は実行しない)

Locationはvector型の数値で、
 画面の左上を起点(x,y,z)=(0,0,1)とし、
 右に動けばxが増加、
 下に動けばyが増加。
 zは常に1を出力。

 
Finger Indexは、Enum型の数値で、Touch1~Touch10のいずれかを出力。
 タッチした順番にTouch1、Touch2、Touch3・・・・・と指に割り振られる。
 リリースの際は、割り振られた指のFinger Indexが空き状態になる。

例)人差し指、中指、薬指の順番にタッチすると、
 人差し指にTouch1、中指にTouch2、薬指にTouch3が割り振られ、
 中指だけリリースすると、Touch2だけ空きの状態になる。
 その状態で小指、中指の順番にタッチすると、
 小指にTouch2、中指にTouvh4が割り振られる。

同時に複数本数の指をタッチやリリースした場合でも、指の数だけPressedやReleased、Movedが実行される。

例)人差し指と中指を同時にタッチした場合、どちらかの指にTouch1、もう一方の指にTouch2が割り振られ、Pressedが2回実行される。

TouchIndexは各指にタッチ順に割り振られるため、現在何本の指がタッチされてるかを判定するには、
別途ノードを組む必要がある。

d003

Numfingerというint変数を作成し(初期値0)、pressed時に+1、Released時に-1すると、現状のタッチしている指の本数を取得可能。

と、インプットタッチノードについてはこんな感じです。

他にも、Axismappingを使うと
 ローテーター
 フリック
 ピンチイン・アウト
等の情報も取得することができますが、それはまたの機会にでも記事にします。
 

コメントを残す

メールアドレスが公開されることはありません。