Diarkis プラグインの基本的な使い方
概要
本ページでは UE プラグインを利用して Diarkis のクライアント機能を利用する際の基本を説明します。
Diarkis クライアント SDK の基本的な使用方法
UE プラグインは Diarkis クライアント SDK 相当の機能を有したプラグインとなります。 クライアント SDK では Diarkis-Module を利用してランタイムの初期化、終了処理、機能の利用等を行います。 UE から Diarkis プラグインを利用する際においても基本的には同様の実装が必要となりますので、基本的な使用方法として Diarkis-Module のドキュメント を先にご一読いただけるとこの先の説明をスムーズにご理解いただけます。
サンプルでの実装例紹介
Diarkis-Module のドキュメント で説明した点を中心にシンプルなサンプルでどのように実装されるかソースコードを交えて説明します。
初期化処理と終了処理
Diarkis Module の初期化処理と終了処理 相当の処理はおおむね以下のクラスに実装されています。
Source\DiarkisExtension\Public\DiarkisNetworkManager.h
Source\DiarkisExtension\Private\DiarkisNetworkManager.cpp
以下が実装内容の詳細となります。
初期化処理
UDiarkisNetworkManager::Connect
/UDiarkisNetworkManager::ConnectAsync
の実行時にまだ未初期化であれば初期化処理を実行しますDiarkis Module の初期化と終了 に記載されていますように、この処理はアプリ起動後一度だけ実行する必要があります
UE では Editor 上での実行も考慮すると呼び出しタイミングには注意が必要となります
Diarkis サーバへの接続情報取得
Diarkis サーバへの接続情報の取得 と同様の実装となっています
Diarkis サーバへの接続
Diarkis サーバへの接続 と同様の実装となっています
終了処理
UDiarkisNetworkManager::Disconnect
の実行時に接続先サーバがなくなったときに自動的に実行しますDiarkis Module の初期化と終了 に記載されていますように
DiarkisDestroy
の呼び出しはDiarkisInit
の呼び出しに1対1で対応している必要があります
ロガー関連の実装
ログレベルの変更
UE プラグインでは LoggerFactory.cpp は以下の場所に存在します
Plugins\Diarkis\Source\Diarkis\Client\Private\logging\LoggerFactory.cpp
UE プラグインのロガー関連設定
ログファイルは以下のフォルダに出力されます。
DiarkisPluginSample/logs/○○○/および以下のフォルダ(OOOOはユーザID)。
Developmentビルドでもログを出力したい場合は、DiarkisInterfaceBaseのコンストラクタで
bOutputLog = true
を調整してください。DiarkisInterfaceBase コンストラクタでは、LogOutType でファイル出力とデバッグ出力を切り替えることができます。
Diarkis Module のカスタマイズ
Diarkis はサーバとクライアントが連携して動作する仕組みとなっており、サーバへリクエストを送信して結果をコールバックで受け取るという形が基本となっています。 この動作を実現するために Diarkis Module のカスタマイズ を行いアプリに合わせて Diarkis Module のコールバック処理等をカスタマイズする必要があります。 Diarkis プラグインサンプルではサンプルの都合に合わせてこの実装を行っており、これらのファイルが以下のフォルダに格納されています。
Source\DiarkisExtension\Private
Room 用のカスタマイズ実装であれば DiarkisRoom
といった名前で DiarkisRoomBase
を継承してサンプルの動作を実装しています。
基本となる処理や呼び出しタイミング
サーバへのコマンドの送信は各モジュールのインスタンスを使用して行います。
ここでは Room モジュールでサーバ上に部屋を作成する処理を例に使用方法を紹介します。
Room モジュールのインスタンスは DiarkisRoomBase
を継承した DiarkisRoom
クラスが実装されています。
Source\DiarkisExtension\Public\DiarkisRoom.h
Source\DiarkisExtension\Private\DiarkisRoom.cpp
コマンドの送信
DiarkisRoomBase
には部屋を作成するコマンドを送信する DiarkisRoomBase::SendCreateRoom
が用意されており、このメソッドを実行することでサーバへ部屋作成のリクエストコマンドを送信することができます。
サンプルコードでは以下のコードでこの機能を利用して部屋作成コマンドを送信しています。
Source\FieldWalker\Diarkis\UI\Room\RoomMenu.cpp
の URoomMenu::OnCreateButtonClicked
サーバでの処理結果などの受け取り
サーバでの処理結果は Room モジュールのコールバックで受け取ることができます。
例えば、SendCreateRoom
コマンドの実行結果は DiarkisRoom::OnRoomCreation
で受け取ることができます。 コマンドの処理結果がどのコールバックで取得できるかは DiarkisRoomBase
のような Base クラスのヘッダファイルを参照してください。
イベントコールバックは Diarkis が管理するイベントスレッドで発火するためこのコールバック内で UE 関連の機能を使用することができません。 また、コールバックが発生してからアプリに通知される際のレスポンス向上のためにもイベントスレッドで負荷の高い処理を行うことは避けることが望ましいです。 これらの課題に対応するためにサンプルでは様々なイベント処理が実装されています。
詳細については イベント処理について を参照してください。
最終更新
役に立ちましたか?