クイックスタートガイド

Preview

Fusion Unreal SDK 3.0.0は開発版として提供されており、リリース済みで運用中のゲームでの使用は想定していません。プレビュー段階では、重大なバグやAPIに破壊的変更が加わる可能性があります。

はじめに

このドキュメントは、Fusion Unrealを使用して開発を始めるためのクイックリファレンスです。ここでは、三人称視点ゲームの移動をネットワーク化するプロセスを解説し、Photon Fusion for Unrealの主要な機能をいくつか紹介します。

このガイドはUnreal 5.6のテンプレートを元に作成されていますが、使用されているアプローチや手法は、Photon FusionがサポートしているすべてのUnrealバージョンに適用可能です。

Characters in a networked version of the Third Person template

新規プロジェクトの作成

Unreal 5.6で新しいUnrealプロジェクトを作成し、Third Personテンプレートを選択します。

Photon Fusionプラグインのセットアップ

新規または既存のプロジェクトにFusion Unrealをセットアップするには、

  1. (まだ存在しなければ)Unrealプロジェクトフォルダー内にPluginsフォルダーを作成します。
  2. Fusion Unrealプラグインをダウンロードします。
  3. Fusion Unrealプラグインを解凍し、PhotonFusionフォルダーをPluginsフォルダーにコピーします。
  4. プロジェクトを開き、PluginsウィンドウでPhoton Fusionプラグインが有効になっていることを確認します。
  5. Project SettingsのFusion Settingsを開き、AppIDを設定します。

Photonへの接続とルームへの参加

まず最初に、Photonのルームへ参加する必要があります。Fusion Online Subsystemを使用することで、Photonに接続してルームを作成/参加することが可能です。ルームへ参加すると、クライアント間のステートが複製できるようになります。

アクタのブループリントとしてBP_FusionSetupを作成し、以下のBPロジックをイベントグラフのBeginPlayに追加します。

BP logic for connecting to Photon and joining a room

Room Nameには任意の文字列を使用可能で、Regionには適切な値(現在利用可能:eu,us,asia)を設定します。

最後に、Lvl_ThirdPersonマップの任意の場所にBP_FusionSetupを追加すると、ゲーム開始直後にルーム参加ロジックが実行されるようになります。

アクタの複製

アクタを複製対象にするには、Replicatesを有効にしてFusion Actor Settingsコンポーネントを追加する必要があります。Fusion Actor Settingsにはゲームに応じて調整可能なプロパティが複数用意されていますが、一般的なシナリオではデフォルト設定で十分良好に動作します。

ここでは、三人称視点キャラクターを複製します。

BP_ThirdPersonCharacterを開き、Fusion Actor Settingコンポーネントを追加してください。現段階でプロパティを調整する必要はありません。また、Replicatesが有効になっていることを確認してください。

テスト方法

重要

Editor PreferencesのRun Under One Processオプションを無効にして、各PIEウィンドウが独自プロセスで実行されるようにしてください。

基本的なキャラクター移動を複製するための準備は完了しています。ただし、複数のPIEクライアントでテストできるようにするには、いくつかのエディター設定を調整する必要があります。

  • Run Under One Processオプションを無効にして、各PIEウィンドウが独自プロセスで実行されることを確認してください。

    • Editor Preferences -> Level Editor -> Play -> Multiplayer Options -> Run Under One Process
  • 必須ではありませんが、Use Less CPU when in Backgroundオプションを無効にすることを推奨します。

    • Editor Preferences -> General -> Performance -> Editor Performance -> Use Less CPU when in Background

Lvl_ThirdPersonマップを開き、複数のPIEウィンドウでゲームを起動してください。

プレイボタンを押すと、マップ上にすべてのキャラクターが表示されます。ウィンドウを切り替えながら、各プレイヤーを移動させてみてください。各キャラクターがすべてのクライアント視点で移動する様子が見られるはずです。

おめでとうございます!これでPhoton Fusionを使用した初めてネットワーク体験が作成できました!

プロパティの複製

スペースキーを押してジャンプしたり、崖から飛び降りたりすると、他のクライアントが見ているあなたのキャラクターでは、落下アニメーションが再生されていないことがわかります。

Photon Fusion for Unrealの将来のバージョンでは、Character MovementコンポーネントとMoverコンポーネントが改善され、この問題を手動で修正する必要は無くなります。しかしここでは、Fusionのプロパティ複製機能を示すために、修正手順を説明します。

EMovementModeステートをレプリケーション変数として保存するため、BP_ThirdPersonCharacterに以下のロジックを追加します。変数名はCurrentMovementModeにして、レプリケーション設定はRepNotifyにします。

BP logic for setting the CurrentMovementMode

RepNotify関数には、以下のロジックを追加します。すると、移動モードはレプリケーション変数に合わせて設定されます。

CurrentMovementMode On Rep BP logic

これで各キャラクターの移動モードが複製されるようになりました。

ジャンプしたり崖から飛び降りたりすると、すべてのクライアント上で落下アニメーションが再生されることが確認できます。

物理オブジェクトの追加

Photon Fusionが提供するForecastモードによって、物理オブジェクトのステートがクライアント間で同期できます。補外法(Extrapolation)を用いて、オブジェクトのリモートステートを予測し、それをローカルステートや物理シミュレーションと組み合わせます。

ルートシーンオブジェクトにStaticMeshを持つSimulate Physicsが有効なアクタは、デフォルトでForecastを使用します。必要に応じて、Fusion Actor SettingsコンポーネントからForecastを無効にすることも可能で、その場合は(有効であれば)標準の補間が使用されます。

  1. Bp_Ballという名前で、新しいStaticMesh BP Actorを作成します。
  2. アクタのReplicatesを設定して、複製が有効になっていることを確認してください。
  3. メッシュを球状に設定し、Simuate Physicsオプションが有効になっていることを確認してください。
  4. Fusion Actor Settingsコンポーネントを追加します。
  5. Fusion Actor SettingsコンポーネントのAuto Dynamic Ownership Rangeを500に調整します。
  6. BP_Ballをマップにドラッグします。

Auto Dynamic Ownership Rangeは、プレイヤーの距離に基づいて、アクタの所有権を自動的に調整するために使用されます。この範囲内のプレイヤーにBP_Ballの所有権が割り当てられ、他のクライアントは補外法に基づくリモートステートになります。

この範囲チェックは、値を0に設定することで無効化できます。その場合は必要に応じて、FusionOnlineSubsystemSetsWantsOwner()を手動で呼び出すことになります。

Players interacting with the physics based object

RPC

Photon Fusionは、カスタムFusion RPCをサポートしています。以下の手順の例では、Eキーを押すたびにプレイヤーの足元に爆発エフェクトを生成するRPCを作成しています。

  1. プロジェクトに(まだインポートされていない場合は)StarterContentパックを追加してください。これによって、爆発エフェクトが使用可能になります。
    • Content Browserから:Add -> Add Feature or Content Pack -> Content -> Starter Content
  2. BP_ThirdPersonCharacterを開きます。
  3. SpawnExplosionRPCという名前で、Vector入力パラメーターを持つ新しいCustom Eventを作成します。そして以下の図のようなロジックを追加します。
  4. イベントグラフを右クリックし、Custom Fusion RPCを作成します。
  5. Custom Fusion RPCのDetailsパネルで、Reference Event NameドロップダウンからSpawnExplosionRPCイベントを選択します。
  6. Custom Fusion RPCノードをEキーボードイベントに接続します。
RPC BP logic

ゲームを再生すると、Eキーを押すたびに爆発エフェクトが表示されることが確認できます。

Players triggering the explosion RPC
Back to top