Skip to content
Go back

Unity Weekly 289

Unity Officials

Content directories: Beyond the AssetBundle

Content directories: Beyond the AssetBundle - Unity Blog

Unity 6.6で使えるようになったAssetBundleの代替となるContent directoriesの仕組みを、ビルド、アドレッシング、ロードの各段階に分けて解説するブログ記事です。

AssetBundleは配布・保存・ロードの不可分な単位で、依存関係もバンドル単位で追跡するため、そのレイアウトが実行時性能からダウンロードサイズまでを左右してきたと振り返っています。

Content directoriesはアセットを大きなロード単位に焼き込まず、メッシュやテクスチャなどの個々のアーティファクトを個別に識別・ロード・アンロードできるようにし、ハードウェアリソースの活用、暗黙的にコンテンツ重複を排除できるとしています。

Unity 6.6ではPlayer同梱のAssetBundleの代替に使え、Unity 7以降ではアーティファクト単位のリモート配信へ拡張する計画とのことです。 Player同梱のコンテンツの管理にAddressablesを使っている場合は、コード変更なしでContent directoriesへ切り替えられます。

ビルドは標準のasset importerフレームワーク上で各アセットの処理を個別に行い、Unity 2023.1で予告したmulti-process build pipelineと同じ基盤を利用しているとのことです。 出力されるアーティファクトはgitと同じくコンテンツのハッシュで命名されるため重複排除が自然に効き、アーティファクト間の参照は安定したIDで行うことでハッシュ変更の連鎖を防いでいます。

ロードはマニフェストから依存を解決してアーティファクトごとに独立して行え、読み込みとデシリアライズの両方が非同期で実行され、また、Load() を呼ぶまでロードされないエンジン組み込みの参照型 Loadable<T> が追加されました。

計測例として、Slime Rancher 2をAddressablesのAssetBundleバックエンドからコード変更なしで切り替えたところ、インクリメンタルビルドが32分16秒から3分4秒、Playerビルドサイズが4GBから2.88GB、起動からゲームプレイまでのロード時間が45秒から30秒になったとのことです。

リモート配信については、manifestがハッシュでアーティファクトを識別できることを活かし、端末に無いものだけを差分でダウンロードする計画で、詳細は2027年に共有する予定とのことです。

はじめ方はドキュメントを参照し、フィードバックはAsset & Content Managementカテゴリへ送るよう案内しています。

Introducing External Dependency Manager (EDM): Unity’s official package for mobile native dependencies

Introducing External Dependency Manager (EDM): Unity’s official package for mobile native dependencies - Mobile - Unity Discussions

AndroidとiOSのネイティブ依存を管理するUnity公式パッケージExternal Dependency Manager(EDM)2.1.0のリリースを告知するディスカッションです。

このライブラリはGoogleのEDM4Uのフォークで、その上に手を加えてUPM経由で配布する公式サポートパッケージにしたとしています。 今後はUnityがエンジン互換性の維持、機能追加、不具合修正を行い、モバイル依存管理をエンジンの第一級機能にする最初の一歩と位置付け、Googleとも協業していくと述べています。

無料でUnity 2022.3以降に対応し、EDM4UのXML依存定義形式、AndroidのGradle解決、iOSのCocoaPodsとSwift Package Managerをサポートします。

The Path to CoreCLR #2: Embedding CoreCLR

The Path to CoreCLR #2: Embedding CoreCLR - C# & .NET - Unity Discussions

CoreCLRへの移行を振り返るシリーズの第2回として、CoreCLRをUnityに組み込んで動かすまでの最初の関門を解説するディスカッションです。 第1回はThe Path to CoreCLR #1: The Problemです。

この段階でCoreCLRがUnity内で初期化を試みるところまで到達し、次回はCoreCLRを完全に動かすまでに直面したGC安全性の問題を扱う予定とのことです。

Unity CLI 1.0.0-beta.11 is rolling out

Unity CLI 1.0.0-beta.11 is rolling out - Unity Editor Product Updates - Unity Discussions

Unity CLI 1.0.0-beta.11のリリースを告知するディスカッションです。 このリリースでは、フルビルドを省いたコンパイル確認、ターミナルからの .unitypackage のエクスポート・インポート、プロジェクトのUnityバージョンに合わせたドキュメント参照が中心です。

更新は unity self-update、完全なリリースノートはドキュメントで確認できます。

Graphics Livestream: Unanswered questions

Graphics Livestream: Unanswered questions - Graphics - Unity Discussions

先日のgraphics livestreamのQ&Aで配信中に答えられなかった16の質問に、グラフィクスチームが回答するディスカッションです。

Meta VR Glasses are coming. Build with Unity from day one.

Meta Connect 2026で発表されたMeta VR Glassesを、UnityがUnity 6.6以降でday-oneサポートすることを告知するディスカッションと、その内容を紹介するブログ記事です。

VR Glassesはコントローラーを持たず、ハンドとアイ入力が主な操作手段になるデバイスです。 Questと同じOpenXRスタックの上にあるため、既存のQuestプロジェクトはほぼそのまま持ち込めるとしています。

