僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

11月進捗:ネットワーク、クラフトシステムとスポーン、乗車のマルチ

 

 

てことでやってます。

今月行ったことは

 ・ネットワーク処理の移植

 

 

・クラフトシステム とアイテムのスポーン処理

 

 

・車4人乗り 

 

となります。

 

UIは仮となります。 

 

・ネットワークの移植について

これは以前作成したテストプロジェクトから処理を移植したものです。

 

 

 

 

ただWidgetを作り直して処理を移しただけですが、部屋の作成、検索が動かないだったりしました。部屋の作成検索はエディターを立ち上げたら治ったりと意味不明な部分もありました。部屋が検索出来てJoinも成功したのにレベル移動がされないこともありました。

 

f:id:Bussan_dayo:20171126170131p:plain

 

部屋の作成について

MemberCountに参加人数を設定してAcceptを押すと

f:id:Bussan_dayo:20171126170219p:plain

 

GameinstanceのLaunchLobbyに飛ぶようにしました。CountNumは先程設定した参加人数です。

GameInstanceのLaunchLobby関数内も以下のようになっています。とてもシンプル・・・

f:id:Bussan_dayo:20171126170412p:plain

 

部屋の参加について

Joinボタンを押すと以下のようになっています。

f:id:Bussan_dayo:20171126170546p:plain

 

FindSessionから出たSessionResult配列を一度FindSession関数で処理を入れていますがこれは部屋検索の条件を関数内で行っています。

今回はとりあえず一部屋のみ作成しているのでなので直繋ぎです。

f:id:Bussan_dayo:20171126170720p:plain

 

GameInstanceのJoinServer関数に関しては以下のとおりです。

とてもシンプル

f:id:Bussan_dayo:20171126170841p:plain

 

 その場合はGamemodeの設定でGamoMode>UseSeamlessTravelにチェックを付けると飛びました。このあたりの設定は忘れない方が良さそうですね。

f:id:Bussan_dayo:20171126165959p:plain

 

移動前レベルで設定した衣類に関してはやっかいなのでいつか書きます。

 

 

・ クラフトシステムに関して

 

f:id:Bussan_dayo:20171126171100p:plain

 

 これは持ち物からクラフトできるものをリスト化し、クラフトを行える処理です。

 

基本的に設定方法はテーブルで管理しており、

 これがアイテムのテーブル。

f:id:Bussan_dayo:20171126171212p:plain

 

 そしてこれがクラフトアイテムの作成条件のテーブルです。

f:id:Bussan_dayo:20171126171312p:plain

 

なぜテーブルを分けたかというとリスト化する際に条件を全検索するため処理がかからないようにするためです。あと管理しやすさ。

 

処理に関してですが、画像からわかるように子Widgetを多用しており子Widgetの中に子Widgetを入れてその中に子Widgetを入れていたりして書くにはやっかりなので割愛です。

f:id:Bussan_dayo:20171126171501p:plain

 

・アイテムのスポーンについて

まず置く場所を決めるプレビューActorがあり、位置を決めてるとホストとクライアントが同期されるようになっています。

f:id:Bussan_dayo:20171126171920p:plain

 

f:id:Bussan_dayo:20171126171952p:plain

 

処理に関してはおわかりのとおりです

f:id:Bussan_dayo:20171126172211p:plain

 

プレビュー用

f:id:Bussan_dayo:20171126172249p:plain

 

 スポーン処理

f:id:Bussan_dayo:20171126172327p:plain

 

クライアント側のレプリケーション処理

f:id:Bussan_dayo:20171126172355p:plain

 

作成した関数が多いため詳しくは割愛。いつか気力が出たらきっちり書きたいと思います。

 

・車の乗車下車のマルチ対応

以前作成した実験用のBPは作り直し再度親のクラスを作成しました。

f:id:Bussan_dayo:20171126172713p:plain

 

それを継承した車のActorがこちら

f:id:Bussan_dayo:20171126172809p:plain

 

 

乗車時に乗車キャラをスポーンしてPossessにて操作キャラを変更しています。

乗車時の処理

f:id:Bussan_dayo:20171126173129p:plain

 

キャラスポーン時

f:id:Bussan_dayo:20171126172952p:plain

 

 

 乗車中の処理

f:id:Bussan_dayo:20171126173157p:plain

 

いつか詳しくブログにかければと思います。気力が出れば。

 

 

まだビジュアル周りの事に手を出せていないので早くそっちに行けるようにしたいですね。

 

以上です。