Unity純正のアセット管理システムであるAddressables、皆さん使っていますか? 正式化からずいぶん経ちますが、そのクセのある設計に手を焼いている人は多いはず。 この発表では、実際のアプリ開発を通して得たAddressablesをうまく使うための工夫やつまづき、そして課題などを共有します。
![Addressablesよもやま話 | Unity Learning Materials](https://cdn-ak-scissors.b.st-hatena.com/image/square/13ef15854d02ff37296f138197c27a026184eaef/height=288;version=1;width=512/https%3A%2F%2Flearning.unity3d.jp%2Fwp-content%2Fuploads%2F3e2799e11323b86437ea0df3e2d84944.png)
概要 Unity 2023.1 から、アセットバンドルをマルチプロセスでビルドできる 「Multi-Process AssetBundle Building」という機能が追加された Project Settings の「Editor > Multi-Process AssetBundle Building」をオンにすることで BuildPipeline.BuildAssetBundles によるアセットバンドルのビルドが マルチプロセスで行われるようになる(Addressables には適用されないので注意) Multi-Process AssetBundle Building リビルドにかかった時間 オン 35.9 秒 オフ 62.7 秒 手元の Unity プロジェクトでアセットバンドルのリビルドを試してみたところ、 ビルドにかかる時間が半分くらいになった EditorBuildSet
Addressable Asset System (以下、Addressables) をベースに開発した新しいアセット基盤について発表します。 これまで使用していた独自基盤からどういった経緯で新しい基盤を開発するに至ったのか、Addressablesをベースにするにあたって心がけたこと、追加した機能やバックエンド、更に利便性を向上させるサポートライブラリについて具体的に解説します。 https://cagc.cyberagent.co.jp/2024/session/index.html?id=Qy7sJgTV Copyright © CyberAgent, Inc.
メモリ周辺でアセットの効率的にストリーミングさせることは、どのようなクオリティのゲームにおいても重要な要素です。私はプロフェッショナルサービスチームのコンサルタントとして、多くの顧客のプロジェクトのパフォーマンスの向上に努めてきました。その経験をもとに、Unity の Addressable アセットシステムを活用してコンテンツ読み込み時の戦略を改善する方法に関するヒントをいくつかご紹介したいと思います。 メモリは注意深く管理しなければならない希少なリソースであり、プロジェクトを新しいプラットフォームに移植するときには特に気を配る必要があります。Addressables を使用すると、弱参照を利用して不要なアセットが読み込まれないようにして、実行時のメモリの使用効率を向上させることができます。弱参照を使うと、参照されるアセットがメモリに読み込まれるタイミングとメモリから削除されるタイミング
はじめに 最近DLsiteで同人ゲーム販売を始めたのですが、同業サークル様のストアを見ていて、DLC販売も結構盛んなのだということを知りました。これをきっかけにぜひDLCを作ってみたいと思い、色々調査して自分なりの簡単なDLC実装方法を考えてみました。 正直ゲーム制作のノウハウをあまり持っていないので自信がないのですが、「Unity DLC 実装」等で調べてもなかなか情報にたどり着けず苦労したので、実装方法の一案として記事にしたいと思います。 もし、もっと良い方法や「現場ではこう実装してる」みたいな手法があれば、コメントにてお教え頂けると幸いです。 対象読者 Unity初心者 最低限エディタなどの基礎やC#はわかる Addressablesとかの追加パッケージについてはあまり知らない UnityでDLCを作りたいと思っている方 とりあえず見様見真似で良いからDLCを実現したい方 筆者の環境
MasterMemoryのValidatorを使ってマスタデータをバリデーションする方法についてまとめました。 はじめに テスト用のデータ構造を作る バリデーションルールを設定する バイナリをビルドする バリデーションを実行する いろんなバリデーションの書き方 参考 はじめに MasterMemoryを使うと、マスタデータを効率よく取り扱うことができます。 github.com MasterMemoryの概要と基本的な使い方については当ブログの以下の記事にまとめています。 本記事の内容はこれを前提知識としますので、必要に応じてこちらも参照してください。 light11.hatenadiary.com さて、マスタデータは人間が入力するものなので、入力に間違いがないかをバリデーションすることは重要です。 MasterMemoryにはバリデーションを行うための仕組みが用意されています。 本記事
2023/06/27 MasterMemory導入事例 ~大規模プロジェクトで爆速のアウトゲームを作るには!?~ C# Unity こんにちわ。luckinです。 KLabでは今までデータベース基盤としてSqliteを採用していましたが、パフォーマンス面で問題を抱えることが多くありました。 今回はSqliteでのデータベース基盤での課題やそれを解決するために大規模開発プロジェクトにMasterMemoryを導入した際のノウハウや実際に入れてみての使い勝手やMasterMemoryがパフォーマンス、特にメモリサイズにどれくらい影響を及ぼすのかについてご紹介します。 Sqliteデータベース基盤の課題 KLabでは長らくSqliteでのデータベース基盤を採用し、多くのプロジェクトを支えてきました。 しかし、近年ではプロダクトのパフォーマンス向上やゲーム内コンテンツの増加に伴いSqliteがボト
Houdini Foundation は、Houdini とそのノードベースのプロシージャルワークフローを学び、映像制作やゲーム開発用の 3DCG の制作をしたいアーティスト向けの書籍です。Houdini アーティストがよく使用するツールやテクニック、簡単なプロジェクトを一から構築するレッスンを複数こなし、またその過程でできるノードとネットワークをまとめてゲームエンジンンにもっていく方法などを学んでいきます。 Houdini 19.5 用 Houdini Foundations 日本語版は、アーティストが Houdini への第一歩を踏み出すために 9つのチュートリアルで構成され、全部で226 ページあり、冊子の購入 (有償) またはPDF でのダウンロード (無償) が可能です。
表示される入力欄に以下を入力して下さい。 https://github.com/ina-amagami/unity-reference-viewer.git使い方参照を検索したいアセットを右クリックして、「Find References In Project」を選択すればOKです。 Macの場合はSpotlightとGrepが選択でき、Spotlightを使うと高速な検索ができます。 プロジェクトの規模が小さい場合はGrepの方が早く終わることもあります。 フォルダ内検索フォルダを右クリックして実行した場合は、フォルダ内のアセットを全て検索します。 うっかりAssets内のアセット全てを対象にしてしまった場合も、×ボタンからキャンセルできます。 Projectビューでの選択結果表示をクリックするとProjectビューで選択される機能もついてます。 ツールの特徴Unity上ではなくOS機能で
UnityのAddressableアセットシステムで、複数キーを指定してロードする際のMergeModeの使い道についてまとめました。 はじめに ラベルを複数指定する時のための機能 参考 Unity2021.3.0f1 Addressables 1.19.19 はじめに Addressableで複数のキーを指定して複数のアセットをロードする際には、引数に Addressables.MergeMode を指定する必要があります。 Addressables.LoadAssetsAsync<GameObject>(keys, null, Addressables.MergeMode.Intersection); この MergeMode の説明は以下の通りです。 None: 最初のキーにマッチするアセットを全て取得 UseFirst: Noneと同じ Union: いずれかのキーにマッチするアセ
Unityエンジニアの森田です。今回は前回書いた記事の続きで、CI/CDのちょっとした改善をした話を書いていきます。 tech.mirrativ.stream 課題 以下の記事で書いたように、ミラティブでは複数のアプリのバージョンを運用しており、それに合わせてアセットも複数のバージョンを管理しています。 tech.mirrativ.stream アセットの更新がアセットのFix用ブランチとして運用しているmasterブランチに取り込まれると、その更新をリリース用のブランチにそれを取り込まなければいけないのですが、この作業をその都度デザイナーからエンジニアに依頼する形になっていました。またバージョンごとに作られたリリース用ブランチ全てに取り込まなければいけないため、とても煩わしいです。 そのため今回はmasterブランチにアセットの更新が入った時点で各リリース用ブランチに自動的にマージされる
はじめに こんにちは、ナカムロ.です。 メリークリスマスです。 こちらは「Applibot Advent Calendar 2022」 最終日の記事です。荷が重いです。 これまでゲームのパフォーマンスチューニングを各プロジェクトに入って実施してきましたが、Unity Performance Tuning Bibleをリリースしたことで、今まで手が回っていなかったゲーム外の部分のチューニングにも取り組む機会が出来ました。今回は大規模Unityプロジェクトのアセットビルドを高速化した話をエッセイ調にまとめたいと思います。 ※特定のプロジェクトについて語っている記事ではありませんのでご注意ください。 概要 「大規模Unityプロジェクト」の定義は難しいですが、本記事で述べているプロジェクトは以下を前提とします。 プロジェクト人数が100人以上 Unityプロジェクトの総サイズがLibraryディ
はじめに こちらはUnityゲーム開発者ギルド Advent Calendar 2022の19日目の記事です。 adventar.org ふら~とAdventCalendarを見に来たらちょうど当日の枠が空いていたので急遽書くことにしてみました。 やること 別プロジェクトでビルドしたAddressables Assets System(AAS)のリソースをメインプロジェクトからロードする流れについてです。 対象としている読者 Addressablesの超基礎的な話は割愛します。 Addressablesを軽く使ったことがある アドレスの登録/ロード程度しかやったことがない リソースのビルド専用プロジェクトを用意したい リソースをリモートに置いて利用したい 背景 AASでのビルドはプロジェクト自体に設定しているプラットフォームに向けてのみビルドするので、複数のプラットフォーム(Android
【まんてらスタジオ】みんなの闇鍋 Advent Calendar 2022の最終日です。 はじめに Addressableに登録済みのアセットはInspectorビューのAddressable欄とAddressable Groupウィンドウで確認できますが、Inspectorビューの方は分かりづらく見落としで登録漏れになりがちです。 Addressable Groupの設定によってもロードがリモートかローカル、ビルドに含むかなど設定によって変わりますがSchemaのInspectorを確認する必要があり分かりづらいです。 これらを改善するためにAddressable Groupに登録済みのアセットをGroupのロード・ビルドに含むかの設定毎にProjectビューに色付けするエディタ拡張を作ってみました。 実装についての説明 static AddressableProjectView() {
本記事は、サムザップ Advent Calendar 2022 の12/18の記事です。 例えばよくあるゲームでローディング画面を開いて次のゲームシーンを待っている時間、絶対短くしたいですよね。 しかしながら、開発を続けていると、うっかりロードが長くなってしまったりすることもあると思います。 この記事では、ロード処理を改善することで、ロード時間を短くするためのチューニングテクニックを紹介したいと思います。 ※ この記事で出てくるprofileのサンプルは、Unity2021.3.11f1を使用しています ロード処理を無駄なく最大効率で行う ロード時間はアセットの容量に比例して伸びます。 アセット量がボトルネックなら、処理をいくら工夫してもロード時間を早くする術はありません。 ところが、CPUがロード処理に対して十分に仕事をできておらず、結果としてロード時間が延びるということもあり得ます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く