PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

Boltのアップデート

Boltのアップグレードの手順を説明します。

Bolt 1.3へのアップグレード

Photon Bolt v1.3 への更新には、いくつかの破壊的な変更が含まれています。複数のネームスペースが変更されているほか、一部のスクリプトの可視性が変更され、またプレハブ上でいくつかの参照が欠落していることがあります。以下の説明は、このアップデートの影響を最小限に抑えることを目的としていますが、これらの記述に注意してください。

  1. 変更を開始する前に、プロジェクトのバックアップがある点、および/またはプロジェクトがソース管理システム(Git, SVN, Hg)内にあることを確認してください。この点は十分に留意してください
  2. 新しいSDKのバージョンをプロジェクトにインポートする前に、更新用にBoltプレハブを準備する必要があります。v1.3での変更には一部のネームスペースの変更が含まれているため、一部のコンポーネントが移動された結果としてゲームオブジェクトの参照が不足していました。このため、この作業を支援するアップデートスクリプトを作成しました。
    1. サンプルレポジトリからBolt Updater scriptをダウンロードします。
    2. それをプロジェクトのAssets/Editorフォルダの中にインポートします。これにより、Unityがスクリプトを読み込み、適切なメニューアイテムを含むようになります。
    3. Bolt (Bolt/Compile Assembly) のコンパイルが完了し、Bolt Prefab Database(Assets\Photon\PhotonBolt\resources\BoltPrefabDatabase.asset)にすべてのプレハブがリストされている点を確認してください。
    4. Bolt/Utils/Update/Save Prefabsメニューのタスクを実行します。Save DONE!というログメッセージを受信するはずです。Assets\Photon\PhotonBolt\resourcesフォルダを参照し、entity_data.jsonがある点を確認してください。このファイルにはBoltエンティティプレハブの主要な設定がすべて含まれています。たとえば、BoltEntityコンポーネント自体やBolt Hitboxなどです。
    5. 後で使用するために、このファイルを任意の場所に保存します。この点は重要です、もし保存していない場合には手動で設定をおこなう必要があります。
    6. BoltRuntimeSettingsに関する注意: Scriptable Objectでは、参照の変更は簡単には修正できません。BoltRuntimeSettingsの場合、アップデート後は、表すクラスの参照を失います。そのため、Boltの設定はいくつかの値なので、現在の設定をどこかに注釈するか、スクリーンショットなどを撮ることをお勧めします。後日、再び値を設定する必要があります。
  3. Photon Bolt に関連するすべてのフォルダを削除します:
    1. Assets/Photon;
    2. Assets/samples;
    3. Assets/Gizmos;
  4. [アセットストアから最新のBoltパッケージ] をダウンロードし、プロジェクトにインポートします; - 通常どおり、パッケージのすべての内容をインポートできます。
  5. Project Settingsに新しいScripting Define Symbolsを含めます。これによって、コードの一部のセクションが有効かされます: - BOLT_1_3_OR_NEWER
  6. 以下のファイルをバックアップまたはソースコントロールから復元します:
    1. Assets/Photon/PhotonBolt/project.json: すべてのBoltアセットです;
      • project.jsonに記載されたシリアル化データからSDK v1.3上での新しい場所への正しい参照を取得するには、手動で編集する必要があります。ただし、非常に簡単な作業です:
        1. 任意のエディタでproject.jsonファイルを開きます。
        2. Bolt.Compiler.をすべてPhoton.Bolt.Compiler.で置換します - 末尾のドットも含めて、すべてのテキストを置換する点に留意してください
        3. ファイルを保存します。
        4. Photon Bolt/SettingsBolt Settingsウィンドウを開き、先ほど保存した値をもとに再度設定します。
          • 設定の編集中にエラーが発生した場合は:
            1. Assets\Photon\PhotonBolt\resourcesに移動し、 BoltRuntimeSettings.assetを削除します。
            2. 新しいBolt Settingsを作成します:(i) 右クリックして、(ii) Create/Bolt/Create BoltRuntimeSettings を選択します。
            3. 再びBolt Settingsウィンドウを開きます。
  7. 前述のとおり、一部のネームスペースは特定のスクリプトの名前と場所に最適となるよう移動されています。プロジェクトには多くの壊れた参照が含まれていることに留意してください。これらを修正するには、以下のネームスペースを変更してソースコードを修正する必要があります。
    1. クラスのほとんどは Photon.Bolt ネームスペースに含まれています、このため Boltコードに触れているすべてのスクリプトでusing Photon.Bolt;を含む必要があります。
    2. スクリプトから以下のネームスペースを削除します:
      1. using Bolt;
      2. using Bolt.Matchmaking;
      3. using Bolt.Photon;
    3. 直接参照では、スクリプトにネームスペースPhoton.Boltを含めている場合に参照のBolt.部分のみを削除します。 例:
    • Bolt.Command to Photon.Bolt.Command;
    • Bolt.ScopeMode to Photon.Bolt.ScopeMode;
    • Bolt.GlobalTargets to Photon.Bolt.GlobalTargets;
    • Bolt.IProtocolToken to Photon.Bolt.IProtocolToken;
    • Bolt.EntityBehaviour to Photon.Bolt.EntityBehaviour;
    • Bolt.ReliabilityModes to Photon.Bolt.ReliabilityModes;
    • Bolt.GlobalEventListener to Photon.Bolt.GlobalEventListener;
    1. 多くの場合に使用できる追加のネームスペースは以下のとおりです:
      • Photon.Bolt.Utils: BoltLogやその他のユーティリティクラスを含みます。
      • Photon.Bolt.Collections: BoltRingBufferなど、Bolt独自のコレクションの実装を含みます。
      • Photon.Bolt.Matchmaking: PhotonマッチメイキングAPI;
    2. これでエラーがなく、また欠落した参照のないプロジェクトになりました。プロジェクトのサイズによって若干時間がかかる場合がありますが、完全に実行可能です。
  8. プロジェクトは、プレハブデータをリセット可能な状態になりました。
    1. 使用しているUnityのバージョン(具体的には2019 LTS以降)によっては、スクリプト参照が欠落している場合にプレハブの修正および保存ができません。これを解決するには、まずそれらの参照を削除する必要があります:
      1. Bolt/Utils/Find Missing Scriptsメニュー上のタスクを実行します。これによって、欠落するスクリプト参照のあるすべてのプレハブがリスト表示されます。1つずつ確認してスクリプトを削除するか、または8.1.2のように自動化された方法を使用します。
      2. Bolt/Utils/Remove Missing Scriptsでタスクを実行し、欠落する参照を削除します。このコードはプロジェクトのすべてのプレハブに対して実行されるため、すべての欠落するスクリプトコンポーネントへの参照を削除する点に留意してください。
      3. 手順8.1.1のタスクを実行し、欠落するコンポーネントを持つプレハブがない点を確認します。
    2. 手順2で移動されたため、entity_data.jsonファイルをAssets\Photon\PhotonBolt\resourcesにコピー/移動します。
    3. Bolt/Utils/Update/Load Prefabsでタスクを実行します。これによって、entity_data.jsonからシリアル化されたデータが読まれ、プレハブの詳細情報が設定しなおされます。影響のあったプレハブが、コンソール上ですべてリスト表示されます。例: Updating Player (UnityEngine.GameObject).
    4. 最後に、Load DONE!のメッセージが表示されますーこれで、すべてが正常に実行されたことを確認できます。
  9. Boltをリコンパイルしたら (Bolt/Compile Assembly) 、完了です。

