📘

Unity上で生成AI(Gemini)と会話してみる!~Firebase AI Logic for Unityのサンプルアプリを動かす~

に公開

最近、Youtubeで以下の動画を見ました。
https://youtu.be/eHxqqz23afA?si=Jfin65hgRc5IE8Tu

こんな感じでNPCと会話できると、ゲームがさらに楽しくなりそうですね。

これをどう実現するか考えていたところ、
GoogleのFirebase AI LogicがUnityをサポートしたらしく、
Unity内で生成AIとの会話ができるようになったみたいです(↓記事参照)
https://zenn.dev/hololab/articles/firebase-ai-logic-unity-androidxr
https://firebase.blog/posts/2025/05/ai-logic-unity-androidxr/

Firebase AI Logicとは何か?

Firebase AI Logicを使用すると、Googleの最新の生成AIモデル(Gemini, Imagen)が利用できるようになります。

「Firebase AI LogicクライアントSDK」というクライアント向けのSDKが存在し、
モバイルアプリやウェブアプリから、これらのAIモデルを呼び出すことが可能になります。
例えば、本記事で説明するような、Unity内でGeminiを介した会話ができるようになります。

このクライアントSDKは、Unity、Swift(Apple向け)、KotlinとJava(Android向け)、Javascript(ウェブ向け)、 Dart(Flutter向け)から使用できます。

参考

そこで今回は、こちらのドキュメントの前提条件に記載されている、
Firebase AI LogicのUnityサンプルアプリ
を動かしてみようと思います。

この記事の内容を実施することで、Unity上で生成AIとの対話ができるようになります。
例えば、下図の「Hello」と書かれている部分にテキストを入力して、メッセージを送信すると、モデルの応答(Response)が返ってきます。

手順

以降の手順では、こちらこちらのサイトを参考にしつつ進めていきます。
基本は本記事を読むだけで完結できるように記載していきます。

手順1. Firebase Unity SDKをダウンロードする

アプリを動かすには、Firebase Unity SDKが必要なようです。

以下のページの「Firebase Unity SDK」をクリックして、ダウンロードします。
https://github.com/firebase/quickstart-unity/tree/master/firebaseai/testapp

ダウンロードが終わったら、適当な場所に解凍します。
今回は、C:\Users\{ユーザ名}\workディレクトリの中に解凍しました。

手順2. サンプルアプリをダウンロードする

サンプルアプリが含まれるプロジェクトを、こちらのサイトからgit経由でcloneします。

cd C:\Users\{ユーザ名}\work
git clone https://github.com/firebase/quickstart-unity.git

clone先はどこでも良いと思います。(今回はC:\Users\{ユーザ名}\work)

cloneすると、quickstart-unity/というディレクトリが作成されます。

手順3. Unity Hubでサンプルアプリを開く

まずはUnity Hubを開き、Add > Add project from diskを選択します。
(Unity単体を使っている場合は、File > Open Projectで選択します。)

次に、サンプルアプリのclone先ディレクトリ > quickstart-unity > firebaseai > testappを選択し、openを押します。
Unityのバージョンは2021.3.43f1を使用しました。

以下のようなエラーメッセージが出ますが、「Ignore」を押して起動します。

少しエラーが出ますが、後述の手順をこなしていくと、最終的にエラーが出なくなります。

手順4. プラグインをインポートする

Assets > Import Package > Custom Packageを開く

手順1で展開した、「Firebase Unity SDK」のディレクトリを選択し、
firebase_unity_sdk > FirebaseAI.unitypackageを選択する。

Importを押す。

統計情報を集めて良いか聞かれたので、とりあえずNoを選択(多分どちらでも良い)

手順5. Firebaseプロジェクトを設定してアプリを接続する

サンプルアプリを動かすためには、サンプルアプリをFirebaseプロジェクトに接続する必要があります。
以下の手順で、接続が行えるようになります。

Firebaseプロジェクトの作成&接続手順

まずは、Firebaseコンソールにログインする。

次に、「Firebase プロジェクトを使ってみる」をクリックする

プロジェクト名を入力して続行→続行→プロジェクトを作成。


「AI Logic」をクリック

「使ってみる」をクリック

Gemini Developer API > このAPIを使ってみる をクリック。

有効にする

Unityのマーク(赤枠)を選択

以下のようなページが表示される。

AppleバンドルIDやAndroidのパッケージ名は、リリースする際に必要となる情報です。
今回はアプリをリリースしないので、任意の文字列として、
「com.ユーザ名.プロジェクト名(例. com.kmykprn.firebaseunitysample)」を設定しました。


「google-services.jsonをダウンロード」と「GoogleService-Info.plist」をダウンロードする。

ダウンロードしたファイルを、UnityプロジェクトのAssetsディレクトリ配下に入れる

Firebase Unity SDKは、手順1, 手順4で実施済みのため、何もせず「次へ」を押す。


コンソールに進む

ここまでで、サンプルアプリを起動する準備ができました。

サンプルアプリの動作確認

Unityのプレイボタンを押すと、ゲームビューに以下のような画面が表示されます。

「Hello」と書かれている部分(図中青枠)に、テキストを入力できます。

動作確認1. サンプル通りに動かす

「Hello」と書かれてる状態で、そのまま「Send Single Message」を押してみます。
すると画面右側に、送ったメッセージ(Sending message to model)と、モデルの応答(Response)が返ってきました。

正しく動作している場合、1秒もかからずに応答が返ってきました。

動作確認2. ゲーム内の情報を知っているか確認する

生成AIは、プロジェクト内の情報を知っているのでしょうか?
例えば、NPCに対して「この町には何があるの?」→「この街には宿屋があって...」と回答してくれると嬉しいのですが、どうでしょうか?

「こんにちは。この辺には何があるの?」と質問してみます。
期待する回答は、今回は空のゲームなので、「何もない」といった回答が返ってくればよさそうです。


おっと、一般的な回答が返ってきてしまいました。
残念ながらゲーム内の情報を知らないため、一般的な回答を返すようですね。
ゲーム内の情報もモデルに渡してあげる必要がありそうです。

この辺の設定はどうやればうまくいくのか、追加調査が必要そうです。

気づいたこと

何回かプロンプトを投げていたのですが、応答が返ってこないことがよくありました。
これは料金プランがフリーだからなのか、理由が不明のため、今後調査したいです。

所感

Firebase AI Logicを活用することで、Unity内でプロンプトを介した会話ができるようになり、ゲームの自由度や楽しさがさらに上がりそうな可能性を感じました。

特に、冒頭で述べていた「NPCとの対話」も、実現できそうな可能性が出てきました。

ただしNPCとの会話を実現するには、ゲーム内の情報をモデルに教え込む必要がありそうですね。この辺は、MCP等を使うとうまくいくのでしょうか?

今回調べきれなかった部分として、

  • 既存のUnityアプリへFirebase AI Logicを組み込む方法
  • ゲーム内の情報を生成AIに教える方法
  • フリープランにおける、リクエスト回数の制限

があるので、今後調査していきたいと思います。

以上になります。最後まで読んで頂きありがとうございました!

Discussion