こんばんは
ヨシバルです。
本日は昨日までの続きではなく僕の進捗と、その実装方法について書きます。
まだ、Steamなどを使ったオンラインの実装方法は僕のブログでは書いていないのですが
オンライン実装自体はいろいろな入門書を読んでできているが
プレイヤーが作った部屋を検索する方法がわからない!!という方向けです!
それでは本日は
Unreal Engine 4オンラインでプレイヤーが作った部屋を検索する方法
です!
実は、公式ではこの機能はまだ実装されていないです。
では、どうするんですか!?
C++を書くんですか!?!?
安心してください。書きませんよ(古いね)
日本では有志でBlue Printのノードを作って公開している方は、あまり居てないのですが
海外の有志たちはかなりアクティブなので
たくさん公開してらっしゃいます。
ありがとうございます。
Epic Gamesの公式コミュニティなので英語が読める方はぜひ見てみてください!
見ているだけでも、かなり面白いですよ!
ここのフォーラムにあった
Advanced Sessions Pluginを使うことで実装することができます。
こちらからダウンロードできます。
このサイトを開いて少し下に行くと
バージョンごとにダウンロードできる種類が違うので
僕は4.13.1を使っているのでこの赤い丸で示したリンクからダウンロードしました。
Zipファイルでダウンロードできるのでそれを解凍してください。
こいつですね。
こいつを
Project フォルダー直下のPluginsのフォルダに入れます。
Pluginsフォルダが無ければ作ってください。
だいたいドキュメントフォルダーの中のUnreal Projectにそれぞれのプロジェクトフォルダが入ってます。
入れ終わったらUE4を再起動してください。
プラグインの中をチェックしてコイツが出てきたら成功です!
それではノードの方に入ります!
UE4の既存のCreate SessionをCreate Advanced Sessionに置き換えます。
プラグインの導入に成功していたら出てきます。
ここのExtra Settingでセッションを作成する時に様々な設定をすることができます
今回はセッションの名前を設定したいので
Make Literal Session Property String で名前を設定します。
Keyは後でこの名前で検索をかけるので覚えておいてください。
今回はServerNameをKeyに設定して
Valueの所をサーバーの名前をユーザーが設定したTextを入れときます。
セッションを作成するのはこれで終わりです。
次はセッションを検索する方法です
既存のFind SessionをFind Session Advancedに置き換えます。
このノードのFiltersに検索の設定をかけれるはずなのですが、4.13では動かないみたいなので違う方法で検索をかけます。
検索結果のArrayをLoopで回して検索をかけます
こんな感じですね。
ここのSetting Nameに先程の設定したName "ServerName"といれて
それがユーザーが検索をかけているStringと一致するかどうかで判断します。
セッションの名前以外にも、サーバーの人数や使用しているマップなどでも検索をかけれるのでかなり便利ですね!
海外有志のように日本の有志たちも活性化していければいいですね!
僕もブログが書き終わったらプロジェクトを公開しようと思っているので
ブログと合わせて見て頂ければより理解が深まるのではないでしょうか!!
それではまた明日!