Bolt 1.2.9以降へのアップグレード

  1. プロジェクトがソースコントロールシステム(Git、SVN、Hg)内にあり、バックアップされていることを確認してください。
  2. Assets/boltおよびその他の Bolt に関連するファイルを削除します:
    1. Assets/Photon;
    2. Assets/samples;
    3. Assets/Plugins;
  3. Asset Storeから最新の[Boltパッケージ]をダウンロードします。
  4. ウィザードウィンドウが表示されない場合には、以下で開いてください: Bolt/Wizard;
  5. ウィザードの手順にしたがってください: 1. Photon Cloud証明書を設定します。 2. 必要なパッケージをすべてインストールします。Coreパッケージは必要なくなりました。 3. 不明点がある場合には、弊社の Discordコミュニティにご相談ください。
  6. Unityを停止します。
  7. 以下のファイルを復元します:
    1. Bolt 1.2.5 以前のバージョンからアップデートする場合:
      1. Assets/bolt/project.bytes または Assets/bolt/project.xml;
      2. AssetsがJSONフォーマットに変換できるよう、この場合はAssets/Photon/PhotonBolt/project.jsonファイルも 削除 します。
    2. Bolt 1.2.7 以降のバージョンからアップデートする場合: 1. Assets/bolt/project.json
    3. Assets/bolt/assemblies/bolt.user.dll;
    4. Assets/bolt/resources/BoltRuntimeSettings.asset;
  8. 以下のファイルを移動します:
    1. Assets/bolt/project.jsonAssets/Photon/PhotonBolt/project.jsonへ移動します。;
    2. Assets/bolt/assemblies/bolt.user.dllAssets/Photon/PhotonBolt/assemblies/bolt.user.dllへ移動します。;
    3. Assets/bolt/resources/BoltRuntimeSettings.assetAssets/Photon/PhotonBolt/resources/BoltRuntimeSettings.assetへ移動します。;
  9. Unityを開き、Boltをコンパイルします。:
    1. Bolt/Compile Assemblyメニューでコンパイルを実行します。
    2. Bolt Assetsウィンドウを開き (Bolt/Assetsメニュー)、アセットがすべて想定通りにあることを確認します。
  10. これで Photon Bolt を使用できるようになりました。

