Steamworks ドキュメンテーション
Steam オーバーレイ

概要

Steam オーバーレイは、Steam 上で起動したほぼすべてのゲームの上でアクティブにできる Steam ユーザーインターフェースの 1 つです。 オーバーレイから、ユーザーはフレンドリスト、ウェブブラウザー、チャット、ゲーム内 DLC 購入などにアクセスすることができます。

ゲーム内からオーバーレイにアクセスするためのデフォルトキーは SHIFT+TAB ですが、[Steam] -> [設定] ダイアログで変更可能です。

要件

オーバーレイを動作させるのにゲーム側での処理は不要です。オーバーレイは Steam で起動されたゲームに自動的にフックします! 開発時に、デバッガーでゲームが実行されている場合、オーバーレイは SteamAPI_Init が呼び出された際にロードされます。 OpenGL/D3D デバイスを初期化する前に、必ず SteamAPI_Init を呼び出すようにしてください。呼び出しが無いと、この関数がデバイスの作成をフックできなくなります。

オーバーレイは、DirectX 7 - 12、OpenGL、Metal、および Vulkan を使用するゲームで動作します。 オーバーレイはソフトウェアラスタライズされたゲームでは表示されません。
注意: アプリの種類が「ソフトウェア」に設定されていると、オーバーレイは自動的に無効になります。 オーバーレイを有効化する必要がある場合は、 サポートに連絡してください。

アプリからのオーバーレイの有効化

Steamworks API にはゲームオーバーレイのトリガーに直接アクセスできる一連の関数が用意されています。

オーバレイからゲームへの通信

オーバーレイ内のユーザーアクションに基づき、次のシグナル (コールバック) が Steam からゲームに送信されます:
  • GameOverlayActivated_t
    ゲームオーバーレイが有効化/無効化された時に通知します。 シングルプレイヤーゲームの一時停止または再開に使用できます。
  • GameServerChangeRequested_t
    ユーザーがフレンドのゲームへの参加を選択すると、参加先のサーバー情報の詳細も含めて通知します。
  • GameLobbyJoinRequested_t
    ユーザーがフレンドのゲームへの参加を選択すると、参加先のロビー情報の詳細も含めて通知します。

よくある質問

注: 顧客用のサポートサイトで追加情報が見つかる場合があります。例: Steam コミュニティオーバーレイが有効化されない

Q. Steam オーバーレイがアプリをクラッシュさせるのはなぜですか?

A. Steam オーバーレイは既に数千以上のゲーム内でテスト、使用されているためクラッシュの原因となる可能性は非常に低いと考えられます。 しかし、ゲーム内への組み込まれ方のために、ゲームプレイには影響しなかったレンダリング API の使用においてメモリリークやメモリ破損が頻繁に発生します。

オーバーレイクラッシュの診断方法としては、例えば DirectX の場合、すべてのレベルの出力 (情報/警告/エラー/通知) をオンにした状態で D3D デバッグランタイムを使用し、D3D の動作不良の原因を調査します。 孤立した D3D リソースを見つけるヒントが得られるかもしれません。 この方法で何も見つからない場合、より一般的なメモリ破損の問題かもしれません。 シャットダウンの際に必ず発生する場合には、シャットダウン時にゲームがクリーンアップをしないというシャットダウン順序の問題の可能性があります。

アプリのデバッグの後にもオーバーレイでクラッシュが発生する場合には、Steamworks 開発者グループからご報告ください。

Q. アプリで Steam オーバーレイが表示されないのはなぜですか?

A. まずは上記の 要件 を満たしていることを確認してください。 要件を満たした状態で表示されない場合には、アプリを Steam 経由で起動していることを確認してください。この際の起動方法は、ロビー/クイック起動リストから直接起動か、または SteamAPI_RestartAppIfNecessary からの呼び出しであることを確認してください。