FieldWalker

FieldWalker の確認手順

目次

サンプル概要

  • 本プロジェクトは、UnrealEngine の Diarkis UnrealEngine Plugin を使用したサンプルプロジェクト( FieldWalker ) です。

  • DiarkisField 機能を確認することができます。

  • FieldWalker を複数立ち上げることで、他のクラアント端末で動かしているキャラクター位置の同期を確認することが確認できるサンプルです。

  • UDP プロトコル を使用して、キャラクター位置の同期する所を確認できます。

  • 対応する動作確認環境は Windows10/11, Mac, iOS, Android, Nintendo Swtich, PS4, PS5, Xbox Series X|S です。

  • UE4.27.2, UE5.0.3 で動作確認済みです。

確認手順

Windows の確認手順

  1. FieldWalker.uproject をマウス右コンテキストメニューから 「Generate Visual Studio project files」 を選択します。

  2. Visual Sutdio で FiedlWaker.sln を開きます。

  3. Diarkis サーバー接続先を、接続情報に合わせて以下のように指定してください。(FieldWalker/Source/FieldWalker/Diarkis/DiarkisPluginBase.cpp)

    ADiarkisPluginBase::ADiarkisPluginBase()
    {
         // Diarkis サーバー接続用 サーバーアドレス
         Host = "192.168.11.2:7000";
         // Host = "asia-northeast1.diarkis.io/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
    
         // Diarkis サーバー接続用 クライアントキー
         ClientKey = "";
         // ClientKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
    
         // Diarkis  サーバー接続用 uid (ユーザー毎異なるidを指定する)
         UID = 1111;
     }
    • クラアントキーが不要な際は、clientKey = "" で指定してください。

    • ユーザー ID は、uid = 0とすると起動時にランダムで ID が指定されます。

  4. ビルド&実行

    • Windows: VisualStudioで DebugGame_Editor Win64 を選択してビルドして実行

Mac の確認手順

  1. FieldWalker.uproject をマウスコンテキストメニューから 「Generate XCode Project」 を選択します。

    • 処理に失敗する場合は、以下のようにシェルコマンドを実行して、 FieldWalker.xcworkspace を作成します。

    UE4.27 の場合

    sh “/{PATH_TO_ENGINE}/UE_4.27/Engine/Build/BatchBiles/Mac/GenerateProjectFiles.sh” -project="/{PATH_TO_PROJECT}/FieldWalker.uproject" -game

    UE5.0 の場合

    sh "/{PATH_TO_ENGINE}/UE_5.0/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh" -project=/{PATH_TO_PROJECT}/FieldWalker/FieldWalker.uproject -game
  2. XCode 12.5.1 ( UE4.27 の場合 ) / XCode 13.3 ( UE5.0 の場合 ) で FieldWalker.xcworkspace を開きます。

  3. Diarkis サーバー接続先を、接続情報に合わせて以下のように指定してください。(FieldWalker/Source/FieldWalker/Diarkis/DiarkisPluginBase.cpp)

    ADiarkisPluginBase::ADiarkisPluginBase()
    {
          // Diarkis サーバー接続用 サーバーアドレス
         Host = "192.168.11.2:7000";
         // Host = "asia-northeast1.diarkis.io/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
    
         // Diarkis サーバー接続用 クライアントキー
         ClientKey = "";
         // ClientKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
    
         // Diarkis  サーバー接続用 uid (ユーザー毎異なるidを指定する)
         UID = 1111;
     }
    • クラアント・キーが不要な際は、clientKey = "" で指定してください。

    • ユーザー ID は、uid = 0とすると起動時にランダムで ID が指定されます。

  4. ビルド&実行

選択ビューポート

  1. UE4Editor 起動後、ツールバーの プレイ ボタンを押下。

    • 選択ビューポート / マルチプレーオプションプレイヤー数:1 を選択。

