PR2025.11.27
数理最適化のエキスパートが断言「AIブームで見落とされがちな重要技術」 1,300社が導入した「演繹的AI」が意思決定を変える
FirebaseとUnity(全1記事)
コピーリンクをコピー
ブックマーク記事をブックマーク
gremito氏(以下、gremito):では「FirebaseとUnity」ということでLT始めたいと思います。よろしくお願いします。
(会場拍手)
トップバッターということで、すごく簡単に話していこうと思います。今日のこのスライドはコードは一切ないので軽く。月曜ということでお疲れだと思うので、気楽に聞いてもらえればなと思います。
自己紹介です。岩本と申します。

ネットではgremitoというアカウントでよく活動しています。最近はUNIBOOKを書いたり、八耐というイベントもやっていたりします。
Unityとは? みなさんご存知だと思いますが、よく言われているのはゲームを開発するツールですかね。ゲームエンジンとも呼ばれています。
それはすでに過去の話で、今ではAR、VR、映像系でも使われています。グラフィック周り、3D、2D周りでソフトウェアを作るときによく使われるツールになってきています。FirebaseはそんなUnityをサポートしていて、そんな話をこれからしていきます。
Firebaseは、これだけSDKを提供しています。

Unityしか扱ったことがないとか、サーバーサイドを全然知らないという人でも扱いやすくサポートしていて、しかもドキュメントもしっかり作られているんですよね(笑)。
すでに公式ドキュメントを見ている人も多いかと思うんですけれども、それだけやり応えがあるって感じがしますよね。
何を提供しているかと言うと、ネイティブプラグインと言われている、最終的にはiOSやAndroidにビルドして使えるような形で、Unityが提供しています。
先々週か先週(注:イベント開催日は4月2日)くらいに、ほそ道さん(@jshosomichi )という方が登壇されたスライドなんですけれども、おもしろかったので紹介させていただこうと思います。

「Firebaseってモバイルアプリを役立たさせるBaaSと呼ばれるものだよね」というプレゼンテーションですが、ほそ道さんはフロントエンドの方なんですけれども、新規事業のプロトタイプを作るということで、その際にFirebaseを使った事例の紹介でした。
今回資料を使わせてもらいますが、この資料では「Noサーバインスタンス、Noサーバサイドエンジニア」ということで、フロントエンジニアがサーバーの知識がそれほど無い状態でもプロトタイプまでは作れました、という話でした。

おそらく、実際にサービスインまでできるような形だったりするんですよね。こうした図のようにサービスを作っていくんですが、Unityもこんな形でできちゃいます。

1点、ベータ版であるCloud Firestoreがまだサポートされていないと思うんですが、使うとしたらRealtime Databaseなんですけども。まあ、そのうち(Unityにも)SDKが出るんじゃないかな、というところで書かせてもらってます。
実際、iOS、Androidでビルドして、そこで提供されているFirebaseのSDKを使ってサービスを作っていくような形になると思いますが、Unityはマルチプラットフォームと呼ばれているツールでもあって、いろいろビルドができます。

最近では、WebGLもホットになってきて、ここにも(Firebaseを)使いたいときは、RESTAPIや資料上に書いていませんが、JavaScriptのSDKを使って、対応できることはできます。
Firebaseはいろんな用途に応じて、設計しやすいようなSDK提供がされているので、「これは使うしかないよね」ということで、いろいろ触って思ったことをこれから話していきたいと思います。
実際にFirebaseを用いてUnityで開発するとなると、こんな形になります。

何が言いたいかと言うと、共通化がすでにされているので、サーバーサイドの学習コストを通常よりもかけずにFirebaseを使うことができサーバー側の開発が短縮できます。
そして、先ほど言ったネイティブプラグインなんですが、これは何ぞや? という話だと思いますが、UnityではよくあるSDK提供の形なんで、C#とネイティブコードが主になります。

実際に、ネイティブプラグインと言われているAndroidやiOSの機能を呼び出すところのスクリプトは、Androidだとjarファイル、.aファイルなどが提供され、ネイティブの機能が使えるようになります。

