(動画チュートリアル関連) == ノードの意味は?

チュートリアルのブループリントには、よく == と表示されてノードが使われていますが、これはどのようなノードなのでしょうか? 等しいのであれば = ではないのでしょうか?

「(変数に含まれている値どうしが) 等しい」で間違いありません。このノードを検索する場合も、equal でできます (== を使って検索することも可能です)。

101938-img1.png

101939-img2.png

画像のグラフは、次のような仕組みになっています。

キーボードの F キーを押すと、Branch ノードが実行されます。Branch ノードには、Condition (条件) に == ノードが接続されています。つまり、変数 TestInt_A と 変数 TestInt_B に入っている値が等しい場合と等しくない場合で、Branch ノードから先が枝分かれ (branch) します。等しい場合は、True (真) の流れに枝分かれして、「等しいです。」と表示され、等しくない場合は、False (偽) の流れに枝分かれして、「等しくないです。」と表示されます。

ところで、= ではないのには、ちょっとした歴史的な経緯があります。以降は、ブループリントを利用する上であまり知る必要がありませんので、興味のある方だけ参考にしてください。

ブループリントは、テキストベースのプログラミング言語 (C++) の文法やそれで作った機能をビジュアル化することによって、直感的な把握のしやすさが圧倒的に高くなっています。この C++ という言語は (他の代表的な言語も大体そうですが)、「等しい」かどうかを判定する場合は == を使い、代入 (ブループリントでは「セット」) する場合には = を使うことになっているのです。たとえば、

If (TestInt_A==TestInt_B) TestInt_A=0;

などとすると、「TestInt_A と TestInt_B の値が等しい場合は、TestInt_A に 0 を代入せよ」という意味になります。この辺りのことは、初めてこのようなプログラミングの世界に来た方には紛らわしいため、ブループリントでは SET (セット) に = のマークが使われていないのでしょう。

:arrow_forward:関連する動画チュートリアル 『3rd Person Game with Blueprints (pre. v4.8) 15 - Character Blueprint : Gamepad and Touch Controls』