各画面の説明

  • Diarkis サーバの指定

    • HostName : Diarkis HTTP サーバの URL を指定します。

    • ClientKey : もしDiarkis サーバが ClientKey を設定している場合はその Key を指定します。もし設定していない場合は、空で結構です。

    • UID : 他のクライアントとは異なる一意の UID を指定します。 注意! 他のクライアントと同じID を指定すると同期することができません。

  • 同期方法の指定

    • SyncMethod : 同期方法(1分以内で参加する必要あり)

      • Field : Field 機能を使った同期。使用する Pod 数( UDP / TCP サーバの数)によって、Field が Grid で分割されます。

        • 標準では UDP サーバは 1 Pod 起動されているので、1 Map が 4 Grid で分割されています。

        • Grid を跨ぐ移動を行うと、異なる Grid のキャラクター間では位置情報が送られないため、表示されなくなります。

    • Show Stat : フレームレートなどを表示します。

    • Fix FPS : FPS を固定にします。

    • FPS : 固定 FPS を 30 FPS / 60 FPS に切り替えます。

InGame 画面

    • Grid Size スライダー : Grid の大きさを変更するスライダー

    • Server Count スライダー : 接続されている UDP サーバーの数(これは Grid の数に影響します。)

  • アプリケーションの操作

    wキー:  前進
    sキー:  後退
    aキー:  右
    dキー:  左
    spaceキー:  ジャンプ
    カメラ操作ー:  マウス

動作確認(マルチプレーオプション)

  1. UE4Editor 起動後、ツールバーの プレイ ボタンを押下。

    • スタンドアローンゲームを選択。

    • マルチプレーオプションプレイヤー数:2~4 を選択。

  2. 複数の Window が表示されて、ゲームの「 Start 」ボタンを押下

    • UID は同じものにならないように注意。UID が同じの場合、意図しない挙動になります。

    • Player を 複数にすると、PC のスペックによってはキャラクターの同期に遅延が発生する場合があります。

ログ出力

ログ出力

  • ログファイルは、以下フォルダに出力されます。

  • FieldWalker/logs/○○○○/ 以下フォルダ( OOOOはユーザーID )

  • ログは、デバック・ビルド時のみ出力されます。

  • Developmet ビルドでもログを出力する際は、DiarkisInterfaceBase コンストラクタで bOutputLog = true に調整します。

  • DiarkisInterfaceBase のコンストラクタで、LogOutType でファイル出力、デバック出力に切り替えることができます。

ログレベルの変更

  • LoggerFactory コンストラクタで、ログの出力レベルを変更することができます。

  • クライアントライブラリのログを機能( UDP, TCP, Socket, Room, P2P, MatchMaker, Runtime など )ごとに出力レベルを設定できます。

  • Base クラスで設定しているログは、Runtime で出力レベルを指定できます。

     severities({
       { "TCP", DiarkisLoggerSeverity::Info },
       { "UDP", DiarkisLoggerSeverity::Warning },
       { "RUDP", DiarkisLoggerSeverity::Info },
       { "Socket-TCP", DiarkisLoggerSeverity::Info },
       { "Socket-UDP", DiarkisLoggerSeverity::Info },
       { "Field", DiarkisLoggerSeverity::Info },
       { "Scheduler", DiarkisLoggerSeverity::Info },
       { "P2P", DiarkisLoggerSeverity::Info },
       { "Room-TCP", DiarkisLoggerSeverity::Debug },
       { "Room-UDP", DiarkisLoggerSeverity::Debug },
       { "Group-TCP", DiarkisLoggerSeverity::Info },
       { "Group-UDP", DiarkisLoggerSeverity::Info },
       { "UDP-Stats", DiarkisLoggerSeverity::Info },
       { "Runtime", DiarkisLoggerSeverity::Debug }
     })
  • 例えば、DiarkisLoggerSeverity::Warning に設定したら、以下の順番で Warning 以下が出力されるようになります。

       //! ログレベル:詳細
       Verbose = 0,
       //! ログレベル:デバック情報
       Debug,
       //! ログレベル:情報
       Info,
       //! ログレベル:ワーニング
       Warning,
       //! ログレベル:エラー
       Error,
       //! ログレベル:致命的なエラー
       Fatal,
       //! ログレベル:無し
       None

コードについて

FieldWalker 側の主なコード(Diarkis Plugin を利用したサンプル)

  • FieldWalker/Source/FieldWalker

    • FieldWalkerGameMode.h / FieldWalkerGameMode.cpp : Game を管理している主クラス ( AGameModeBase )

    • FieldWalkerCharacter.h / FieldWalkerCharacter.cpp : 自分のキャラクー用のクラス ( ADiakisCharacter )

  • FieldWalker/Source/FieldWalker\Diarkis

    • DiarkisPluginBase.h / DiarkisPluginBase.cpp : Diarkis Plugin を利用する基礎クラス

    • DiarkisPluginIntterface.h / DiarkisPluginIntterface.cpp : Diarkis Plugin を利用するインターフェースクラス

    • DiarkisPluginSample.h / DiarkisPluginBase.cpp : Diarkis Plugin を利用するサンプルクラス

