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.2k
Addressableアドレス自動付与ツール「Smart Addresser」の概要と使い方
Haruki Yano
April 17, 2023
Tweet
Share
More Decks by Haruki Yano
See All by Haruki Yano
【Unity】リリース時にデバッグ用リソースをちゃんと消す方法
harumak
1
2k
Asset Regulation Manager よく使う設定逆引きリファレンス
harumak
0
190
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
2.1k
Other Decks in Programming
See All in Programming
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
6
400
React 19アップデートのために必要なこと
uhyo
7
1.3k
Unity Android XR入門
sakutama_11
0
170
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
670
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.1k
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
260
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
140
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
210
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
290
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
130
Datadog Workflow Automation で圧倒的価値提供
showwin
1
100
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
930
Featured
See All Featured
Speed Design
sergeychernyshev
27
800
A Philosophy of Restraint
colly
203
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Automating Front-end Workflow
addyosmani
1368
200k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Statistics for Hackers
jakevdp
797
220k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
A Tale of Four Properties
chriscoyier
158
23k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
570
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Principles of Awesome APIs and How to Build Them.
keavy
126
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