Unity を検索

Unity Sentis で AI モデルを活用した次世代機能を作成する

2023年11月29日 カテゴリ: ゲーム | 9 分 で読めます
Representative image for Unity Sentis, showing a blue, green, and purple swirl that appears silky and is fading to black along the left side
Representative image for Unity Sentis, showing a blue, green, and purple swirl that appears silky and is fading to black along the left side
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

Unity Sentis は、開発者がゲームやアプリケーションに AI モデルを統合できるようにするために開発されました。現在プレリリースのオープンベータ版として公開中の Sentis は、あらゆる種類のプロジェクトにおける、物体認識、音声認識、スマート NPC などの複雑な機能の実装を可能にします。

ONNX ファイル形式でインポートされた AI モデルは、Unity がサポートするすべてのプラットフォームで直接実行することができます。つまり、クラウドインフラストラクチャを必要とせず、直接ユーザーデバイス上の Unity ランタイムで、大半の AI モデルを実行できます。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

Unity Sentis の使用を開始する

Unity Sentis パッケージのドキュメントはこちらでご確認ください。また、パッケージは Package Manager 経由でダウンロードできます。パッケージがプロジェクトにインストールされ、目的の AI モデルが使用できるようになれば、統合は至ってシンプルです。

ステップ 1:サポートされている AI モデルを探す

最終的に、プロジェクトで使用するモデルは開発者の裁量に任されます。各モデルは、解決したいタスクに依存します。最初は、マーケットプレイスで、HuggingFaceKerasPyTorch などの興味を引くモデルをチェックしてみるといいかもしれません。また、機械学習に携わった経験があれば、自身でモデルを訓練したり、強化学習のニーズに対して Unity ML-Agents を用いたりすることもできます。主な要件は、モデルを ONNX ファイル形式に変換する必要があることです。必要に応じて、TF2ONNX などの ONNX コンバーターを使用できます。

Sentis ドキュメントの Import a model でコードサンプルを参照してください。

ステップ 2:モデルを Unity に読み込む

モデルを Unity に読み込むには、他のアセットを読み込む際と同じプロセスに従う必要があります。エディター内の Project ウィンドウの Assets フォルダーにドラッグアンドドロップするだけです。Sentis はインポートされたモデルを自動的に最適化します。次に、ランタイム Model オブジェクトを作成します。

Sentis ドキュメントの Load a model でコードサンプルを参照してください。

ステップ 3:入力と推論を作成する

入力の作成は至ってシンプルで、ONNX Model Import Settings から、必要なモデル入力の形状とサイズを確認します。次に、データソースからテンソルを作成します。複数の入力が必要な場合は、1 つの辞書にすべてを格納してください。

Sentis ドキュメントの Create input for a model でコードサンプルを参照してください。

ステップ 4:モデルを実行し最適化する

モデルを実行する準備ができたら、ユーザーのデバイス(CPU または GPU)上でモデルを実行可能なタスクに分割するワーカーを作成する必要があります。ワーカーの作成は、このコード例を用いて実現できます。

ワーカーのセットアップが完了したら、いよいよ AI モデルを実行します。ここで、モデルの入力と出力をゲームコードに統合し、プロファイラーを用いてバジェット内に収まっているかを確認します。バジェットがかかりすぎている場合は、モデルを多くのフレームにわたって「スライス」したり、Sentis で提供されている他のパフォーマンス調整オプションを検討したりできます。

モデルの実行、出力の取得、出力の最適化の方法については、Sentis ドキュメントの Run a model を参照してください。

ステップ 5:モデルをテストしてデプロイする

最後のステップは、ゲームのテストとデプロイです。他の Unity Runtime プラットフォームでの通常のプロセスと同じように行います。ゲームのバイナリ内にモデルを含めるには、いくつかのオプションがあります。ビルドに埋め込んだり、ストリーミングアセットとして実行し、必要に応じてダウンロードしたりすることができます。また、セキュリティ上の理由によるモデルの暗号化を検討することも可能です。

Sentis ドキュメントの Encrypt a model でコードサンプルを参照してください。