Bolt 1.2.0.0から1.2.8へのアップグレード

  1. プロジェクトがソースコントロール(Git、SVN、Hg)内にあり、バックアップされていることを確認してください。
  2. Assets/bolt、およびその他のBoltに関連するファイルを削除します:
    1. Assets/Photon;
    2. Assets/bolt_samples;
    3. Assets/Plugins/;
  3. Asset Storeから最新の[Boltパッケージ]をダウンロードします。
  4. ウィザードウィンドウが表示されない場合は、以下から開いてください:Window/Bolt/Wizard
  5. ウィザードの手順にしたがってください:
    1. Photon Cloud証明書を設定します。
    2. 必要なパッケージをすべてインストールします。Coreパッケージは必ずインストールしてください。
    3. 不明点がある場合には、弊社の Discordコミュニティにご相談ください。
  6. Unityを停止します。
  7. 以下のファイルを復元します。 1. Bolt 1.2.5以前のバージョンからアップデートする場合: Assets/bolt/project.bytes または Assets/bolt/project.xml; 1. この場合、AssetがJSONフォーマットに変換されるよう、Assets/Photon/PhotonBolt/project.jsonファイルも 削除 してください。 2. Bolt 1.2.7以降のバージョンからアップデートする場合:Assets/bolt/project.json 3. Assets/bolt/assemblies/bolt.user.dll; 4. Assets/bolt/resources/BoltRuntimeSettings.asset;
  8. Unityを開き、Boltをコンパイルします:
    1. Assets/Bolt/Compile Assemblyメニューで、コンパイルを実行してください。
    2. Bolt Assetsウィンドウを開き (Bolt/Assetsメニュー)、アセットが全て想定通りにあることを確認します。想定通りであれば、古いプロジェクトファイル (Assets/bolt/project.bytesまたはAssets/bolt/project.xml)を削除できます。
  9. これで Bolt を使用できるようになりました。

Boltの設定とアセットの移行

Boltはそのすべてのオブジェクト、状態、コマンド、イベントを Assets/bolt/project.jsonファイルに保存します。 アセットからすべての情報を定義するJSONファイルです。 このファイルを直接変更することはお勧めしません。変更すると、逆シリアル化プロセスが中断する可能性があります。

新しいプロジェクトに移行するには、このファイルを新しいプロジェクト内の同じ場所にコピーします。これは、Boltデータをチームの他のメンバーと共有する場合にも便利です。

Bolt FreeからBolt Proへのアップグレード

Photon Bolt Proにアクセスできるようになった場合、SDKをこの新しいバージョンに簡単に更新できます。 最初に、セクションUpgrading Boltの指示に従ってください。バージョンを変更するので、アップグレードする他順と同じです。

更新の重要な側面は、変更やバックアップを行う前に、「SVN」や「GitHub」などの「バージョン管理システム」を使用してプロジェクトを維持する必要があることです。 アップデート後にゲームで適切に機能する最も重要なファイルがいくつかあります。

  • Assets/Photon/PhotonBolt/project.json: これには、すべてのBoltアセットの説明が含まれます。
  • Assets/Photon/PhotonBolt/assemblies/bolt.user.dll: これは、Boltをコンパイルするたびに生成されるDLLです。保存しておくと便利です。更新後にエラーが発生することを防ぎます。
  • Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset: ゲームに設定したすべてのボルト設定を含むスクリプト可能なオブジェクト。

要約すると、更新プロセスは次のとおりです。

  1. 上記のファイルをバックアップします。
  2. すべてのボルト関連ファイルを削除します。
  3. Boltの新しいバージョンをインポートします。
  4. ファイルを正しい場所に戻します。
  5. 完了。

また、Unityを少なくとも1回再起動する必要があるため、すべてのBolt DLLが再ロードされます。 また、コンパイルの問題がある場合にのみ、プロジェクトフォルダーのルートにある Libraryobj、および Tempフォルダーを削除することをお勧めします(これらのフォルダーはAssetsフォルダー内にありません)。 これらのフォルダーを削除すると、プロジェクトがUnityによって完全に再コンパイルされることに注意してください。プロジェクトのサイズによっては、時間がかかる場合があります。

コードやスクリプトの変更に関係なく、更新は最小限です。 主な違いは、IP/ポートを使用してサーバーに直接接続できるようになったことです。 SDKをインポートすると、 samples_proフォルダー表示されます。そこにBoltPro/BoltProInit.csスクリプトがあります。 このスクリプトは、 DotNetPlatform(直接接続を可能にする)を使用してゲームサーバーを起動する方法と、サーバーEndPointを使用して BoltNetwork.Connectを使用してクライアントからサーバーに接続する方法を示しています。 その他のコードと動作は無料版と同じです。

Back to top