2018/12/05

こちらの勉強会におじゃましてきました
http://www.creativevillage.ne.jp/lp/cyberagent/
以下勉強会のログです
(´-`).。oO()はやしこの思ったことのメモ。
※けっこうスライドの進みが早かったので
用語のメモミスなどあるかもしれません。
ウチ姫のAssebandle&ビルド環境自動化と負荷対策
AseetBundle差分検出自動化
AseetBundleの欠点
・中身がビルドする必要のあるファイルかどうかわからない
・依存関係を含むビルドをしようとするとめっちゃ複雑
こう改善しました
スクリプトで選別して呼び出し
1)シェーダーなどの共通ファイルを先にビルド
2)指定フォルダ以下をハッシュ計算し差分があるものだけをビルド
エクセルに自動出力して一覧化した
中のセルは自動更新 使用Excelライブラリ:NPOI
Prefab内の変更も拾える
タイムスタンプ差分だけだと人によって変わるのでダメ
↑
Unity5ならこの必要はない
BuildAssetBundlesを呼べばOK!確実にビルド
3)SVNに差分だけ自動コミット
(´-`).。oO( うちのプロジェクトはスクリプトで包むのを自動化してはいるけど中身まで差分みてなかったなー。これは便利そう。あとプランナーさんにわかるようにExcel出力してるのやさしい…)
(´-`).。oO( バージョン管理gitじゃなくてSVNなんや)
環境に合わせたビルドフロー
1)環境ごとに設定を変えるための自作ツールがある
Develop iOS/Android
Staging iOS/Android
Product iOS/Android
環境ごとに設定 C#で書いてる
BundleIDなど
2)JenkinsでUnityバッチビルド
3)HockeyAppに環境ごとアップロード
昔はTestFlightだったけどAndroidできなくなったのでHockeyAppに切り替えた
4)申請IPAはApplicationUploadで
切り替え用Deditoreinsow(?)
SaveおしてScriptObjectにデータ書き込み
C#実行
レイヤータグ、シーン名も定数としてC#で同時出力
アイコンも各ステージで変えてわかりやすく
BundleIDも変える
IPA出力
これでリリースまでのフローを短縮
JenkinsJob実行
Jenkinsの設定を毎回変えたりしていない
HockeApp
TestFlightみたいなやつ
以前のAppバージョンをダウンロードして見ることも可能
JenkinsHockyAppPluginを利用してIPA APKをupload
HockeAppSDKでバージョンごとのクラッシュ情報を送ってくれる
クラッシュ解析として良い(参考程度にはなる)
(´-`).。oO(このへんむずくてよくわからなかった…まちがえてたら…ごめんなさい…)
描画負荷の軽減方法
iOS4で60fpsにしよう目標
1.フィルレート
2.ポリゴン・ボーン数
3・シェーダ
4.ドローコール
フィルレートって?
各端末のグラフィックチップ性能値のひとつ
3DよりUI側でかなり消費する
プロファイラで確認してもどう使っているかほどんどわからないので
実機で実行して死ぬパターン
不透過シェーダ>大差ない数値
そうでないと
4 4Sで5倍以上の描画性能差が出る
Unlit/texture
Unlit/textureで描画
画面全体を描画するようなデザインは避ける(ダイアログの裏側など)
※最近の端末は気にしなくてもいいかも
Q.アセットバンドルでのメモリの状態
A.リソースマネージャーで管理 いつロード、解放しているのかわかるように
Q.ドローコールの基準値は
A.20〜30 エフェクトは制限なし
背景はかなり気を使ってもらってる
——————-
ちょうどチーム内でAssetBundleとBuildの効率化問題だね〜ってなっていたので
こういう運用の長いアプリの事例とても参考になりました。
いろいろ運営中に苦労があったみたいですが…(;ω;`)ブワッ
——————-
うちの姫様がいちばんカワイイ 公式サイト
http://www.amebaspgame.com/uchihime/lp/
他の参加者の方のレポートログ
【Unity】「サイバーエージェント×Unity×デザイン塾」レポート その2 -Qiita
http://qiita.com/baba_s/items/86ef52eb26c44d526133