プロジェクト特有の自動化スクリプトを作成するには、Unreal Automation Tool が検出できる場所に新規 C# プロジェクトを作成する必要があります。そのためには次のことが必要です。
- Unreal Engine のソース ビルド
*.uprojectdirs
に記載されているサブディレクトリから検出可能な C# 自動化プロジェクト
自動化プロジェクトを作成する
C# 自動化プロジェクトを新規作成する手順を以下に示します。
- Unreal Engine のソース ビルドがあることを確認します。
- コマンド プロンプトを開き、Unreal Engine のルート ディレクトリで「
GenerateProjectFiles.bat
」を実行します。 1.そうすると、Visual Studio 用の「UE5.sln
」ファイルが生成されます。 - Visual Studio で「
UE5.sln
」ファイルを開きます。 - Visual Studio で、メインの「Solution UE5」ディレクトリを開き、[Add (追加)] > [New Project... (新しいプロジェクト...)] を選択します。
- [Add a new project (新しいプロジェクトの追加)] ウィンドウが開いている状態で、「C# Class Library」を検索して選択します。[Class Library (.NET Framework) Visual C#] は選択しないでください。Unreal Automation Tool は .NET 6.0 をターゲットとしているため、.NET Framework をターゲットにしようとするとエラーになります。
- 新規 C# クラス ライブラリの設定を選択するポップアップ メニューが表示されます。
1.[Project name (プロジェクト名)] に、自動化プロジェクトの名前を設定します。この例では、「
SampleScript.Automation
」という名前にします。注記:UAT が.Automation
名前形式を見つけて自動化スクリプトを適切に登録できるように、プロジェクト名は「<SCRIPT_NAME>.Automation
」という命名規則に従うようにします。- [Location (場所)] を「
UNREAL_ENGINE_ROOT\Engine\Source\Programs
」に設定します。
- [Location (場所)] を「
- [Next (次へ)] をクリックすると、[Additional Information (追加情報)] ウィンドウが開きます。このウィンドウでは、このクラス ライブラリの [Framework (フレームワーク)] を選択します。
- ドロップダウン メニューで [.NET 6.0 (Long-term support)] を選択し、[Create (作成)] をクリックします。
- 新規 C# クラス ライブラリの設定を選択するポップアップ メニューが表示されます。
1.[Project name (プロジェクト名)] に、自動化プロジェクトの名前を設定します。この例では、「
- Visual Studio によって「
SampleScript.Automation
」という新しいフォルダが作成されています。新しく作成された「SampleScript.Automation
」フォルダ内に「Class1.cs
」というファイルがあります。このファイルの名前を「SampleScript.cs
」に変更します。Visual Studio により、すべてのプロジェクト参照も変更するかどうかについての確認が求められます。[Yes (はい)] を選択します。
プロジェクトの設定
設定 | 値 | 注記 |
---|---|---|
Name (名前) | SampleScript.Automation |
自動化プロジェクトの生成スクリプトでは、*.csproj 拡張子が付いている「*.Automation.csproj 」ファイルが検出されます |
Location (場所) | 「PROJECT_ROOT\Build 」または「UNREAL_ENGINE_ROOT\Source\Programs 」 |
プロジェクトは「Project Build」または「Engine Source」ディレクトリに保存できます |
.NET Framework | 6.0 |
自動化プロジェクトを設定する
ビルド設定を調整する
自動化スクリプトを記述する前に、ビルド設定を次のように調整する必要があります。
- Visual Studio の [Solution Explorer (ソリューション エクスプローラー)] で、「
SampleScript.Automation
」を見つけて選択します。 - このフォルダを選択した状態で、Visual Studio のメニューバーで [Build (ビルド)] > [Configuration Manager... (構成マネージャー...)] を選択します。
- [Configuration Manager (構成マネージャー)] ウィンドウで「
SampleScript.Automation
」プロジェクトを見つけます。 - プロジェクトの [Configuration (構成)] ドロップダウン メニューにある [Edit... (編集...)] を選択します。 1.[Edit Project Configurations (プロジェクト構成の編集)] というタイトルのウィンドウが表示されます。 1.このウィンドウで、[Release (リリース)] を選択し、[Rename (名前変更)] をクリックし、[Release] を [Development (開発)] に変更します。 1.[Release] から [Development] への名前変更の確認を求める新しいウィンドウが表示されます。[Yes] をクリックし、開いているウィンドウをどちらも閉じます。
プロジェクト プロパティを設定する
次に、自動化プロジェクトの出力パスを設定する必要があります。
- Visual Studio の [Solution Explorer] で、「
SampleScript.Automation
」を見つけて選択します。 - このフォルダを右クリックして [Properties (プロパティ)] を選択します。
- [Build] タブで、目的の [Base Output Path (ベース出力パス)] を選択します。この例では、出力パスがまだ設定されていなければ、「bin\」に設定します。
自動化プロジェクトを確認する
先に進む前にまず、このプロジェクトが Unreal Automation Tool によって新しい自動化プロジェクトとして正常に検出されていることを確認します。プロジェクトが適切に設定されていることを確認するには、Visual Studio を終了し、コマンド プロンプトを開いて「GenerateProjectFiles.bat
」を実行します。生成された「UE5.sln
」ファイルを開いて、UNREAL_ENGINE_ROOT\Programs\Automation
を見つけます。このディレクトリ内に、新しい自動化プロジェクト「SampleScript.Automation
」が存在しているはずです。存在していれば、Unreal Automation Tool が新しい自動化プロジェクトを正常に検出しています。
プロジェクト参照を追加する
以下の手順に従って、自動化プロジェクトを Unreal Automation Tool に登録します。
- Visual Studio の [Solution Explorer] で、「
SampleScript.Automation
」を見つけて選択します。 - 「
SampleScript.Automation
」を右クリックして [Add] > [Project Reference... (プロジェクト参照...)] を選択します。 - そうすると、[Reference Manager - SampleScript.Automation (参照マネージャー - SampleScript.Automation] というタイトルのウィンドウが表示されます。
- 「AutomationUtils.Automation」を見つけて、その名前の横にあるチェックボックスをオンにし、[OK] をクリックします。
自動化スクリプトにコードを追加する
自動化プロジェクトを作成する と 自動化プロジェクトを設定する のセクションで、SampleScript.Automation
という自動化プロジェクトを作成する手順を示しました。このフォルダ内に、「SampleScript.cs
」という C# ファイルも作成しました。このファイルに、自動化スクリプトのコマンドを追加します。
この例では、この自動化スクリプトが呼び出されたときにユーザーが入力するコマンドライン引数で指定された項数まで、フィボナッチ数列の項をコマンドラインに出力する関数を記述します。この例では、自動化スクリプトの以下の機能の使用例を示しています。
- Help コマンド
- コマンドライン入力
- コマンドライン出力
- ログ記録
自動化スクリプトのコード
この自動化スクリプトの例のサンプル コードを以下に示しています。このサンプル コードを「SampleScript.cs
」にコピーします。
using AutomationTool;
namespace SampleScript.Automation
{
// Use [Help()] attributes to document your command and its arguments.
[Help("Sample script printing the first N terms of the Fibonacci sequence.")]
[Help("Usage: SampleScript -Terms=<N>")]
[Help("Terms=<N>", "N (int) the number of terms to compute. Must be greater than or equal to 1.")]
// BuildCommand is the base class for all commands.
public class SampleCommand : BuildCommand
{
public override void ExecuteBuild()
{
// The ParseParamInt() method retrieves a command line argument for this example.
// ParseParam() retrieves a bool, and ParseParamValue() retrieves a string.
int NumTerms = ParseParamInt("Terms");
if (NumTerms < 1)
{
throw new ArgumentException("Invalid number of terms specified. Enter -help for syntax.");
}
else
{
LogInformation("Fibonacci sequence:");
int TermA = 1;
int TermB = 1;
for (int i = 0; i < NumTerms; i++)
{
LogInformation(" {0}", TermA);
int TermC = TermA + TermB;
TermA = TermB;
TermB = TermC;
}
}
}
}
}
自動化スクリプトを実行する
以下の手順に従って、自動化スクリプトを実行します。
- コマンド プロンプトを開き、
UNREAL_ENGINE_ROOT
ディレクトリに移動します。 - 次のコマンドを入力します。
RunUAT.bat SampleCommand -Terms=6
- このコマンドは、
SampleScript.cs
ファイルに記載されている場所にあるSampleCommand
を実行する AutomationTool をビルドして実行します。 -
すべてうまくいけば、次のような出力がコマンド プロンプトに表示されます。
画像をクリックすると拡大表示されます。
-
また、
RunUAT.bat SampleCommand -help
を実行すると、SampleCommand
クラスからの[Help(...)]
メッセージ テキスト内の情報が表示されます。画像をクリックすると拡大表示されます。