Ichizokuは日本唯一のSentry公認販売業者です。
日本語のドキュメント、動画、サポート窓口で日本のお客様のSentry活用を支援します。

【Unreal Engine】ゲームコンソールでクラッシュレポート提供開始 トレース連携ログに対応

Article by: Ivan TustanivskyiSteve Zegalia

 
 

Sentry Unreal SDK の最初のメジャーリリース(現在 v1.2.0インタラクティブなサンドボックスでも試用可能)に合わせて、クロスプラットフォームの Unreal 開発者を支援するため、プラットフォーム対応範囲、ユーザーフィードバックを用いたデバッグ、パフォーマンス監視の各面で重要な改善を行いました。

主な更新点は次のとおりです。

 

 

ゲームコンソール対応

Sentry Unreal SDK は、Unreal の platform extensions を用いてコンソール(Xbox、PlayStation 5、Nintendo Switch)をサポートするようになりました。これにより、開発機とリテール機を問わず、致命的・非致命的イベントの完全なコンテキスト(ネイティブクラッシュのフルサポートを含む)を 1 か所で取得できます。ゲームコンソール対応の詳細をあわせてご覧ください。

これまでの Unreal SDK のアーキテクチャでは、新しいプラットフォームを追加する作業が複雑でエラーが起きやすいものでした。今回の再設計により、(プラグインのように機能する)platform extensions を採用する基盤が整い、コンソール固有コードをモジュール式に統合できるようになりました。これにより、プラットフォーム API へのハードコード参照や SDK コア全体への大規模な変更を避けつつ、開発を簡素化し、NDA により保護された低レベルの実装詳細を適切にカプセル化できます。

 
 
 
 

構造化ログ

Unreal SDK でも構造化ログが利用可能になりました。ゲーム内のエラーやクラッシュ、パフォーマンス問題に対して、ログ出力を取得し、関連付けることができます。つまり、プレイヤーがロード画面でスタックした場合や、アセットのストリーミング直後にクラッシュが発生した場合でも、障害に至るまでの正確なログの軌跡を把握でき、Issue ビューや Trace ビューから直接確認できます。

 

 

公開 API の変更と新機能

メジャーリリースは、API を見直し、これまで先送りにしていた破壊的変更(Breaking Changes)を導入する良い機会でもあります。たとえば次のような更新です。

 

CI インフラの改善

前回のアップデートで、CI における GitHub Actions を使ったプラグインの自動ビルド/テストについて触れましたが、その後、対応するプラットフォームおよびエンジンのバージョン範囲を大幅に拡大しました。大きな到達点のひとつは Windows 対応の追加で、これは多くの Unreal Engine タイトルにとって重要なプラットフォームです。

この実現のため、Unreal Engine を内包した Linux と Windows の独自 Docker イメージを作成しました。Epic Games 公式の Docker イメージは Linux のみで、かつ保守が難しい古いディストリビューションをベースにしており、Windows 向けの Docker イメージはそもそも提供されていません。

さらに、コンソールをワークフローに含めるための基盤も相当に整備しました。詳細は今後のエンジニアリングブログで共有していきます。

 

User Feedback API

新しい User Feedback API により、ユーザーがエラーを経験した際に、あなたのアプリ側の UI で追加のフィードバックを収集できるようになりました。従来の「イベント ID が必須」といった制約を解消し、投稿の柔軟性が向上しています。HTTP 経由でデータを送る処理は SDK がリクエストを生成するため、開発者は HTTP ポスト処理そのものを実装する必要はありません。

さらに詳しく知る詳細(Blueprint で同様の結果を得る方法を含む)はドキュメントをご覧ください。

 

パフォーマンス監視

分散トレーシングに対応し、カスタム関数を用いたスパン/トランザクションのサンプリングが大幅に進化しました。たとえば、複雑なメニューシステムでパフォーマンス問題が起きている場合、トレーシングにより、ボトルネックが UI レンダリングなのか、サーバー一覧取得のための バックエンド API 呼び出しなのか、キャラクタープレビューの アセット読み込みなのかを切り分けられ、問題の原因となっている 該当コードまで掘り下げて確認できます。

 

カスタムユーザー添付ファイル

最も要望の多かった機能の一つである、デスクトッププラットフォームでのカスタム添付(設定ファイルやログなど)に対応しました。これは、プラグインが依存する下位 SDK 群にまず実装し、その結果として Unreal SDK のユーザーでも利用可能になったものです。たとえば、プレイヤーがマルチプレイヤーのロビーを開いた際にクラッシュした場合、サーバーレスポンスのログを添付することで、どのデータや状態がその問題を引き起こしたのかを把握できます。

 

 

新しいデモと FAB への掲載

Sentry Tower Defense

ゲームエンジン向け SDK を効果的にテストするには、適切な環境が不可欠です。そこで、Sentry をゲームに統合しようと検討している開発者のための Unreal Engineでタワーディフェンス型デモゲームを作成しました。このデモは、Sentry を用いた計測(インストルメンテーション)の実装方法を示し、どの種類のエラーを捕捉できるか、また対応するレポートにどのようなデータが含まれるかを理解する助けになります。

 

FAB 上の Sentry

アクセシビリティを高めるため、最新の Sentry SDK プラグインを FAB(旧 Unreal Engine Marketplace)でも提供開始しました。これまで私たちは、GitHub Releases 版と FAB 版という 2 種類のプラグインを別々に管理しており、それぞれに固有の差異や制限がありました。現在はこれらを統一し、同一パッケージを提供しています。これにより、私たちにとっては保守が簡素化され、皆さまにとっては Sentry の統合をより柔軟に行えるようになりました。

 

 

Unreal 標準に合わせた新しい SDK 構成

Unreal Engine は、特にクロスプラットフォーム開発において、命名規則やディレクトリ構成に従うことを推奨しています。Sentry SDK ではコードベースの内部を全面的に再設計し、Unreal の標準に整合させました。具体的には、ソースファイルをプラットフォーム別ディレクトリに整理し、既存の多くのスクリプト、クラスをリネームしています。

このアプローチにより、SDK の一部が抱えていた複雑さは大幅に低減しました。たとえば、プラットフォーム固有コードを囲むために扱いづらいプリプロセッサディレクティブ`#if PLATFORM_X` に依存するのではなく、適切な抽象化と共通インターフェースを用いる方式へ移行しています。

 

Sentry Unreal SDK の導入

セットアップは簡単です。プラグインを追加し、プロジェクトを接続するだけで、ゲームのロード画面やフレームドロップの裏側で実際に起きていることを可視化できます。

 

ご質問やフィードバックがありましたら、以下よりお寄せください。

 

Sentry をまだご使用頂いたことがないようでしたら、是非無料でお試しください

 

 

 

Original Page: Unreal Engine crash reporting now available on gaming consoles with trace-connected logs

 




IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。

 

シェアする

Recent Posts