Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
UE4とUnrealC++について
Masahiko Nakamura
Editor Utility Widgetで色々便利にしてみた。
IndieusGames
UE4勉強会 in 大阪 - もっとアニメーションBP
com044
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
historia_Inc
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
エピック・ゲームズ・ジャパン Epic Games Japan
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
Tatsuya Iwama
1
of
45
Top clipped slide
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
Oct. 19, 2015
•
0 likes
55 likes
×
Be the first to like this
Show More
•
96,792 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Engineering
UNREAL FEST 2015 YOKOHAMAで登壇した際に発表した内容のスライドです。UE4上でマルチプレイネットワークゲームを作るための入門的な内容となっております。
Masahiko Nakamura
Follow
インディーゲームクリエイター at フリーランス
Advertisement
Advertisement
Advertisement
Recommended
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
23K views
•
88 slides
UE4で作成するUIと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
15.8K views
•
158 slides
猫でも分かるUE4.22から入ったSubsystem
エピック・ゲームズ・ジャパン Epic Games Japan
19.6K views
•
85 slides
ゆるゆるUE4ネットワーク入門
ssuser221848
3.4K views
•
51 slides
UE4のためのより良いゲーム設計を理解しよう!
Masahiko Nakamura
26.7K views
•
77 slides
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
9.5K views
•
29 slides
More Related Content
Slideshows for you
(20)
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
•
34.4K views
UE4とUnrealC++について
Masahiko Nakamura
•
39.1K views
Editor Utility Widgetで色々便利にしてみた。
IndieusGames
•
3.4K views
UE4勉強会 in 大阪 - もっとアニメーションBP
com044
•
12.1K views
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
historia_Inc
•
19.8K views
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
•
12.5K views
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
エピック・ゲームズ・ジャパン Epic Games Japan
•
12K views
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
Tatsuya Iwama
•
1.8K views
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
•
36.5K views
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
•
16.2K views
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
•
15.3K views
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
•
21.4K views
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
•
26.4K views
UE4でTranslucencyやUnlitに影を落としたい!
com044
•
20.6K views
Unreal Engine 4を使って地球を衛る方法
エピック・ゲームズ・ジャパン Epic Games Japan
•
33.5K views
なぜなにFProperty - 対応方法と改善点 -
エピック・ゲームズ・ジャパン Epic Games Japan
•
9K views
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
•
25K views
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
エピック・ゲームズ・ジャパン Epic Games Japan
•
5.2K views
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
エピック・ゲームズ・ジャパン Epic Games Japan
•
8.9K views
はじめてのAI~ 愛のあるAIを作ろう
Masahiko Nakamura
•
26.3K views
Viewers also liked
(10)
UE4を使用したゲーム開発の為のネットワーク対応その1
fuminyami
•
6K views
算数ゲーム Part1 UE4のブループリントでプログラム文法を1日で体験する
Tatsuya Iwama
•
3.3K views
算数ゲーム Part2 UE4のブループリントでプログラム文法を1日で体験する
Tatsuya Iwama
•
2.9K views
UE4 パーティクルエフェクトのマテリアル(前半)
moko
•
46.6K views
算数ゲーム Part3 UE4のブループリントでプログラム文法を1日で体験する
Tatsuya Iwama
•
2.9K views
UE4に初めて触ってから半年で同人ゲームを作るまで
Daisuke Mizuno
•
64K views
物理ベースレンダラedupt解説
h013
•
26.5K views
猫でもわかるUnreal Engine4
pafuhana 1213
•
59.1K views
UE4背景アーティスト勉強会(後編) 実演+解説
Aiko Shinohara
•
46.5K views
[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2...
エピック・ゲームズ・ジャパン Epic Games Japan
•
17K views
Advertisement
Similar to C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
(20)
クライアントプログラムだけで マルチプレイが簡単に実装できる! 新製品「Monobit Unity Networking」と 新製品「モノビットエンジン・...
monobit
•
9.7K views
Cocos sharpでゲーム開発してみました
Tomohiro Suzuki
•
3.9K views
第1回UE4名古屋勉強会
Masahiko Nakamura
•
67.5K views
各種ゲームエンジンの紹介と利用について
Katsutoshi Makino
•
3K views
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
•
58.8K views
UnityのMultiplayサービスの得意な事
Unity Technologies Japan K.K.
•
4.4K views
誰でも今日から実践できるUnity x PlayFab(Demoパート)
YutoNishine
•
954 views
アプリエンジニアがサーバーサイドで最初に勉強するべきこと
YutoNishine
•
319 views
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
YutoNishine
•
1.3K views
ゲームエンジンの違い
Hideki Koike
•
466 views
5Gでゲームはどう変わる?〜そろそろ気にしておきたい5G最前線〜 [更新版]
5G Innovation
•
3.7K views
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
•
20.9K views
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
•
15.3K views
ゲームエンジン導入セミナー【UDK編】
Junya "Jun" Shimoda
•
23.2K views
Powerful of blueprint visual scripting
Masahiko Nakamura
•
17.3K views
AWS Case Study @ JAWS-UG Sapporo
Michael Tedder
•
85 views
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
•
36.3K views
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
•
52K views
ブループリントマニアックス
Masahiko Nakamura
•
20.4K views
同人ゲーム開発におけるゲームエンジンの現状
Takashi Imagire
•
12.5K views
More from Masahiko Nakamura
(20)
UE4のコンポジット機能をもっと深く使ってみた
Masahiko Nakamura
•
12.8K views
映像制作者向け UE4で作る映像制作ワークショップ
Masahiko Nakamura
•
7.3K views
UE4におけるキャラクタークラス設計
Masahiko Nakamura
•
16.9K views
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
Masahiko Nakamura
•
14.6K views
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
Masahiko Nakamura
•
7.5K views
UE4でパノラマVRをやってみよう
Masahiko Nakamura
•
3.7K views
モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作について
Masahiko Nakamura
•
18.9K views
GGJ2017 事前勉強会 UE4編
Masahiko Nakamura
•
4.1K views
拳と筋肉とバーチャリアリズム
Masahiko Nakamura
•
2.1K views
UE4映像制作ハンズオン@大阪
Masahiko Nakamura
•
10.2K views
絵心がなくてもわかるUE4絵作りのコツ
Masahiko Nakamura
•
13.5K views
Unreal engine 4でのリアルタイムセルルック3DCGアニメーション
Masahiko Nakamura
•
5.1K views
ブループリント+ビジュアルスクリプトと仲良くやる方法
Masahiko Nakamura
•
3.3K views
ゲームジャムでのチーム制作における大事なこと
Masahiko Nakamura
•
13.3K views
Bullet TrainとOculus Touchの衝撃
Masahiko Nakamura
•
3.1K views
第5回ue4ハンズオンセミナー
Masahiko Nakamura
•
140.3K views
Unity5とUE4の比較
Masahiko Nakamura
•
57.5K views
50分でわかるブループリントについて
Masahiko Nakamura
•
70.9K views
第一回 関西UE4ハンズオンセミナー
Masahiko Nakamura
•
3K views
ゲーム開発環境の自動化
Masahiko Nakamura
•
12.3K views
Advertisement
Recently uploaded
(20)
☀️《Ohio毕业证仿真》
DFFFFG
•
0 views
★可查可存档〖制作国立大学文凭证书毕业证〗
tujjj
•
2 views
★可查可存档〖制作奥克兰商学院文凭证书毕业证〗
tujjj
•
2 views
143-南卫理公会大学.pdf
dsadasd17
•
3 views
230216_AI技術共有会_園部.pdf
RyosukeSonobe
•
2 views
法国:蒙彼利埃大学毕业证办理流程
cyvyvgk
•
3 views
SPECIALIZED heavy racks.pdf
FernandoRivasCortes1
•
2 views
★可查可存档〖制作温尼伯大学文凭证书毕业证〗
mmmm282537
•
3 views
★可查可存档〖制作密德萨斯大学文凭证书毕业证〗
vgfg1
•
2 views
★可查可存档〖制作菲莎河谷大学文凭证书毕业证〗
mmmm282537
•
2 views
英国:肯特大学毕业证办理流程
syceq
•
2 views
はじめてのハッカソン.pptx
rare0b
•
5 views
134-休斯敦大学.pdf
fdhrtf
•
2 views
56.桑德兰大学.pdf
dsadasd17
•
2 views
☀️《UMCP毕业证仿真》
DFFFFG
•
0 views
美国:伦斯勒理工学院毕业证办理流程
amdfot
•
2 views
12莫纳什.pdf
dsadasd17
•
3 views
★可查可存档〖制作魁北克大学文凭证书毕业证〗
mmmm282537
•
2 views
★可查可存档〖制作卡尔顿大学文凭证书毕业证〗
mmmm282537
•
2 views
AI時代の要件定義
Zenji Kanzaki
•
276 views
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
C++コードはいらない! UE4で作るお手軽マルチプレイ ネットワークゲームについて Unreal Fest 2015
Yokohama フリーランスゲームクリエイター コミュニティサポーター 中村 匡彦
自己紹介 名前 : 中村
匡彦 Twitterでは『@aizen76』でやっています。 8年ほどゲーム会社でゲームプログラマーやってました。 3DアクションゲームやMMORPGなど幅広く携わってきました。 アンリアルフェスでも毎回喋らせてもらっています。 趣味もゲームを遊び、ゲーム制作しつつイラストを描いたり。
今回のテーマは… ネットワークとマルチプレイヤー!
UE4のネットワークについて Server Client ClientClient クライアント・サーバーモデルを採用。 ただしUE4はエンジンがクライアント、 サーバー両方をこなせる仕組みを持つ。
UE4のネットワークについて 最初からエンジンコアの部分でネットワークに 対応する設計になっているので、シングルプレイヤーから マルチプレイヤーにするのも比較的簡単。 更にC++コードを書かなくてもブループリントのみで、 マルチプレイヤーゲームが作れるように配慮されています。
サーバーについて ネットワークにおける最高権限を持ち、 ゲームプレイフローを管理します。 クライアントはサーバーにログインしてから、 あらゆる情報に従う必要があります。 ListenサーバーモードとDedicatedサーバーモードがあり。 どちらの手段であっても役割自体は同じ。
Listenサーバーモード クライアントと同じようにゲームプレイを行なう事が可能。 サーバー機能を有しつつもクライアントのように動作する。 見た目にも動作がわかりやすく、テストプレイもしやすい。 特に問題がなければListenサーバーモードで。
Dedicatedサーバーモード いわゆる完全なサーバー専用モード。 クライアントのような画面はなく、コマンドプロンプトの ような真っ黒い画面上でも動作する。 最低限のリソースで動作し、クライアントを処理するのに フルスペックで動作するので比較的大規模なネットワークの マルチプレイヤー向けのモード。
クライアントについて サーバーにログインして、各々の見た目の部分を担当する。 ゲームロジックの処理はサーバー側にお任せ。 ただし、自分がコントロールするPlayerControllerの情報を 逐次サーバー側へと送信してあげる必要あり。 これをしないとサーバーとそれぞれのクライアント上で 自分の情報が反映されなくなってしまう。
サーバーへのログイン(その1) サーバー側でレベルを起動する際にオプションを渡すと、 Listenモードで起動するので、そこにクライアントは IPアドレスを指定してログインする。 LANを使っての場合は、LANオプションを指定。 WANの場合はオプションはいらないが、繋ぎにいく側の UDPポート(デフォルトでは7777)を開放する必要あり。
サーバーへのログイン(その1) クライアントのログインListenサーバーを実行
サーバーへのログイン(その2) UE4に用意されている『オンラインサブシステム』を使う。 これはプラットフォーム(Steam等)毎に用意されている、 オンライン機能をUE4用にラッピングして使えるようなっている。 セッション(ルームとも言う)作成、検索、参加、破棄を 簡単に行なう事ができ、マッチングシステムを提供。 エラーハンドリングまで簡単にできます。
サーバーへのログイン(その2)
Play In Editorの場合 レベルを実行した時点で複数プレイヤーを ログインさせた状態でいきなり実行可能! 実行時にサーバーとクライアントを それぞれ自動に振り分け。 Playボタン横から選択可能なメニューで プレイヤー数を設定しておきます。
1つのPC上で即マルチプレイ!
レプリケーションについて
レプリケーションとは? サーバーがクライアントに対してネットワークを通じて、 情報をレプリケート(複製)する事によって、 クライアント間で差異が生じないように同期する。 これをネットワークレプリケーションと呼び、 UE4では何をレプリケートするかを選択する事が可能。
アクターのレプリケーション 基本はアクターに対してレプリケートを行ない、 多くのアクターではデフォルトでレプリケート設定になっている。 レプリケートがオンになっていると 自動的にアクターの動き等が 同期されるようになっている。
レプリケート権限 レプリケーションはサーバーのみが行なう事ができます。 クライアントはサーバーに対してレプリケーションして 欲しい情報を送信する必要あり。 つまりサーバーとクライアントか判断してロジックを 変更して動かしてあげる必要がある。
Switch Has Authorityマクロ サーバーと クライアントを 判断するマクロ。 ロジック分岐の際に 多用します。
アクター所有権限 基本的にアクターはサーバーでスポーンしますが、 例外的にクライアント上でアクターをスポーンした場合、 クライアントがアクターの所有権を持つ。 クライアント上のアクターはレプリケートされないので、 ロジックやダイナミクスを含むアクターは基本的にサーバー上で スポーンしておく事をオススメします。
変数のレプリケーション ブループリント上で変数を作った場合には、 プロパティの設定ひとつでレプリケーション可能。 単純なレプリケーションの他に、 変数値が変更された場合のイベント通知も可能。 この場合にはサーバーとクライアント双方に送信される。
Replicated 最も単純な変数のレプリケーション。 設定をすると、変数値の変更は 自動的にサーバーからクライアントへ レプリケートされる。 クライアント上の変数値は一度 サーバーに送信してからレプリケートする。
RepNotify Replicatedと同様の設定方法で使用可能。 選択すると自動的に『OnRep_<変数名>』 という関数が自動的に追加。 中身は自由に実装が可能で、該当名の変数値が変更される度に この関数がイベントのように呼び出されるようになる。
RPC(リモートプロシージャコール)
RPCとは? ネットワークの先にある環境で関数やイベントを実行する事。 UE4では標準で3つの呼び出し方法が存在。 ブループリントではカスタムイベントを作成して使用する。 デフォルトでは『Not Replicated(複製なし)』 になっているので、必要に応じて設定する。
Multicast 呼び出しをサーバーで行なうと 全てのクライアントで処理が実行。 最も一般的なRPCイベント。 (Server to Client) クライアントで呼び出しても、 クライアント内でしか処理されない。
Run on Server 呼び出しをクライアントで行なうと サーバー上で実行される。 ただしアクターの所有権が必要。 (Client
to Server) サーバー上で呼び出しても、 クライアント上へレプリケートしない。
Run on Owning
Client サーバーから呼び出した場合に、 アクター所有権のあるクライアント上 でのみ実行される特殊なRPCイベント。 (Server to Client) クライアントで呼び出しても、 クライアント内でしか処理されない。
RPC使い分け 『Multicast』はサーバーから全てのクライアントで 同期する際に一番最も頻繁に使用する。 『Run on Server』はクライアントからサーバー上へ何かしら 情報を通知したい場合に使用し、変数値を同期させる 場合にも使用するので非常に重要。 サーバー上で変数値を反映させれば自動的にレプリケートされる。
RPC使い分け 『Run on owning
Client』は最も特殊で、 アクター所有権を自分で管理しておく必要あり。 つまり、サーバーはそのアクターを誰が所有しているのかを 理解しておく必要があり、特定クライアントに対してのみの RPCイベントを行なう際にはこの仕組みを使用します。 またサーバーがアクター所有権を持っている場合もあり、 その場合には名前に反してサーバー上で実行されます。
アクター所有権の確認 自分がそのアクターを所有しているのか確認する際には、 Pawnの場合には『Is Locally Controlled』を、 PlayerControllerは『Is
Local Player Controller』を使用します。
Reliability (信頼性) RPCには『Reliable』というプロパティがあり、 通信の信頼性を向上させる事が出来ます。 ただし、Reliableを設定すると通信帯域幅をより多く消耗し、 レイテンシーが大きくなる可能性があり、 リアルタイムマルチプレイゲームには向きません。 逆にパケットロスの可能性は大きくなります。
通信パフォーマンス最適化 『Net Cull Distance
Squared』は、 アクターのレプリケーションが届く範囲を 設定し遠距離の不要な通信しなくなる。 『Net Update Frequency』は通信の更新頻度 を設定する事が可能で少ないと通信も より少ない通信量で行なう事が出来るように。 『Net Priority』は通信混雑時の優先度。
マルチプレイヤー化 実演
マルチプレイヤー化 元々シングルプレイヤーなゲームを マルチプレイヤーへとライブノーディングしていきます! 今回使用するのはFPテンプレートを少し改造したもの。 デフォルトではシングルプレイヤーですが、 簡単にマルチプレイヤーへと変化します!
マルチプレイヤー化 ゲームジャンルによっては、すぐにシングルプレイヤーを マルチプレイヤーに出来る事がわかったと思います。 UE4はこれだけの事がブループリントのみでもいけます! もちろんC++を使えばもっと奥深い事も可能です。
その他 ネットワークやオンライン周り
パッチやDLC 4.8からその機能自体は存在。 あまり情報はないですが、少しずつ資料が増量中。 DLCというよりもMODやUGCとして扱われているようです。 https://wiki.unrealengine.com/Modding:_Adding_mod- support_to_your_Unreal_Engine_4_project サンプルプロジェクト https://github.com/tomlooman/ModSampleGame
コミュニティでの実績 UE4のフォーラムでMMOを作るためのキットも 実際に販売されています。 MMO Starter Kit https://forums.unrealengine.com/showthread.php?53208- MMO-Starter-Kit バックエンドサーバーにPHPを使用し、MySQLをDBに使用。 既にリリースされているタイトルもあり。
コミュニティでの実績 UE4をマスターサーバー化するプラグイン。 Master Server with
Unreal Engine 4 Plugin https://forums.unrealengine.com/showthread.php?73739- Master-Server-with-Unreal-Engine-4-Plugin シンプルにサーバーを登録し、オンラインサブシステムなしで 複数サーバーを管理する事が出来るように。 UE4だけでサーバー管理が出来るようになるかも…?
コミュニティでの実績 HTTP通信をブループリントで実現するプラグイン。 VaRest https://forums.unrealengine.com/showthread.php?13509- Plugin-Http-s-REST-blueprintable-JSON-and-Parse-REST-API- manager-at-once-(VaRest) JSON Query https://forums.unrealengine.com/showthread.php?7045- PLUGIN-JSON-Query
コミュニティでの実績 日本でもプラグインを作って公開している人も!! UE4でBlueprint上からHTTP通信を行うWebApiプラグインを公開しました http://hogetatu.hatenablog.com/entry/2015/08/17/134731
コミュニティでの実績 日本ではTwitterプラグインを作っている人もいます! Twitter4UE http://blog.cnu.jp/2015/08/27/twitter-plugin-for-ue4/ Pull Requestも歓迎らしいので、 気になる人は改良して送ってみよう!
まとめ UE4はネットワーク周りも相当充実しています。 面倒くさいRPC周りも設定をメニューからするだけ! あまりにも簡単にネットワーク対応が出来るの驚き。 スマホであればHTTP通信さえ出来れば十分なゲームもあるはず。 さぁUE4使いの皆さん。マルチプレイゲーム作ってみませんか?
Advertisement