Platform インターフェース は Epic Online Services (EOS) SDK の中心的なインターフェースであり、他のインターフェースにアクセスするために必要なハンドルを含み、その実行状態を維持します。アプリケーションの起動時、SDK を初期化して、Platform インターフェースへのハンドルを取得できます。このハンドルは、SDK の存続期間中に使用できます。
SDK を初期化する
Epic Online Services (EOS) SDK の使用する最初のステップは初期化です。初期化中に、コードは製品を特定し、カスタム メモリ割り当て関数をセットアップすることができます。
SDK を設定および作成する
タイトルはプレゼンス情報を管理します。Epic は、最も機密性の高いゲームに対する追加的なセーフガードとして、開発中にプレゼンス情報をコードネームに設定することを推奨します。デフォルトのゲーム名は EOS_Initialize
の ProductName
フィールドにあります。
EOS_InitializeOptions
データ構造体を使用して EOS_Initialize
を呼び出すことで、EOS SDK を初期化します。構造体を次のように設定します。
プロパティ |
値 |
---|---|
|
|
|
SDK を使用する製品の名前。名前の文字列は、空白であってはならず、最大 64 文字までがサポートされています。 |
|
SDK を使用するアプリケーションの製品バージョン |
|
|
|
カスタム この関数はメモリ配列を設定するポインタを返す必要があります。 |
|
カスタム |
|
カスタム |
|
システム固有の初期化用フィールド。指定されている場合、情報は「 |
|
|
EOS_Initialize
は、成否を示す EOS_EResult
を返します。SDK の初期化に成功した場合、値は EOS_Success
になります。失敗した場合は EOS_AlreadyConfigured
などのエラーを示す値になります。SDK を初期化した後、Platform インターフェース を作成することができます。
コンソール SDK へのアクセスをリクエストする
Developer Portal は、Playstation Network と XBox Live でのオンライン サービスでのユーザー認証機能など、EOS SDK を使用したいコンシューマー向けゲーム デベロッパーをサポートします。ただし、デベロッパーは最初に、コンシューマー向けプラットフォーム ホルダーでステータスを確認する必要があります。プラットフォーム ホルダーはそれぞれ独自の確認手順があります。
Nintendo Switch: Nintendo Developer Portal で自分のアカウントにログインし、[Getting Started] > [Nintendo Switch Middleware] > [Unreal Engine:Learn More] の順にクリックします。フォームに記入して送信します。
Playstation 4: Playstation Partners Portal で自分のアカウントにログインし、Playstation 4 DevNet で [Development] > [Tools & Middleware] > [Tools & Middleware directory] > [Unreal Engine 4[ の順にクリックします。[Confirm Status (ステータスを確認)] ボタンをクリックします。
Xbox One: – Microsoft アカウント担当者に連絡し、 consoles@unrealengine.com にメールを送信してメールアドレスを参照するように依頼します。
ステータスを確認すると、コンソール SDK へのアクセスおよびサポートを受ける資格を得ることができます。この資格には、EULA またはカスタム ライセンスのいずれか、および Unreal Engine パートナー以外での Unreal Engine パートナーが含まれます。
コールバックをログ記録する
SDK は冗長性の様々なレベルで有益な情報を記録します。コールバックを EOS_Logging_SetCallback
で登録すると、この出力へのアクセスが許可されます。EOS_LogMessageFunc
型の関数を実装して EOS_LogMessage
データ構造体を受け取ります。
Category:ログ メッセージのカテゴリに対応する文字列 (EOS_ELogCategory API リファレンスを参照してください)
Message:文字列としてのメッセージ
Level:ログ メッセージの冗長性レベル (EOS_ELogLevel API リファレンスを参照してください)
EOS_Logging_SetLogLevel
を使用して、ログ記録の詳細レベルを調整することができます。
Platform インターフェース
Platform インターフェースは他のすべての EOS SDK インターフェースへのアクセスを提供し、その実行状態を維持します。Platform インターフェースを作成すると、そのインターフェースを使用して他のインターフェースへのハンドルを取得したり、「ticking」と呼ばれるフレームごとの更新コードを実行するように指示することができます。
Platform インターフェースを作成する
次の情報を含む EOS_Platform_Options
構造体を使用して EOS_Platform_Create
関数を呼び出し、Platform インターフェースを作成します。
プロパティ |
値 |
---|---|
|
|
|
|
|
Epic Games によって提供されるゲームの製品 ID |
|
Epic Games によって提供される、ゲームのサンドボックス ID |
|
ホスト アプリケーションに割り当てられたクライアント ID とクライアント シークレットのペア エンドユーザー ゲーム クライアントなどの一般公開されているアプリケーションでは、信頼されているゲーム サーバー バックエンドとは異なる資格情報を使用します。 |
|
16 進形式 (64 桁の 16 進数) でファイルを暗号化するための 256 ビットの暗号化キー |
|
ログインしたユーザーのオーバーライド国コード |
|
ログインしたユーザーのオーバーライド ローカル コード |
|
Epic Games によって提供されるゲームのデプロイ ID |
|
|
|
アプリケーションがローカル ユーザーのクライアントとして実行されている場合は |
|
一時データのキャッシュに使用されるフォルダへの絶対パス |
成功すると、EOS_Platform_Create
は Platform インターフェースへのハンドル (EOS_HPlatform
型) を返します。
エディタなどの複数のビューをサポートするアプリケーションでは、複数の Platform インターフェース ハンドルの作成が必要になることがあります。しかし、これに対して分割画面方式のゲームなど、同一のデバイスでプレイする複数のユーザーをサポートする必要はありません。SDK は複数の Platform インターフェース インスタンスをサポートしますが、それぞれが独自の内部ステートを保持しています。取得する他のインターフェースは、それらを取得した Platform インターフェースに対して一意となっています。SDK 自体の複数のインスタンスを初期化しないでください。
EOS_HPlatform
ハンドルを取得したら、ハンドル アクセス関数を通じて他の EOS SDK インターフェースにアクセスできます。
インターフェース |
アクセス関数 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Mods] (Interfaces/Mods)
|
|
|
|
|
|
|
|
|
|
|
|
[Title Storage] (Interfaces/TitleStorage)
|
|
|
Platform インターフェースは、他のインターフェースにアクセスできるようするだけでなく、それらのインターフェースの実行状態を維持します。ゲームのメイン ループで毎フレーム EOS_Platform_Tick
を呼び出すと、非同期関数が継続して更新されます。
ランチャーでアプリケーションを再起動する
EOS_HPlatform
ハンドルを EOS_Platform_CheckForLauncherAndRestart
に渡すと、EOS はアプリケーションがランチャーを介して起動されたかどうかをチェックします。違う場合はランチャーからアプリケーションを再起動します。その際、次のコードを持つ EOS_EResult
が返されます。
EOS_Success
:アプリケーションはランチャーで再起動中です。現在のアプリケーションのプロセスは、新しく起動したプロセスを優先させるためにできるだけ早く終了する必要があります。EOS_NoChange
:すでにアプリケーションがランチャーから起動されている場合、追加操作は行われません。EOS_UnexpectedError
:LauncherCheck モジュールが初期化に失敗したか、アプリケーションの再起動に失敗しました。
この関数は、ストアで公開されていて、すでにランチャーからアクセス可能なアプリケーションにのみ関連しています。
SDK をシャットダウンする
ゲームを終了するには、Platform インターフェースによって保持されているメモリと、SDK によって保持されているグローバル ステートを解放する必要があります。シャットダウンするには、まず EOS_HPlatform
ハンドルを EOS_Platform_Release
関数に渡します。その後、EOS_Shutdown
を呼び出してプロセスを完了してシャットダウンします。
EOS_Shutdown