下のようにBPを組んでクライアント側でWキーを押してもOK!と表示されず困っています。
元々クライアントで変化させた値をサーバー側に同期させるのが目的なのでどうしても必要なのです。
Run on Serverはクライアントからサーバーへイベントを複製するという理解だったのですが違うのでしょうか。
ご教示頂きたく存じます。
下のようにBPを組んでクライアント側でWキーを押してもOK!と表示されず困っています。
元々クライアントで変化させた値をサーバー側に同期させるのが目的なのでどうしても必要なのです。
Run on Serverはクライアントからサーバーへイベントを複製するという理解だったのですが違うのでしょうか。
ご教示頂きたく存じます。
単純にBPを実行してるのがサーバーだからだと思いますよ?
試しにprintStringのノードをAuthorityに変更してみて動作をご確認ください。
情報が少ないのでもっと情報を出せば回答率が上がると思いますよ。
回答有難うございます。
BPを以下の2パターンに変更して試してみました。
結果はどちらとも以下のようになりました。
サーバー画面アクティブでWキーを連打した時のGIF
クライアント画面アクティブでWキーを連打した時のGIF
以上のような結果になりました。自分のRun on Serverへの理解だとクライアント画面がアクティブの時にもServer:OK!がでると思っているのですが…
カスタムイベントのところの設定間違えてませんか?
次のようになっています。信頼性の部分は有り無し両方試してみました
4.9のバグの可能性もあると思いこちらでも試してみましたが、問題なく動きました。
しかし、少し気になったことがあります。
何度か設定を切り替えてコンパイルしないと挙動がおかしい時があったので何度か試してみてみてください。
もしくは挙動がおかしいのはバグの可能性もあるので、UE4.8以降で試すことをオススメします。
わざわざ試していただき有難うございます。
動いたということはBP自体は間違っていないということですね。
4.9を使っているので自分も動かせるはず…
何度か設定を切り替えてコンパイルを試してみます。
何度かやってみましたがどうも動きません。
設定を切り替えた回数等を聞いてもよろしいですか?
2回ほどですね、サーバー側でClient側のやつが実行されちゃったり、Client側で実行されなかったりと謎の挙動をしていたので何か不具合があるのかもしれません。
2回ほどですか…
プロジェクト自体に問題があるのかもと思って空のプロジェクトでやってみたり4.8を使ってやってみたりしましたがダメでした。
不具合だったら良いのですが。
ちょっと足を伸ばして英語も含めてそれらしいことを書いてる物がないかを探してみようと思います。
何度も回答有り難うございます。
英語の方でこのような質問がありました。
これを読む限りではまだ問題がある可能性があります。
UE4.76であれば正常に動いていたのを確認しているので今はそちらで動かしておくほうが無難かと思われます。
UE4.8からのバグかもしれませんね。
4.8からネットワーク機能を使っていなかったので気づかなかった可能性がありますし。
返信が遅れて申し訳ありません。
4.6からこの状態が続いてる可能性があるという風に読み取りました。
4.5をいれて試してみます。
返信が遅れて申し訳ありません。
バージョン4.9~4.6までそれぞれ試したのですがダメでした。
4.9.1
link text
4.8.3
link text
4.7.6
link text
4.6.1
link text
4.6.1だけサーバーシミュレートになってしまいましたが直し方が分かりませんでした。すいません。
どれもクライアント画面をアクティブにして指定したキーを押したのですが反応せず…
4.7.6は動くのを確認しているとのことなのでもう少し重点的に触ってみます。
問題となったBPはアクター(Cube等)のBPです。
こちらの検証で使ったのはレベルBPでした。
そして、CharacterBPで実行してみましたら出来ました。
しかし、CharacterBPじゃないと出来ないとなると別の問題が出てきました。
ちょっと性質が違うので解決しなかったらまた別枠で質問するかもしれません。
とりあえずこの質問は閉じさせていただきます。
本当に有難うございました!
一度環境周りも確認したほうが良いかもしれませんね。
ちなみに実行されてるBPは何ですか?
こちらはCharacterBPで試した際に確認が取れてます。
Level内のみでならサーバーとクライアント両方実行可能
Levelから他BPのイベントを呼ぶ場合は不可能
BP間であれば問題なく使える
と、ここで思い出してあげて欲しいのですがゲームインスタンスというものがあります。
それを使えばレベル>ゲームインスタンス>アクタとアクセスすることができます。
こちらで試してみましたが、問題なく動いたのでお試しください。
CharacterBPじゃなくても使う方法があったのですね。
こちらでも確認した所出来ました。
ここまでをまとめるとRun on Serverの関数を実行可能なのは
LevelBP内のみで実行→不可
通常のアクタBP内のみで実行→不可
キャラクターBP内のみで実行→可
LevelからGameInstance内の関数を呼び出す形で実行→可
LevelからGameInstanceそしてそこからアクタ内の関数を呼び出す形で実行→可
ちょっと読みづらくなってしまいましたがこんな感じでしょうか。
今回はCharacterBPでなんとかやりたかったことが実装できました。
何度も回答して頂き本当に有難うございます。
一部訂正でLevelBP内のみで実行→可 ですね
レベル内でカスタムイベントを作成して実行するとわかりますよ!
ネットワーク関係はあまり記事がないですからね、実装するのも大変ですよね。