現在FPSを作っているのですがクライアントの撃った弾がサーバー内で出てきません
サーバー側のプレイヤーでが撃った弾はちゃんとクライアント側でも見えますし、ダメージも与えられます。
しかし、クライアント側の弾は撃ったプレイヤー以外には見えませんし、ダメージも与えられません。
弾のReplicatesにはチェックを入れております。
↓プレイヤーBP内の弾を撃つ処理
GetRotationは「複製しない」
Fireは「マルチキャスト」
↓上のBPのGetSpawnTransformの中身
現在FPSを作っているのですがクライアントの撃った弾がサーバー内で出てきません
サーバー側のプレイヤーでが撃った弾はちゃんとクライアント側でも見えますし、ダメージも与えられます。
しかし、クライアント側の弾は撃ったプレイヤー以外には見えませんし、ダメージも与えられません。
弾のReplicatesにはチェックを入れております。
↓プレイヤーBP内の弾を撃つ処理
GetRotationは「複製しない」
Fireは「マルチキャスト」
↓上のBPのGetSpawnTransformの中身
Fireをサーバーで実行に変えたら弾は出るのですが見当違いな方向に飛んで行ってしまいます
サーバー、クライアントでちゃんと動くようにイベントを組み立てるの難しいですよね。
http://api.unrealengine.com/JPN/Gameplay/HowTo/Networking/ReplicateFunction/Blueprints/
ゲームをしている間、サーバーとクライアントの両方で「別個に」ゲームをやっているイメージです。二人の人間がドラクエを別々のカセットでやっているような感じです。
ネトゲとして成立させるにはこの二つのゲームを同期する必要があるんですけど、クライアントのゲームの状況をサーバーに伝えて、サーバーのゲーム状況をクライアントに合わせるっていうのはできなくて、基本的にはサーバーがクライアントに伝える一方通行。クライアントからサーバーになにかを伝える数少ない手段の1つが、カスタムイベントのRun on Server。サーバーのみで以降のことを実行して下さいというやつ。これだけではサーバーで起こったことをクライアントでも同じように起こすことができなくて、これに加えて変数とかアクタなんかを「レプリケート」させることで初めてクライアントに同期される。または、サーバーで実行された後にマルチキャストのカスタムイベントを実行すればいけたりいけなかったりする。