Diarkis Pluginの主なコード

メソッド役割

Client

Diarkis ライブラリをコントロールするインターフェースの親クラス群

Extension

Diarkis ライブラリをコントロールするインターフェースの子クラス群

DiarkisNetwork

Diarkis Plugin のインターフェースクラス群

libDiarkis

Diarkis ライブラリ

Client のコードについて

  • 役割概要

    • Diarkis ライブラリをコントロールするインターフェースの親クラス

  • コードの場所

    • FieldWalker/Plugins/Diarkis/Source/Diarkis/Client

  • 各クラス

    • DiarkisInterfaceBase.h / DiarkisInterfaceBase.cpp : UE4 から Diarkis をコントロールするインターフェースクラス( libDiarkis をコントロール)

    • DiarkisRoomBase.h / DiarkisRoomBase.cpp : Room 機能の親クラス( libDiarkis をコントロール)

    • DiarkisGroupBase.h / DiarkisGroupBase.cpp : Group 機能の親クラス( libDiarkis をコントロール)

    • DiarkisFieldBase.h / DiarkisFieldBase.cpp : Field 機能の親クラス( libDiarkis をコントロール)

    • DiarkisTcpBase.h / DiarkisTcpBase.cpp : TCP 機能の親クラス( libDiarkis をコントロール)

    • DiarkisUdpBase.h / DiarkisUdpBase.cpp : UDP 機能の親クラス( libDiarkis をコントロール)

    • DiarkisP2PBase.h / DiarkisP2PBase.cpp : P2P 機能の親クラス( libDiarkis をコントロール)

    • DiarkisMatchMakerBase.h / DiarkisMatchMakerBase.cpp : MatchMaker 機能の親クラス( libDiarkis をコントロール)

    • DiarkisRPCBase.h / DiarkisRPCBase.cpp : RPC 機能の親クラス( libDiarkis をコントロール)

Extension のコードについて

  • 役割概要

    • Diarkis ライブラリをコントロールするインターフェースの子クラス群

  • コードの場所

    • FieldWalker/Plugins/Diarkis/Source/Diarkis/Extension

  • 各クラス

    • Character ( キャラクターのデータ同期クラス )

      • DiarkisCharacter.h / DiarkisCharacter.cpp : Diarkis の キャラクー同期用のクラス

      • CharacterSyncData.h / CharacterSyncData.cpp : キャラクター位置情報データをシリアライズ・デシリアライズするクラス

      • CharacterMoveData.h / CharacterMoveData.cpp : キャラクターの位置情報クラス。同期する際の初期位置

      • CharacterStateData.h / CharacterStateData.cpp : キャラクターの位置情報クラス。毎フレームの差分情報

    • Component ( Diarkis の 位置同期用の Component クラス)

      • DiarkisSyncComponent.h / DiarkisSyncComponent.cpp : Diarkis の 位置同期用の Component クラス

      • DiarkisCharacterSyncComponent.h / DiarkisCharacterSyncComponent.cpp : アクター作成時のカスタムデータ送受信のサンプル実装コンポーネント クラス

    • Movement ( Diarkis の 位置同期用のクラス )

      • DiarkisMovementController.h : 位置同期 Component のインターフェースクラス

      • DiarkisLocalMovementSync.h / DiarkisLocalMovementSync.cpp : ローカル用の位置同期 Component クラス

      • DiarkisRemoteMovementSync.h / DiarkisRemoteMovementSync.cpp : リモート用の位置同期 Component クラス

    • Diarkis/Utils ( ユーティリティクラス )

      • DiarkisUtils.h / DiarkisUtils.cpp

    • ライブラリをコントロールするインターフェースのクラス(XXXBase の派生クラス)

      • DiarkisInterface.h / DiarkisInterface.cpp

      • DiarkisRoom.h / DiarkisRoom.cpp : Room 機能をコントロールするクラス

      • DiarkisGroup.h / DiarkisGroup.cpp : Group 機能をコントロールするクラス

      • DiarkisField.h / DiarkisField.cpp : Field 機能をコントロールするクラス

      • DiarkisTcp.h / DiarkisTcp.cpp : TCP 機能をコントロールするクラス

      • DiarkisUdp.h / DiarkisUdp.cpp : UDP 機能をコントロールするクラス

      • DiarkisP2P.h / DiarkisP2P.cpp : P2P 機能をコントロールするクラス

      • DiarkisMatchMaker.h / DiarkisMatchMaker.cpp : MatchMaker 機能をコントロールするクラス

      • DiarkisRPC.h / DiarkisRPC.cpp : RPC 機能をコントロールするクラス

      • DiarkisSyncData.h / DiarkisSyncData.cpp : Diarkis 位置同期を処理するクラス

      • DiarkisReplication.h / DiarkisReplication.cpp : Room の Property を使用した変数の Replication 用クラス

      • DiarkisActorManagement.h / DiarkisActorManagement.cpp : Diarkis で管理する Actor を識別する ID

