Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Addressableアドレス自動付与ツール 「Smart Addresser」の概要と使い方 SGEコア技術本部 2023.04.13 矢野春樹
Slide 2
Slide 2 text
SmartAddresser ついさっき100Starsに!
Slide 3
Slide 3 text
Smart Addresserの概要 Chapter : 01
Slide 4
Slide 4 text
アドレス付与、どうしてますか?
Slide 5
Slide 5 text
手動 Drag & Drop
Slide 6
Slide 6 text
自動化 ※処理は適当です
Slide 7
Slide 7 text
書いた人以外にわかりづらくなりがち 車輪の再発明しがち
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
Smart Addresserの基本的な使い方 Chapter : 02
Slide 10
Slide 10 text
Addressable Groupを作る 普通にAddressableのウィンドウから作る SmartAddresserは、Addressable Groupを作ったり、その設定を変更したりはしません ※ このあたりやりすぎると色々とカオスになるため(どこまでやるのか難しくなる)
Slide 11
Slide 11 text
Layout Rule Dataを作る Smart Addresserのユーザデータを保存するScriptable Object Assets > Create > Smart Addresser > Layout Rule Data から作る
Slide 12
Slide 12 text
制御するAddressable Groupを決める 前ページのLayout Rule Dataをダブルクリックして下図のウィンドウを開く Smart Addresserで制御するAddressable Groupにチェック チェック
Slide 13
Slide 13 text
アドレス付与対象のアセットを設定する Addressable Groupを選択し、右側のAsset Groupsタブから「+」ボタンを押下し このAddresable Groupに含めるアセット群を決めていく 「全アセットから対象のアセットをフィルタリングしていく」という考え方 図は「Rockフォルダ配下の拡張子がprefabのもの」全てをアドレス付与の対象としてる図 Rockフォルダ内 拡張子がprefab
Slide 14
Slide 14 text
カスタムアセットフィルタ いろんなフィルタがあります 独自のアセットフィルタも作れます マスタデータに定義されているIDを含むアセットだけフィルタリングとか
Slide 15
Slide 15 text
アドレスプロバイダーを設定する 右側のAddress Providerタブからアドレスの付与方法を設定 アセットパスをアドレスにしたり、アセット名をアドレスにしたり 正規表現を使ってReplaceした結果をアドレスにすることも可能 Assets/Prefabs/Characters/0001.prefab → pfb_ch_0001 みたいな Address Provider タブ アセットパス/アセット名.. 正規表現設定
Slide 16
Slide 16 text
カスタムアドレスプロバイダー 独自のアドレスプロバイダーも作れます マスタデータに定義されているアドレスを付与したいとか ※これ以降省略しますが、基本的にこういう拡張性あるべきところに全て入れてます
Slide 17
Slide 17 text
適用する 右上のメニュー > Apply to Addressables もちろん適用するためのCLIもあります
Slide 18
Slide 18 text
自動適用 Project Settings > Smart Addresser > Primary Data に設定した Layout Rule Dataはアセット追加・移動時に自動的に適用される(差分のみ) このルール自体に変更を加えた際には全適用する
Slide 19
Slide 19 text
ラベルも大体同じ Label Rulesタブから設定できる Asset Group と Label Providerを設定して付与できる パスにPlayer/Enemyを含む全Prefabにcharacterというラベルを付与するとか Label Rulesタブ
Slide 20
Slide 20 text
Layout Viewerでチェック 現在の設定に基づいて実際にプロジェクト内のアセットがどうレイアウトされるか見れる エラーや警告があったらその詳細も見れます バリデーションするためのCLIもあります
Slide 21
Slide 21 text
バージョン管理機能 Chapter : 03
Slide 22
Slide 22 text
バージョン管理機能とは アセットごとにバージョン(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以下のアセットだけを適用
Slide 23
Slide 23 text
設定方法は大体ラベルと同じ Version Rulesタブで設定
Slide 24
Slide 24 text
適用前にバージョン範囲を指定 Settingsタブでバージョンの範囲を指定できる 指定方法はUnityのVersionDefinesに準拠するように作っています 例えば1.0.0以上1.2.0未満だったら [1.0.0,1.2.0) みたいな感じ 独自のバージョン範囲解釈クラス(VersionExpressionParser)を使うことも可能 バージョンの範囲を指定 バージョン振ってないアセットを除外するならチェック
Slide 25
Slide 25 text
依存関係に注意 バージョン管理機能はあくまで対象のアセットをAddressableに登録しないだけです 当然ながら、リリース可能バージョンのアセットから、リリース不可能バージョンのアセッ トへの依存がある場合には、Asset Bundleにリリース不可能バージョンのアセットが暗黙 的に含まれます 実際のユースケースを考えるとそもそもアセットの作り方をミスってない限りそんなことは 起こらないはずですが、一応ご注意を (そういうミスの検知にはAsset Regulation Managerがおすすめです) 1.0.0 3.0.0 リリース可能 リリース不可能 参照してたら 含まれてしまう
Slide 26
Slide 26 text
ぜひ使ってみてください github.com/CyberAgentGameEntertainment/SmartAddresser