2025年3月18日

新しい画像・動画ランタイムローダー

昨年初め、EvergineはEvergine.Runtimesライブラリを通じて画期的なコンセプトを導入しました。これは、アセット読み込みプロセスにおける柔軟性、効率性、動的性を高めるために綿密に設計されたものです。これらのライブラリは、ローカルのコンテンツリポジトリからのアセット読み込みや、インターネットからの動的ダウンロードを容易にし、開発者がアプリケーション内に動的コンテンツをシームレスに統合することを可能にします。

最初のリリースには以下が含まれていました。

  • Evergine.Runtimes.GLB
  • Evergine.Runtimes.STL

どちらのライブラリも、GLBおよびSTL形式の3Dモデルアセットのランタイム読み込みに特化しています。

今回の最新リリースでは、Evergineは2つの追加NuGetパッケージを導入することで機能を拡張しました。

  • Evergine.Runtimes.Images
  • Evergine.Runtimes.Videos

Evergine.Runtimes.Images

これまでEvergineは、画像の読み込みとテクスチャ作成にImageSharpライブラリを使用していました。業界のクライアントとの広範なやり取りと、そのフィードバックの詳細な分析を経て、画像読み込みプロセスを高性能なSkiaSharpライブラリに移行することが決定されました。

SkiaSharpは、GoogleのSkiaグラフィックスライブラリ上に構築された、クロスプラットフォームで高性能な2DグラフィックスAPIです。SkiaSharpは、広範な画像フォーマットのサポート、ハードウェアアクセラレーション、および複数のプラットフォームにわたる最適化された画像処理機能を提供し、一貫したレンダリング品質とパフォーマンス効率を保証します。

SkiaSharpへのこの戦略的な移行により、顕著なパフォーマンス向上が達成され、サポートされているプラットフォーム全体で最大98%の効率向上を実現しました。

Evergine.Runtimes.Imagesライブラリは、BMP、JPEG、JPG、PNG、およびWEBPを含むさまざまなフォーマットでの迅速なリアルタイムテクスチャ読み込みを容易にします。プリコンパイルされたEvergineコンテンツアセットを必要とした以前の実装とは異なり、新しいランタイムは、インターネットダウンロード、クラウドストレージ、またはユーザー生成のアップロードから取得した画像から直接、動的なテクスチャ作成を可能にします。この進歩により、アプリケーション開発の可能性が大幅に広がります。

Evergine.Runtimes.Imagesライブラリをプロジェクトに統合するのは簡単です。対応するNuGetパッケージを含め、提供されている実装例に従うだけです。

詳細な技術情報については、Evergineの公式ドキュメントを参照してください。

Evergine.Runtimes.Videos

画像の強化と並行して、今回のリリースではEvergine.Runtimes.Videosライブラリが導入されました。これは、プラットフォーム間でのリアルタイムビデオの読み込みと再生という複雑なタスクを合理化し、統一するために設計されています。リアルタイムビデオレンダリングは、プラットフォーム固有のメカニズムやAPIの違いにより、大きな課題を提起します。包括的な調査の結果、Evergineチームはビデオの読み込みと再生を標準化するための最適なクロスプラットフォームライブラリとしてFFmpegを選択しました。

FFmpegは、事実上あらゆるマルチメディアフォーマットのデコード、エンコード、トランスコード、多重化、逆多重化、ストリーミング、フィルタリング、再生が可能な、業界をリードするマルチメディアフレームワークです。その効率性と汎用性で知られるFFmpegは、さまざまなハードウェアおよびソフトウェア環境にわたって、堅牢で最適化されたパフォーマンスを提供します。

FFmpeg上に構築された新しいEvergine.Runtimes.Videosライブラリは、MP4 (H.264)、WMV、MOV、およびFLVなどの一般的なビデオフォーマットで厳密にテストされています。さらに、このランタイムはCPUベースとGPUアクセラレーションによるデコードの両方をサポートしており、デコード時間を大幅に短縮し、パフォーマンスを低下させることなく複数の高解像度ビデオの同時再生を可能にします。

次の図は、DXVA2標準を介したGPUアクセラレーションデコードで構成されたWindowsプラットフォーム上で動作するEvergineのビデオランタイムを示しています。

注:ビデオ例はOpenAIのSoraによって提供されました。

このリリースでのビデオサポートは現在Windows x64に限定されていますが、Evergine開発チームは将来のアップデートでこの機能を追加のプラットフォームに拡張するために積極的に取り組んでいます。

この強力な新しいランタイムをプロジェクトに統合するには、Evergine.Runtimes.Videos NuGetパッケージを追加し、Evergine Studio内で利用可能な新しいVideoPlayerコンポーネントを使用します。

注:Evergine Studio上のVideoPlayerコンポーネント

包括的な技術文書と実装の詳細については、Evergineの公式ドキュメントを参照してください。

Evergineチームは、Runtimesライブラリの継続的な改善と拡張に引き続き尽力し、開発者がアセットを動的に読み込むプロセスを簡素化します。

Jorge Canton
著者
Jorge Cantón
Plain Concepts Research