20150123 第28回 unity 勉強会「unity に於けるビルド自動化のおはなし &...

Post on 27-Jul-2015

439 Views

Category:

Engineering

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Unity に於ける ビルド自動化のおはなし 【まとめ編】+α2015.01.23 (Fri) / Unity 勉強会 vol.28

株式会社キッズスター システムデベロプメントチーム リーダー

森 哲哉

あけおめ!

毎度おなじみ? もんりぃです!

今日のテーマ

と、いうわけで

ビルド のおはなしです (最終回)

と、思いきや…

今日は、"+α" の 部分がメインですw

おしながき

おしながき

• Android ビルド自動化のおはなし

• iOS ビルド自動化のおはなし

• 【+α】Editor Script を用いた設定管理

• 【+α】KidsStar に於けるリソース管理の紹介

自己紹介

$ whoami

• “森 哲哉” と申します。

• a.k.a: もんりぃ / T: @monry / F: monry84

• 30歳 / ♂ / O型 / 天秤座 / 既婚

• 趣味は「お酒」と「合唱」です。

$ whoami• 大学を (自主的に) 卒業後、ベンチャーを転々。

• Web のフロントエンド、サーバサイドが得意。

• Unity 歴 2 年弱くらい。

• AWS とキャッキャウフフするのも好きです。

• 最近は Kinect さんがお気に入り。

$ whoami

$ whoami

$ jobs• “株式会社キッズスター” って会社で働いてます。

• 未就学児~小学生のお子さまをお持ちのファミリーをターゲットにした、知育/教育に関わるアプリ・サービスを展開しております。

• 「IID 世田谷ものづくり学校」という、元中学校に入居しております。

$ jobs

$ jobs

$ jobs

$ jobs

$ ls -la apps/

なりきり!! ごっこランド

パズル&テイルズおかしのくにを つくるのじゃ!!

なりきり!! アイスクリーム 屋さんごっこ

なりきり!! ママごっこ

お弁当をつくろう!

おかしの家を つくろう!

ハンバーガー やさんごっこ

飛行機を 組み立てよう!

i18n i18n i18n

i18n

ゆかいな お花屋さん

App Sto

re / Goo

gle Play

カテゴリランキング1位

多数獲得!!!きかんしゃ トーマスと パズルで あそぼう!

前置き

環境• Operation System: OS X Yosemite

• Unity: 4.6.1p2 (Pro Only)

• Platform: iOS, Android

• Language: C#

• Other: Xcode, Android SDK, gradle

今日 喋るコト

• iOS, Android に於けるビルド自動化のまとめ

• PostProcessBuild な話

• 複数プロジェクトに跨がるコードの話

• 画像やら音声やらのリソース管理の話

今日 喋らないこと

• Native Plugin の話

• 各マーケットへの公開に関する話

• リソースの読み込み方に関する話

iOS

iOS

つ [ ]

iOS

• BuildPipeline.BuildPlayer()

• Xcode Editor for Unity (forked by monry)

• xcodebuild

• xcrun

iOS

• Provisioning Profile 周りは1回ハマっとけw

• 複数アプリ展開してるなら、Wildcard な AdHoc 作っとけ。

iOS• テクスチャの圧縮は PVRTC がオヌヌメ

• アルファチャンネル分離して、Shader で 合成するようにしてあげれば RGB Compressed PVRTC 4bits とRGB Compressed PVRTC 2bits だけでコトが足りる

• imésta とか使って pvr コンテナを事前に生成しとく ってのもアリ

• PVR 荒れを起こしにくいよ!

Android

Android

つ [ ]

Android

• BuildPipeline.BuildPlayer()

• gradle

• レシピはコチラ。

Android

• Maven のローカルリポジトリにunity-classes.jar を登録しとく。

• Keystore とか Proguard とかは気を付ける。

• 各種広告 SDK とかを突っ込む際に、最低1回はハマるんじゃないかな?w

Android• テクスチャの圧縮は ETC1 か DXT5 かな?

• 以前の勉強会で「ATC が~」とか言ったけど、あれ、嘘。

• GPU が Adreno じゃない場合とかに壊滅的。

• アルファチャンネル無しなら ETC1 で、 有りなら DXT5 が良いんじゃないかと。

両 OS

両 OS

• ビルド後のアレコレをちょっとでも楽に

• DeployGate なり TestFlight なりにデプロイ

• ChatWork なり Slack なりに通知

• Jenkins おじさんと密接な関係になろう!w

ちょっと休憩…。

+α 其の壱

Editor Script による 設定管理

設定管理

• コード共通化の際に直面する問題

• それが

• プロジェクト毎に異なる設定値

設定管理

• 例えば、Flurry のような解析 SDK の API Key

• 例えば、広告 SDK の API Key

• 例えば、レビュー依頼ダイアログの遷移先 URL

• 例えば、AssetBundle のダウンロード URL

設定管理• ポイントは

• ScriptableObject

• Editor Script を書く

• ".asset" ファイルを理解する

• 根性あるなら Editor GUI も頑張る

設定管理

• AssetDatabase.CreateAsset(Object, string)

• [SerializeField]

• EditorUtility.SetDirty(Object)

• Resources.Load(string)

設定管理

DEMO

設定管理

• こちらに、本日のデモを push してあります。

+α 其の弐

KidsStar に於ける リソース管理の紹介

リソース管理

• Unity でアプリとかを作る時に困るコト

• それが

• リソース管理

リソース管理• 例えば、Texture

• 例えば、AudioClip

• 例えば、AssetBundle

• 例えば、外部 SDK

• 例えば、ローカライズテキスト

• 例えば、アイコンやスプラッシュ

リソース管理

• 免責

• これからお話するのは、あくまで弊社での運用事例の紹介です。

• 「この通りやったら完璧」とは言いませんw

リソース管理• Unity の特殊ディレクトリに対する理解

• Resources

• Streaming Assets

• Plugins

• これらのディレクトリ配下の Asset はビルド時にパッケージに含まれる

リソース管理

• Import Asset に対する理解

• 大量の画像とかあると死にたくなるw

• ".meta" ファイル重要

• CacheServer 無いと死ねる

リソース管理

• Unity による自動変換に対する理解

• 画像 → Texture

• 音声 → AudioClip

• オブジェクト → YAML (Force Text の場合)

リソース管理

DEMO

まとめ

まとめ

• 自動化による怠惰なエンジニアライフを!

• 全ては公式リファレンスに載ってる!

• プロジェクト管理のベストプラクティスを 探す旅は果てしなく続く!!!w

Thank you foryour attention !

top related