ブログ記事では、Two Point Hospital – Mixed Reality EditionやDragon Grove、Supernaturalなどのローンチタイトルの開発者コメントと、VR Template / VR Multiplayer Templateに関する案内が行われています。

10月1日9:00 PTに、MetaのAR Schleicher氏とDilmer Valecillos氏を招いたライブ配信でeye tracking、microgesture、quad views renderingのデモと導入手順を紹介する予定とのことです。

From simulation to real-world deployment: Unity Simulation Pro early access

ロボティクス向けパッケージUnity Simulation Proの早期アクセス開始を告知するディスカッションと、その背景と事例を紹介するブログ記事です。

Unity上に散在していたロボティクス開発向けの機能とワークフローを1つのパッケージに統合したもので、Unity 6.3以降でプロダクションサポートされ、早期アクセスはUnity Industryの開発者向けに行われています。

ブログ記事では、TIER IVの自動運転シミュレータAWSIM、KITECHが点群スキャンから作った工場のデジタルツインによる学習データ生成、MedtronicのHugoロボット支援手術システムの記録・再生パイプラインを、Unityをロボティクスに使う事例として紹介しています。

[UVCS] 🚀 We’re building something new — and we want you in early!

[UVCS] 🚀 We’re building something new — and we want you in early! - Unity Version Control - Unity Discussions

Unity Version Controlで変更をレビューし、議論し、取り込むための新しい仕組みのベータテスターを募集するディスカッションです。

詳細はまだ明かせないとしつつ、mainに入る前のチームの協業を見直すもので、レビューをより速く明確に、見失いにくくし、既存のブランチワークフローと自然に統合すると述べています。

チームでUVCSを定期的に使い、他人の作業をレビューする、または自分の作業をレビューされる立場で、率直なフィードバックをくれる少人数を募っています。 参加者には開発チームによる機能全体のウォークスルーと組織単位での早期アクセスを提供し、スレッドへ返信するとDMで日程調整するとしています。

Cleaner voice chat is here! RNNoise is coming to Vivox

Cleaner voice chat is here! RNNoise is coming to Vivox - Multiplayer & Networking - Unity Discussions

Vivox Core 5.28.0で、機械学習ベースのデノイザーRNNoiseがキャプチャパイプラインに追加されたことを紹介するディスカッションです。

Vivoxは従来からWebRTCのノイズ抑制を備えており、ファンの音や部屋の反響、キーボードの打鍵音のような定常的なノイズには十分だったものの、突発音や隣家のリーフブロワーのような非定常ノイズは古典的な信号処理では苦手だったとしています。 RNNoiseはMozillaで開発されXiph.Org Foundationへ寄贈されたリカレントニューラルネットワークのデノイザーで、音声を保ちながら周囲のノイズを取り除くよう学習されています。

RNNoiseのAPIはcore SDKで利用でき、Unity向けC#バインディングは今後のUnity SDKリリースに入る予定とのことです。 既定値やstrengthの調整について、スレッドでのフィードバックを求めています。

How RUST LTD built the deep firearm simulation for Hot Dogs, Horseshoes & Hand Grenades 2

How RUST LTD built the deep firearm simulation for Hot Dogs, Horseshoes & Hand Grenades 2 - Unity Blog

RUST LTDの共同創業者でhead of productionのLuke Noonan氏とgame directorのAnton Hand氏に、スタンドアロンVR向けの物理銃器サンドボックス兼extraction roguelike「Hot Dogs, Horseshoes & Hand Grenades 2」(H3VR2)の構築についてインタビューしたブログ記事です。

10年以上Early Accessで開発した前作を移植せず、新規のUnityプロジェクトで約6か月を設計とツール作りに費やしてから本格的なコンテンツ制作へ移ったとしています。 20人超のチームで5つのタイムゾーンにまたがるため、バージョン管理、ビルド自動化、Editorツールといった開発運用を最初から整えたとのことです。

Events

Unity Shader 完全に理解した 勉強会

Unity Shader 完全に理解した 勉強会 - connpass

Unityユーザーコミュニティ主導の「Unity 〇〇完全に理解した勉強会」のShader回が、2026/10/02(金)18:30から渋谷スクランブルスクエアで開催されます。

UnityにおけるShaderの知見を持つメンバーによるトークとLTのあと、懇親会が予定されています。 会場参加とYouTube Liveでのオンライン参加のどちらも無料で、connpassから申し込めます。

Articles

作ったツール、作りっぱなしにしてませんか?

作ったツール、作りっぱなしにしてませんか? - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

増え続ける社内Editorツールが「どれを、いつ、何回、何msかけて」使われたかをPostgreSQLに記録し、Grafanaで可視化する仕組みを紹介する記事です。

ツール作者に手間をかけさせないため、TypeCache で [MenuItem] 付きメソッドを列挙し、Harmonyで計測コードを注入しています。 処理時間は [ToolTelemetryTimer] 属性を付けたメソッドだけ計測し、Task は ContinueWith、UniTask は ref __result でラッパーに差し替えて完了を追跡、async void と UniTaskVoid は回数のみ記録します。