DiarkisNetwork のコードについて

  • 役割概要

    • Diarkis Plugin のインターフェースクラス群

  • コードの場所

    • FieldWalker/Plugins/Diarkis/Source/Diarkis/DiarkisNetwork

  • 各クラス

    • Event/Interfaces ( Diarkis Plugin の Room 機能のコールバックを受け取るインターフェースクラス )

      • DiarkisNetworkCoreEvent.h : Diarkis Plugin の Core イベントを表すインターフェイス

      • DiarkisNetworkRoomEvent.h : Diarkis Plugin の Room イベントを表すインターフェイス

      • DiarkisNetworkGroupEvent.h : Diarkis Plugin の Group イベントを表すインターフェイス

      • DiarkisNetworkFieldEvent.h : Diarkis Plugin の Field 機能のコールバックを受け取るクラス

      • DiarkisNetworkP2PEvent.h : Diarkis Plugin の P2P イベントを表すインターフェイス

      • DiarkisNetworkMatchMakerEvent.h : Diarkis Plugin の MatchMaker イベントを表すインターフェイス

    • Event/Emitters ( Diarkis の Room イベントをキューに溜めるクラス )

      • DiarkisNetworkCoreEventEmitter.h / DiarkisNetworkCoreEventEmitter.cpp : Diarkis の Core イベントをキューに溜めるクラス

      • DiarkisNetworkEventEmitterBase.h / DiarkisNetworkEventEmitterBase.cpp : 各種イベントを発生させる基底クラス

      • DiarkisNetworkRoomEventEmitter.h / DiarkisNetworkRoomEventEmitter.cpp : Diarkis の Room イベントをキューに溜めるクラス

      • DiarkisNetworkGroupEventEmitter.h / DiarkisNetworkGroupEventEmitter.cpp : Diarkis の Group イベントをキューに溜めるクラス

      • DiarkisNetworkFieldEventEmitter.h / DiarkisNetworkFieldEventEmitter.cpp : Diarkis の Field イベントをキューに溜めるクラス

      • DiarkisNetworkP2PEventEmitter.h / DiarkisNetworkP2PEventEmitter.cpp : Diarkis の P2P イベントをキューに溜めるクラス

      • DiarkisNetworkMatchMakerEventEmitter.h / DiarkisNetworkMatchMakerEventEmitter.cpp : Diarkis の MatchMaker イベントをキューに溜めるクラス

    • Modules ( Diarkis の Room 機能の状態をチェックしてコールバック・イベントをキューに溜めるクラス )

      • DiarkisNetworkModuleBase.h / DiarkisNetworkModuleBase.cpp

      • DiarkisNetworkRoom.h / DiarkisNetworkRoom.cpp : Diarkis の Room 機能の状態をチェックしてコールバック・イベントをキューに溜めるクラス

      • DiarkisNetworkGroup.h / DiarkisNetworkGroup.cpp : Diarkis の Group 機能の状態をチェックしてコールバック・イベントをキューに溜めるクラス

      • DiarkisNetworkField.h / DiarkisNetworkField.cpp : Diarkis の Field 機能の状態をチェックしてコールバック・イベントをキューに溜めるクラス

      • DiarkisNetworkP2P.h / DiarkisNetworkP2P.cpp : Diarkis の P2P 機能の状態をチェックしてコールバック・イベントをキューに溜めるクラス

      • DiarkisNetworkMatchMaker.h / DiarkisNetworkMatchMaker.cpp : Diarkis の MatchMaker 機能の状態をチェックしてコールバック・イベントをキューに溜めるクラス

    • DiarkisNetworkBlueprintLibrary.h / DiarkisNetworkBlueprintLibrary.cpp : Diarkis Plugin の コールバック・イベントを Blueprint 関数として登録するクラス

    • DiarkisNetworkManager.h / DiarkisNetworkManager.cpp : Diarkis Plugin を管理するクラス

    • DiarkisNetworkSubsystem.h / DiarkisNetworkSubsystem.cpp : UDiarkisNetworkManagerインスタンスを保持するクラス

