読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

UnityでLobiを使う、導入編【Unity】【Lobi】

Unity Lobi

このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 4.6.3f1
Lobi 5.4.6

Lobiとは

まずLobi(旧ナカマップ)とは、カヤックが運営するスマホゲームのコミニティサービスです。



このLobi、なんと個人開発のアプリでも無料で導入出来ます!


重要なのがLobiを導入する事で何が出来るかという事ですが、大きく分けて二つの機能があります。

- ランキング機能
- プレイ動画の撮影、シェア

どちらもゲームには欲しい機能……!


特にランキングはiOS、Android両対応が作れる優れもの!


f:id:kan_kikuchi:20150515065314p:plain


しかもランキングのデータをjsonで取得出来るため、

やろうと思えばオリジナルのランキング画面を作る事も出来ます!

ただ、この方法でやるとLobi側に利点が無いような……?


ちなみにプレイ動画は以下のような感じで、

音声や内側カメラの映像を入れ実況動画にする事も出来ます。



以前はアプリ内でユーザ同士が交流出来る、チャットというか掲示板みたいなのもあり、

これもかなり便利だったのですが、現在は有料になっています。

しかも料金については特に記載がありません。

というより、そもそも有料という事すら分からない……(問い合わせて判明)


なお、Unityやcocos2dxなどにも対応しています。


では、次の項から実際に導入をしていきましょう。


会員登録

まずは会員登録を以下のページ、右上の「新規登録・ログイン」から行います。



TwitterやFacebookのアカウントでもログイン出来るようです。


アプリ登録

ログインが完了したら、右上の「登録アプリ一覧」を押し、

「Create SDK Apps」ボタンでアプリを登録します。

なお、リリース前でも登録する事が可能です。


Unity設定

続いて設定ですが、まず以下ページのリリースノートから最新のSDKをダウンロードします。


kayac/Lobi · GitHub


残念ながら安定版みたいなバージョンはありません。

また、結構SDKの更新頻度が高いので注意が必要です。


ダウンロードしてきたzipを解凍し、Unityフォルダに入っているLobi.unitypackage

ダブルクリックしてプロジェクトにインポートします。


f:id:kan_kikuchi:20150515065746p:plain


録画機能が必要なければ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は、先ほど登録したアプリの「アプリ基本設定」ページに飛び、


f:id:kan_kikuchi:20150514213940j:plain


「Client ID」で確認出来ます。


f:id:kan_kikuchi:20150514213955j:plain


実は未だにAndroidManifestの書き方がよく分かっていなかったりします。


iOS設定

iOSで動作させるには、Unity上で[Edit]-[Lobi Settings]を開き、


f:id:kan_kikuchi:20150514231029p:plain


Androidの時と同様、クライアントIDを設定します。

また、ユーザのデフォルト名はBase Nameで設定できます。


f:id:kan_kikuchi:20150514231044p:plain


さらにダウンロードしてきた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非対応らしいです。


LobiSDK Unity5 · kayac/Lobi Wiki · GitHub


まだUnity4をメインで使っているので詳しい事は分かりません!


英語対応

現状、Lobiは英語にも対応しています。

Androidは特に何もしなくても大丈夫ですがiOSは一手間必要です。


iOS版の英語対応は以下の通りで、アプリ名等のローカライズと同様の方法です。


Xcodeで[File]-[New]-[File]を選択し、


f:id:kan_kikuchi:20150515063119p:plain


Strings Fileを選択し、InfoPlist.stringsという名前でファイルを作成します。


f:id:kan_kikuchi:20150515063205p:plain


このInfoPlist.stringsを選択した状態で、


f:id:kan_kikuchi:20150515063302p:plain


右側ウィンドウを開き、Localizeボタンを押し、

EnglishとJapaneseにチェックをすると


f:id:kan_kikuchi:20150515063545j:plain


各言語のInfoPlist.stringsが作成され、英語対応が完了です。

端末の言語設定を英語にする事で確認が可能です。


f:id:kan_kikuchi:20150515063904p:plain


ちなみに、各言語のInfoPlist.strings内に

CFBundleDisplayName = "アプリ名";

と記載すると各言語毎のアプリ名を変更出来ます。


おわりに

導入編は以上です。

次回ランキング編、次々回プレイ動画編予定です!


追記:書きました!


あと、最初の方にちょっと触れたオリジナルのランキング表示を

Unity+NGUIで作ってはいるので(結局使ってない)、そのうち公開するかも?