UE4 ネットワークで乱数を使う
UE4の乱数は各クライアントで処理が行われるため、
乱数が統一できません。
ランダムにMeshを切り替えるなどの処理を行いたい場合は、
乱数の結果が各クライアントで一致しなければ
見た目に不具合が出ます。
そういうときの対策を書いていきます。
サンプルとして、
ランダムにStaticMeshを切り替える処理を行います。
今回は4.19.2を使用しています。
右クリックからブループリントクラスを選択します。
親クラスはCharacterを選択します。
Actorや、Pawnであっても問題ありません。
作成したBPを開きStaticMeshコンポーネントを追加します。
変数を1つ作成します。
StaticMesh型の変数です。中身は空で構いません。
カスタムイベントを作成します。
StaticMeshを切り替える処理です。
切り替える候補もここで決めています。
先程作成した変数はここで今のMeshと違うかどうかを判別するために
使用しています。
今回のメインです。
再現性のある乱数を生成します。
いわゆるシード的なアレです。
公式にも解説がありますし、
他の方のブログでも見かけたので解説は端折ります。
サーバーとクライアントで処理を分け、
先程のカスタムイベントを呼び出します。
左クリックでMeshを切り替えるようにしました。
切り替わりました。