libDiarkis のコードについて

  • 役割概要

    • Diarkis の C++ ライブラリ

  • コードの場所

    • FieldWalker/Plugins/Diarkis/Source/ThirdParty/libDiarkis/prebuilt

  • 各ライブラリのファイル

    • win-x64 で使用しているライブラリ (win-x64\bin\diarkis.dll)

    • macos-x64 で使用しているライブラリ (macos-x64\lib\diarkis.dylib)

    • android で使用しているライブラリ (android\libs\arm64-v8a\diarkis.so)

    • iOS で使用しているライブラリ (iOS\lib_static\libdiarkis.lib)

    • switch で使用しているライブラリ (nx64\Libraries\NX-NXFP2-a64\Release\libdiarkis.a)

    • ps4 で使用しているライブラリ (ps4\lib_staic\libdiarkis.a)

    • ps5 で使用しているライブラリ (ps5\lib_staic\libdiarkis.a)

    • xbox で使用しているライブラリ (xbox-series\lib_staic\diarkis.a)

クラス図

  • Diarkis Plugin クラス図

  • Diarkis Plugin をカスタマイズするには

    • Diarkis ライブラリをコントロールするインターフェースのクラス(図の下赤枠)の派生クラスを用意して、処理をカスタマイズする。

    • ADiarkisPluginSample を参考に処理をカスタマイズする。

  • キャラクター同期関連のクラス図

  • 同期方法をカスタマイズするには

    • DiarkisLocalMovementSync , DiarkisRemoteMovementSync の派生クラスを用意して処理をカスタマイズするか、 ADiarkisCharcter の派生クラスを用意して、処理をカスタマイズする

同期機能について

Diarkis Plugin で同期できる機能について

Field Walker サンプルでは、Diarkis Plugin を使用した以下の機能の同期するサンプルが含まれています。

  • アクターのインスタンス管理

  • アクターの位置同期

  • 変数のレプリケーション

  • RPC

これらの機能は UE の標準機能の通信処理とは異なる実装となっているため、通常の通信処理とは別途設定・実装を行う必要があります。また同期は、Diarkis Room の機能を使用して実装されているため、Room を使用して通信が可能な状態である必要があります。

アクターのインスタンス管理

  • DiarkisySyncComponent を持つアクターがローカルで生成・削除されると、アクター・インスタンス管理のための情報がリモートへ送信され各ホストで同一のアクター・インスタンスが存在する状態に同期されます。マップに初期配置されているアクターは生成済みのインスタンスが再利用され、動的に作成されたアクターはリモートでも動的に新規 Spawn します。

  • DiarkisySyncComponent は Diarkis ネットワーク上でアクターを識別するための Diarkis Actor ID を持っており、この ID を使用してアクターを識別します。また、DiarkisySyncComponent のオーナーかどうかを判断することが可能となっており、この情報を利用してローカルとリモート、それぞれの場合の挙動を切り替えられます。例えば ThirdPerson_AnimSyncBP ではこのフラグの設定によって、ローカルの CharacterMovement から情報を取得するか、通信で取得した情報を使用するか切り替えています。

  • この Actor ID やオーナーかどうかのフラグは Diarkis ネットワークに接続後、必要な情報がそろった後に利用可能となります。DiarkisSyncComponent には DiarkisActorIDDecided イベントがあり、このタイミングを知ることができます。例えば ThirdPersonCharacterBegin Play でこのイベントを利用して、オーナーが確定後にレプリケーションや RPC の登録処理を実行しています。

  • また、リモートのアクターを作成する際にカスタムデータを追加することが可能です。 UDiarkisCharacterSyncComponent::SerializeSpawnActorCustomPayload() にてリモート・アクター作成データへカスタムデータを追加し、UDiarkisCharacterSyncComponent::DeserializeSpawnActorCustomPayload() にて受信したデータから必要な情報を取得しています。

