LoginSignup
2
0

More than 3 years have passed since last update.

UE4にSteamworksSDKを導入(未解決)

Last updated at Posted at 2020-07-21

はじめに

ちょっとした気の迷いでUE4にSteamのオーバーレイ的なイロイロを導入してみたくなった。
手順はUE4のドキュメントに載ってるので書く必要もないけど、沼にハマっているのでメモ感覚でQiita行。
なお初記事。

導入

UE4もSteamworksSDKも現時点の最新版を使う。

  • UnrealEngine 4.25.1
  • Steamworks sdk 1.49

事前準備

(インストールしていない方がこの記事を見るハズないと思いますが)Steamクライアントが必要。
インストールとログインを済ませてください。

ダウンロード

Steamworks SDKのダウンロード

ここからダウンロードできる。
https://partner.steamgames.com/downloads/steamworks_sdk.zip
Steamでリリースする場合はSteamDirectで色々と登録したり、1万円払う必要がありますが、試す分には何もする必要ナシ。
(参考:Steamworks SDKのドキュメント

SDKの配置

ダウンロードしたsteamworks_sdk_149.zipを解凍。
解凍したsdkディレクトリを
C:\Program Files\Epic Games\UE_4.25\Engine\Source\ThirdParty\Steamworks\Steamv149\sdk
に配置。Steamv149ディレクトリは作ってください。
(UE4のパスは言わずもがな自分のインストールした場所にどうぞ。)

Steamworks.build.csの設定

デフォルト以外のバージョンを利用する場合、Steamworksフォルダ内のSteamworks.build.csに手を加える必要がある。
SteamVersionNumberを1.49に設定すればOK。上の方にあるはず。

Steamworks.build.cs
        // The current SDK version number.
        double SteamVersionNumber = 1.49;

DLLの配置

DLLも最新版用に設置しないといけない?らしい。
C:\Program Files\Epic Games\UE_4.25\Engine\Binaries\ThirdParty\Steamworks\
にSteamv149ディレクトリを作り、さらにその中にWin32,Win64ディレクトリを作る。
そして以下のように配置する。

  • Win64
    • steam_api64.dll
    • steamclient64.dll
    • tier0_s64.dll
    • vstdlib_s64.dll
  • Win32
    • steam_api.dll
    • steamclient.dll
    • tier0_s.dll
    • vstdlib_s.dll

steam_apiとsteam_api64は先ほど配置したsdkの中のredistributable_binディレクトリの中にある。
それ以外のDLLはSteamクライアントディレクトリの中にある(C:\Program Files (x86)\Steam)。
全てコピーしてきて配置する。

プロジェクトの設定

iniの設定

ここからはプロジェクトの設定。
Steamworks SDKを導入したいプロジェクトディレクトリを開き、Configディレクトリ内のDefaultEngine.iniを編集する。
iniファイル内の最終行以下に次の文を追加する。

DefaultEngine.ini
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

ちなみにここのSteamDevAppIdの480は、開発者向けに用意されたID。
リリースするときはこのIDを固有のIDに置き換えないと動作しない。

プラグインの設定

最後に、UE4エディタの方でプラグインを有効化する。
エディタ上部の「編集>プラグイン」の検索ボックスに「OnlineSubsystem」と入力し、

  • Online Subsystem
  • Online Subsystem NULL
  • Online Subsystem Utils
  • Online Subsystem Steam

を有効化する。iOS,GooglePlayとかも有効化されてるかもしれないが、たぶん切っても切らなくても影響しない、と思う。
詳しいことは知らない。

テストプレイ

ここまでの手順を終えれば、Steamworks SDKの導入は完了しているはず。
スタンドアローンゲームを選択してプレイする。
上手くいっていれば、右下にいつものSteamのポップアップが表示される。

が、うまくいかないのである

ここまで公式ドキュメント通りに進めてきたはずなのだが、うまくいかない。
エディタのアウトプットログを見てみると、

LogSteamShared: Warning: SteamAPI failed to initialize, conditions not met.

とエラーが。
しかも、「Steam」で検索をかけてみると、プラグイン読み込み時に

LogSteamShared: Display: Loading Steam SDK 1.47
LogSteamShared: Steam SDK Loaded!

とログが。
結局読み込まれてるのがデフォルトバージョン。

ナンモウマクイッテナイ!!!

終わりに

駄記事生産してごめんなさい。
いろいろ調べてでき次第更新します。

参考記事一覧

2
0
3

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
2
0