Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX, PDF
13,754 views
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。基礎編② (登壇者: historia 原龍さま)
Engineering
◦
Read more
12
Save
Share
Embed
Embed presentation
Download
Downloaded 120 times
1
/ 63
2
/ 63
3
/ 63
4
/ 63
5
/ 63
6
/ 63
7
/ 63
8
/ 63
9
/ 63
10
/ 63
11
/ 63
12
/ 63
13
/ 63
14
/ 63
15
/ 63
16
/ 63
Most read
17
/ 63
18
/ 63
19
/ 63
20
/ 63
21
/ 63
22
/ 63
23
/ 63
24
/ 63
25
/ 63
26
/ 63
27
/ 63
28
/ 63
29
/ 63
30
/ 63
31
/ 63
32
/ 63
33
/ 63
34
/ 63
35
/ 63
36
/ 63
37
/ 63
38
/ 63
39
/ 63
40
/ 63
41
/ 63
42
/ 63
43
/ 63
44
/ 63
45
/ 63
46
/ 63
47
/ 63
48
/ 63
49
/ 63
50
/ 63
51
/ 63
Most read
52
/ 63
53
/ 63
54
/ 63
55
/ 63
56
/ 63
Most read
57
/ 63
58
/ 63
59
/ 63
60
/ 63
61
/ 63
62
/ 63
63
/ 63
More Related Content
PPTX
Online MultiPlay Game Design
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Epic Online Services でできること
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4.25 Update - Unreal Insights -
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
by
エピック・ゲームズ・ジャパン Epic Games Japan
Online MultiPlay Game Design
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
by
エピック・ゲームズ・ジャパン Epic Games Japan
Epic Online Services でできること
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4.25 Update - Unreal Insights -
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
by
エピック・ゲームズ・ジャパン Epic Games Japan
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
by
エピック・ゲームズ・ジャパン Epic Games Japan
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
by
エピック・ゲームズ・ジャパン Epic Games Japan
What's hot
PDF
UE4とUnrealC++について
by
Masahiko Nakamura
PDF
60fpsアクションを実現する秘訣を伝授 基礎編
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4のためのより良いゲーム設計を理解しよう!
by
Masahiko Nakamura
PDF
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4におけるエフェクトの為のエンジン改造事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4におけるレベル制作事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
猫でも分かるUE4のポストプロセスを使った演出・絵作り
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
猫でも分かるUE4.22から入ったSubsystem
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
by
Game Tools & Middleware Forum
PDF
UE4勉強会 in 大阪 - アニメーション基礎
by
com044
PDF
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【UE4.25 新機能】ロードの高速化機能「IOStore」について
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4モバイルブートキャンプ
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
[CEDEC2018] UE4アニメーションシステム総おさらい
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4における大規模背景制作事例 最適化ワークフロー編
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4とUnrealC++について
by
Masahiko Nakamura
60fpsアクションを実現する秘訣を伝授 基礎編
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のためのより良いゲーム設計を理解しよう!
by
Masahiko Nakamura
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるエフェクトの為のエンジン改造事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるレベル制作事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4のポストプロセスを使った演出・絵作り
by
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4.22から入ったSubsystem
by
エピック・ゲームズ・ジャパン Epic Games Japan
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
by
Game Tools & Middleware Forum
UE4勉強会 in 大阪 - アニメーション基礎
by
com044
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
by
エピック・ゲームズ・ジャパン Epic Games Japan
【UE4.25 新機能】ロードの高速化機能「IOStore」について
by
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4モバイルブートキャンプ
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
by
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4アニメーションシステム総おさらい
by
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4における大規模背景制作事例 最適化ワークフロー編
by
エピック・ゲームズ・ジャパン Epic Games Japan
Similar to UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
PDF
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
by
com044
PPTX
猫でもわかるUnreal Engine4
by
pafuhana 1213
PPTX
UnrealFest2014_ようこそアンリアル・エンジンの世界へ
by
Shun Sasaki
PPTX
UE4を用いたTPS制作事例 EDF:IR レベル構成について
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
S大学ゲーム制作サークル第一回 超初心者向けUE4チュートリアル(1)
by
ai BlogOnly
PPTX
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
by
Masahiko Nakamura
PPTX
Ue4専門開発会社の仕事内容と、ue4ゲームコンテスト「ぷちコン」のために数日でゲームを作った時の話
by
Ryo Hara
PPTX
S大学ゲーム制作サークル第一回 超初心者向けUE4チュートリアル(1)
by
ai BlogOnly
PPTX
S大学ゲーム制作サークル第一回 超初心者向けUE4チュートリアル(1)
by
ai BlogOnly
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PPTX
ゲームエンジンの文法【UE4 練習 】No.005 Gameplay Frameworkの理解
by
Tatsuya Iwama
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
by
com044
猫でもわかるUnreal Engine4
by
pafuhana 1213
UnrealFest2014_ようこそアンリアル・エンジンの世界へ
by
Shun Sasaki
UE4を用いたTPS制作事例 EDF:IR レベル構成について
by
エピック・ゲームズ・ジャパン Epic Games Japan
S大学ゲーム制作サークル第一回 超初心者向けUE4チュートリアル(1)
by
ai BlogOnly
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
by
Masahiko Nakamura
Ue4専門開発会社の仕事内容と、ue4ゲームコンテスト「ぷちコン」のために数日でゲームを作った時の話
by
Ryo Hara
S大学ゲーム制作サークル第一回 超初心者向けUE4チュートリアル(1)
by
ai BlogOnly
S大学ゲーム制作サークル第一回 超初心者向けUE4チュートリアル(1)
by
ai BlogOnly
オンラインゲームの仕組みと工夫
by
Yuta Imai
ゲームエンジンの文法【UE4 練習 】No.005 Gameplay Frameworkの理解
by
Tatsuya Iwama
More from エピック・ゲームズ・ジャパン Epic Games Japan
PDF
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4を使った映像制作 (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Hair Groom入門 (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Twinmotion 2021とAEC分野向けソリューションのご紹介
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
by
エピック・ゲームズ・ジャパン Epic Games Japan
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
by
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を使った映像制作 (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
Hair Groom入門 (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
by
エピック・ゲームズ・ジャパン Epic Games Japan
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
by
エピック・ゲームズ・ジャパン Epic Games Japan
Twinmotion 2021とAEC分野向けソリューションのご紹介
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
1.
© historia Inc.
#UE4DD Multiplayer Online Deep Dive - Traveling - historia Inc. 原 龍
2.
© historia Inc.
#UE4DD Traveling ? Listen Server を開始したり、Server に接続したり、 各プレイヤーの接続やレベル移動周りの話です 今回は OnlineSubsystem の Session 等は解説しません
3.
© historia Inc.
#UE4DD Standalone Server Map A で Listen 開始Map A Map X Listen Server としてレベルを開始する → Listen 付き OpenLevel
4.
© historia Inc.
#UE4DD Standalone Server Map A Client として接続リクエスト Client として Server に接続する → ClientTravel 接続させて Map X
5.
© historia Inc.
#UE4DD Client Server Map A Map A Client として Server に接続する → ClientTravel いいよ 読み込むレベルを通知
6.
© historia Inc.
#UE4DD Client Server Map B Map A Server がレベル移動する → ServerTravel 移動します 移動先のレベルを通知
7.
© historia Inc.
#UE4DD Client Server Map B Map B Server がレベル移動する → ServerTravel 移動しました
8.
© historia Inc.
#UE4DD Listen Server としてレベルを開始する
9.
© historia Inc.
#UE4DD Standalone Server Map A で Listen 開始Map A Map X Listen Server としてレベルを開始する → Listen 付き OpenLevel
10.
© historia Inc.
#UE4DD Listen Server としてレベルを開始する C++ /** Start Server */ UGameplayStatics::OpenLevel(GetWorld(), “LevelName", true, "listen");
11.
© historia Inc.
#UE4DD Listen Server としてレベルを開始する Blueprint
12.
© historia Inc.
#UE4DD Server UGameplayStatics::OpenLevel Listen Server 開始リクエスト UEngine::Browse UWorld::Listen UEngine::CreateNamedNetDriver UNetDriver::InitListen Listen Server 開始 NetDriver 作成
13.
© historia Inc.
#UE4DD Client として Server に接続する
14.
© historia Inc.
#UE4DD Standalone Server Map A Client として Server に接続する → ClientTravel 接続させて Map X Client Server Map A Map A いいよ
15.
© historia Inc.
#UE4DD Client として Server に接続する C++ APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0); /** Start Client */ PlayerController->ClientTravel( “XXX.XXX.XXX.XXX”, // IP Address ETravelType::TRAVEL_Absolute, // トラベルタイプ false); // シームレストラベル有効フラグ
16.
© historia Inc.
#UE4DD Client として Server に接続する Blueprint
17.
© historia Inc.
#UE4DD UPendingNetGame::InitNetDriver UEngine::CreateNamedNetDriver UNetDriver::InitConnect APlayerController::ClientTravel Server 接続リクエスト NetDriver 作成 UEngine::Browse Client 接続開始
18.
© historia Inc.
#UE4DD FNetControlMessage<NMT_Hello>::Send UNetDriver::InitConnect 接続開始 UConnection::CreateChannel ※CHTYPE_Control Client Control Channel 作成 Server へ Hello メッセージ送信
19.
© historia Inc.
#UE4DD UPendingNetGame ? Control Channel で Server に Hello メッセージして待っている間、 UPendingNetGame オブジェクトが Server からの返答待ち及び、 Server が Closed になっていないかどうかの監視を行う
20.
© historia Inc.
#UE4DD Control Channel ? C/S 間の接続の制御に利用されるチャンネル UConnection 生成時に一つ生成される
21.
© historia Inc.
#UE4DD ServerClient Hello ServerClient Challenge ServerClient Login ServerClient Welcome 1 2 3 4
22.
© historia Inc.
#UE4DD Server UWorld::NotifyControlMessage Hello メッセージ受信 FNetworkVersion::IsNetworkCompatible FNetControlMessage<NMT_Challenge>::Send Client へ Challenge メッセージ送信 Network Version チェック
23.
© historia Inc.
#UE4DD Network Version ? C/S 間でアプリケーションの Network Version の照合を行うことができる Server で Hello 受信時にバージョンチェックを行い、問題があれば Upgrade メッセージを Client に送信し、Client ではエラーとして処理する Server ver. 1.1 Client ver. 1.0 Hello Upgrade 更新して出直して来いこんにちは
24.
© historia Inc.
#UE4DD Network Version ? デフォルトだとバージョン情報は下記を繋げた文字列のハッシュ値 – Game Name – Project Version – ENGINE_NET_VERSION – Engine Network Protocol Version – Game Network Protocol Version
25.
© historia Inc.
#UE4DD Network Version を制御するには ? Game Network Protocol Version をアップデートに合わせて変更する – FNetworkVersion::GameCompatibleNetworkProtocolVersion もしバージョン違いをある程度許容したい場合は下記をバインドして独自制御する /** Called in GetLocalNetworkVersion if bound */ DECLARE_DELEGATE_RetVal( uint32, FGetLocalNetworkVersionOverride ); static FGetLocalNetworkVersionOverride GetLocalNetworkVersionOverride; /** Called in IsNetworkCompatible if bound */ DECLARE_DELEGATE_RetVal_TwoParams( bool, FIsNetworkCompatibleOverride, uint32, uint32 ); static FIsNetworkCompatibleOverride IsNetworkCompatibleOverride; FNetworkVersion
26.
© historia Inc.
#UE4DD UPendingNetGame::NotifyControlMessage Challenge メッセージ受信 ULocalPlayer::GetPreferredUniqueNetId FNetControlMessage<NMT_Login>::Send Server へ Login メッセージ送信 OnlineSubsystem から Net ID を取得 Client
27.
© historia Inc.
#UE4DD Server UWorld::NotifyControlMessage Login メッセージ受信 AGameModeBase::PreLogin UWorld::WelcomPlayer ログイン前処理 AGameModeBase::GameWelcomPlayer FNetControlMessage<NMT_Welcome>::Send Client へ Welcome メッセージ
28.
© historia Inc.
#UE4DD PreLogin でログイン許可判定 AGameModeBase::PreLogin では ErrorMessage を返すことができる 規定人数に達していたり、何らかの要因でログインさせたくない場合は ErrorMessage に何らかの文字を入れることで、 Client には Control Channel から Failure メッセージが飛ぶ ServerClient Login Failure お前はダメログインしたい
29.
© historia Inc.
#UE4DD UPendingNetGame::NotifyControlMessage Welcome メッセージ受信 Map 名を受け取る UEngine::TickWorldTravel UEngine::LoadMap Map 読み込み Client UPendingNetGame::LoadMapCompleted FNetControlMessage<NMT_Join>::Send Server へ Join メッセージ送信
30.
© historia Inc.
#UE4DD Server UWorld::NotifyControlMessage Join メッセージ受信 UWorld::SpawnPlayActor PlayerController をスポーン AGameModeBase::Login AGameModeBase::PostLogin ログイン受け入れ
31.
© historia Inc.
#UE4DD ここまでの内容をまとめると
32.
© historia Inc.
#UE4DD • AGameModeBase • UNetDriver • UNetDriver• UNetDriver Client 1 Server Client 2 • UNetConnection • UControlChannel Server / Client • UNetConnection • UControlChannel Server / Client
33.
© historia Inc.
#UE4DD Server がレベル移動する
34.
© historia Inc.
#UE4DD Client Server Map B Map A Server がレベル移動する → ServerTravel 移動します Client Server Map B Map B 移動しました
35.
© historia Inc.
#UE4DD Server がレベル移動する C++ /** Start ServerTravel */ GetWorld()->ServerTravel(“LevelName”, false);
36.
© historia Inc.
#UE4DD Server がレベル移動する Blueprint
37.
© historia Inc.
#UE4DD Server UWorld::ServerTravel ServerTravel 開始 AGameModeBase::CanServerTravel AGameModeBase::ProcessServerTravel ServerTravel 可否判定 AGameModeBase::ProcessClientTravel NextURL 設定 (後に UEngine::Browse でレベル移動する) APlayerController::ClientTravel 各 Client で ClientTravel を実行 (Run on Owning Client & Reliable)
38.
© historia Inc.
#UE4DD APlayerController::ClientTravel Server 接続リクエスト Client 以下、前述した ClientTravel の流れと同じ Control Channel を介してログイン処理を行う
39.
© historia Inc.
#UE4DD つまり、ServerTravel でレベル移動を行うと、 移動する度に Server へのログイン処理が実行される
40.
© historia Inc.
#UE4DD 接続を維持したままレベル移動を行いたい場合は? → SeamlessTravel を利用する
41.
© historia Inc.
#UE4DD SeamlessTravel ? レベルをストリーミングで読み込み、Transition Map を経由しながら GameMode 等の Actor を引き継いだままレベル遷移する事で、オーバーヘッドを小さくできる 非 Seamless な ServerTravel と違い、Client との接続は保持したまま BeforeMap AfterMapTransition Map
42.
© historia Inc.
#UE4DD SeamlessTravel を有効にする public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=GameMode) uint32 bUseSeamlessTravel : 1; AGameModeBase
43.
© historia Inc.
#UE4DD Transition Map ? ワールドを保持したままレベル遷移するため、古いレベルがオンメモリのまま 新しいレベルが読み込まれる つまり瞬間的に二つのレベルが共存するため、メモリに優しくない そのため小さな Transition Map を間に挟むことで、古いレベルを解放してから 新しいレベルのロードが始まるように処理されている
44.
© historia Inc.
#UE4DD Transition Map を設定する
45.
© historia Inc.
#UE4DD Server AGameModeBase::ProcessServerTravel UWorld::SeamlessTravel NextURL は 設定しない (UEngine::Browse されない) FSeamlessTravelHander::StartTravel SeamlessTravel 開始 FSeamlessTravelHander::LoadPackageAsync レベルストリーミング開始
46.
© historia Inc.
#UE4DD FSeamlessTravelHander ? SeamlessTravel 時のシーケンス管理用オブジェクト TransitionMap を LoadAsync して完了待ちを行い、完了したら古いレベルを PendingKill してから CollectGarbage する TransitionMap への移行が完了したら、新しいレベルへの移行シーケンスを開始する
47.
© historia Inc.
#UE4DD Server Client SeamlessTravel SeamlessTravel ServerTravel - PreClientTravel ClientTravel - PreClientTravel Client / Reliable Server / Reliable ServerNotifyLoadedWorld NotifyLoadedWorld PostSeamlessTravel NotifyLoadedWorld
48.
© historia Inc.
#UE4DD Server Client SeamlessTravel SeamlessTravel ServerTravel - PreClientTravel ClientTravel - PreClientTravel ServerNotifyLoadedWorld NotifyLoadedWorld PostSeamlessTravel NotifyLoadedWorld 開始 / 終了のトリガー Client / Reliable Server / Reliable
49.
© historia Inc.
#UE4DD SeamlessTravel 時に引き継がれるアクターは? [Server] GameMode / GameState [Server] 有効な PlayerState を持つ全ての Controller [Server] 全ての PlayerController [Server / Client] 各 Server / Client が所持する PlayerController
50.
© historia Inc.
#UE4DD ゲーム都合で引き継ぐアクターを追加したい場合は? 下記関数をオーバーライドして ActorList に追加する – AGameModeBase GetSeamlessTravelActorList(bool bToTransition, TArray<AActor*>& ActorList) – APlayerController GetSeamlessTravelActorList(bool bToEntry, TArray<class AActor*>& ActorList)
51.
© historia Inc.
#UE4DD と、ドキュメントには記載があり、大体合ってるが…
52.
© historia Inc.
#UE4DD SpawnPlayerController 新規に PlayerController を スポーンして Swap している
53.
© historia Inc.
#UE4DD PlayerController で引き継がれるプロパティは? Location, Rotation 保持する PlayerState の全プロパティ(コピーされる) RemoteRole 等、Online 系のプロパティ
54.
© historia Inc.
#UE4DD ゲーム都合で引き継ぐプロパティを追加したい場合は? /** Called when a PlayerController is swapped to a new one during seamless travel */ UFUNCTION(BlueprintImplementableEvent, Category=Game, meta=(DisplayName="OnSwapPlayerControllers")) void K2_OnSwapPlayerControllers(APlayerController* OldPC, APlayerController* NewPC); AGameModeBase イベント呼び出し時に 必要なものをコピーする
55.
© historia Inc.
#UE4DD OnSwapPlayerControllers の注意点 PlayerController が Local or Remote で Swap タイミングが異なる – Local PlayerController は Swap -> BeginPlay の順番 – Remote PlayerController は BeginPlay -> Swap の順番 Swap が呼び出されるのは Server のみ
56.
© historia Inc.
#UE4DD SeamlessTravel をデバッグする
57.
© historia Inc.
#UE4DD SeamlessTravel をデバッグする時の注意点 PIE は現状だと非サポート デバッグするためには Standalone で起動する必要がある – イテレーション速度の低下 – そもそもエディタからは複数プロセスで Standalone 起動はできない game オプション付きで起動するバッチファイルを作るのがオススメ
58.
© historia Inc.
#UE4DD Visual Studio でデバッグする エディタもしくはバッチファイルから Standalone 起動した場合、 Visual Studio でデバッグしたいなら Attach to Process するしかない デバッグする度に、検索窓も無いプロセス一覧から特定のプロセスを探して アタッチして…、というのは非常に面倒
59.
© historia Inc.
#UE4DD UnrealVS を使ってコマンドラインに渡す引数を追加する [ProjectName] [起動したいMap] –game [その他オプション] と設定して Start Debugging すると、デバッグしながら起動できる 実行したコマンドラインオプションは履歴が残り、プルダウンで設定できるので便利
60.
© historia Inc.
#UE4DD UnrealVS で楽にはなるが、それでも PIE 非対応は辛い… // NOTE - This is a temp check while we work on a long term fix // There are a few issues with seamless travel using single process PIE, so we're disabling that for now while working on a fix AGameModeBase::CanServerTravel SeamlessTravel + PIE は現状だといくつかのバグを抱えていて、 将来的にこれは解決される見込みとのことなので、今後に期待
61.
© historia Inc.
#UE4DD まとめ Server としてレベル移動する時、Client として Server に接続する 初回のレベル移動はブロッキングが発生する C/S 間接続のキモは UControlChannel で、メッセージタイプも多くないので 何がサポートされているのかを最初に眺めてみると良い SeamlessTravel はデバッグが辛いので早期改善を希望
62.
© historia Inc.
#UE4DD まとめ 色々困ったら下記クラスの実装を追うと良い – UWorld – AGameModeBase – APlayerController – UNetConnection – UControlChannel – FSeamlessTravelHandler
63.
© historia Inc.
#UE4DD ご清聴ありがとうございました historia Inc. 原 龍
Download