アクターの位置同期

  • Actor に DiarkisSyncComponent を 追加することで、これらの機能が有効になります。同一 Room に接続している他のホストに同一のアクターが自動的に作成されます。リモート側の TherdPersonCharacter は自動的に位置と姿勢、ジャンプ状態などが同期され、リモートのホストが Room から退出するとローカルに存在するリモート・アクターも自動的に削除されます。

変数のレプリケーション

  • Actor が持つ変数をネットワーク経由で同期する機能です。対象の変数は UPROPERTY() が指定されている必要があります。対象の Actor と変数名を指定して Register Replicated Variable で登録し、Send Replicated Variable を使用して必要なタイミングでデータを送信します。ただし送信間隔は DiarkisReplication::replicationMinimumInterval が最短のタイミングとなります。サンプルでは ThirdPersonCharacter の Blueprint の Register Replicated VariablesSend Replicated Variable に実装が存在します。

RPC

  • Actor が持つ関数をネットワーク経由で呼び出す機能です。対象の関数は UFUNCTION() が指定されている必要があります。対象の Actor と変数名を指定して Register Rpc UEFunc で登録し、Send Rpc UEFunc All 等で送信します。リモート側で RPC を受信すると、同一 Actor ID を持つアクターの指定された名前のメソッドを呼び出します。サンプルでは ThirdPersonCharacter の Blueprint の Register RPCs で登録し、 AFieldWalkerCharacter::HandleFire()RPC を送信しています。

動作確認環境

  • 対応プラットフォーム

    • Windows10

    • Mac

    • Android

    • iOS

    • Nindtendo Switch

    • PS4 / PS5

    • Xbox Series X|S

  • UnrealEngine バージョン

    • 4.27.2

    • 5.0.3

UE 4.27.2

  • VisualStudio2019 Version142(16.10.4)

  • WindowsSDK Version 10.0.19041.0

  • Android 環境

    • android-studio-2020.3.1.22-windows.exe

    • Android NDK 22.1.7171670

    • Andriod 4.4 (APIレベル 19)

  • Mac/iOS 環境

    • XCode 12.5.1

  • Nitendo Switch 環境

    • UE4 のベースコード

      • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

      • 4.27.2 release タグ

      • コミット: d94b38ae3446da52224bedd2568c078f828b4039

    • UE4 Switch Platform 用パッケージ

      • 別途 EpicGames 社から提供されているポータル・サイトより Console Switch よりコードを取得。

      • Switch_4.27.2-release.zip パッケージを使用

    • Switch NintendoSDK 12.3.2

  • PS4 環境

    • UE4 のベースコード

      • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

      • 4.27.2 release タグ

      • コミット: d94b38ae3446da52224bedd2568c078f828b4039

    • UE4 PS4 Platform 用パッケージ

      • 別途 EpicGames 社から提供されているポータルサイトより Console PS4 よりコードを取得。

      • PS4_4.27.2-release.zip パッケージを使用

    • SDKバージョン 9.0008.000

  • PS5 環境

    • UE4 のベースコード

      • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

      • 4.27.2 release タグ

      • コミット: d94b38ae3446da52224bedd2568c078f828b4039

    • UE4 PS5 Platform 用パッケージ

      • 別途 EpicGames 社から提供されているポータル・サイトより Console PS5 よりコードを取得。

      • PS5_4.27.2-release.zip パッケージを使用

    • SDK バージョン 4.51.00.01

  • Xbox Series X|S 環境

    • UE4 のベースコード

      • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

      • 4.27.2 release タグ

      • コミット: d94b38ae3446da52224bedd2568c078f828b4039

    • UE4 Xbox Series X|S Platform 用パッケージ

      • 別途 EpicGames 社から提供されているポータルサイトより Console Xbox [GDK] / Xbox [XDX] よりコードを取得。

      • GDK_4.27.2-release.zip / XDK_4.27.2-release.zip パッケージを使用

    • GDK version 210402

