2016年7月27日水曜日

Edge Screen Movemet - BluePrint

ぜひ覚えたかったことの一つなのでメモ

RTSでよく見られるマウスをviewer端まで持っていくとその方向にカメラが自動的に移動してくれるブループリント
例:マウスポインタがビューワー上端に到達するとカメラが上に移動する。

参照動画

Unreal Engine 4: RTS :: Episode 4 - Camera Movements Part 3


参照BP

ビューワーのサイズとマウスのポジションを取得し、それらの値を用いて画面端のエリアまでマウスが来たらどのような動きをするか判断させる。

例えば

一般的なHDディスプレイを想定して横1920、縦1080からの上の図のようなそれぞれの縦横の数値前後10%、90%の部分を塗りつぶしたエリア(黄色のエリア)にマウスが到達すると画面移動するBPを作成する。
※実際のチュートリアル動画では数値が全幅1に対して0.975と0.25の設定なので本当に端ぎりぎりまでマウスを持ってこないと移動しないようになっている。

UE4のビューワー内のポイントの数値の設定がどうなっているかわからないのですが、例えば左下が(0,1920)で右上が(1920,1080)とかのこと。ソフトによってはセンターが(0,0)のものもある。
多分前者の方だと仮定して(間違っていたらご指摘ください)、適当なポイントを取得します。

マウスポインタが(500,500)の位置にあったとすると、予想できる通り白の範囲でこの場所だと画面移動はしないようにします。
参照BPを見てもらうとして計算すると

X
500/1920 = 0.260
これは設定した0.975より小さく0.025よりも大きいのでグラフをたどっていくとEdgeMouseSpeedXのset 0のnodeに辿り着きます。つまりは動かない。
Yも同様に
500/1080 = 0.462
でたどり着くのはEdgeMouseSpeedYのset 0のnode。

ではマウスポインタが(1920,500)の位置にあった場合はどうか
X
1920/1920 =1
BranchをたどっていくとEdgeMouseSpeedXのset5のnode
Y
500/1080 = 0.462
で先ほどと同じEdgeMouseSpeedY set0になる。
すなわちこの場合は右方向の移動が加わるということ

ほかも上下左にポインターがあった場合も同じ感じになるはずです。


0 件のコメント:

コメントを投稿

キーイベントが効かない原因の一つ set input mode UI Only

BPでロジックを組んでいる最中キーイベントが全く効かなくなる現象が起きました。 例えばキーボードイベントの「X」や「1」を作ってPlay時にそれらのキーを押してもイベントが発生しないということです。 それで原因がわかったのですがタイトルの通り「set input mode...