妹でもわかるUnrealEngine4

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

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

さかさまのブランチノードみたいなマクロを作った

f:id:una_unagi:20151008205227p:plain

f:id:una_unagi:20151008211411p:plain

「実行ピンが上から来た時はTrue、下から来た時はFalseの出力を出しつつ、同じとこを実行するノードを作った。上の図は任意のパラメータ1つをくっつけられる版の作り方」

妹「……これ何に使うの?」

f:id:una_unagi:20151008205554p:plain

「このマクロを作る前の、上下左右移動のプログラムなんだけど、基本的に実行の流れとしては上下の時も左右の時も同じになってる。ただ、AxisValueで持ってくる値が別々というのと、横と縦で移動に使うVectorが違うだけ。それで統一したんだけど、統一する時に上のイベントを実行してるのか、下のイベントを実行してるのかを調べるのに苦労して、一応最初にBooleanにSETすることで区別は出来るようになったけど、いまいち格好が良くなかった。それで上手く書けるノードが欲しかったけど、見つからなかったので自分で作った」

f:id:una_unagi:20151008210237p:plain

「新しいマクロを使うとこのように書き換えることが出来る。線の流れがシンプルになって、何がしたいのかがわかりやすくなるし、ノードの数も減る」

妹「そこはなんとなくわかったけど、MakeLiteralFloatというのは何のためにあるの?」

「歩く速度を調整する時に、毎回SelectVectorに直接書くと2箇所修正しなきゃいけないから、1箇所設定するだけで言いようにしてるんだよ。MakeLiteralじゃなくて変数でも良かったんだけど。でも今見るとここも書き直した方がすっきりするか」

f:id:una_unagi:20151008211034p:plain

「この方がノードがコンパクトになって良さそう。パラメータを2つを受け取れるようなマクロを追加するともっと減らせる」

妹「くっつけるパラメータはなんでもいいの?」

「パラメータはマクロの中でSelectノードに直結してるから、Selectノードと同じ性質になってる。なんでもいいけど入力2つと出力1つは同じ型になるから、線をつないでどれか1つの型が決まると他も全部決まる」

妹「役に立つのか立たないのかよくわかんないけど、欲しいノードがある時は兄に作らせればいいことはわかった」