UE 5.0.3

  • VisualStudio2019 Version142(16.10.4)

  • WindowsSDK Version 10.0.19041.0

  • Android 環境

    • android-studio-2020.3.1.22-windows.exe

    • Android NDK 22.1.7171670

    • Andriod 6.0 (APIレベル 23)

  • Mac/iOS 環境

    • XCode 13.3

  • UE 5.0.2

    • PS4 環境

      • UE5 のベースコード

        • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

        • 5.0.2 release タグ

        • コミット: d11782b9046e9d0b130309591e4efc57f4b8b037

      • UE4 PS4 Platform用パッケージ

        • 別途EpicGames 社から提供されているポータルサイトより Console Playstation 4 よりコードを取得。

        • PS4_5.0.2-release.zip パッケージを使用

      • PS4 SDK Version 9.508.001

      • PS4 System Software 9.600.011

    • PS5 環境

      • UE5 のベースコード

        • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

        • 5.0.2 release タグ

        • コミット: d11782b9046e9d0b130309591e4efc57f4b8b037

      • UE4 PS5 Platform用パッケージ

        • 別途 EpicGames 社から提供されているポータル・サイトより Console Playstation 5 よりコードを取得。

        • PS5_5.0.2-release.zip パッケージを使用

      • PS5 SDK Version 5.000.00.41

      • PS5 System Software 5.50.00.08

    • Xbox Series X|S 環境

      • UE5 のベース・コード

        • 「git@github.com:Diarkis/UnrealEngine.git」 レポジトリ

        • 5.0.2 release タグ

        • コミット: d11782b9046e9d0b130309591e4efc57f4b8b037

      • UE4 Xbox Series X|S Platform 用パッケージ

        • 別途 EpicGames 社から提供されているポータルサイトより Console Xbox [GDK] よりコードを取得。

        • GDK_5.0.2-release.zip パッケージを使用

      • GDK: 211001 October 2021 Update 1

動作確認手順

Windows10 のパッケージ作成手順

  1. 「ファイル」メニュー⇒「プロジェクトをパッケージ化」⇒「Windows10(64bit)」を選択します。

  2. パッケージの出力先のフォルダを指定します。

  3. ビルドが成功したら、出力先に指定したフォルダの FieldWalker.exe から起動します。

Android 端末で動作確認手順(別途 AndroidStudio 環境のセットアップが必要)

  1. UrealEditor のタスクバーの「設定」⇒「プロジェクト設定」を押下

  • APK のパッケージ化

    • Android パッケージ

    • 最低限の SDK バージョン

    • ターゲット SDK バージョン

  • ビルド - arumv7 をサポートのチェックを外す( armv7 は順次対応予定)

    • arm64 をサポートにチェック

  • 上記のそれぞれの項目を環境に合わせて設定します。

  1. Android 端末を接続し、ツールバー「起動」の右▽からAndroidデバイスを選択します。

  2. 「起動」でパッケージビルド後アプリにパッケージが転送されます。

iOS 端末での動作確認手順

  1. UrealEditor のタスクバーの「設定」⇒「プロジェクト設定」を押下します。

  2. プラットフォーム項目の 「iOS」

    • 「プロビジョニングプロファイル」の設定

    • 「証明書」の設定

    • 「 Bundle Display Name 」 の設定

    • 「 Bundle Name」 の設定

    • 「 Bundle Indentifier 」 の設定

  3. iPhone 端末を接続し、ツールバー「起動」の右▽から iPhone デバイスを選択します。

  4. 「起動」でパッケージビルド後アプリにパッケージが転送されます。

Switch 端末での動作確認手順

  1. EpicGames 社と 「 Epic Games Console NDA 」 を締結して、Switch 用の Platform コードを入手します。

  2. UE4 4.27.2 のプロジェクトコードを取得します。

  3. NintendoSDK 12.3.2 をインストール

    • UE4 4.27.2 の最新の対応が NintendoSDK 12.3.2 のため。

  4. VisualStudio2019 ビルド:「 Development 」端末:「 Switch 」プロジェクト:「 FieldWalker 」 を選択してビルドします。

  5. ビルドには数時間掛かる。ビルドできたら実行します。

最終更新