妹でもわかるUnrealEngine4

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

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

使い終わったノードの出力ピンを別のイベントで使ってみる

「例のノードぐるぐる巻き実験もそうなんだけど、ブループリントの出力ピンってなんか面白い動きしてる気がする」

妹「おもしろいの?」

「例えばこういうの。最初にウィジェットを作って表示しているけど、そのノードを後から使おうとするとどうなるのかという実験」

f:id:una_unagi:20151007222506p:plain

f:id:una_unagi:20151007222509p:plain

ウィジェットを作ったのはBeginPlayの時なんだけど、その後イベントティックが呼ばれた時にもまだ出力ピンが有効になってる。使ってない方のウィジェットを作成するノードは空っぽ、Noneの状態にだから何も出ないけど、最初に作ったやつの方は名前が出る。それで空欄と名前が交互に出続ける。そのノードを最後に実行した時の状態が有効なのかなと思う」

妹「それはそういうもんじゃないの? ウィジェット作った後にそれをビューポートに表示したりする時も、そこから引っ張ってきてるし。作った後だったらそうなるのが普通のような」

「ブループリントからはじめるとそんな感じかも。普通にプログラム書いてるとイベントが終わった時点で変数に保存してないデータは全部消えてるのが普通だから不思議。関数とかは完全に独立してるけど、イベントグラフの中は行ったりきたり出来るから、どのイベントで実行したとかは関係ないみたい」

妹「とりあえずつながるところはつないでいいもんだと思ってやっている」

「少々強引なつなぎ方しててもエラーは出ないみたいだからね。思った数字とは違ったりするかもしれないけど、無効なノードの接続だから強制終了とかにはならない。ActorならNone、Intなら0、Stringなら空文字みたいに初期値が出てくる。そういえば配列で無効な範囲指定をした時もそうだった。ああいうのがエラーにならないのもブループリントの特徴かも。単純に文字からグラフに変えたというのとはちょっと違う」