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
720
Addressableアドレス自動付与ツール「Smart Addresser」の概要と使い方
Haruki Yano
April 17, 2023
Tweet
Share
More Decks by Haruki Yano
See All by Haruki Yano
【Unity】リリース時にデバッグ用リソースをちゃんと消す方法
harumak
0
1.1k
Asset Regulation Manager よく使う設定逆引きリファレンス
harumak
0
150
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
1.5k
Other Decks in Programming
See All in Programming
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
380
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
120
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
500
新宿ダンジョンを可視化してみた
satoshi7190
3
380
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
970
Site Reliability Engineering for GMO
pyama86
8
1.1k
Tailwind CSSを本気でカスタマイズする方法
fsubal
14
5.5k
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
280
SIMD Parallel Programming with the Vector API
josepaumard
0
220
Let's learn code review
riofujimon
2
570
VS Code をプロダクトにどう取り込むか
onomax
1
640
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
480
Featured
See All Featured
Clear Off the Table
cherdarchuk
85
310k
The Cult of Friendly URLs
andyhume
74
5.7k
RailsConf 2023
tenderlove
8
550
A Modern Web Designer's Workflow
chriscoyier
689
190k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Web development in the modern age
philhawksworth
203
10k
What's new in Ruby 2.0
geeforr
337
31k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
6
3.4k
4 Signs Your Business is Dying
shpigford
176
21k
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