狠狠撸
Submit Search
Photon Fusionのはじめの一歩
?
Download as PPTX, PDF
?
0 likes
?
1,194 views
聡 大久保
Photon FusionのHallo world的な、まずは動作させるための環境づくりを解説しています。
Read less
Read more
1 of 37
Download now
Download to read offline
More Related Content
Photon Fusionのはじめの一歩
1.
PHOTON FUSION HALLO WORLD
2022.04.30
2.
FUSION SDKのダウンロード ? 要件 ?
Unity 2020.3以降 ? アセットシリアライゼーションを、テキストに設定 Project Settings>Editor>Asset Serializationと移動し、モードをForce textに設定 ? Mono.Cecil (com.unity.nuget.mono-cecilパッケージ) ? ダウンロード https://doc.photonengine.com/ja-jp/fusion/current/getting-started/sdk-download
3.
使用バージョン ? Unity 2021.3.1f1 ?
Mono-Cecli 1.10.2 ? Fusion SDK 1.0.0 F Build 439
4.
贵鲍厂滨翱狈の绍介
5.
/PhotonTeamJapan/200photon-sdk
6.
/PhotonTeamJapan/200photon-sdk 変更があった差分を 圧縮して送信
7.
/PhotonTeamJapan/200photon-sdk 視界距離に合わせた半 径内の情報のみを転送。
8.
/PhotonTeamJapan/200photon-sdk
9.
GAME MODE /PhotonTeamJapan/200photon-sdk
10.
/PhotonTeamJapan/200photon-sdk
11.
贵鲍厂滨翱狈环境设定
12.
PHOTONユーザーを作成 ? https://www.photonengine.com/ja/を開き、ユーザーを作成。
13.
PHOTONクラウドアプリケーションの作成 ? 作成したPhotonユーザーでログインし、ダッシュボードを開きます。 ? 新しくアプリを作成するを選択します。Photonの種別をFusionに、アプリ名を入力し作成するを押下し ます。
14.
アプリケーションIDをメモ ? 作成したアプリケーションのアプリケーションIDのところをクリックし、後ほど、Unityで設定するため アプリケーションIDをメモします。PhotonのWebでの作業は以上です。
15.
プロジェクト作成 ? Unityを起動し、プロジェクトを作成します。プロジェクト名は、Fusionとしました。
16.
MONO CECILのインポート ? ExplolerでPackagesフォルダのmanifest.jsonを開きます。 ?
Dependenciesに“com.unity.nuget.mono-cecil”: “1.10.2”,を追記します。Unityに戻るとパッケージが自動でイ ンストールされます。パッケージマネージャを開くと、Mono-Cecilが追加されています。
17.
FUSIONパッケージのインポート ? ダウンロードしたFusionのパッケージをインポート、今回使ったのはPhoton-Fusion-1.0.0-F- 439.unitypackageで全部選択してインストールします。
18.
いろいろ追加されてる ? メニューや、ヒエラルキーのコンテキストメニューなどにFusionが追加されています。
19.
設定 ? Realtime Settings
20.
アプリケーションIDの設定 ? 先ほどメモしておいたアプリケーションIDをApp Id
贵耻蝉颈辞苍に设定します。
21.
シーン名を変更し、ビルドセッティングに追加 ? FileメニューからSave asを選択肢、FirstFusionというシーン名で保存します。
22.
BASIC SCENEをセットアップ ? ヒエラルキーで右クリックして、コンテキストメニューからFusion、Setup
Basic Fusion Sceneを選択します。 (ビルドセッティングにもシーンが自動で追加されます。)
23.
実行 ? 2つのプログラムを起動し接続確認を行いま す。ひとつはビルドしたEXE、もうひとつは Unity Editorで実行します。 ?
メニューFileからBuild Settingsを選択し、 Buildボタンを押して、プロジェクトをビル ドします。
24.
EXEの実行 ? Buildしたexeを起動します。メニューが表示された状態で起動します。
25.
EDITORの実行 ? プレイボタンを押下します。メニューが表示された状態で起動します。
26.
接続① HOST GAME
MODE ? EditorとEXEで、実行された状態で次の組み合わせで接続確認を行います。 ? ひとつをHostで起動、ひとつをClientで起動します。2人のプレイヤーがスポーンし、WASDキーで操作 できます。
27.
接続② HOST GAME
MODE ? EditorとEXEで、実行された状態で次の組み合わせで接続確認を行います。 ? 両方ともStart Auto Host or Clientで起動します。 2人のプレイヤーがスポーンし、WASDキーで操作でき ます。
28.
接続③ SERVER GAME
MODE ? EditorとEXEで、実行された状態で次の組み合わせで接続確認を行います。 ? ひとつをServerで起動、ひとつをClientで起動します。 1人のプレイヤーがスポーンし、WASDキーで操 作できます。Server役では、プレイヤー機能はなくなりClientの調停役として動きます。
29.
接続④ SHARED GAME
MODE ? EditorとEXEで、実行された状態で次の組み合わせで接続確認を行います。 ? 両方ともStart Shared Clientで起動します。 2人のプレイヤーがスポーンし、WASDキーで操作できます。
30.
贵鲍厂滨翱狈のコンポーネントとあれこれ
31.
NETWORK RUNNER/NETWORK EVENTS/PLAYER
SPAWNER ? Network Runnerが中核のコンポーネン ト。 ? Network Eventsで呼び出すメソッドを指 定することでイベントに対応した処理 を付け加えることができます。 自前で実装する場合は、 INetworkRunnerCallbacksを継承して、 処理を実装します。Network Runnerと 同じGameObjectに張り付けると、 Runnerが見つけてくれます。 ? Player Spawnerでスポーンさせるプレイ ヤーのプレハブの指定ができます。
32.
NETWORK START ? 接続の開始を制御する。Start
Modeで UIか自動で接続するかを分岐させてい る。
33.
NETWORK OBJECT ? NetworkObjectを、Network上で共有さ れるGameObjectにつける。(PUNでの PhotonViewに変わるもの) ?
NetworkRunnerのSpawn()を、 NetworkObjectプレハブをパラメータと して呼び出します。 ? Network Project Configに登録しておく 必要がある。(次ページ参照)
34.
NETWORK PROJECT CONFIG ?
メニューFusionからNetwork Project Configを選択する。 ? Network Project Configに利用するPrefabを登録する必要がある。 通常 Fusionツールセットが自動的にプレハブを検出して登録しますが、 Rebuild Object Tableを押すことで、手動で検出することもできます。
35.
デルタスナップショット、結果整合性モードの切り替え ? Network Project
颁辞苍蹿颈驳の厂颈尘耻濒补迟颈辞苍のところで切り替え可能です。
36.
結果整合性モードでのオブジェクトインタレスト ? Network ObjectのObject
Interestの設定で変更することができま す。 1. Area Of Interest オブジェクトと重なるAOI(関心領域)をもつユーザーのみ更新を受 け取る。 2. All Players 全てのユーザーが更新を受け取る。 3. Explict Players 明示的にフラグがたてられたユーザーのみが更新を受け取る。
37.
PUNとのクラスとプロパティの対応 PUN Fusion 説明 PhotonNetwork
NetworkRunner Fusionのコアとなるコンポーネント。 PhotonView NetworkObject (SimulationBehaviour/NetworkBehaviour) NetworkObjectはGameObjectにネットワークIDを割り当て、ネット ワーク上で共有できるようにします。すべてのプレイヤーが見るこ とができ、シーンの動的な部分であるGameObjectには、 NetworkObjectスクリプトを設定します。 PhotonRigidbodyView NetworkRigidbody RigidBodyの同期を行うコンポーネント。 PhotonTransformView NetworkTransform Transformの同期を行うコンポーネント。 PhotonView.IsMine NetworkObject.HasStateAuthority NetworkObject.HasInputAuthority InputAuthority:そのオブジェクトに対するユーザーの入力を受け付 ける権限。 StateAuthority:ユーザーの入力をもとにオブジェクトの状態を最終 的に決定し、その状態を他のクライアントに上書きする権限。
Editor's Notes
#9:
専用サーバー(Dedicated Server)、クライアントホスト型(Client Hosted)、共有モード(Shared Mode)に対応しています。 共有モード(Shared Mode)はPUNと似ており、ネットワークオブジェクトの権限がプレイヤーに分配されます。シーンオブジェクトは自動的に1人のプレイヤーにコントロールされるようになっています。
#32:
SimulationObjectまたはNetworkObjectから継承されるあらゆるクラスはRunnerおよびオブジェクトメンバーへアクセス可能 PUNでのスクリプトは通常photonView.IsMineを確認してクライアントがオブジェクトを所有しているかのみですが、FusionではObject.HasStateAuthority?と?Object.HasInputAuthorityの状態を個別で管理します。 (PUNと同じにするのであれば、Shared Modeで、IsMineをObject.HasStateAuthorityに置き換える。)
#34:
https://doc.photonengine.com/ja-jp/fusion/current/manual/network-object
#35:
Fusionツールセットが自動的にプレハブを検出して登録しますが、NetworkProjectConfigを選択して、Unity InspectorのRebuild Object Tableを押すことで、手動で検出することもできます。
#38:
狈别迟飞辞谤办翱产箩别肠迟は骋补尘别翱产箩别肠迟にネットワーク滨顿を割り当て、ネットワーク上で共有できるようにします。すべてのプレイヤーが见ることができ、シーンの动的な部分である骋补尘别翱产箩别肠迟には、狈别迟飞辞谤办翱产箩别肠迟スクリプトを设定します。
Download