このページの手順に従うと、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 をクリックして強調表示させます。
-
画面下部の [Project Name (プロジェクト名)] で、プロジェクト に「MyVerseProject」と名前を付けて、[Create (作成)] をクリックします。
-
メニュー バー から [Verse] > [Verse Explorer] を選択します。
-
Verse Explorer 内で目的のプロジェクト名を右クリックし、[Add new Verse file to project (新規 Verse ファイルをプロジェクトに追加)] を選択して [Create Verse Script (Verse スクリプトを作成)] ウィンドウを開きます。
-
[Create Verse Script] ウィンドウ内で [Verse Device (Verse の仕掛け)] をクリックし、これをテンプレートとして選択します。
-
コンテンツ ブラウザ で、プロジェクトのコンテンツ フォルダ内にある「CreativeDevices」フォルダに移動します。
コンテンツ ブラウザ がまだ開いていない場合は、メニュー バー から [Window (ウィンドウ)] をクリックして、[Content Browser (コンテンツ ブラウザ)] か、UEFN ウィンドウの左下にある [Content Drawer (コンテンツ ドロワー)] を選択します。
パスは「All > MyVerseProject Content > CreativeDevices」です。
-
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 コードから直接 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}
# Verse の仕掛けの作成方法については、https://dev.epicgames.com/documentation/ja-jp/uefn/create-your-own-device-in-verse を参照してください。
# レベルに配置できる、Verse で作成したクリエイティブの仕掛け
hello_world_device := class(creative_device):
# 実行中のゲームで仕掛けが開始されたときに実行します
OnBegin<override>()<suspends>:void=
# TODO:これを自分のコードで置き換える
Print("Hello, world!")
Print("2 + 2 = {2 + 2}")
Print("This is my first line of Verse code!")
#
記号の後のテキストはすべてコード コメントとみなされ、プログラムの実行時には無視されます。コード コメントにはコードの説明を含めることができるため、自分自身だけではなく他のメンバーにとってもコードの内容を把握しやすくなるので便利です。上記の例では、# 実行中のゲームで仕掛けが開始されたときに実行される
と #TODO:これを自分のコードで置き換える
の部分はどちらもコード コメントです。
変更を保存する
- 「hello_world_device.verse」ファイルを Visual Studio Code に保存します。
-
UEFN ツールバーで、[Verse] をクリックして [Build Verse Code (Verse コードをビルド)] をクリックし、作成したコードをコンパイルします。
-
コンパイルが成功すると、[Verse] ボタンの上に緑色のチェック マークが表示されます。コンパイル中に問題が発生すると赤い停止アイコンが表示され、すべてのエラーを解決するまでコードをコンパイルできなくなります。そうなった場合は、「コードのトラブルシューティング」を参照して、コードを修正するためのヒントを見つけます。
-
コードのコンパイルが完了すると、UEFN ツールバーに [Push Changes (変更をプッシュ)] オプションと [Push Verse Changes (Verse の変更をプッシュ)] オプションが表示されます。[Push Changes] をクリックすると、小道具の追加と削除、オブジェクト プロパティの変更、Verse コードへの変更など、エディタで加えたすべての変更によりクライアントが更新されます。[Push Verse Changes] は、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:これを自分のコードで置き換える
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 ツールバー の [Build Verse Code (Verse コードをビルド)] をクリックします。このオプションはプロジェクトのすべての Verse ファイルをコンパイルし、作成したコードをコンピュータで実行可能な命令に変換します。
出力ログには、コードが正常にビルドされた場合の 成功メッセージ か、プレイテストでコードを使用するために修正する必要がある エラー のいずれかが表示されます。
[Build Verse Code] を選択した場合も、コンパイル エラーが発生するとポップアップ メッセージが表示されます。
このポップアップ メッセージにある [See Errors (エラーを確認)] を選択すると、[Message Log (メッセージ ログ)] ウィンドウが開いて、VS Code がコード内で検出できたすべてのエラーが表示されます。
エラーを修正したら、UEFN ツールバーの [Build Verse Scripts] をもう一度クリックするか、ポップアップ メッセージの [Rebuild (再ビルド)] をクリックして、コードを再度コンパイルしてコードが正常にビルドされたかを確認できます。
バグ
コードのビルドには成功するものの、プログラムが期待どおりに動作しない問題は「バグ」と呼ばれます。バグはコード内のロジックにかかわる問題で、その検出方法の 1 つとしてログに出力するやり方があります。
hello_world_device のコードは、ゲーム開始時にコードが実行されているかを確認するために、ログへの出力をどのように利用できるかを示す好例と言えます。
OnBegin<override>()<suspends>:void=
# TODO:これを自分のコードで置き換える
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」と表示されます。
OnBegin<override>()<suspends>:void=
# TODO:これを自分のコードで置き換える
Print("Hello, world!")
Print("This is my first line of Verse code!")
Print("2 + 2 = {2 + 3}")
次のステップ
ここでは Verse の概要について学習し、コードの実行やトラブルシューティングの方法についても学んだので、次は「Verse でのコードの書き方の基本を学ぶ」に進み、全般的なプログラミングに関する知識を広げ、このプログラミング ツールの可能性をさらに引き出す方法について学習を進めてください。
スポーン時にコンソールのボタンを操作することで、Verse Devices Starter ミニゲームをプレイすることもできます。このミニゲームがどのように作成されたかについては、「Verse スターター テンプレート」を参照してください。また、このプロジェクトで使用されているコードのファイルは、Verse Explorer で確認できます!