Unreal Engine
すべてのC++ベースのPhoton SDKは、既製のUnreal Engineと互換性があります。
Unreal Engine SDKと組み合わせて使用できるマルチプレイヤーSDKの詳細は、以下のとおりです。
PhotonSDKはすべて、ダウンロードページから入手可能です。
はじめよう
Unreal Engine SDKと互換性のあるPhotonマルチプレイヤーゲームSDKを統合するには、以下のステップにしたがってください。
対象のプラットフォームのPhoton SDKをダウンロードしてください: iOS, Android (NDK), Windows, Mac OS X
UE4 「C++」プロジェクトのみがサポートされています。
UE4プロジェクトの「ソース」フォルダ内「Photon」フォルダに、任意のPhoton SDK(Windows、Android、またはiOS)を解凍します。
ヘッダーファイルと、事前にビルドされたライブラリのみが必要です。複数の異なるプラットフォーム用にライブラリを追加することもできます。 サンプルフォルダのレイアウト:
\---Source +---Photon | +---Common-cpp | | \---inc | | (*.h) | +---LoadBalancing-cpp | | \---inc | | (*.h) | |---Photon-cpp | | \---inc | | (*.h) | +---lib | | +---Android | | (*.a) | | +---iOS | | (*.a) | | \---Windows | | (*.lib)
UE4ヘッダーとの非互換性に対応するため、Photonヘッダーを修正します。
FLOAT
をEG_FLOAT
に名称変更するか、または参照プロジェクトからSource\Photon\photon.patch
を適用します。Photon/Common-cpp/inc/Enums/TypeCode.h @@ -18,7 +18,7 @@ - static const nByte FLOAT = 'f'; /**<float*/ + static const nByte EG_FLOAT = 'f'; /**<float*/ // Photon/Common-cpp/inc/Helpers/ConfirmAllowed.h @@ -76,7 +76,7 @@ - static const nByte typeName = TypeCode::FLOAT; + static const nByte typeName = TypeCode::EG_FLOAT; // Photon/Common-cpp/inc/Helpers/ConfirmAllowedKey.h @@ -43,7 +43,7 @@ - static const nByte typeName = TypeCode::FLOAT; + static const nByte typeName = TypeCode::EG_FLOAT;
UE4でコンパイルした場合に現れる、RTTI検出問題を修正するためにPhotonヘッダーを修正します。
Photon/Common-cpp/inc/Helpers/TypeName.h @@ -14,7 +14,7 @@ -#if defined _CPPRTTI || defined __GXX_RTTI || (__GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 3 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 2)))) +#if defined _CPPRTTI || defined __GXX_RTTI
UE4プロジェクトの*.Build.csファイルを編集して、特定のプラットフォーム用のライブラリを読み込み、Photonプラットフォームを定義します。 UE4ドキュメントと、以下にリンクされているデモ Source/PhotonDemoParticle/PhotonDemoParticle.Build.csを参照してください:
private string PhotonPath { get { return Path.GetFullPath(Path.Combine(ModulePath, "..", "Photon")); } } // if ( Target.Platform == UnrealTargetPlatform.Android) { // Set _EG_WINDOWS_PLATFORM for Windows, _EG_IPHONE_PLATFORM for iOS and _EG_IMAC_PLATFORM for OS X Definitions.Add("_EG_ANDROID_PLATFORM"); // PublicAdditionalLibraries.Add(Path.Combine(PhotonPath, "lib", "Android", "libcommon-cpp-static_debug_android_armeabi_no-rtti.a")); PublicAdditionalLibraries.Add(Path.Combine(PhotonPath, "lib", "Android", "libphoton-cpp-static_debug_android_armeabi_no-rtti.a")); PublicAdditionalLibraries.Add(Path.Combine(PhotonPath, "lib", "Android", "libloadbalancing-cpp-static_debug_android_armeabi_no-rtti.a")); }
プロジェクトソース内に、適切なPhoton API ヘッダーと、いくつかの回避策を含めます。 参照プロジェクト内のsource\photon-importを以下に示します。
インポートしたPhoton APIをプロジェクトのソースコードに使用してください。
選択したプラットフォーム用にUE4プロジェクトをビルドします。
備考
UE4 iOSビルドに関するヒントは、以下で参照できます。 https://answers.unrealengine.com/questions/21222/steps-for-ios-build-with-unrealremotetool.html
すぐに実行可能なデモ
すぐに実行可能な概念の証明は [こちら]からダウンロードしてください(https://www.photonengine.com/Download/Photon-Unreal-SDK_DemoParticle-UE4.zip)
- 上記のステップ1と2にしたがってください
- ダウンロードしたパッケージを解凍
- 上記のステップ4にしたがってください
- ./PhotonDemoParticle.uprojectのコンテキストメニューを開き、「Visual Studioプロジェクトファイルを生成」を選択します
- 複数の異なるバージョンのUnreal Engineを所有している場合には、対象のエンジンバージョンを選択してOKをクリックします。
- UEがプロジェクトファイルを生成します。これには数秒間かかることがあり、UEは「Generating」メッセージボックスを消すことで、完了を示します。
- Visual StudioでPhotonDemoParticle.slnを開きます
- ソリューションプラットフォームとして、「Win64」を選択します
- ソリューション構成として「DebugGame_Editor」を選択します
- ソリューションエクスプローラーでGames/PhotonDemoParticleへと進み、そのプロジェクトをビルドします
- そのVSプロジェクトをデバッグまたは実行しますーこの結果、photonDemoParticleがUEプロジェクトとして読み込まれ、UEエディタが起動します
- UEエディタのの「World Outliner」タブから、「PhotonLBClient」 -> 「Demo」 -> 「App ID」へと進みます。
- そのフィールドの内容を、弊社ウェブサイト内のあなたのダッシュボードに表示されているAppIDで置き換えます。
- 再生をクリック