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
1.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Addressableアドレス自動付与ツール「Smart Addresser」の概要と使い方
Haruki Yano
April 17, 2023
More Decks by Haruki Yano
See All by Haruki Yano
【Unity】リリース時にデバッグ用リソースをちゃんと消す方法
harumak
1
2.7k
Asset Regulation Manager よく使う設定逆引きリファレンス
harumak
0
260
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
2.9k
Other Decks in Programming
See All in Programming
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
940
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
380
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
500
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
670
React本体のコードリーディング
high_g_engineer
1
150
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
530
Flow は今どうなっているか
mizdra
PRO
0
590
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
150
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
630
AIを紡ぐPMのお話
swdtkuy
0
110
源内ハンズオン概要編
hideg
0
190
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
400
30 Presentation Tips
portentint
PRO
1
370
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
670
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Agile that works and the tools we love
rasmusluckow
331
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
We Are The Robots
honzajavorek
0
300
Code Review Best Practice
trishagee
74
20k
Product Roadmaps are Hard
iamctodd
55
12k
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