Epicでは、GoogleがWebRTCのバージョンにおける脆弱性を公開 (詳細はこちら)したことを認識しており、EOS SDKに対する影響および次のステップを調査しています。
Epic Online Services (EOS) は、エンジンに依存しないシステムで、以下を含む幅広いクロスプラットフォームのオンライン機能を提供します。
- 次などのプレイヤー中心の機能:
- アチーブメント
- リーダーボード
- 次などの商業的な機能:
- ゲーム内課金
- 次などのソーシャル機能:
- 音声通信
- フレンド リスト
Online Subsystem Epic Online Services (OSS EOS) プラグインを使用すると、Unreal Engine プロジェクトで EOS を使用することができます。Online Subsystem Epic Online Services プラグインを使用すると、EOS SDK と直接やり取りするコードを記述することなく、ゲーム内で Epic Online Services とやり取りすることができます。この機能を使用するには、EOS デベロッパー ポータル で製品を登録および設定してから、いくつかのプラグインを有効にして、設定し、OSS インターフェースを介して EOS 機能を公開する必要があります。
製品の登録および設定に関する情報を含む Epic Online Services の詳細については、「Epic Online Services に関するデベロッパー ドキュメント」を参照してください。
EOS プラグインの概要
Online Subsystem (OSS) プラグインは、Online Subsystem (OSS) プラグインをベースにして作成されています。Online Subsystem プラグイン プラグインは、さまざまなオンライン サービスにアクセスするための共通インターフェースを提供する汎用プラグインです。OSS EOS プラグインは、EOS SDK との通信をプラグインに統合することによって Epic Online Services から利用できる特定の機能を実装することで、OSS プラグインを拡張します。このページでは、OSS EOS プラグインの以下の機能について説明します。
必要に応じて、OSS EOS Plus プラグインを使用して OSS EOS プラグインを拡張することができます。EOS Plus は「EOS + Base Platform」の略で、EOS と他のプラットフォーム (Steam、コンソール プラットフォームなど) を組み合わせたものです。EOS を他のプラットフォームと組み合わせることで、自動セッション ミラーリングなどの追加機能が提供されます。EOS Plus は、Epic Account Services (EAS) と併用することもできますし、単独で使用することもできます。
EOS Plus を使用するタイミング
Epic Games Store でゲームをシッピングする場合は、OSS EOS プラグインを使用する必要があります。また、EOS Plus を使用する必要はありません。他のプラットフォームでゲームをシッピングする場合は、OSS EOS プラグインに加えて、OSS EOS Plus プラグインを使用してください。このガイダンスには例外がある場合があります。自分のプロジェクトに最適なプラグインの組み合わせを決定するために、このページを読み進めてください。
OSS EOS の使用方法
Epic デベロッパー コミュニティ の OSS EOS プラグイン コース では、Unreal Engine プロジェクトで OSS EOS を使用するための手順を説明しています。
セットアップ
Epic Online Services に製品を登録する
Epic デベロッパー リソース ドキュメント では、Epic Games Store (EGS)、Epic Online Services、Kids Web Services (KWS)、およびそれらに関連するツールに関するリソースを提供しています。OSS EOS プラグインを利用するには、まず Epic Online Services に製品を登録する必要があります。製品を EOS に登録するには、Epic デベロッパー ポータル に移動して、「使用開始の手順」に記載のステップを実行します。特に、本ガイドでは、使用開始の手順のステップ 1 で製品登録の概要を説明しています。製品登録時に提供される情報は、後で Unreal Engine 内で OSS EOS プラグインを設定する際に必要になります。
Unreal Engine には EOS SDK が付属しているため、Unreal Engine に含まれる EOS SDK バージョンを使用する場合は、別途 EOS SDK をダウンロードする必要はありません。異なるバージョンの EOS SDK を使用するには、「使用開始の手順のステップ 2」の手順に沿って希望のバージョンの EOS SDK をダウンロードします。希望のバージョンの EOS SDK をダウンロードしたら、Unreal Engine で使用する EOS SDK のアップグレード方法の詳細を記載した「EOS SDK をアップグレードする」の手順を実行します。
EOS SDK をアップグレードする場合は、アップグレードに必要なアップデートについて、「EOS SDK リリース ノート」を参照することをお勧めします。
OSS EOS プラグインを有効にする
プロジェクトで EOS を使用するには、Unreal Engine で OSS EOS プラグインを有効にする必要があります。OSS EOS プラグインを有効にするには、次の手順を実行します。
- [Edit (編集)] > [Plugins (プラグイン)] に選択します。これにより、有効にしたいプラグインを検索できる プラグイン ブラウザ が開きます。
- プラグイン ブラウザ で、Online Subsystem EOS プラグインを見つけて有効にします。
Online Subsystem EOS は、Epic Online Services 用の Online Subsystem プラグインを実装しています。OSS EOS プラグインを有効にすると、以下の追加プラグインがデフォルトで有効になります。
- EOS Plus
- EOS を他のプラットフォームと組み合わせます。
- EOS Shared
- EOS SDK の初期化とシャットダウンを実行します。
- OSS EOS の依存関係としてデフォルトで有効になります。
- EOS Voice Chat
- EOS を介したボイス チャットをサポートします。
希望のプラグインを有効にしたら、プロジェクトでそのプラグインを使用するように設定する必要があります。次の設定手順の一部では、製品関連の設定や、製品を EOS に登録した後に受け取った識別子が必要です。これらは、Epic デベロッパー ポータル で使用できます。
OSS EOS プラグインを設定する
先に進むには、以下を確認してください。
OSS EOS プラグインを設定にするには、次の手順を実行します。
- ツールバーで、[Edit (編集)] > [Project Settings (プロジェクト設定)]) をクリックします。
- [Plugins (プラグイン)] > [Online Subsystem EOS] に移動します。

