UE4 UMGのウィジェットのパーツを動的に動かす(Set Position)
UMGで作成したウィジェットのパーツを動的にブループリントで動かす方法です。
本来の使い方としては動かすパーツごとにウィジェットを切り分ける。といった感じなのかなと思いますが
一応ウィジェット内のパーツを動かしたいなーと思ったので調べてみました。
ここらへんのサイトを参考にさせていただきました。
・【UE4】UMGを使ったUIの実装+ (その1)
http://meganeo.blog.shinobi.jp/ue4/%E3%80%90ue4%E3%80%91umg%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9Fui%E3%81%AE%E5%AE%9F%E8%A3%85%EF%BC%8B%20-%E5%AE%9F%E8%A3%85%E7%B7%A8-
[UE4] UMGのアニメーションと動的な配置
http://monsho.blog63.fc2.com/blog-entry-158.html
・ウィジェットを任意の場所に動かす方法・その1
http://imoue.hatenablog.com/entry/2015/11/10/174804
どうも、ウィジェットのパーツの「Image」などには直接「Set Position」などの処理は実行できないようです。
ただし、「Canvas」に対しては結構いろいろできるようなので、
まずは動かしたいパーツを「Canvas」の子として配置します。

キャンバス単位で動かすことになるので、子の配置の場所に気を付けましょう。
「Canvas」は作成したデフォルト状態だと変数としてアクセスできる状態にないため、
詳細タブの「Is Variable」にチェックをいれて、変数として使えるようにします。

そうすると、ブループリント上で「Canvas」に対してアクセスできるようになります。

あとは、この「Canvas」の変数に対して「Set Position」ノードを接続して実行することで、
「Canvas」が移動し、子であるパーツも一緒に動かすことができます。

とりあえず、上記のブループリントではマウスの位置に追従するようにしています。
「Canvas」変数は使うために「Slot as Canvas Slot」で変換しないといけないことに注意しましょう。
あまりこういった使い方は推奨されてないかもしれませんが、
ウィジェット内のパーツでいろいろやる場合は「Canvas」を使うとよさそうですね。
本来の使い方としては動かすパーツごとにウィジェットを切り分ける。といった感じなのかなと思いますが
一応ウィジェット内のパーツを動かしたいなーと思ったので調べてみました。
ここらへんのサイトを参考にさせていただきました。
・【UE4】UMGを使ったUIの実装+ (その1)
http://meganeo.blog.shinobi.jp/ue4/%E3%80%90ue4%E3%80%91umg%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9Fui%E3%81%AE%E5%AE%9F%E8%A3%85%EF%BC%8B%20-%E5%AE%9F%E8%A3%85%E7%B7%A8-
[UE4] UMGのアニメーションと動的な配置
http://monsho.blog63.fc2.com/blog-entry-158.html
・ウィジェットを任意の場所に動かす方法・その1
http://imoue.hatenablog.com/entry/2015/11/10/174804
どうも、ウィジェットのパーツの「Image」などには直接「Set Position」などの処理は実行できないようです。
ただし、「Canvas」に対しては結構いろいろできるようなので、
まずは動かしたいパーツを「Canvas」の子として配置します。

キャンバス単位で動かすことになるので、子の配置の場所に気を付けましょう。
「Canvas」は作成したデフォルト状態だと変数としてアクセスできる状態にないため、
詳細タブの「Is Variable」にチェックをいれて、変数として使えるようにします。

そうすると、ブループリント上で「Canvas」に対してアクセスできるようになります。

あとは、この「Canvas」の変数に対して「Set Position」ノードを接続して実行することで、
「Canvas」が移動し、子であるパーツも一緒に動かすことができます。

とりあえず、上記のブループリントではマウスの位置に追従するようにしています。
「Canvas」変数は使うために「Slot as Canvas Slot」で変換しないといけないことに注意しましょう。
あまりこういった使い方は推奨されてないかもしれませんが、
ウィジェット内のパーツでいろいろやる場合は「Canvas」を使うとよさそうですね。
| UE4 | 16:18 | comments:0 | trackbacks:0 | TOP↑