Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AssetBundle画像の命名チェックを自動化した話

 AssetBundle画像の命名チェックを自動化した話

Gotanda.unity #16
slack jenkins hubot github を連携して、各フォルダにおいた命名ルールをもとにアセットバンドルの命名チェックを自動化する仕組みを作った話です。

2d51ed859d6fcbd1e90e2377ac10775e?s=128

mineshima

January 14, 2021
Tweet

Transcript

  1. AssetBundle画像の命名チェックを⾃動化した話

  2. ⾃⼰紹介 みねしま 株式会社Donuts ⾃動化⼤好き Unityエンジニア

  3. 運⽤中のプロジェクトをやっているとよくこんなことを⾔われると思います

  4. 新規画像をアセットバンドルに追加したんですけど、実機で表⽰されないです!

  5. 原因として多いのは何かしらの命名ミスだと思います もちろんプログラムのバグのときもありますが…

  6. そこでアセットバンドルの画像名をチェックする仕組みを作りました

  7. ・ディレクトリごとに画像名のルールを決めたい (キャラクター画像を⼊れるフォルダであれば character_hogehoge など) ・画像名ルールに違反する画像も例外として許容したい (特殊なイベントで使った画像など) 要件 ・完璧は求めない

  8. 画像名をチェックしたいディレクトリに .fileNameRuleというファイルを配置する ※.(ドット)で始まるファイルはUnity上では無視される こんな形にしました

  9. #rule – #endrule ブロック内に このディレクトリで許されている 命名規則を正規表現で定義する ※複数指定可能 こんな形にしました

  10. #ignore – #endignore ブロック内に このディレクトリで命名チェックを無視 するファイル名を定義する こんな形にしました

  11. UnityEditor上メニューからチェックを実⾏すると .fileNameRuleが配置されたディレクトリを検索して そのディレクトリのファイル名に対して正規表現でチェックを⾏います

  12. といってもデザイナーに毎回このチェックを実⾏してもらうのは⼿間…

  13. ⾃動でチェックが実⾏されるようにしました!

  14. 今私が担当しているプロジェクトではこのようなフローで新規画像を追加しています デザイナーが画像を作成 エンジニアに対して プルリクを出す エンジニアが プルリクを承認 アセットバンドルをビルド

  15. 今私が担当しているプロジェクトではこのようなフローで新規画像を追加しています デザイナーが画像を作成 エンジニアに対して プルリクを出す エンジニアが プルリクを承認 アセットバンドルをビルド この間のタイミングで⾃動チェック するようにした

  16. プルリクの確認依頼の slackをHubotが監視

  17. SlackのメッセージにプルリクのURLが含まれていたら HubotがJenkinsのジョブを動かす

  18. Jenkinsでプルリクの対象ブランチで Unityのファイル名チェックを⾛らせる ※ghコマンドを使うとプルリクのURLから 対象ブランチをcheckoutできて便利!

  19. 命名チェックの結果によって JenkinsからプルリクをApprove or Change Request する ※ここでもghコマンドを使って コマンドラインからプルリクをレビュー

  20. 命名チェックの結果を Slackに通知する

  21. 命名OK時 命名NG時 最終的にこんな感じになりました

  22. まとめ ⽬視だと厳しかったりするものは⼩さいことからなるべく⾃動化しよう!