妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

ウィジェットを任意の場所に動かす方法・その1

ウィジェット動かす方法がわかりました」

妹「動いたの!? もうこれ全然動かないから、ActorとTextRendererでなんとかしようかと思ってたよ。まあそうすると今後は日本語が出なかったんだけど……」

「色々見てたらカーソルの動きに合わせてウィジェットを動かすっていう英語情報が見つかったんだよ。ということはウィジェットは動かせるって話で」

Setting position of widget to mouse position - UE4 AnswerHub

妹「あ、マウスの動きに合わせるのも要る。かわいいカーソルに差し替えたいけど、アクターでやるとウィジェットの下にしか出せなさそうだから、ウィジェットでカーソル作ったらいいんじゃないかと」

「動かす方法としてはどっちも同じなんだけど、CanvasPanelの中にCanvasPanelを置いて、内側のCanvasPanelをSlotAs CanvasSlot経由のSetPositionで位置指定、で動かせる。動かす用のCanvasはIsVariabledでブループリントから制御出来るようにしておく」

f:id:una_unagi:20151110173330p:plain

f:id:una_unagi:20151110174744p:plain

f:id:una_unagi:20151110173403p:plain

「こんな感じで設定と違う場所に移動させることが出来る。フキダシイメージというのは、妹が作ってた別ウィジェットだけど、これも全体がCanvasPanelに入ってるから動かせる。」

妹「これCanvasじゃないと駄目なの? slot何とかには他のもあるんだけど。VerticalBoxとか。あとCanvasの中じゃないと駄目な理由もわからない」

CanvasじゃないとSetPositionノードがでてこなかった。あとCanvasの中でっていうのは、それ以外のウィジェットだとそもそも位置調整とかが上手く出来ないから。この辺はもう少し調査したら別の方法があるかもしれないけど、とりあえずルート位置にCanvasPanel、その直下に動かしたい絵やテキストが入ったCanvasパネルという構成だと安定して動かせた」

(続く)