この記事でのバージョン
Unity 4.6.3f1
Lobi 5.4.6
Lobiとは
まずLobi(旧ナカマップ)とは、カヤックが運営するスマホゲームのコミニティサービスです。
このLobi、なんと個人開発のアプリでも無料で導入出来ます!
重要なのがLobiを導入する事で何が出来るかという事ですが、大きく分けて二つの機能があります。
- ランキング機能
- プレイ動画の撮影、シェア
どちらもゲームには欲しい機能……!
特にランキングはiOS、Android両対応が作れる優れもの!
しかもランキングのデータをjsonで取得出来るため、
やろうと思えばオリジナルのランキング画面を作る事も出来ます!
ただ、この方法でやるとLobi側に利点が無いような……?
ちなみにプレイ動画は以下のような感じで、
音声や内側カメラの映像を入れ実況動画にする事も出来ます。
以前はアプリ内でユーザ同士が交流出来る、チャットというか掲示板みたいなのもあり、
これもかなり便利だったのですが、現在は有料になっています。
しかも料金については特に記載がありません。
というより、そもそも有料という事すら分からない……(問い合わせて判明)
なお、Unityやcocos2dxなどにも対応しています。
では、次の項から実際に導入をしていきましょう。
会員登録
まずは会員登録を以下のページ、右上の「新規登録・ログイン」から行います。
TwitterやFacebookのアカウントでもログイン出来るようです。
アプリ登録
ログインが完了したら、右上の「登録アプリ一覧」を押し、
「Create SDK Apps」ボタンでアプリを登録します。
なお、リリース前でも登録する事が可能です。
Unity設定
続いて設定ですが、まず以下ページのリリースノートから最新のSDKをダウンロードします。
GitHub - kayac/Lobi: Lobi SDKでは、ゲームアプリ開発者の皆様向けに開発・運用をサポートするフレームワークを用意しています。
残念ながら安定版みたいなバージョンはありません。
また、結構SDKの更新頻度が高いので注意が必要です。
ダウンロードしてきたzipを解凍し、Unityフォルダに入っているLobi.unitypackageを
ダブルクリックしてプロジェクトにインポートします。
録画機能が必要なければRecを、ランキングが必要無ければRankingの
ファイルはインポートしなくても問題ありません。
Android Implement Unity SDK · kayac/Lobi Wiki · GitHub
とりあえずUnity上の設定(?)は以上です。
広告等と同様に、残念ながらUnity上で機能の確認を行う事は出来ません。
Android設定
Androidで動作させるには、おなじみのAndroidManifestを編集する必要があります。
Android Implement Native SDK · kayac/Lobi Wiki · GitHub
Assets/Plugins/Android/LobiCore/AndroidManifest.xml
の三箇所にクライアントIDを追加します。
また、Game User Default Nameは
ユーザ登録時に名前を指定しない場合のデフォルト名になります。
<meta-data android:name="com.kayac.lobi.sdk.clientId" android:value="${クライアントID}" > </meta-data> <meta-data android:name="com.kayac.lobi.sdk.accountBaseName" android:value="Game User Default Name" > </meta-data>
<service android:name="com.kayac.nakamap.sdk.auth.NakamapAuthCallbackService" android:exported="true"> <intent-filter> <action android:name="com.kayac.nakamap.NAKAMAP_APP_AUTH_CALLBACK_${クライアントID}" /> </intent-filter> </service>
<activity android:name="com.kayac.lobi.sdk.activity.RootActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:theme="@style/lobisdk_lobi_activity_theme" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="nakamapapp-${クライアントID}" /> </intent-filter> </activity>
クライアントIDは、先ほど登録したアプリの「アプリ基本設定」ページに飛び、
「Client ID」で確認出来ます。
実は未だにAndroidManifestの書き方がよく分かっていなかったりします。
iOS設定
iOSで動作させるには、Unity上で[Edit]-[Lobi Settings]を開き、
Androidの時と同様、クライアントIDを設定します。
また、ユーザのデフォルト名はBase Nameで設定できます。
さらにダウンロードしてきたzip内にあったiOS/LobiSDKをAssets/Plugins/Lobi/iOSに
入れるとXcodeに書き出す時に自動で追加してくれます。
もちろんXcodeで直接入れても問題ありません。
ただし、使用しないSDKを入れるとエラーが出る場合があるので注意が必要です。
iOS Implement LobiRecSDK Unity · kayac/Lobi Wiki · GitHub
機能のテストはAssets/LobiSDK/Scripts/LobiTestButtonをシーンに配置し、
Enable test buttonsにチェックを入れると行えます。
なお、この記事を書いている時点ではMetal非対応らしいです。
Home · kayac/Lobi Wiki · GitHub
まだUnity4をメインで使っているので詳しい事は分かりません!
英語対応
現状、Lobiは英語にも対応しています。
Androidは特に何もしなくても大丈夫ですがiOSは一手間必要です。
iOS版の英語対応は以下の通りで、アプリ名等のローカライズと同様の方法です。
Xcodeで[File]-[New]-[File]を選択し、
Strings Fileを選択し、InfoPlist.stringsという名前でファイルを作成します。
このInfoPlist.stringsを選択した状態で、
右側ウィンドウを開き、Localizeボタンを押し、
EnglishとJapaneseにチェックをすると
各言語のInfoPlist.stringsが作成され、英語対応が完了です。
端末の言語設定を英語にする事で確認が可能です。
ちなみに、各言語のInfoPlist.strings内に
CFBundleDisplayName = "アプリ名";
と記載すると各言語毎のアプリ名を変更出来ます。
おわりに
導入編は以上です。
次回ランキング編、次々回プレイ動画編予定です!
追記:書きました!
あと、最初の方にちょっと触れたオリジナルのランキング表示を
Unity+NGUIで作ってはいるので(結局使ってない)、そのうち公開するかも?