このページの手順に従うことで、Unreal Editor for Fortnite (UEFN) の Verse プログラム、「Hello, world!」を作成、実行、編集、トラブルシューティングする方法を学ぶことができます。
UEFN にアクセスする方法については、「Unreal Editor for Fortnite を起動する」を参照してください。
初めての Verse プログラム
「VKT - Verse Device Starter Games」テンプレートは、Verse で作成された仕掛けの概要として機能し、例として確認できる複数の仕掛けが含まれています。 以下の手順では、このテンプレートで新しい Verse の仕掛けを作成および変更します。
[プロジェクト ブラウザ] ウィンドウで [Feature Examples (機能サンプル)] を選択すると、すべての UEFN 機能サンプルが表示されます。
機能サンプルのリストで、[Verse Device (Verse の仕掛け)] をクリックして強調表示させます。
画面下部の「Project Name (プロジェクト名) 」でプロジェクトに「MyVerseProject」 という名前を付けて、「作成」 をクリックします。
メニュー バーから、[Verse] > [Verse Explorer] を選択します。
Verse Explorer 内で目的のプロジェクト名を右クリックし、[Add new Verse file to project (新規 Verse ファイルをプロジェクトに追加)] を選択して [Create Verse Script (Verse スクリプトを作成)] ウィンドウを開きます。
[Create Verse Script] ウィンドウ内で [Verse Device (Verse の仕掛け)] をクリックしてテンプレートとして選択し、[Create (作成)] をクリックします。
メニュー バー から [Verse] > [Build Verse Code (Verse コードをビルド)] を選択し、新しく作成した Verse の仕掛けがプロジェクト フォルダに表示されることを確認します。
コンテンツ ブラウザで、プロジェクト フォルダに移動します。
コンテンツ ブラウザがまだ開いていない場合は、メニュー バーからウィンドウをクリックして、コンテンツ ブラウザを選択するか、UEFN ウィンドウの左下にある コンテンツ ドロワーを選択します。
パスは「All > MyVerseProject > hello_world_device」です。
hello_world_device をクリックして、レベル内にドラッグします。
ツールバーで [Launch Session (セッションを開始)] をクリックして、島をプレイテストします。
画像をクリックすると拡大します。
[Save Content (コンテンツの保存)] ウィンドウで [Save Selected (選択を保存)] をクリックし、プロジェクトへの変更を保存します。
サーバーでプロジェクトのロードが完了したら、メイン メニューを開いて [Start Game (ゲームを開始する)] をクリックします。
クライアントで、Escape を押してメイン メニュー画面を開き、[Island Settings (島設定)] をクリックします。 続いて、上部のナビゲーション バーにある [Log (ログ)] をクリックしてログを表示します。
ログ内で「Hello, world!」を示す行を見つけます (その次の行には「2 + 2 = 4」が示されます)。 これらの行は「hello_world_device.verse」ファイルによるものです。 Verse で作成した仕掛けがレベルに追加されているため、ゲームの起動時にそのコードが実行されています。
初めての Verse プログラムを実行したところで、「hello_world_device.verse」のコードを確認して変更しましょう。 クライアントは次のセクションのために実行したままにします。
プログラムを変更する
次の手順に従って、前のセクションで仕掛けを作成した「hello_world_device.verse」ファイルを表示し、新しいコード行を追加します。
メニュー バーで、[Verse] > [Verse Explorer] をクリックすると、プロジェクトにあるすべての Verse ファイルが表示されます。
プロジェクト名の下にある「hello_world_device.verse」をダブルクリックして開きます。
プログラムを記述するためのエディタである[Visual Studio Code (VS Code)] で Verse ファイルが開きます。 コンピュータに Visual Studio Code がインストールされていない場合は、インストールを促すプロンプトが表示されます。
画像をクリックすると拡大します。
Verse コード拡張は、Verse のエラーチェックと構文の強調表示を行う VS コードの拡張です。また、VS コードから直接 Verse スクリプトに対してコンパイルや変更のプッシュを行うこともできます。
UEFN にバンドルされている Verse 拡張は、Verse に対して公式にサポートされている唯一の言語拡張です。 この拡張は、UEFN の起動時に自動的に有効になります。 拡張をアンインストールした場合、UEFN の起動時に再インストールされます。
[Editor Focus (エディタ フォーカス)]、[Build Verse Changes (Verse の変更をビルド)]、[Push Verse Change (Verse の変更をプッシュ)] ボタンが VS コード ウィンドウ上部にあるかどうかによって、Verse コードの拡張がインストール済みかどうかを確認できます。
画像をクリックすると拡大します。
このコードの他の部分の機能については後ほど説明しますが、ここではコード行 [OnBegin<override>() <suspends>:void=] の下に入力するコードはゲームの開始時に全て実行されるため、次のコードをファイルの最後に加えます。
Print("This is my first line of Verse code!")
Verse ファイルは次のようになるはずです。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.
# A Verse-authored creative device that can be placed in a level
hello_world_device := class(creative_device):
# Runs when the device is started in a running game
記号 # 以降のテキストは全てコード コメントとみなされ、プログラムの実行時には無視されます。 コード コメントにはコードの説明を含めることができるため、自分自身だけではなく他のメンバーにとってもコードの内容を把握しやすくなるので便利です。 上記の例では、実行中のゲームで仕掛けが開始されたときに実行される # と、これを自分のコードで置き換える #TODO: の部分はどちらもコード コメントです。
変更を保存する
Visual Studio Code で「hello_world_device.verse」ファイルを保存します。
UEFN ツールバーで、[Verse] をクリックして [Build Verse Code (Verse コードをビルド)] をクリックし、作成したコードをコンパイルします。
画像をクリックすると拡大します。
コンパイルが成功すると、緑色のチェック マークが [Verse] ボタンの上に表示されます。 コンパイル中に問題が発生すると赤い停止アイコンが表示され、すべてのエラーを解決するまでコードをコンパイルできなくなります。 そうなった場合は、「コードのトラブルシューティング」を参照して、コードを修正するためのヒントを見つけます。
画像をクリックすると拡大します。
コードのコンパイルが完了すると、UEFN ツールバーに [Push Changes (変更をプッシュ)] オプションと [Push Verse Changes (Verse の変更をプッシュ)] オプションが表示されます。 [Push Changes (変更をプッシュ)] をクリックすると、小道具の追加と削除、オブジェクト プロパティの変更、Verse コードへの変更など、Verse コードに加えた全ての変更によりクライアントが更新されます。 [Push Verse Changes (Verse 変更内容をプッシュ)] は、Verse コードのみを更新し、[Push Changes (変更をプッシュ)] より高速です。 これは、セッションをリフレッシュせずに、コードに小さな増分変更を加える場合に便利です。 [Push Verse Changes (Verse の変更をプッシュ)] をクリックすると、クライアントが更新されます。
画像をクリックすると拡大します。
サーバーでプロジェクトの更新が完了したら、メイン メニューを開いて [Start Game (ゲーム開始)] をクリックします。
ログ内で「This is my first line of Verse code!」という行を見つけます。 これは、先ほどスクリプトに追加したコードによるものです。
順次実行
ログにテキストを出力するコード行を追加した場合は、「2 + 2 = 4」に続いて「This is my first line of Verse code」というテキストがログに出力されました。 これは、これらのコード行が [OnBegin<override>() <suspends>:void=] 行の下に書かれている順序で実行されたことを示しています。
print 行の順序を変えると、テキストは新しい順序でログに出力されます。たとえば、「This is my first line of Verse code!」の後に「2 + 2 = 4」が続くといったようになります。
OnBegin<override>()<suspends>:void=
#TODO: Replace this with your code
Print("Hello, world!")
Print("This is my first line of Verse code!")
Print("2 + 2 = {2 + 2}")通常、コードは式が出現する順序で一行ずつ実行されます。 これは順次実行と呼ばれます。 Verse を使ったプログラミングの学習を進めていく中で、プログラムの動作を変えるための実行フローの調整方法についても習得することができます。
コードのトラブルシューティング
初めての Verse コード行を作成して実行できたところで、次はコードの記述時に発生しがちないくつかの問題のトラブルシューティングについて説明します。
発生し得るエラーには、コンパイラ エラーとバグの 2 種類があります。
コンパイラ エラー
あらゆるものの記述で起こり得ることですが、コードに誤字が含まれる場合があります。 こういった誤字があると、コンパイラではプログラムに実行させる動作を理解できません。 プログラムをコンパイルできないため、このようなエラーは「コンパイラ エラー」と呼ばれます。多くの場合は構文に含まれるエラーが原因です。 このエラーが発生した場合、コードをプレイテストで実行することはできません。
VS Code では一部のコンパイラ エラーを検出することができます。検出した場合は、ファイル タブとエクスプローラー パネルで、そのファイル名が赤色に変わることで通知されます。
VS Code でも、問題を検出した行の下に赤色の波線が追加されます。 その波線の上にカーソルを乗せると、エラー メッセージが表示されます。VS Code が提示できる簡単な修正方法がある場合は、それも一緒に表示されます。
VS Code で検知できないコンパイラ エラーもあるため、コードを実行する前にコードをビルドして、エラーを早期に検出することをお勧めします。 これを行うには、Verse をクリックして、UEFN ツールバーの Verse コードをビルドをクリックします。 このオプションはプロジェクトのすべての Verse ファイルをコンパイルし、作成したコードをコンピュータで実行可能な命令に変換します。
画像をクリックすると拡大します。
出力ログには、コードが正常にビルドされた場合の成功メッセージか、プレイテストでコードを使用するために修正する必要があるエラーのいずれかが表示されます
[Build Verse Code (Verse コードをビルド)] を選択した場合も、コンパイル エラーが発生するとポップアップ メッセージが表示されます。
このポップアップ メッセージにある [See Errors (エラーを確認)] を選択すると、[Message Log (メッセージ ログ)] ウィンドウが開いて、VS Code がコード内で検出できたすべてのエラーが表示されます。
画像をクリックすると拡大します。
エラーを修正したら、UEFN ツールバーの [Build Verse Scripts (Verse コードをビルド)] をもう一度クリックするか、ポップアップ メッセージの [Rebuild (再ビルド)] をクリックして、コードを再度コンパイルしてコードが正常にビルドされたかを確認できます。
バグ
コードのビルドには成功するものの、プログラムが期待どおりに動作しない問題はバグと呼ばれます。 バグはコード内のロジックにかかわる問題で、その検出方法の 1 つとしてログに出力するやり方があります。
「hello_world_device」 のコードは、ゲーム開始時にコードが実行されているかを確認するために、ログへの出力をどのように利用できるかを示す好例と言えます。
OnBegin<override>()<suspends>:void=
#TODO: Replace this with your code
Print("Hello, world!")
Print("This is my first line of Verse code!")
Print("2 + 2 = {2 + 2}")また、値を出力 (print) して、コードが期待どおりに動作しているかをテストすることもできます。 次のコードを実行すると、ログに「2 + 2 = 4」というテキストが加わります。
Print("2 + 2 = {2 + 2}")
{2 + 2} という式は、テキストがログに出力される前に 4 と評価されました。 最後の行にある二重引用符 " " に囲まれている中括弧 {} は、式がテキストに変換される前に評価されるべきであることを意味しています。 このように文字列に値を挿入することが、文字列補間 の一例です。
中括弧の中の式を変更すると、出力される値が変わります。 次の例では、式が {2 + 3} に変更されているため、ログには「2 + 2 = 5」と表示されます。
nBegin<override>()<suspends>:void=
#TODO: Replace this with your code
Print("Hello, world!")
Print("This is my first line of Verse code!")
Print("2 + 2 = {2 + 3}")
次のステップ
Verse の概要について学習し、コードの実行やトラブルシューティングの方法について学んだところで、次は「Learn the Basics of Writing Code in Verse (Verse でのコードの書き方の基本を学ぶ)」に進み、全般的なプログラミングに関する知識を広げ、このプログラミング ツールの可能性をさらに引き出す方法について学習を進めてください。
スポーン時にコンソールのボタンを操作することで、Verse Devices Starter ミニゲームをプレイすることもできます。 このミニゲームがどのように作成されたかについては、「Verse スターター テンプレート」を参照してください。また、このプロジェクトで使用されているコードのファイルは Verse Explorer で確認できます。