Lyra Starter Game は Unreal Engine のメジャー リリースごとに更新されています。これらの更新はエンジンの最新機能を活用するもので、Lyra に特有の他の問題も解決されます。このページでは、それぞれのエンジン バージョンで Lyra に加えられた主要な変更について説明し、既存のゲームを Unreal Engine 5 の最新リリースにアップグレードする際に役立つ情報を紹介します。
最新エンジン リリースにアップグレードする
Lyra のような C++ コードを含むゲームは、Unreal Engine のメジャー リリースで機能させるために手動で更新する必要があります。5.0.x から 5.1.x へのエンジンの主要な各更新では、旧式の機能や設定が非推奨となったり、プロジェクトで使用中の既存の関数や変数が変更されたりすることがあります。そのため、アップグレード後は、一部のゲーム固有のコードやデータを適切に機能させるために更新する必要があります。 ゲームを更新するには、Lyra を例として取り上げた以下のステップを実行します。
-
新エンジン バージョンの リリース ノート(what-is-new/unreal-engine-5-1-release-notes) を参照し、ゲームに影響を及ぼす可能性のある主要な変更やアップグレードに関する情報を把握します。
-
エンジンの最新バージョンをダウンロードしてインストールします。ゲームの旧バージョンと新バージョンを比較できるように、現在のエンジン バージョンとは異なるディレクトリにインストールすることをお勧めします。
-
エンジンの最新バージョンに一致する Lyra Starter Game サンプル(https://www.unrealengine.com/marketplace/ja/product/lyra?sessionInvalidated=true) の最新バージョンをダウンロードしてインストールします。これによって更新の内容を確認できます。異なるディレクトリにインストールした場合は、これを古いバージョンと比較することができます。
-
エンジンの最新バージョンとの互換性については、「Unreal Engine 5 への移行ガイド(what-is-new/unreal-engine-5-migration-guide)」を参照してください。
-
プロジェクトを C++ コード エディタにロードして、コンパイルを試みます。おそらく失敗するはずです。
-
非推奨機能に関する情報に含まれる指示に従い、非推奨に関する警告をすべて修正します。
-
無効または不足しているクラスや構造体に関連するエラーについては、ファイルの冒頭に
#include行を新たに追加する必要があります。Visual Studio を使用している場合は、[Edit (編集)] > [Find and Replace (検索と置換)] > [Find In Files (フォルダーを指定して検索)] に移動して、不足している型の名前を検索します。その型を定義するヘッダ ファイルを見つけて、#includeを新たに追加します。 -
バーチャル関数オーバーライドのエラーについては、オーバーライドされた関数のパラメータをヘッダ ファイルと
.cppファイルの両方で更新する必要があります。 -
クラスまたは構造体上の無効な変数に関するエラーについては、その変数にアクセスするための別のメソッドを使用する必要があります。通常、これは
Get()やGetVariableName() などの、実際の値を返すアクセサ関数を呼び出すことで解決できます。 -
エラーの修正方法がよくわからない場合は、リリース ノート(what-is-new/unreal-engine-5-1-release-notes) を参照するか、コミュニティ フォーラム(https://forums.unrealengine.com/) で詳細について質問してみてください。
Lyra Starter Game の新旧バージョンを比較することで、ソース コードに対する複雑な変更をどのように処理すべきかを確認できます。以下は、Lyra のコードやコンテンツを含むゲームをアップグレードする際に役立つバージョン固有の情報です。
Unreal Engine 5.2
Unreal Engine 5.2 では、Lyra サンプル ゲームは引き続きサポートされています。エンジンに追加された新機能とバグ修正の利点を活かしています。
5.2 のアップグレード ノート
-
コンパイル時間を向上させるために、エンジン ヘッダが再編成されました。この改善により、Lyra のヘッダが欠如しているケースが明らかになりました。たとえば、
CommonUserSubsystem.hは、OnlineError.hを含むように変更しなければなりませんでした。 -
Lyra 5.1 バージョンは、Iris ネットワーク システムをオプションでサポートしていましたが、これは現在デフォルトでエンジンにコンパイルされています。以前のバージョンの Lyra を 5.2 でコンパイルすると、ネットワークのリンカー エラーが発生しますが、これは
LyraGame.build.csに"SetupIrisSupport(Target);"を加えて修正することができます。
5.2 の改善点
-
LyraGame
ゲームプレイ タグはLyraGameplayTags` 名前空間内にあるタグを使用するように変更されました。これにより、オブジェクトを初期化する際に、これらのタグの使用が可能になりました。 -
試合終了時のマップ転送 (または PlayNextGame コンソール コマンドのチート使用時) がシームレスな移動を使用するようになりました。
-
Lyra がローカル マルチプレイヤーを実験的にサポートするようになりました。ローカル マルチプレイヤーを有効にするには、2 番目に接続した同じタイプのコントローラのスタートボタンを押すか、メイン メニューの [Add Player] ボタンをクリックします
-
専用サーバーのサポートが改善されました。パッケージ化された LyraServer またはエディタ ゲームを
-serverコマンドで実行すると、ALyraGameMode::TryDedicatedServerLoginのコードを使用してデフォルト マップのホストが開始されます。 -
Replication Graph、Iris、パケット暗号化のネットワーク サポートを追加しました。このオプションはデフォルトではオフになっています。
-
トリガー抵抗やコントローラーの色など、入力デバイスのプロパティが含まれるようにハプティック フィードバックを変更しました (一部のプラットフォーム)。
コントローラーの色は、チームカラー (赤または青) と一致します。 武器のインスタンスは、装備時にデバイス プロパティを追加することができます。たとえば、ショットガンが装備されている間、PlayStation DualSense コントローラのトリガー抵抗が重くなります。
-
Lyra をパッケージ化すると、複数の
.pakファイルが作成されるようになりました。これは、ゲーム機能プラグイン内のプライマリ アセット ラベルを使用して設定されます。
5.2 のバグ修正
-
シームレスな移動とローカル マルチプレイをサポートしながら、ネットワークと UI に関する多くの問題が修正されました。
-
キャラクター移動におけるアニメーションのスタッタが修正されました。これはもともと 5.1.1 で修正されました。
-
LyraClient のビルド ターゲットに関するいくつかの問題を修正しました。専用サーバーに参加できるようになりました。
-
ビルド スクリプトのデフォルトのゲーム ターゲットが LyraGame になるように修正しました。
-
バージョン管理の状態が不明なアセットに関する警告
EditorValidator_SourceControlの頻度を減らしました。
Unreal Engine 5.1
Unreal Engine 5.1 では、Lyra Sample Game のいくつかの問題を修正して、エンジンに加えられた最新機能を活用できるように Lyra Sample Game が更新されました。
5.1 のアップグレード ノート:
-
コンパイル時間を向上させるために、いくつかのエンジン ヘッダが再編成されました。これにより、Lyra ソース ファイルに関するいくつかのエラーが新たに生じました。これらの問題は、不足しているヘッダに
#pragma once行を追加し、型の不足に関するエラーがあるソース ファイルに#include EditorStyle.hなどの行を追加することで修正できます。 -
ゲームプレイ フレームワーク クラスのいくつかの生ポインタ プロパティが
TObjectPtrまたはTWeakObjectPtrを使用するように変更されました。生ポインタを必要とするコードは、Get()関数への呼び出しを追加することで修正できます。 -
ENSURE_ABILITY_IS_INSTANTIATED_OR_RETURNマクロが「GameplayAbility.h」から削除されました。このマクロは、「GameplayAbility.cpp」から別のアビリティ ソース コード ファイルにコピーできます。 -
ゲーム機能プラグインに関連するいくつかのバーチャル関数が変更されて、新しいパラメータが追加されました。
ULyraGameFeaturePolicyなど、クラス内のオーバーライドされた関数は更新する必要があります。 -
ジオメトリ メッシュ ブループリント
Tools/BakedGeneratedMeshSystem/BaseClasses/BakedGeneratedMeshActorが 5.1 に更新されました。5.0 アセットも引き続き機能しますが、5.1 バージョンを使用しないと Nanite を適切に設定できなくなります。
5.1 の改善点:
-
新しい
IGameFrameworkInitStateInterfaceとGameFrameworkComponentManagerの初期ステート システムを使用するように、ULyraHeroComponentとULyraPawnExtensionComponent内のポーン初期化フローが書き換えられました。これによってネットワーク レプリケーションにおけるいくつかの競合状態が修正されて、新しい機能特有のコンポーネントに合わせて拡張しやすくなります。 -
さまざまな機能を備えたデバイスに向けて Android デバイス プロファイルを追加し、他のプラットフォーム設定も調整しました。
-
共通マップのロードに関する UI をエディタのツールバーに追加しました。
-
Epic Online Services を使ったマルチプレイヤー ゲームへの招待のための基礎処理を追加しました。
-
新しい ShooterExplorer プラグインと ShooterTest プラグインに、プロトタイプとテスト コンテンツを追加しました。
-
割り当て済みのキーをバインディングしようとした際に警告画面が表示されるように、キー割り当ての画面を改善しました。
5.1 のバグ修正
-
「
LyraGame.Target.cs」に含まれるShouldEnableAllGameFeaturePlugins関数がfalseを返すように変更されたため、ゲーム機能プラグインを通常のプラグインと同様に有効にできるようになりました。これによってプラグインが修正されて、エンジンのカスタム コンパイル バージョンとランチャー インストール バージョンの両方で同じように機能するようになります。 -
Lyra を実行することで他のプロジェクトの既存のプレイ イン エディタ (PIE) のキー割り当てが変更される問題を修正しました。
-
ヘルス値に負のモディファイアを適用するのではなく、回復とダメージの属性を適切に使用するよう各機能を変更しました。
-
非推奨のコントローラー ID の代わりに、新しい PlatformUser 型と InputDeviceId 型を使用するようにコードとブループリントを更新しました。
Unreal Engine 5.0
Lyra Sample Game の 5.0 バージョンは 5.0.2 とともに更新されて、元のリリースに含まれていたいくつかのバグが修正されました。これらの修正は、それ以降のすべてのサンプルのリリースに含まれています。
5.0.2 のバグ修正
-
さまざまなインストール ディレクトリを処理できるよう自動化スクリプトを修正しました。
-
逆のマウス設定を修正しました。
-
マネキン リターゲティング アセットとコントロールリグ アセットを更新しました。
-
モバイル デバイス プロファイルのアンチエイリアス設定を更新しました。
-
不足していたエディタ アイコンを追加しました。