EOS Settings (EOS 設定)
これらの設定は、EOS のプラットフォーム固有の設定に関するものです。詳細については、「EOS API リファレンス」ページの「EOS_Platform_Options」データ構造体に関するページを参照してください。以下の表では、各 EOS 設定について説明します。
設定 | 説明 |
---|---|
Cache Dir (キャッシュ ディレクトリ) | EOS が一時データを格納する場所です。Windows のデフォルトの場所は C:/Users/<USERNAME>/Documents/CacheDir です。 |
Default Artifact Name (デフォルト アーティファクト名) | コマンドライン引数としてアーティファクトが渡されない場合に、このアーティファクト名が使用されます。コマンドラインを介してアーティファクト名をパスしない場合は、これが以下で定義されている アーティファクト名 と必ず一致するようにしてください。 |
Tick Budget in Milliseconds (ティック割り当て (ミリ秒単位)) | この設定は、EOS_Platform_Tick を返すことで、EOS の操作によってゲームがブロックされるのを防ぎます。詳細については、Epic Online Services のドキュメントで EOS_Platform_Create について参照してください。 |
Enable Overlay (オーバーレイを有効化) | これは、オーバーレイを有効化または無効化するために使用します。一部のオーバーレイは、Epic Games Store でシッピングされるタイトルでのみ有効な e コマース用オーバーレイなど、プラットフォーム固有である場合があります。 |
Enable Social Overlay (ソーシャル オーバーレイを有効化) | ソーシャル オーバーレイでは、フレンド、アチーブメント、追加の認証ステップなどの情報が表示されます。他のオーバーレイを有効にしたまま、特定のオーバーレイを個別に無効にできます。この設定は、[Enable Overlay] がオフになっている場合には作用しません。 |
Enable Editor Overlay (エディタのオーバーレイを有効化) | これは、Unreal Editor でオーバーレイを有効化または無効化するために使用します。 |
Require Being Launched by Epic Games Store (Epic Games Store での起動が必要) | Epic Games Store でシッピングされるタイトルでこの設定を有効にすると、ゲームを起動する前に所有権が確認され、Epic Games Launcher からの起動が必要になります。エンドユーザーが他の方法でゲームを起動しようとすると、ゲームのそのプロセスが終了して、ゲームが Epic Games Launcher で再起動されます。 |
Title Storage Tags (タイトル ストレージ タグ) | タイトルのデータ ストレージで複数のファイルをクエリする場合に使用されます。詳細については、Epic Online Services のドキュメントの「Title Storage インターフェース」で、タグを使った複数のファイルのクエリ について参照してください。 |
Title Storage Read Chunk Length (タイトル ストレージの読み取りチャンク長) | EOS_TitleStorage_OnReadFileDataCallback の 1 回のコールバックで読み取るデータの最大量 (バイト) を設定します。詳細については、Epic Online Services ドキュメントの「Title Storage インターフェース」で「ファイルへアクセスする」を参照してください。 |
アーティファクト | Epic Games Store では、1 つの製品に対して複数のアーティファクトをサポートしています。たとえば、開発用、テスト用、および顧客が使用するリリース バージョン用にそれぞれの内部アーティファクトを製品に設定できます。この配列には、それぞれ指定されたアーティファクトの設定が含まれています。この配列には 1 つ以上のアーティファクトが含まれており、[Default Artifact Name] の値が配列要素の 1 つの名前と一致している必要があります。これらの設定の詳細については、以下の「アーティファクトの設定」を参照してください。 |
アーティファクトの設定
アーティファクトの設定には、EOS デベロッパー ポータルに登録した製品の設定が含まれます。ここで行う設定は、EOS デベロッパー ポータルで登録した製品の設定と一致している必要があります。製品の設定 は、EOS デベロッパー ポータルで確認できます。
[Artifact Settings (アーティファクトの設定)] を編集するには、次の手順を実行します。
- [EOS Settings (EOS 設定)] セクションの [Artifacts (アーティファクト)] の隣にある [Add Element (要素を追加)] ボタンをクリックします。これにより、[EOS Settings] の [Artifact] 配列に新しい要素が作成されます。
- この新しいアーティファクトの設定をカスタマイズするには、新しく作成した配列要素の隣にある矢印をクリックします。これが配列の最初の要素である場合、名前が Index[0] になります。
次の表に、使用可能なアーティファクトの設定を示します。
設定 | 説明 |
---|---|
Artifact Name (アーティファクト名) | Epic Games Store で起動する場合、これは デベロッパー ポータル にあるストア設定のアーティファクト ID と一致している必要があります。Epic Games Store でリリースしない場合、これは任意の文字列にすることができます。これは、-epicapp コマンドライン引数またはデフォルトのアーティファクト名で渡されたアーティファクトとも一致している必要があります。 |
Client ID (クライアント ID) | 製品のクライアント ID。この ID は、先頭の 3 文字が xyz です。 |
Client Secret (クライアント シークレット) | クライアント ID を確認するために使用するクライアント シークレット。 |
Product ID (製品 ID) | EOS SDK はこの ID を使用して製品を識別します。 |
Sandbox ID (サンドボックス ID) | アーティファクトは、この ID 値を持つサンドボックスに属します。 Epic Games Store に配信しない場合、製品が持つサンドボックスは 1 つのみです。複数のサンドボックスを使用している場合、重複する |
Deployment ID (デプロイメント ID) | ターゲットにするデプロイメント ID です。デプロイメント ID は、アーティファクトごとに異なります。たとえば、MyGameStaging アーティファクトおよび MyGameRelease アーティファクトがある場合、それぞれが独自のデプロイメント ID を持ちます。デフォルトでは、サンドボックスごとに 1 つのデプロイメントがあります。 |
クライアント暗号化キー | EOS サービスにデータをアップロードする際にデータを暗号化する 64 バイトの 16 進数文字列。他の設定とは異なり、EOS ではこの暗号化キーを管理しません。また、暗号化キーは製品の設定にも格納されません。このキーはゲームに対して一意であり、ユーザーのデータ プライバシーを保護するため、このキーが Epic Games に知らされることはありません。プレイヤーとタイトル データ ストレージのためにデータを暗号化するのに使用されます。 プレイヤーまたはタイトルのデータ ストレージを使用「しない」場合、デフォルトの暗号化キー (64 ビット) として |
EOS Plus の設定
このプラグインを使用するには、まずサポートする プラットフォーム ごとにデベロッパー ポータルで 製品 の登録と設定を行います。EOS SDK のプラットフォーム固有のバージョンには、各バージョンがサポートしているプラットフォームの機能を使用するための詳細な説明が含まれています。
EOS Plus プラグインを使用する前に、EOS Plus のログイン設定とクロスプレイ設定を行う必要があります。
EOS Plus ログインの設定
以下の表では、EOS Plus のログイン設定について説明します。
設定 | 説明 |
---|---|
Use Epic Account for EOS login (EOS ログインに Epic アカウントを使用する) (アカウントのリンクが必要です) | このオプションが有効な場合、OSS EOS プラグインがプラットフォーム固有の認証トークンを使用して、ユーザーが Epic アカウントに自動的にサインインします。 |
Use EOS Connect APIs to create and link Product User IDs (PUIDs), and use EOS Game Services (EOS コネクト API を使用して、製品ユーザー ID (PUID) を作成してリンクし、EOS ゲーム サービスを使用する) | このオプションを有効にすると、EOS Connect API を使用して、クロスプレイ用のアカウントをリンクします。 |
クロスプレイの設定
以下の表では、クロスプレイの設定について説明します。
設定 | 説明 |
---|---|
Mirror Stats to EOS (統計情報を EOS に反映する) | このオプションが有効な場合、EOS Plus ではすべての 統計 情報の複製を OSS EOS プラグインに送信します。 |
Mirror Achievements to EOS (アチーブメントを EOS に反映する) | このオプションが有効な場合、EOS Plus ではすべての アチーブメント データの複製を OSS EOS プラグインに送信します。 |
Use Crossplay Sessions (クロスプレイ セッションを使用) | この設定は、クロスプラットフォームのネットワーク ゲームをプレイするために必要です。また、EOS の Sessions インターフェイス を主要なセッション インターフェースにします。 |
Mirror Presence to EAS (プレゼンスを EAS に反映する) | このオプションでは、EOS Plus プラグインが プレゼンス データを OSS EOS プラグインにも送信するかどうかを決定します。プレゼンス データは、Epic Account Services を使用する場合にのみ利用できます。 |
EOS プラグインのエンジンの設定
デベロッパー ポータルで製品を設定して、プラグインを設定したら、いくつかの設定を行う必要があります。これらのプラグインは、DefaultEngine.ini
などのエンジンのコンフィギュレーション階層で設定できます。
OSS EOS のコンフィギュレーション設定
プロジェクトの「DefaultEngine.ini
」ファイルに次のコンフィギュレーション設定を追加します。
-
プロジェクトで使用する Online Subsystem EOS プラグインが有効になっていることを確認します。
[OnlineSubsystemEOS] bEnabled=true
-
プロジェクトのオンライン サービスのデフォルト プラットフォームとして EOS を設定します。
[OnlineSubsystem] DefaultPlatformService=EOS
-
ネット ドライバーを指定します。
[/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
-
プレイヤーがホストする対戦で EOS のピアツーピアのソケット機能を使用します。この設定はオプションです。
[/Script/OnlineSubsystemEOS.NetDriverEOS] bIsUsingP2PSockets=true
以下は、OSS EOS 向けの上記のすべてのコンフィギュレーション設定です。
[OnlineSubsystemEOS]
bEnabled=true
[OnlineSubsystem]
DefaultPlatformService=EOS
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[/Script/OnlineSubsystemEOS.NetDriverEOS]
bIsUsingP2PSockets=true
Epic Games Launcher からタイトルを起動する
Epic Games Launcher からタイトルを起動する場合は、Epic Games Store (EGS) が起動するすべての Epic アプリと Epic サンドボックスのペアについて、Engine のコンフィギュレーション ファイル階層に設定エントリを追加する必要があります。プロジェクト設定またはエンジン設定で [Default Artifact Name (デフォルトのアーティファクト名)] と [Artifact Name (アーティファクト名)] が、Epic Online Services デベロッパー ポータルのアーティファクト名と一致していることを確認してください。
EGS でタイトルをシッピングする場合、[Default Artifact Name (デフォルトのアーティファクト名)] は無視されます。EGS は常に、代わりに使用する -epicapp
コマンドライン引数を渡します。デフォルトのアーティファクト名は、-epicapp
が渡されない他のストアページでシッピングする場合に役立ちます。
EOS Plus のコンフィギュレーション設定
プロジェクトで、EOS と他のオンライン プラットフォームとの間でクロスプレイを実装するように設定するには、プロジェクトの DefaultEngine.ini
ファイルに次のコンフィギュレーション設定を追加します。
- プロジェクトで使用する Online Subsystem EOS Plus プラグインが有効になっていることを確認します。
-
なお、EOS Plus プラグインを使用すると、EOS を別のオンライン サービスと組み合わせて使用することができます。
[OnlineSubsystemEOSPlus] bEnabled=true
-
- デフォルトのプラットフォーム オンライン サービスを EOS Plus に変更します。
-
これにより、EOS を別のプラットフォーム サービスと組み合わせて使用していることをエンジンに伝えます。また、使用したいネイティブ プラットフォームのオンライン サービスを追加します。この例では Steam に設定していますが、コンソールのオンライン サービスを含め、どのオンライン サービスでも追加できます。
[OnlineSubsystem] DefaultPlatformService=EOSPlus ; Add your additional platform online services below NativePlatformService=Steam
-
- デフォルトの OSS と互換性のあるネット ID タイプを伝えます。
-
これは、EOS/EOS Plus がデフォルトの OSS である場合にのみ設定する必要があります。
[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl] +CompatibleUniqueNetIdTypes=EOS +CompatibleUniqueNetIdTypes=EOSPlus
-
- EOS と EOS Plus の両方のクライアント間の通信をサポートします。
-
たとえば、Steam などの他のオンライン プラットフォームでログインした EOS Plus プレイヤーが EOS セッションをホストしており、EOS (EOS Plus 以外) クライアントが前者の EOS セッションに参加するというシナリオについて検討してみましょう。純粋な EOS クライアントには、EOS Plus Net ID が正しく EOS にルーティングされ、EOS Net ID としてシリアル化が解除されるように、このマッピングが必要です。この
MappedUniqueNetIdTypes
設定は、前のステップのコンフィギュレーションと同じコンフィギュレーション セクションに追加されます。[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl] MappedUniqueNetIdTypes=(("EOSPlus","EOS"))
-
以下は、EOS Plus に関する上記のすべてのコンフィギュレーション設定です。
[OnlineSubsystemEOSPlus]
bEnabled=true
[OnlineSubsystem]
DefaultPlatformService=EOSPlus
NativePlatformService=Steam
[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]
+CompatibleUniqueNetIdTypes=EOS
+CompatibleUniqueNetIdTypes=EOSPlus
MappedUniqueNetIdTypes=(("EOSPlus","EOS"))
ログイン
オンラインの ID インターフェースでログイン処理を開始するメソッドは、2 つあります。
- Auto Login:ローカル ユーザー数を渡す必要があります。
- Login:
FOnlineAccountCredentials
オブジェクトを使用する必要があります。
次のセクションでは、OSS EOS で Auto Login または Login のいずれかを使用して、ユーザーをログインする方法について説明します。
OSS EOS を使用してログインする
有効なローカル ユーザー数を入力することに加え、Login メソッドでは FOnlineAccountCredentials
オブジェクトを渡す必要があります。このクラスには、次の 3 つのフィールドがあります。
- Type (型)
- ID
- Token (トークン)
Login 方法
これら 3 つのフィールドは、その値に応じて OSS EOS で使用する認証メソッドを示します。次のセクションでは、利用可能な各種認証の設定方法の例を示します。
- アカウント ポータル
- デベロッパー
- 交換コード
アカウント ポータル
- タイプ:
AccountPortal
- ID:
- トークン:
アカウント ポータルは、EOS デベロッパー認証ツール (Dev Auth ツール) を必要とせず、Epic Games Launcher からアプリケーションを起動する必要もないため、最も汎用的なログイン方法です。
この方法を使用すると、EOS SDK バージョン 1.15 以降を使用している場合、Login 呼び出し時にゲーム オーバーレイ UI が表示されます。ゲーム オーバーレイが有効になっていない場合は、ブラウザ ウィンドウが開きます。プロンプトが表示されたら、ユーザーは Epic アカウント情報を入力する必要があります。ユーザーが Epic Games にすでにログイン済みの場合、対象となる製品のアクセス スコープに同意する必要があります。
認証情報はゲーム オーバーレイ UI またはブラウザでユーザーによって提供されるため、ID やトークンを提供する必要はありません。
デベロッパー
- タイプ:
Developer
- Id:
localhost:<PORT>
PORT
は、Dev Auth ツールで指定されたポート
- トークン:
<CREDENTIALS_NAME>
CREDENTIALS_NAME
は、Dev Auth ツールで指定される
デベロッパーは、デスクトップ プラットフォームで OSS EOS を使用して開発する場合に推奨される方法です。このメソッドでは、Dev Auth ツールが実行されている必要があります。デベロッパー認証ツール の詳細については、Epic Online Services サイトの以下のドキュメントを参照してください。
Dev Auth ツールの設定後、どのポートおよび認証情報の名前を使用したかを覚えておいてください。これらのポートおよび認証情報の名前は、上記のとおり FOnlineAccountCredentials
オブジェクトの Id
フィールドおよび Token
フィールドを入力する際に必要になるためです。Login の呼び出しが実行されると、この Login メソッドが開かれ、ユーザーは Epic Games アカウントの情報を入力するよう求められます。ユーザーが Epic Games にすでにログイン済みの場合、対象となる製品のアクセス スコープに同意する必要があります。この手順は、初回ログイン時にのみ行います。
交換コード
- タイプ:
ExchangeCode
- ID:
- トークン:
<EXCHANGE_CODE>
<EXCHANGE_CODE>
は Epic Games Launcher によって指定されます
交換コードの方法は、Epic Launcher によって提供される交換コードが必要であるため、Epic Games Launcher からアプリケーションが起動されている場合にのみ使用できます。この方法では Dev Auth ツールが実行されている必要はなく、ゲームのシッピング バージョンで使用できます。
Epic Games Launcher では交換コード トークンが提供されるため、ID やトークンを入力する必要はありません。
ログイン成功
これらの方法のいずれかが正常に完了した場合、ログイン プロセスは必要なすべての EOS 通知サービス (ログイン ステータス、フレンド、プレゼンスの更新、および認証のリフレッシュ) を登録して終了し、次の登録済みデリゲートをトリガーします。
OnLoginComplete
:ログインが正常に成功した場合、パラメータが含まれます。また、新規に認証されたユーザーの場合はUniqueNetId
が含まれます。OnLoginStatusChanged
:パラメータは以前および現在のログイン ステータスに対応します。また、新規に認証されたユーザーのUniqueNetId
に対応します。
OSS EOS を使用して自動ログインする
Online Subsystem EOS で自動ログインを使用するには、起動時にゲームの実行ファイルに追加のコマンドライン引数を渡す必要があります。これらの引数は、FOnlineAccountCredentials
オブジェクトの 3 つのフィールドに一致します。一致しない場合は、Login メソッドに渡されます。
上記のログインのパラメータは、以下のコマンドライン引数に対応しています。
FOnlineAccountCredentials 変数 | コマンドライン引数 |
---|---|
Type |
AUTH_TYPE |
Id |
AUTH_LOGIN |
Token |
AUTH_PASSWORD |
Login 方法
このセクションには、前のセクションで説明した 3 つのログイン メソッドに必要なパラメータの例が含まれています。
アカウント ポータル
-AUTH_TYPE="accountportal"
デベロッパー
-AUTH_TYPE="developer" -AUTH_LOGIN="localhost:<PORT>" -AUTH_PASSWORD="<NAME_IN_DEV_AUTH_TOOL>"
このコマンドの引数は、以下のとおりです。
<PORT>
は Dev Auth ツールで設定したポートです。<NAME_IN_DEV_AUTH_TOOL>
は Dev Auth ツールで選択した認証情報名です。
交換コード
-AUTH_TYPE="exchangecode" -AUTH_PASSWORD="<EXCHANGE_CODE_FROM_LAUNCHER>"
このコマンドの引数は、以下のとおりです。
<EXCHANGE_CODE_FROM_LAUNCHER>
は Epic Games Launcher の交換コードです。
外部アカウント認証情報を使用したログイン フロー
このセクションでは、外部アカウントを使用した OSS EOS のログイン フローについて説明します。外部アカウントでログインするには、EOS Plus を有効にする必要があります。
Epic Account Services とConnect インターフェース (EOS_Connect
) の両方が有効になっている場合、Steam など、EOS 以外のプラットフォームの外部アカウント認証情報を使用して、EOS_Auth_Login
が呼び出されます。このログインが無効なユーザー エラー (EOS_InvalidUser
) で失敗した場合、EOS_Auth_LinkAccount
が呼び出されます。この呼び出しは、Web ブラウザまたはユーザー インターフェース オーバーレイを介して Epic Games アカウントにログインするようユーザーに促します。このログインにより、ユーザーの Epic Games アカウントが、EOS 以外の外部アカウントにリンクされます。
アカウント リンク プロセスの詳細については、以下の「既知の問題」を参照してください。
Epic Account Services が有効でなく、Connect インターフェースが有効な場合は、外部アカウントの認証情報を使用して EOS_Connect_Login
が呼び出されます。
Auth インターフェース (EOS_Auth
) と Connect インターフェースの両方で、ID プロバイダの構成が必要です。希望の外部プラットフォームを使用するには、EOS プロジェクト デベロッパー ポータルの ID プロバイダリストに追加します。ID プロバイダでプラットフォームを正しく設定すれば、EOS 認証は正常に完了し、EOS のあらゆるゲーム機能にアクセスできるようになります。詳細については、「Identity Provider Management (ID プロバイダの管理)」に関する Epic デベロッパー リソース ドキュメントを参照してください。
外部アカウントによるログインを使用するには、EOS Plus を有効にする必要があります。
Epic Account Services を使用する
この設定が有効になっている場合、[Using Crossplatform User IDs (クロスプラットフォーム ユーザー ID を使用する)] も有効になっているかのようにログイン プロセスが続行されます。外部認証トークンは Login メソッドに必要な認証情報のセットに追加されます。また、EOS は EOS_Auth_Login
メソッドを呼び出すことで認証を試みます。
インターフェース
このセクションでは、Online Subsystem EOS プラグインに実装されているインターフェースに関する追加情報を提供します。これらの各インターフェースの詳細については、Online Subsystem のドキュメントを参照してください。OSS EOS プラグインは、以下の EOS SDK インターフェースをサポートしています。
サポートするインターフェース
OSS EOS インターフェース | EOS SDK インターフェース | 説明 |
---|---|---|
Achievements | Achievements | ユーザー アチーブメントのステータスのロックを解除し、確認します。 |
ストア、購入 | Ecom | アイテムを購入し、その所有権を確認します。 |
External UI (外部 UI) | UI | ユーザー インターフェース オーバーレイを表示します。 |
Identity | Auth | ログイン/ログアウトを含む、ユーザー アカウントを確認します。 |
Leaderboards | Leaderboards | リーダーボードを作成して取得します。 |
Presence | Presence | 現在のアクティビティをフレンドに通知します。 |
Sessions | Sessions | セッションベースのマッチメイキングを管理します。 |
Friends | Friends | フレンド リストにプレイヤーを追加するか、プレイヤーを削除します。フレンド リストを取得します。 |
統計データ | Stats | ユーザーの統計情報を取り込み、クエリします。 |
Title File | タイトルのストレージ | 暗号化されたタイトル データをクラウドからダウンロードします。 |
User Cloud | User Info | ユーザー表示情報にアクセスします。 |
Sessions
バケット Id
OSS EOS セッションでは、BucketId
は、セッション検索に使用する最上位のゲーム固有のフィルタリング情報です。セッション BucketId
の詳細については、セッション に関する EOS ドキュメントを参照してください。
FOnlineSessionSettings::Settings
に追加したカスタム属性を使用して、プロジェクトが必要とする任意の値に BucketId
を設定できます。これを行うには、次のものをプロジェクトのコードに追加します。
SessionSettings.Settings.Add(OSSEOS_BUCKET_ID_ATTRIBUTE_KEY, FOnlineSessionSetting(FString(TEXT("BUCKET_ID_PLACEHOLDER")), EOnlineDataAdvertisementType::ViaOnlineService));
構成要素
BUCKET_ID_PLACEHOLDER
は使用したいバケット ID です。
このカスタム仕様の BucketId
も、同様にセッション検索パラメータに追加する必要があります。
統計データ
統計データ名
OSS EOS は、すべての統計名を EOS にパスする前に変換します。EOS デベロッパー ポータルでプロジェクトを設定する際、OSS EOS との互換性を確保するため、統計情報名は必ず大文字で設定してください。
既知の問題
アカウントのリンク
現時点では、ログイン プロセス中のアカウント リンクは、Steam プラットフォームでのみ利用できます。また、その他のプラットフォームでログインを試行すると、ログに次の認証エラーが記録されます。
LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage=[The authorization server request is still pending as the end user has yet to visit and enter the verification code.], CorrId=[...]
この機能は、その他のプラットフォームでは将来のリリースで使用可能になる予定です。現時点では、Epic Games の [Account Settings (アカウント設定)] の [Connections (接続)] セクションにある [Accounts (アカウント)] タブから手動でアカウントをリンクできます。
リンク プロセスで使用した Epic アカウントでは、アプリケーション アクセス スコープに同意する必要があります (「OSS EOS を使用してログインする」に記載)。同意しないと、以下の他のエラーがログに記録されます。
LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.oauth.scope_consent_required], NumericErrorCode=[58005], ErrorMessage=[The user has not consented to required scopes.], CorrId=[...]
アカウントのリンクが完了し、アクセス スコープに同意し、EOS 認証設定が適切である場合は、ログインは正常に完了し、EAS のあらゆる追加機能をアプリケーションで使用できるようになります。