Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Addressableアドレス自動付与ツール「Smart Addresser」の概要と使い方
Search
Haruki Yano
April 17, 2023
Programming
0
1.8k
Addressableアドレス自動付与ツール「Smart Addresser」の概要と使い方
Haruki Yano
April 17, 2023
Tweet
Share
More Decks by Haruki Yano
See All by Haruki Yano
【Unity】リリース時にデバッグ用リソースをちゃんと消す方法
harumak
1
2.6k
Asset Regulation Manager よく使う設定逆引きリファレンス
harumak
0
240
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
2.6k
Other Decks in Programming
See All in Programming
Event Storming
hschwentner
3
1.3k
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
500
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
2.1k
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
8
2.2k
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
230
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
450
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
320
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
110
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
230
CSC307 Lecture 13
javiergs
PRO
0
310
並行開発のためのコードレビュー
miyukiw
2
2.1k
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
320
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
The Cost Of JavaScript in 2023
addyosmani
55
9.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
A Soul's Torment
seathinner
5
2.4k
4 Signs Your Business is Dying
shpigford
187
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
Game over? The fight for quality and originality in the time of robots
wayneb77
1
130
The agentic SEO stack - context over prompts
schlessera
0
680
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Skip the Path - Find Your Career Trail
mkilby
1
71
Visualization
eitanlees
150
17k
Transcript
Addressableアドレス自動付与ツール 「Smart Addresser」の概要と使い方 SGEコア技術本部 2023.04.13 矢野春樹
SmartAddresser ついさっき100Starsに!
Smart Addresserの概要 Chapter : 01
アドレス付与、どうしてますか?
手動 Drag & Drop
自動化 ※処理は適当です
書いた人以外にわかりづらくなりがち 車輪の再発明しがち
None
Smart Addresserの基本的な使い方 Chapter : 02
Addressable Groupを作る 普通にAddressableのウィンドウから作る SmartAddresserは、Addressable Groupを作ったり、その設定を変更したりはしません ※ このあたりやりすぎると色々とカオスになるため(どこまでやるのか難しくなる)
Layout Rule Dataを作る Smart Addresserのユーザデータを保存するScriptable Object Assets > Create >
Smart Addresser > Layout Rule Data から作る
制御するAddressable Groupを決める 前ページのLayout Rule Dataをダブルクリックして下図のウィンドウを開く Smart Addresserで制御するAddressable Groupにチェック チェック
アドレス付与対象のアセットを設定する Addressable Groupを選択し、右側のAsset Groupsタブから「+」ボタンを押下し このAddresable Groupに含めるアセット群を決めていく 「全アセットから対象のアセットをフィルタリングしていく」という考え方 図は「Rockフォルダ配下の拡張子がprefabのもの」全てをアドレス付与の対象としてる図 Rockフォルダ内 拡張子がprefab
カスタムアセットフィルタ いろんなフィルタがあります 独自のアセットフィルタも作れます マスタデータに定義されているIDを含むアセットだけフィルタリングとか
アドレスプロバイダーを設定する 右側のAddress Providerタブからアドレスの付与方法を設定 アセットパスをアドレスにしたり、アセット名をアドレスにしたり 正規表現を使ってReplaceした結果をアドレスにすることも可能 Assets/Prefabs/Characters/0001.prefab → pfb_ch_0001 みたいな Address
Provider タブ アセットパス/アセット名.. 正規表現設定
カスタムアドレスプロバイダー 独自のアドレスプロバイダーも作れます マスタデータに定義されているアドレスを付与したいとか ※これ以降省略しますが、基本的にこういう拡張性あるべきところに全て入れてます
適用する 右上のメニュー > Apply to Addressables もちろん適用するためのCLIもあります
自動適用 Project Settings > Smart Addresser > Primary Data に設定した
Layout Rule Dataはアセット追加・移動時に自動的に適用される(差分のみ) このルール自体に変更を加えた際には全適用する
ラベルも大体同じ Label Rulesタブから設定できる Asset Group と Label Providerを設定して付与できる パスにPlayer/Enemyを含む全Prefabにcharacterというラベルを付与するとか Label
Rulesタブ
Layout Viewerでチェック 現在の設定に基づいて実際にプロジェクト内のアセットがどうレイアウトされるか見れる エラーや警告があったらその詳細も見れます バリデーションするためのCLIもあります
バージョン管理機能 Chapter : 03
バージョン管理機能とは アセットごとにバージョン(semver)を振れる 指定したバージョンアセットのみをAddressableに適用できる e.g. バージョン1.0.0以上2.0.0以下のアセットのみをAddressableに適用 ※ オプショナルな機能なので使わなくてもOK 1.0.0 1.1.0 1.2.0
2.0.0 2.1.0 2.2.0 3.0.0 3.1.0 3.2.0 バージョン1.0.0以上2.0.0以下のアセットだけを適用
設定方法は大体ラベルと同じ Version Rulesタブで設定
適用前にバージョン範囲を指定 Settingsタブでバージョンの範囲を指定できる 指定方法はUnityのVersionDefinesに準拠するように作っています 例えば1.0.0以上1.2.0未満だったら [1.0.0,1.2.0) みたいな感じ 独自のバージョン範囲解釈クラス(VersionExpressionParser)を使うことも可能 バージョンの範囲を指定 バージョン振ってないアセットを除外するならチェック
依存関係に注意 バージョン管理機能はあくまで対象のアセットをAddressableに登録しないだけです 当然ながら、リリース可能バージョンのアセットから、リリース不可能バージョンのアセッ トへの依存がある場合には、Asset Bundleにリリース不可能バージョンのアセットが暗黙 的に含まれます 実際のユースケースを考えるとそもそもアセットの作り方をミスってない限りそんなことは 起こらないはずですが、一応ご注意を (そういうミスの検知にはAsset Regulation
Managerがおすすめです) 1.0.0 3.0.0 リリース可能 リリース不可能 参照してたら 含まれてしまう
ぜひ使ってみてください github.com/CyberAgentGameEntertainment/SmartAddresser