(動画チュートリアル関連) 変数のセットに同じ変数のゲットがつながっているのはなぜ?

動画チュートリアルなどでは、よく、変数の セット に同じ変数の GET がつながっています。たとえば、下図では HitCount という変数の セット に、HitCount の GET が接続されています。これは、どのように考えるべきでしょうか?

セットを使って値を変数に入れるには、

のように、値を直接小さなボックスの中に入れるか、

のように、何らかの変数をセットの入力ピンにつなげます。どちらも結果は 97 と表示されます。(ゲーム開始時に自動的に BeginPlay が発動するため、それにつながるセットが実行され、続いて PrintString によって表示されます)。

セットの入力ピンにつなげることができるのは、他の変数だけではなく、自分自身もつなげることができます。つまり、次のようにすることもできるということです。

上図を実行すると、0 と表示されます。詳しく見ると、ゲーム開始時に自動的に BeginPlay が発動して、セットが実行されます。セットには入力ピン (この場合、セット内の左側にある緑色の小さな丸) に HitCount 変数 (その値は、デフォルト値の 0 ) が接続されているので、HitCount 変数自身に改めて 0 が入るということになります。つまり、何も値は変わらないことになるので、あまり意味のないことをやっています。ところが、次の場合は意味があります。

確かに HitCount のセットに HitCount 自身がつながっています (正確には HitCount + 1 が HitCount につながっています)。詳しく見てみます。

実行ピン (白い▷ぽいマーク) をたどると、実行の流れが分かります。①の ActorEndOverlap というイベントが発生したら、② の HitCount 変数に値がセットされるプロセスに入ります。セットされる値は、緑の小さな丸の入力ピンに接続されているものです。すなわち、 ②-1 の HitCount 自身に 1 を加えたもの (②-2) です。そして最後に、新たにセットされたこの HitCount の値が、③ PrintString で画面に表示されることになります。

ActorEndOverlap → HitCount +1 を計算 → HitCount にその計算結果を新たな値としてセット → PrintString で表示

このように見ると、「変数のセットに同じ変数のゲットがつながって」いても大丈夫であることが分かります。

なお、このようなノードの組み方は、数をカウントしたりカウントダウンしたりする時によく見られるものです。

通常のプログラム言語では、

HitCount=HitCount+1;

と書く常套句のようなものです。(あるいは、HitCount++; などと)