Shisi
1
Listenサーバーでネットワーク(LANではない)を用いた対戦ゲームの開発をしようと思っています。
試しにplayerstartをlevelに二つ設置し、Sessionブループリントで同期をしてみたのですが以下の3パターンの現象がランダムに起こります。
1.正常にプレイヤースタートの位置からそれぞれ始まる
2.それぞれのプレイヤーが同じプレイヤースタートから始まる
3.Joinsessionを行ったプレイヤーがPawnが取得出来ていないのかキャラクターがいない状態で始まる事がある。
解決方法をご存じの方がいらっしゃいましたらご教授頂けると助かります。
デフォルトの動作として、PlayerStartが複数ある場合、いずれかのPlayerStartがランダムで選択され、そこにPawnがSpawnされます
PlayerAがどちらか片方にSpawnされたので、PlayerBがもう片方にSpawnされる、という動作は行われません
コレは仕様です
ですので、任意の場所にSpawnさせたい場合は、何らかの手段でSpawn場所を指定する必要があります
EpicGamesLauncherのラーニングタブにある、MultiplayerShootoutのサンプルを参考にしてください
このサンプルの中に、OnlineSession時にどのようにPlayerをSpawnさせるべきか、今回質問されている内容についての具体的な回答となるBPが実装されています
また、Pawnが必ずSpawnする設定(Always Spawn)になっていなければ、Spawn時に別のActorやCollisionに干渉するなどしてSpawn不可能と判断された場合、Spawnされない可能性があります
何があっても必ずSpawnしたいActorについては、Actorの設定か、SpawnActorノードの設定でAlwaysSpawnに設定する必要があります
Shisi
3
T_Sumisakiさん
ご回答ありがとうございます!
MultiplayerShootoutを参考に実装してみます!