記録はメモリ上のキューから60秒ごとにスプールファイルへ退避し、PostgreSQLへバッチINSERTする構成で、実機側のツールも既存のWebSocketデバッグ基盤に相乗りする形で計測しているとのことです。

また、導入後のトラブルとして、NuGet配布のLib.Harmony 2.4.1に不正なTypeRefが残っていてUnityが BadImageFormatException で起動できなくなり、Mono.Cecilでメタデータを再生成して修復した経緯も書かれています。

Serializableの付け忘れなど、シリアライズの間違いをコンパイル時に検出してくれるように【Unity】

Serializableの付け忘れなど、シリアライズの間違いをコンパイル時に検出してくれるように【Unity】

Unity 6.5から、シリアライズのルール違反をRoslynアナライザーがコンパイル時に検出するようになったことを紹介する記事です。

これまでは [Serializable] の付け忘れなどがエラーにも警告にもならず、Inspectorに表示されないといった形で後から気付くことが多かったとしています。 [Serializable] を付け忘れたクラスのフィールドでは warning UAC1001: ... is skipped by serialization (missing the [Serializable] attribute). のように警告され、[System.Serializable] を付けるか [System.NonSerialized] で明示するのが対処法です。

UI ToolkitはUXMLを投げ捨ててコンポーネント指向で組め ―73万行のAIゲームプロジェクトのUI Toolkit活用事例―

UI ToolkitはUXMLを投げ捨ててコンポーネント指向で組め ―73万行のAIゲームプロジェクトのUI Toolkit活用事例― - Zenn

コードをすべてAIに書かせている73万行規模の個人開発ゲーム「DmonMaster」で、UI ToolkitをUXMLとUI Builderを使わずC#のコンポーネント指向で組んでいる構成を解説する記事です。

【図解】Unity×Computeシェーダーで流体シミュレーション(Stable Fluids)を作った

【図解】Unity×Computeシェーダーで流体シミュレーション(Stable Fluids)を作った - Zenn

Unity 6000.3.10f1とURPで、Compute Shaderを使ったStable Fluidsを実装し、マウス操作でインクが流れる表現を作る記事です。

C#側は読み書き用のRenderTextureを入れ替えるPingPongラッパー、マウス位置と速度差分からの入力生成、カーネルのディスパッチを担当し、HLSL側は外力の追加、速度の移流、発散、Jacobi法による圧力の反復計算、圧力勾配の減算、色素の移流の順で処理します。

semi-Lagrangian法とJacobi法を図解しており、粘性項は省略しているため厳密なStable Fluidsではないとしています。

UnityのHDR入門:Bloom・トーンマッピング・HDRディスプレイ出力を理解する

UnityのHDR入門:Bloom・トーンマッピング・HDRディスプレイ出力を理解する - Zenn

Unity 6.3 LTSとURP 17.3を対象に、HDRレンダリングとHDRディスプレイ出力という「HDR」の2つの意味を切り分けて解説する記事です。

1.0を超える値をどう保持しトーンマッピングで圧縮するか、Linear / Gammaや色域とはどう違う概念かを整理したうえで、SDR環境でURP AssetのHDRを有効にしてBloomを試す手順、Allow HDR Display Output と Use HDR Display Output などHDR出力の前提条件、HDROutputSettings.main で環境の対応と出力状態を調べる診断コード、Paper Whiteの設定を扱っています。

発展編ではシェーダーで saturate によりHDR値を潰さない、RenderTextureのフォーマットを見直すといった実装上の注意と、症状別のトラブルシューティング表をまとめています。

Custom SRP 7.2 - Separate Shadow Passes

Custom SRP 7.2 - Separate Shadow Passes - Catlike Coding

Custom SRPシリーズの7.2として、lighting passの中にあったシャドウ処理を専用のpassへ分離する記事です。

シャドウ用のクラスを CameraRenderer 側で生成するようにしてlighting passとの結合を弱め、新設した ShadowsPass とその下の DirectionalShadowsPass、OtherShadowsPass の3つにシャドウ処理を分けています。

Repositories

ruccho/YAUI

ruccho/YAUI: Yet Another Unity UI: a fast, Flexbox-based UI system on GameObjects.

GameObjectベースのオーサリングを保ちながら、uGUIとの互換性を捨てて性能を追求したFlexboxベースのUIシステム「YAUI」のリポジトリです。

UI全体をパネルごとに1ドローコールで描き、テキスト生成とFlexboxレイアウトはワーカースレッドのジョブで計算し、要素はGameObject上のコンポーネントなので、PrefabやAnimator、Inspectorはそのまま使えるとのことです。 Pixel 5でのベンチマークでは、uGUIやUI Toolkitと比べてほとんどのシナリオでメインスレッドのコストが最も小さいとしています。

Unity 6000.7以降とURPが必要で、OpenGL ESは非対応です。実験的パッケージで、安定版までに破壊的変更があり得るとしています。


Share this post on:

Next Post
Unity Weekly 288