『Unity』を使って『LiveWallPaper』を作ってみる


#◆LiveWallPaperとは

スマートフォンで使えるアニメーションしてる壁紙のことです

ネイティブで作ることが多いようですが、今回はUnityで簡単に作ることができたので共有します

こんなものができます → 【 http://www.nicovideo.jp/watch/sm25055652 】

ちなみに、↑ の動画はノーコーディングです。　プログラム1行も書いてません

#◆注意事項

※UnityのAssetを使用するため、Androidのみの作り方しか紹介できません（もしIOSも見つけたら紹介します

※UnityFree版だとできません、UnityPro版が必要となります


#◆環境構築

UnityでLiveWallPaperを作るにあたって、まず環境を整えないといけません

##準備するもの
###・Unity (3.5.x / 4.0.x)
　　　-　使用するAssetが上記のバージョンしか対応していないため、これ以上のバージョンを使用している方はダウングレードしてください
　　　-　Unityを複数のバージョンをインストールする方法でも構いません（ http://docs-jp.unity3d.com/Documentation/Manual/InstallingMultipleVersionsofUnity.html ）
###・AndroidSDK
　　　-　バージョンは最新で大丈夫です( https://developer.android.com/sdk/index.html )
　　　-　今回はadt-bundle-windows-x86_64-20140702を使用して説明します
###・eclipse
　　　-　AndroidSDKの中に入ってるeclipseを使用します（ので特にインストールは不要です
###・JavaDevelopmentKit ( JDK )
　　　-　eclipseを使用する際にJDKが必要になります ( http://www.oracle.com/technetwork/systems/index-jsp-138363.html )
###・LWP4Unity
　　　-　今回の主役です ( https://www.assetstore.unity3d.com/jp/#!/content/8483 )
　　　-　有料アセットなので注意!


#◆制作前準備
※上記の「準備するもの」すべてがインストールを前提に話します

AndroidSDKは、Unity4.0との相性が悪くちょっとフォルダ構成を変えないとうまくビルド出来ないので変更します

adt-bundle-windows-x86_64-20140702\sdk\build-tools\17.0.0 の中にあるファイルをすべて
adt-bundle-windows-x86_64-20140702\sdk\platform-tools にコピペします（上書きとか聞かれますが上書きしなくて別に保存してください

そしてもう一つ

adt-bundle-windows-x86_64-20140702\sdk\build-tools\19.1.0 の中にある zipalign.exe ファイルを
adt-bundle-windows-x86_64-20140702\sdk\tools の中にコピペします

これでUnity4.0.x（3.5.x）でAndroidビルドができるようになりました

#◆制作
##--- Unity側 ---

① Unityを起動してLWP4Unityをインポートします

② 動いている事がわかるような適当なシーンを作成し保存後BuildSettingのシーンに追加します

③ PlayerSettingのOtherSetting内にある
　　　-　MinimumAPILevel を Android2.2 'Froyo' ( API Level 8 ) に、StrippingLevel を Use micro mscorlib に変更します

![03.png](https://qiita-image-store.s3.amazonaws.com/0/39358/af37a138-a904-0eb7-df61-62ab90b44450.png)

![043.png](https://qiita-image-store.s3.amazonaws.com/0/39358/d6e6d9ed-2fc8-c863-c496-e79991852f51.png)

　　　-　この時 PlayerSetting の上にある ProductName を覚えておいてください、わかりやすい名前にしておくと確実です

![01.png](https://qiita-image-store.s3.amazonaws.com/0/39358/655e8e0c-c2be-a8f4-82b6-fb29b1b89be7.png)

④ PlayerSettingの設定が終わったら、AndroidでAPKファイルをビルドをします 
　　　-　Build&RunではなくBuildにしてください
　　　-　ビルド先はどこでも構いません、わかりやすい所がいいと思います

⑤ APKファイルを出力後、eclipseで読み込むためのフォルダを出力します

⑥ Unityの上部のWindowタブから、LWP4Unityという項目が追加されています
　　　-　LWP4Unity　→　CreateAndroid3DLWP　を押して LWP4Unityのウィンドウを出します

![05.png](https://qiita-image-store.s3.amazonaws.com/0/39358/f56be4d4-251d-8df8-7e4e-b0a6b599a597.png)

![06.png](https://qiita-image-store.s3.amazonaws.com/0/39358/0ee793bd-1015-ea67-c0a8-bbcf1309b6d2.png)



　　　-　そのウィンドウの ProductName 欄に覚えていた ProductName を入れます（必ず同じ名前にすること

![07.png](https://qiita-image-store.s3.amazonaws.com/0/39358/28d87393-ec05-1fa7-3ca2-6f12b66ece0d.png)


⑦ その後 CreateAndroid3DLWP ボタンをクリックします
　　　-　そうすると LWP4UnityMessege と書いてあるダイアログが出るので OK を押します

![08.png](https://qiita-image-store.s3.amazonaws.com/0/39358/72dd433f-0706-7b2d-15c6-b1489db6cd4a.png)


⑧ビルドに成功した場合、緑色の文字がLWP4Unityのウィンドウに表示されます（出なかった場合失敗なので、③からやり直してみてください

![09.png](https://qiita-image-store.s3.amazonaws.com/0/39358/218744a9-a235-406f-87b1-4a55bfac7f87.png)


　　-　ビルド成功後、Unityのプロジェクトフォルダ内に LWP4Eclipse が生成されます（これが eclipse で開くためのフォルダです

![11.png](https://qiita-image-store.s3.amazonaws.com/0/39358/35bdf196-326b-4cd5-6b85-ee32e3432804.png)


以上にてUnityでの作業は終わりです。eclipseでの作業に移ります

##--- eclipse側 ---

① adt-bundle-windows-x86_64-20140702\eclipse 内にある eclipse のアプリケーションを起動します
　　　-　アプリケーションがいくつかありますが、アイコンが表示されている方です
　　　-　この時エラーで eclipse 起動しない場合 JDK がインストールされていない可能性があるので確認してください

![16.png](https://qiita-image-store.s3.amazonaws.com/0/39358/83a241d5-4681-a08a-a53e-c82fecbb8822.png)


② eclipse を起動するとプロジェクトの保存場所を聞かれるので任意の場所を指定してください

![10.png](https://qiita-image-store.s3.amazonaws.com/0/39358/65110f80-2a14-2f05-55ed-77a5d801e087.png)


③ 起動後、eclipse の File → New → Project をクリック

![14.png](https://qiita-image-store.s3.amazonaws.com/0/39358/cd91b96a-6f02-d554-1f69-9215a2a19a2a.png)


　　　- Wizards という欄の名前は無視で下の Android → AndroidProjectformExstingCode というものを選び Next を押します

![15.png](https://qiita-image-store.s3.amazonaws.com/0/39358/d1098b2c-b7a5-b12f-478b-5d83f9b0e2f4.png)


　　　- そうすると、eclipse のフォルダを選択できるウィンドウが出て来るので 先ほどUnityでビルドした LWP4Eclipse フォルダを選択します（フォルダが間違っていなければ Finish ボタンがアクティブになるので押します。もしならない場合もう一度、Unity側のビルドを試してみてください

![12.png](https://qiita-image-store.s3.amazonaws.com/0/39358/eb794817-6c3a-18c4-38db-bdd63a56b5bf.png)


④ Finish ボタン押した後少し時間がかかって LiveWallPaperDemo ( Unity側のProductName )Project が開きます
　　　-　赤いビックリマークやエラーログは少し時間が経つと消えます
　　　-　消えない場合は Unity 側でもう一度ビルドか eclipse に再インポートしてください

![13.png](https://qiita-image-store.s3.amazonaws.com/0/39358/78d61dba-13c6-ee89-c08b-3641426f9465.png)


⑤ ここまできたら PC と Android を USB で繋ぎ、Project の最上層で右クリック → RunAs　→　AndroidApplication をクリックすると自動でビルドされ、Androidの中にインストールされます
　　　-　PC と Android を繋ぐ場合は Android を デベロッパーモードにして繋いでください ( http://juggly.cn/archives/75086.html )
　　　-　Android の画面ロックを解除しないとインストールされないことがあるので画面ロックを解除しておくと確実です


![17.png](https://qiita-image-store.s3.amazonaws.com/0/39358/483b8277-5273-af77-f5b4-6942f6e577da.png)

　　　
以上、eclipse での作業は終了です


#◆実際に実機の Android で見てみる

・ Android の設定画面から、壁紙 → ホーム画面を選び その中にある LiveWallPaperDemo ( Unity 側の ProductName )の壁紙を設定します（ GALAXYS5 ではこれでいけました）

・その後ホームへ戻ると作成した、アプリが LiveWallPaper として表示されていると思います


#◆最後に

おつかれさまでした

ここまでひと通りできた方は MMD4M など使って自分の好きなキャラなどをスマートフォンに住まわせるのも楽しいかもしれません

慣れてきた方は、いろいろ試して見てもらえるとこれをまとめた自分としても嬉しいです

なお、コメント欄でわからないところなど言っていただければ出来る限り対応しますのでお気軽にどうぞ