アンリアる! Verse入門編 ~対話形式で学ぶUEFN~
BOOTHでUEFN Verse入門書を販売していますUEFN上でVerseを使って開発するために必要となる基礎知識を一冊の本にまとめた本です。 対話形式によるわかりやすい説明を目指しました。無料の試し読みも可能ですので、ぜひ読んでみてください!
[UEFN] はじめてのVerseプログラミング – if式

if式

Verse言語でのif式は、式が「成功」か「失敗」かで条件分岐します。
if式の条件式部分は、失敗コンテキストに相当します。

if文

具体的な例を示します。
次の例では、3 > 5 が実行され、その結果「失敗」と判断されます。
したがってこの状態で実行しても "OK" は表示されません。

if (3 > 5):
    Print("OK")

一方で次の例では 3 <= 5 が「成功」と判断され、"OK" が表示されます。

if (3 <= 5):
    Print("OK")

比較演算子の効果を理解するため、if式を用いた例を示します。

var Var1 : int = 5

if (Var1 < 3):
    Print("Var1 < 3")   # 実行されない

if (Var1 <= 3):
    Print("Var1 <= 3")  # 実行されない

if (Var1 > 5):
    Print("Var1 > 5")   # 実行されない

if (Var1 >= 5):
    Print("Var1 >= 5")  # 実行される

if (Var1 <> 5):
    Print("Var1 <> 5")  # 実行されない

if (Var1 = 5):
    Print("Var1 = 5")   # 実行される

このプログラムをクラス output_logs デバイスのメンバ関数 OnBegin に追加して実行したときのログ画面を示します。
「成功」となる条件式の場合のみ実行されることがわかります。

if式 例1

クラス output_logs の作り方については、次の記事を参考にしてください。

[UEFN] はじめてのVerseプログラミング - ログを出力してみよう
はじめてのVerseプログラムとしてログを出力してみましょう。 Print関数を利用することで、プログラムを出力できます。

条件演算子についても、ここで具体的に効果を理解しましょう。

var Var1 : int = 5

if (not (Var1 < 3)):
    Print("not (Var1 < 3)")         # 実行される

if (Var1 > 2 and Var1 > 4):
    Print("Var1 > 2 and Var1 > 4")  # 実行される

if (Var1 > 2 and Var1 < 4):
    Print("Var1 > 2 and Var1 < 4")  # 実行されない

if (Var1 < 2 or Var1 = 5):
    Print("Var1 < 2 or Var1 = 5")  # 実行される

if (Var1 < 2 or Var1 < 4):
    Print("Var1 < 2 or Var1 < 4")  # 実行されない

このプログラムをクラス output_logs デバイスのメンバ関数 OnBegin に追加して実行したときのログ画面を示します。

if式 例2

クエリ演算子については、次のようになります。
if (Var1) ではコンパイルエラーとなることに注意しましょう。

var Var1 : logic = true
var Var2 : logic = false

if (Var1?):
    Print("Var1?")    # 実行される

if (Var2?):
    Print("Var2?")    # 実行されない

このプログラムをクラス output_logs デバイスのメンバ関数 OnBegin に追加して実行したときのログ画面を示します。

if式 例3

if-else if-else式

if式は、指定した条件が「成功」の場合に記述した処理を実行するものでした。
しかし、条件が「失敗」した場合のみに処理を実行したい場合もあるでしょう。

このとき役立つのがelse式です。
else式はif式の条件式が「失敗」したときに実行されます。

if-else式

else式を使ったプログラムの例を示します。

var Var1 : int = 5

if (Var1 < 3):
    Print("if (Var1 < 3)")      # 実行されない
else:
    Print("else")    # 実行される

このプログラムをクラス output_logs デバイスのメンバ関数 OnBegin に追加して実行したときのログ画面を示します。

if-else式 例

else if式を用いることで、さらに複雑な条件分岐を実現できます。
else if式は、直前の条件式の結果が「失敗」したときに実行されます。
実行された段階でそのif式の処理が終わるため、以降の処理が実行されません。

if-else if-else式

else if式を使ったプログラムの例を示します。

var Var1 : int = 5
var Var2 : logic = true

if (Var1 > 10):
    Print("if (Var1 > 10)")   # 実行されない
else if (Var2?):
    Print("else if (Var2?)")  # 実行される
else:
    Print("else")             # 実行されない

if (Var1 > 3):
    Print("if (Var1 > 3)")    # 実行される
else if (Var2?):
    Print("else if (Var2?)")  # 実行されない
else:
    Print("else")             # 実行されない

if (Var1 > 10):
    Print("if (Var1 > 10)")       # 実行されない
else if (not Var2?):
    Print("else if (not Var2?)")  # 実行されない
else:
    Print("else")                 # 実行される

if-else if-else式 例

以上が、if式の利用方法です。

その他、UEFNのVerseに関する情報は、以下の記事にまとめています。

[UEFN] はじめてのVerseプログラミング
VerseはEpic Gamesが開発したプログラミング言語で、Fortniteクリエイターが仕掛けをカスタマイズするときに使用できます。 Fortnite用のUnreal Engine(UEFN)で独自のゲームを作成するときに使用できます。 Colory GamesのTech Blogでは、Verseプログラミングに関して一から初心者が学べるように、複数の記事を掲載しています。