Verse言語入門:コードで学ぶ、UE6で主役になる新言語の基本文法
前回の記事「UE6でBlueprintは廃止される?」では、「即廃止ではなく将来的に非推奨。だからこそ今のうちにVerseに触れておこう」という結論にたどり着きました。とはいえ、言葉で「新しい言語です」と言われてもピンときませんよね。この記事では、実際のコードを1つずつ見ながら、Verseの基本文法をやさしくたどっていきます。


目次
そもそもVerseとは?
Verse(ヴァース)は、Epic Gamesが開発している新しいプログラミング言語です。設計を主導しているのは、関数型言語Haskellの生みの親の一人、Simon Peyton Jones。関数型言語の第一人者たちが集って作られている、かなり本格的な言語です。
すでに2023年3月からUEFN(Unreal Editor for Fortnite)で無料で使えており、UE6ではBlueprint・C++と並ぶ「第3の選択肢」として標準統合される方向です。つまり「今UEFNで学べば、UE6時代に先行できる」言語というわけです。
では、さっそくコードを見ていきましょう。細かい理屈より、「こう書くんだ」という感覚をつかむのが今日のゴールです。
基本① 変数と定数
まずは値の入れ物から。Verseの基本形は 名前 : 型 = 値 です。
MaxScore : int = 1000 # 定数(あとから変更できない)
PlayerName : string = "Hero" # 文字列の定数
この形だと定数(再代入できない値)になります。「あとから書き換えたい変数」にしたいときは、頭に var を付けます。そして書き換えるときは set が必要です。
var Score : int = 0 # 変更できる変数
set Score = 100 # 再代入するときは set が必須
set Score += 10 # += も使える → Score は 110
💡 ここがポイント
他の言語だと「代入」は = だけで済みますが、Verseは書き換えのときだけ set を明示させます。「うっかり上書き」を防ぐ、Verseらしい”安全第一”の設計です。
基本② 関数
関数は 関数名(引数:型):戻り値の型 = 本体 と書きます。2つの数を足す関数なら、こうです。
Add(A:int, B:int):int = A + B
本体が長くなるときは、= の後で改行してインデント(字下げ)します。
Greet(Name:string, Age:int):string =
"{Name}さんは {Age} 歳です" # {} で変数を文字列に埋め込める
Verseはインデントでコードのまとまりを表す言語です。波カッコ { } だらけにならないので、Pythonを触ったことがある方には馴染みやすい見た目でしょう。ちなみにコメントは # で書きます。
Verseならではの特徴① 「失敗」で考えるif
ここからがVerseの個性です。Verseの if は、単なる「真か偽か」の分岐ではなく、式が「成功する」か「失敗する」かで動きます。これを失敗式(failure expression)と呼びます。
if (Score = 5): # ここの = は「等しいか?」の比較。成功すれば下へ
Print("5です")
else:
Print("5ではありません")
面白いのは、「失敗するかもしれない処理」そのものを条件に書ける点です。たとえば割り算はゼロで割ると失敗しますが、それをそのまま if に渡せます。
if (Result := X / Y): # Y が 0 なら「失敗」して else へ
Print("計算成功:{Result}")
else:
Print("0では割れません")
💡 他の言語だとどう書く?
多くの言語では、こうした「失敗しうる処理」を try-catch で囲んだり、戻り値がnullかどうかを毎回チェックしたりします。Verseはその仕組みが言語に最初から組み込まれているので、nullポインタ例外が原理的に起きにくいのが大きな利点です。
さらに if ... then ... else は値を返す式としても使えます。他言語の三項演算子(条件 ? A : B)に近い感覚です。
Result := if (X > 0) then "プラス" else "マイナス"
「値が有るかもしれないし、無いかもしれない」を表すoption型も、この失敗の仕組みと相性抜群です。型の前に ? を付け、取り出すときは末尾に ? を付けます。
var MaybeGrade : ?int = false # 空っぽの状態
set MaybeGrade = option{ 8 } # 値を入れる
if (Grade := MaybeGrade?): # 中身があれば取り出して使う
Print("成績は {Grade}")
Verseならではの特徴② 失敗したら「なかったこと」になる
Verseのもう一つの目玉がトランザクショナルメモリです。ざっくり言うと、処理の途中で失敗すると、それまでの変更が自動で巻き戻る(ロールバックされる)という仕組みです。
たとえば「スコアを加算 → アイテムを付与」という一連の処理の途中で失敗したとき、普通の言語なら「スコアだけ増えてアイテムは無い」という中途半端な状態が残りがちです。Verseでは、失敗したトランザクション内の set による変更はまとめて取り消され、「何も起きなかった」状態に戻ります。
📝 補足
これは「大人数が同時に触るオンラインワールドでも、状態が壊れない」ことを狙った設計です。従来、自前でロールバック処理を書いていた手間を、言語が肩代わりしてくれるイメージです。
その他の特徴(ざっくり)
- 並行処理を安全に書ける:複数の処理を同時に走らせる仕組み(
spawn・sync・raceなど)が言語に内蔵されている - エフェクト指定子:関数が「何をしうるか」を型で宣言する。
<computes>(純粋計算)・<transacts>(状態を変えうる)・<decides>(失敗しうる)・<suspends>(非同期)など - ループ:
loop(無限ループ)とfor (i := 0..99):(範囲の反復)が基本形
ここは「そういうものがある」とだけ知っておけば十分。最初から全部覚える必要はありません。
C++ / Blueprint と何が違う?
| Blueprint | C++ | Verse | |
|---|---|---|---|
| 形式 | ノードのビジュアル | テキスト(高難度) | テキスト(高水準・安全志向) |
| 主な用途 | 手軽なゲームプレイ | エンジンコア・高性能処理 | ゲームプレイロジック(並行・大規模向け) |
| 学習難度 | 低 | 高 | 中 |
| UE6での位置づけ | 将来的に非推奨の方向 | 併存(Verseと補完) | 第3の選択肢として標準統合の方向 |
⚠️ 誤解しやすいポイント
一部で「UE6でC++が廃止される」という表現も見られますが、Epic公式はそこまで断定していません。当面はC++とVerseが役割を分けて共存する、と冷静に受け止めておくのが安全です。
実践:Hello Worldを書いてみよう
最後に、ここまでの要素を全部使った「Hello, World!」を見てみましょう。UEFNでは、ゲーム内に置けるデバイス(装置)としてVerseコードを書きます。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# creative_device を継承した「装置」を定義する
hello_device := class(creative_device):
# ゲーム開始時に自動で呼ばれる関数
OnBegin<override>()<suspends>:void =
Print("Hello, World!")
using { … }:使う機能を読み込む宣言。C++の#includeに近い感覚ですhello_device := class(creative_device):ゲーム内に配置できる装置を定義。:=は「定義する」記号ですOnBegin<override>()<suspends>:開始時に動く関数。<suspends>は「途中で待ったり再開したりする非同期関数」の印Print("Hello, World!"):おなじみ、文字を出力する命令です
実際に試すのに必要なのは、、、
①Epic Gamesアカウント
②UEFN(無料・Epic Games Launcher経由
③Fortnite Creativeのプロジェクト
だけ。追加課金なしで、この「Hello, World!」から始められます。



まとめ
- 変数は
名前:型=値、書き換えはvarとset。関数はインデントで書く(Python似) - Verseの個性は「失敗」で考えるifと失敗したら巻き戻るトランザクション。ミスを言語が防いでくれる
- すでにUEFNで無料で試せる。Hello Worldから小さく始めて、UE6時代に備えよう
関連記事:Blueprint廃止の全体像は「UE6でBlueprintは廃止される?」で、UE5で使える便利プラグインは「Fabプラグイン記事」で解説しています。
参考:
- Verse Language Reference(Epic Games 公式)
- Book of Verse(コミュニティ版)
- The road to Unreal Engine 6(Epic Games 公式)