一番上がC#で従来だと、次にAndroidでは、.aarファイルやjarファイルで最初は提供されていたんですけれども、最近は.aarファイルで提供されていました。iOSは生のObjective-Cで提供されていました。

Firebaseは、これらの形とは異なりdllファイルがほとんど.でした。
Androidは何も書いていませんが、実際にはAndroidマニフェストがちゃんとあります。先ほどの.aarファイルとかではなくて、おそらく上のFirebaseならではの拡張子(.srcaar)を使って、SDKを提供されているんじゃないかなと思います。

そして、どこがネイティブプラグインになっているかと言うと、.dllのところでおそらくC++やC#をパックにしていてSDKを提供しているようです。この.dllファイルは、ネイティブコードのパッケージになっています。

従来では、SDKを独自カスタマイズができやすい作りになっていたものの、Firebaseに関しては、独自カスタマイズできない状態で提供されていました。Firebaseは、独自カスタマイズしなくても良い、資料上のようにスッキリとした設計でSDK提供されているようです。
それでも「やっぱり独自のFirebaseのSDKを独自カスタマイズしたい!」みたいな変態さんがいるんですよ。僕もそのうちの1人なんですけれども(笑)。ネイティブプラグインとは、Android・iOSで提供されている機能をUnityで扱えるようにする。
独自カスタマイズする際には、先ほど紹介したネイティブプラグインを実際に作ることになります。

最近はVRが有名なので、VRを作るとなるとやっぱりPC、とくにWindowsで作ると思います。
そういえば、Appleが最新のHigh Sierraで外部GPUをサポートするとニュースがあって、おそらくその目的は「VR開発してよ」というアプローチなのかなって思います。
実際にそれでFirebase使いたくなったら、現状だと資料上のWebGLのようにRESTAPIを使って作っていくんじゃないかと思います。
FirebaseとUnityを連携させて開発するにあたって押さえておきたい話があります。まず1つが、ゲーム開発でクライアントやフロントエンドの人って、ゲームを面白くするために集中して作りこむので、バックエンドはお任せっていうことが少なくありません。でもFirebaseの一つひとつのサービスを知って、どうやって作っていくかをちゃんと知ってればゲームと一緒に開発できます。
その際、すでにローンチされているサービスがどうやって作られているのか話されている資料を参考にすると、然程難しく無いです。

2つ目に、独自のFirebaseのSDKを作るときは注意が必要です。この間GDCで、Firebaseは、Windowsマシン上のUnityへのSDK提供が発表されました。
Windows使ってVR開発している僕の知り合いに「VRでもFirebaseのFirestoreとかあのへんのサービスを使って、サービスを作りたいんだよね」という話をしていたんです(笑)。でも、この発表があったから結局作らなくてよかった、と。なので注意が必要なのです。
何が言いたいかと言うと、クライアントだけの話ではなく、サービス全体で意識して開発することが大事です。
Unityを使っている人はUnityだけで話が終わってしまったり、面倒くさいことはやらないみたいな。「3D上でやらなくちゃいけないことがあるから、サーバーなんて考えてられないよ」となりがちです。これは、別に悪いことではないです。
でも、サービスとしてユーザーに提供するというところは一緒なので、全体をちゃんと見据えてサービスを作っていくというところは意識して開発すると良いと思います。そんなきっかけ作りにもあると思い、最近Firebaseを使い始めました。
ご静聴ありがとうございました。
(会場拍手)
続きを読むには会員登録
(無料)が必要です。
会員登録していただくと、すべての記事が制限なく閲覧でき、
スピーカーフォローや記事のブックマークなど、便利な機能がご利用いただけます。
すでに会員の方はこちらからログイン
名刺アプリ「Eight」をご利用中の方は
こちらを読み込むだけで、すぐに記事が読めます!
スマホで読み込んで
ログインまたは登録作業をスキップ
この記事をブックマークすると、同じログの新着記事をマイページでお知らせします