こんにちは、なっつーです。
今回はUE4のスマホ用のインプットタッチノードに関する内容が、探しても意外と出てこなかったので、
備忘録的に記事にしておきます。(Nexsus5にて確認)
※UE4.12.5時点の情報です。
イベントグラフを表示し、ノード一覧からインプットの一番下のリストにタッチノードあり。
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は各指にタッチ順に割り振られるため、現在何本の指がタッチされてるかを判定するには、
別途ノードを組む必要がある。
Numfingerというint変数を作成し(初期値0)、pressed時に+1、Released時に-1すると、現状のタッチしている指の本数を取得可能。
と、インプットタッチノードについてはこんな感じです。
他にも、Axismappingを使うと
ローテーター
フリック
ピンチイン・アウト
等の情報も取得することができますが、それはまたの機会にでも記事にします。
コメントを残す