プロジェクトサンプル

AI による数字検出機能の実装

この初心者向けサンプルでは、施錠された部屋の扉の鍵を開けるというタスクを物体検出モデルの実行により実装した例を通して、ニューラルネットワークを用いた Sentis の基本的な使用方法を紹介しています。手書きの数字を検出する MNIST という AI モデルを実行しています。このモデルは、手書きの数字を読み取り、最もそれらしいと思われる数字を特定します。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

AI を活用したボードゲームの対戦 CPU の実装

このサンプルでは、Sentis を使用して、難易度を設定できる、オセロというボードゲームの対戦ボットを実装しています。ゲームのルールに基づいて訓練されたニューラルネットワークを実行し、各ターン後のゲームの勝率を決定し、最も勝利する可能性が高い手を予測します。複雑なヒューリスティックと探索木を用いた従来のアプローチよりもシンプルな解決策です。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

AI を活用した深度推定による AR 体験の創出

このサンプルでは、Sentis を拡張現実(AR)体験に統合する方法を紹介しています。深度推定ニューラルネットワークを使って、現実世界の物体がゲームシーンの物体を覆い隠せるようにしています。深度はカメラからの動画フレームを処理することで決定されるため、高価なスマートフォンにしか搭載されていない LiDAR センサーを使う従来のアプローチよりもスケーラブルなソリューションです。

カメラ付きのモバイルデバイスで動作し、LiDAR センサーは必要ありません。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

その他のユースケース

AI モデルは、これまでのコードでは開発が不可能だったり、非常に時間がかかったりするような、魅力的な機能を実装するのに役立ちます。ユースケースは、AI モデルのすべてのカテゴリにわたり、導入を選択したモデルによりアプリケーションで実現できることが異なります。ただし、Sentis が提供できる開発プロセスのサポート例をいくつか紹介しておきます。

画像/アセットのアップスケーリング

開発者が Unity を選ぶ大きな理由の 1 つは、複数のプラットフォームでの公開をより簡単に行えることですが、それでも最適化は課題になり得ます。TensorFlow の Super Resolution のようなアップスケーリングモデルを使うことで、ゲーム内の低解像度の画像やテクスチャをアップスケールして実制作で使用可能なレベルにしたり、各デバイスの必要に応じてアセットを最適化したりすることができます。

音声認識

プレイヤーインタラクションは、相手が NPC または他のプレイヤーであるかどうかを問わず、オンラインでつながるゲームにおける鍵となります。OpenAI の Whisper のような音声文字変換モデルを使えば、リアルタイムの音声をゲーム内テキストに変換できます。また、AI モデルを導入してダイアログを自動化し、手動コーディングの制限を受けずに、プレイヤーと NPC 間の有意義なインタラクションを生成することもできます。

グラフィックスの最適化

AI では、斬新な機能の開発に重点が置かれがちですが、ゲームパフォーマンスの向上においても、素晴らしい応用例があります。その一例として、アップスケールを行う GAN AI モデルを用いて、ゲームシーンのプリレンダリングされたフレームを再現し、モバイルでのレイトレーシングを改善する AI モデルの使用が挙げられます。このようなアプリケーションがあれば、ユーザーデバイスのパフォーマンスに大きな影響を与えることなく、小規模なプロジェクトで光の屈折やコースティックスエリアライトのようなパストレーシング機能を実装することができます。

AR や VR の物体認識

拡張現実(AR)や仮想現実(VR)もまた、Sentis で AI モデルを使用する際の良いユースケースとなり得ます。例えば、Ultralytics の YOLO モデルを VR で使用してゲームシーンの物体を検出したり、AR で使用してデバイスのカメラフィードから現実世界の物体を検出したりすることができます。これは、AI でしか実現できない超視力的な感覚をユーザーに提供できます。

Unity Sentis は現在、Unity 2021.3 以降を使用しているすべての Unity 開発者を対象に、Package Manager 経由でオープンベータ版として無料で提供されています。

2023年11月29日 カテゴリ: ゲーム | 9 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック
関連する投稿