0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UE4.22からUE4.23にしたらOnlineSubsystemOculusで接続できなかったので対応した

Last updated at Posted at 2019-11-15

作成中のプロジェクトをUE4.22からUE4.23.1にアップデートしようとしたらOnlineSubsystemOculusで接続しようとすると接続できない現象が発生したので対応した。
ここでは対応の内容を記録する。

発生した現象

UE4.23.1にアップデートするとクライアントからJoinSessionすると処理は成功するがサーバー側に接続できない。

原因と対応結果

以下のバグが原因だった。
https://issues.unrealengine.com/issue/UE-82549

プロジェクトに取り込んでいたOnlineSubsystemOculusに上記リンク先に書いてある以下の修正を適用すると接続できるようになった。

Change line 186 in IpAddressOculus.h (ToString) from:
return OculusId.ToString();
to
return FString::Printf(TEXT("%s.oculus"), *OculusId.ToString());

現象の調査過程

ログの調査

  • 正常に接続できるUE4.22のログと比較するとサーバー側で以下のようなログが出ているのが原因っぽかった。
[2019.10.04-02.21.56:650][ 96]LogEngine: Changing dynamic resolution state.
[2019.10.04-02.22.14:924][735]LogHandshake: SendConnectChallenge. Timestamp: 28.507830, Cookie: 039125221129068025073170116200035043157184180036126099049244
[2019.10.04-02.22.14:952][735]LogPackageName: SearchForPackageOnDisk took   0.028s, but failed to resolve [Oculus ID].umap.
[2019.10.04-02.22.14:952][735]LogNet: Warning: There is no connection to: 0
[2019.10.04-02.22.14:952][735]LogNet: Warning: Server failed post-challenge connection from: [Oculus ID]
[2019.10.04-02.22.14:952][735]LogNet: Warning: There is no connection to: [Oculus ID]

PackageNameまわりのコード調査

エラーメッセージを出している
Engine/Source/Runtime/CoreUObject/Private/Misc/PackageName.cpp 
をよんでみたりするが[Oculus ID].umapというようなマップがないので原因がわからず。

VSからのデバッグによる調査

VisualStudioでプロセスにアタッチしてデバッグしてみようと、起動したウィンドウから切り替えるとエラーで落ちる現象が発生した。
エラーメッセージで調べてみるとこちらのバグがひっかかったのでコミット内容をエディタに適用してビルドするとエラーがでなくなった。

プロセスをアタッチしてデバッグしてみたところ。
PackageNameのコードが以下のように呼び出されていることがわかった。

>    Laplace-Win64-DebugGame.exe!FURL::FURL(FURL * Base, const wchar_t * TextURL, ETravelType Type) Line 144    C++
     Laplace-Win64-DebugGame.exe!UOculusNetDriver::LowLevelSend(TSharedPtr<FInternetAddr const ,0> Address, void * Data, int CountBits, FOutPacketTraits & Traits) Line 294    C++
...

少しコードも読んでみてOnlineSubsystemOculusのバグっぽいことを確認した。

バグの調査

issuesでOculusのキーワードを入れるとこちらのバグがひっかかった。
内容があてはまったので書いてある修正内容を適用してみる接続できるようになった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?