• 追加された行はこの色です。
  • 削除された行はこの色です。
* ネットワーク-P2P-同期 [#x2c5f388]

UE4:ver.4.6.1

----

#contents

** 接続完了時の同期 [#b11e754c]
 &ref(ue4-network-sync01.png);
- 「GameMode」BPの「Post Login」イベントが飛んでくる。
-- 自分自身の起動に対しても飛んでくるので、サーバー+クライアント総数の分だけ呼ばれる。
-- 呼ばれる順番はクライアントによって違うので、0番目がサーバー、もしくは自分自身とは限らない。


** Character BPの同期 [#y7a0aa34]
- 特に何もしなくても勝手に内部パラメーターを同期してくれる。
-- Transformとか。
-- アニメーション用の変数等、自前実装の物は自分で送信しないといけない。

** 変数の同期 [#rad26bfb]
 &ref(ue4-network-sync02.png);
- BP変数の詳細欄「複製」の項目で同期を行える。
-- None : 無し。そのクライアントのみの変数。
-- Replicated : 変数を同期する。
-- RepNotify : 変数を同期する。設定すると関数欄に「On Rep <変数名>」の関数が追加される。同期時にコールバックとして関数が呼ばれる。
 &ref(ue4-network-sync03.png);

** イベントの送受信 [#u8448a88]
 &ref(ue4-network-sync04.png);
- カスタムイベントの「詳細」欄、「グラフ」-「複製する」の項目で同期設定を変更できる。
-- 複製できませんでした : 無し。そのクライアントのみにコールバック。
-- マルチキャスト : サーバーから全クライアントへ送信。
-- サーバーで実行 : クライアントからサーバーへ送信。

** 送信範囲 [#l67b5ea4]
何かマシな方法ありそうな気がするけど、自分の実装で調べた範囲で。

- サーバー、クライアントA、クライアントBの3台接続を考える。
- 送信者=変数を持っている側、カスタムイベントを実行した側。

*** 変数 [#i444e600]
|''送信者''|''受信者''|結果|
|COLOR(#800000){サーバー}|COLOR(#008080){クライアント}||

- 変数のReplicated。
|''送信者''|''受信者''|''結果''|
|COLOR(#800000){サーバー}|COLOR(#008000){クライアント}|同期される|
|COLOR(#008000){クライアント}|COLOR(#800000){サーバー}|同期されない|
|COLOR(#008000){クライアント}|COLOR(#008000){クライアント}|同期されない|
-- クライアントA側の数値を変更しても、サーバー側マシンのクライアントAの数値は変更されていないっぽい。
-- サーバーで変更した数値しか同期されないっぽい

** イベント [#o726cabc]

- マルチキャスト
|''送信者''|''受信者''|''結果''|
|COLOR(#800000){サーバー}|COLOR(#008000){クライアント}|同期される|
|COLOR(#008000){クライアント}|COLOR(#800000){サーバー}|同期されない|
|COLOR(#008000){クライアント}|COLOR(#008000){クライアント}|同期されない|
-- サーバーからクライアントにしかイベントを投げれない

- サーバーで実行
|COLOR(#800000){サーバー}|COLOR(#008000){クライアント}|同期されない|
|COLOR(#008000){クライアント}|COLOR(#800000){サーバー}|同期される|
|COLOR(#008000){クライアント}|COLOR(#008000){クライアント}|同期されない|
-- クライアントからサーバーへしかイベントを投げれない

** 全マシンで同期する [#k135581f]
- 上記から1発で全クライアント同期できない気がする。
- ひとまず下記で全マシンで変数を同期できる。
 &ref(ue4-network-sync05.png);
-- クライアントはまず「サーバーで実行」(この時に変数投げてもいいかも)
-- サーバー側なら「マルチキャスト」で全クライアントに。
-- クライアント側からサーバー側がイベント受け取った場合も、そのままマルチキャストで流す。

- なんか良い方法あったら教えて下さい。



    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS