Unity 6.4 正式リリース!将来の基盤となる技術的アップデートやQoL改善など

CGソフト

2026年3月18日(現地時間)- Unity Technologiesは、Unity 6.4 のリリースを発表しました。

Unity 6.4 リリースの主なハイライト

Unity 6 は、より高速で信頼性が高く、安定したエンジンを提供することを目指して開発が進められています。その中でも Unity 6.3 LTS を基盤とする Unity 6.4 では、開発体験を向上させるさまざまな改善が加えられ、将来のメジャーアップデートを見据えた技術的な進展も示されています。

ECS(Entity Component System)のコアパッケージ化

Unity 6.4 からは、Entities、Collections、Mathematics、Entities Graphics を含む Entities Component System(ECS)関連の機能がコアパッケージとして組み込まれ、Unity エディターに標準で同梱されるようになりました。
これにより、開発チームは ECS をよりスムーズにエンジンへ統合し、活用できるようになります。

この変更は「ECS for Unity」イニシアチブを進めるための取り組みの一つで、エンジン本体と ECS の連携を強化することを目的としています。

CoreCLR の導入、シリアライゼーションの近代化、Entities の完全統合といった取り組みと合わせて、より一貫したエンジン体験を提供するための計画的なアップデートとなっています。技術的な背景については、最近公開されたプロダクトアップデートのライブ配信でも紹介されています。

GDC Unity Product Update

WebビルドでのBurstコンパイラによるマルチスレッド対応

Unity 6.4 では、Web プラットフォーム(ブラウザ環境)において、Burst コンパイラを使った C# ジョブのマルチスレッド実行が正式にサポートされました。これにより、Web 向けのゲームやアプリケーションで、CPU パフォーマンスをこれまで以上に引き出せるようになります。

これまでの Web 環境では、ガベージコレクターの制約により、標準的な C# ジョブはメインスレッドでしか動かせませんでした。しかし、最適化されたネイティブコードを生成する Burst コンパイラ(バージョン 1.8.26 以降)を利用することで、この制限を回避し、バックグラウンドのワーカースレッドで並列処理を行えるようになります。

対象となるジョブ構造体や静的メソッドに [BurstCompile] 属性を付けるだけで有効になりますが、ジョブのスケジュール自体はこれまでどおりメインスレッドから行う必要があります。

パフォーマンスを引き出すためのポイント

この機能を十分に活かすためには、メインスレッドでの待ち時間をできるだけ減らすことが大切です。たとえば、ジョブをスケジュールした直後に JobHandle.Complete() を呼んで同期するのではなく、Update() でジョブをスケジュールし、LateUpdate() で完了を待つ といった形にすることで、ワーカースレッドが処理を進める時間を確保できます。

DirectStorageのサポート

Unity 6.4 では、DirectStorage APIがが テクスチャ、メッシュ、そして DOTS/ECS のデータ読み込みに対応しました。これにより、Xbox コンソールや PC で、NVMe SSD の高速なデータ転送性能をより直接的に活かせるようになります。

DirectStorage を有効にして最適化を行うことで、ロード時間やストリーミング処理が最大で 40% 程度短縮されることが確認されています。
(※この数値は公式の検証結果に基づくもので、テクスチャ・メッシュ・ECS/DOTS データを対象とした場合の効果です。)

Unity Graph Toolkitによるカスタムノードツールの構築

Unity Graph Toolkit(GTK) は、Unity エディター内でノードベースのツールを自作するためのフレームワークです。

キャンバスの描画やノード同士の接続といった複雑な UI 部分を GTK が担ってくれるため、開発者はプロジェクト固有のロジックに集中しやすくなります。その結果、非エンジニアのチームメンバーでもゲーム進行を制御できる専用ツールを提供しやすくなるというメリットがあります。

Unity 6.4では、この GTK の公式サンプルが Unity レジストリに新しく追加されました。現在は実験的(Experimental)な段階ではありますが、実際の使い方をすぐに試せる環境が整っています。

利用を始めるには、Package Manager の 「Add package by tecnical name」 から com.unity.graphtoolkit-samples を追加してインストールします。これにより、GTK 本体のモジュールも自動的に取り込まれ、サンプルプロジェクトをそのまま試せるようになります。

最新の公式チュートリアル動画では、このサンプルに含まれる「分岐のあるビジュアルノベル進行ツール」をベースにした解説が行われています。既存のノードに加えて、「音楽再生ノード」や「動画再生ノード」を新規に拡張し、カスタムのランタイムと実行エンジンを構築する一連のワークフローが紹介されています。

Unity Graph Toolkit Tutorial

ランタイムでのスプライトアトラス生成

Unity 6.4 では、2D ゲームのパフォーマンス向上に役立つ スプライトアトラス(複数のスプライトを 1 枚のテクスチャにまとめ、ドローコールやメモリ使用量を削減する仕組み)を、ゲーム実行中に動的に生成できるようになりました。

これまではエディター上で事前にアトラスをビルドしておく必要がありましたが、Unity 6.4からは SpriteAtlasManager.CreateSpriteAtlas APIを使用することで、スクリプトからランタイムにアトラスを作成・パックし、その場でスプライトをバインドできます。そのため、ビルド時点でコンテンツが確定していない場合や、次のようなシナリオで柔軟に最適化を行えるようになります。

  • ユーザー生成コンテンツ(UGC): プレイヤーがゲーム内で独自に作成・インポートしたカスタムスプライトを効率的にレンダリングするため、実行時にアトラス化します。
  • オンデマンドなアセット読み込み: 膨大なアセットを持つゲームや大規模なオンライン世界において、プレイヤーの現在地やインベントリに応じて必要なスプライトだけを動的にロードし、アトラスにパックします。
  • 動的なUIとスキン: サーバーからダウンロードされるカスタマイズ可能なUIテーマやキャラクタースキンをランタイムでアトラス化し、パフォーマンスを維持します。

次の公式動画の最後の部分では、ランタイムでのスプライトアトラス生成について触れられており、ゲームのビルド時には存在しない「Modデータ」をランタイムでアトラス化する実践的な手順が解説されています。

Sprite Atlas best practices in Unity 6

動画の主なポイント

  • 実装の流れ: 追加スプライトのリストを読み込み、指定したサイズ・フォーマット(例:1024×1024, RGBA32)のアトラスにパッキングします。生成後、スプライトは自動的に新しいアトラスにバインドされます(※動画公開時点では、具体的な実装として 2D Common パッケージのサンプルコードの利用が推奨されています)。
  • Read/Writeの有効化(必須): ランタイムでのパッキング処理にはCPUによるピクセルデータへのアクセスが必要なため、対象となるスプライトのインポート設定で「Read/Write」を有効にしておく必要があります。
  • メモリ管理の注意点: パッキング処理中は「元のスプライト」と「生成中のアトラス」の両方がメモリに乗るため、ピーク時のメモリ消費に注意が必要です。パッキング完了後に元のスプライトをアンロードすることで、恒久的なメモリの二重消費を防ぐことができます。

グリッドとスナップ機能の改善

シーンビューにおける「グリッドとスナップ(Grid and Snap)」のワークフローが大幅に見直され、レベルデザインの作業効率を高める多数の改善が導入されました。ユーザーからのフィードバックを反映し、直感的で柔軟な操作が可能になっています。

  • UIの刷新と設定の統合: ツールバーが再設計され、アクティブなスナップモードやスナップの現在値が一目で確認できるようになりました。また、以前は複数に分散していた設定ドロップダウンメニューが単一の「Grid and Snap settings」に統合され、少ないクリック数で目的の設定にアクセスできます。
  • グリッドサイズと増分スナップの分離: Unity 6ユーザーからの強い要望により、グリッドサイズと増分スナップ(Incremental Snap)のサイズを独立して設定できる機能が復活し、ツールバーから個別に簡単に調整できるようになりました。
  • カスタムグリッドの位置と回転: 従来の絶対グリッドスナップは、長方形の地形には適していましたが、斜めの橋や通路といった回転した要素の配置には不便でした。今回、グリッドそのものに任意の位置と回転を設定できる機能が追加されました。シーン上のオブジェクトから数値をサンプリングするか、直接入力してグリッドを自由に傾けることができます。
  • ツールハンドルの回転をグリッドに同期: ツールハンドルの回転設定に「Grid」オプションが追加され、ハンドルの向きを傾けたグリッドに自動的に追従させることが可能になりました(グリッドと同期していない場合は、従来通り増分スナップにフォールバックします)。
  • コンテキストメニューとショートカットの拡張: シーンビューの右クリックメニューに、非GameObject(ポイントなど)の操作に便利な「Move to Handle Position(グリッドを現在のハンドル位置へ移動)」や、「Reset to World(グリッドをワールド原点に戻し回転をリセット)」などの便利なオプションが追加されました。また、Shortcut Managerには新たに「Grid and Snap」カテゴリが新設され、これらの機能に詳細なショートカットの割り当てが可能になっています。

Project Auditorの標準搭載

これまで別パッケージとして提供されていたプロジェクト解析ツール Project Auditor が、Unity エディターに標準で組み込まれるようになりました。そのため、追加のセットアップは不要になり、メニューの Window > Analysis > Project Auditor からいつでも開くことができます。

Project Auditor は、あらかじめ設定されたルールに基づいてプロジェクトを分析するツールです。今回の標準搭載に合わせて、分析ルールは新しい独立パッケージ (com.unity.project-auditor-rules)に移行しました。これにより、Unity 本体をアップデートしなくても、分析ルールの追加や更新を継続的に受けられる仕組みになっています。

Adaptive Performanceの機能拡張

Adaptive Performanceのワークフロー改善

デバイスの負荷に応じてパフォーマンスを最適化する「Adaptive Performance」機能のカスタムスケーラーを管理するためのUIが再設計されました。

エディター内のスケーラープロファイル画面から、ScriptableObject ベースのカスタムスケーラーを直接追加・削除・設定できるようになり、これまでよりスムーズに管理できるようになっています。

詳細についてはドキュメントの「カスタムスケーラーの作成」および「プロバイダー設定リファレンス」を参照してください。

Basicプロバイダーのコンソール対応

Adaptive Performanceの「Basicプロバイダー」の対応範囲が拡張され、以下のコンソールプラットフォームでも利用可能になりました。

  • PlayStation®4
  • PlayStation®5
  • Xbox One
  • Xbox Series X|S

これにより、自動の品質スケーリングやボトルネックの検出といった機能をこれらのコンソール機上で直接活用できるようになり、マルチプラットフォーム向けタイトルの移植や最適化作業が、より効率的に行えるようになります。

Multiplayer Matchmakerの機能強化

マルチプレイゲーム向けのマッチメイキング機能 Matchmaker に、運用管理と状況把握をしやすくするための 4 つの新機能が追加されました。

  • ログへの直接アクセス: Unity DashboardからMatchmakerのログに直接アクセスできるようになりました。チケットの作成状況、マッチ結果、割り当てリクエスト、バックフィルの動作などを一箇所で確認でき、デバッグや監視がより行いやすくなります。
  • CEL式を用いたOR条件のサポート: マッチングプールおよびフィルターにおいて、CEL(Common Expression Language)式による「OR(または)」操作がサポートされました。これにより「プレイヤーが複数の条件のうち、いずれか一つを満たせばよい」といった、柔軟性の高いマッチングルールを構築できます。
  • 設定履歴の可視化: Unity Dashboard上で、Matchmakerの設定変更履歴(タイムスタンプ、変更者、変更の差分)が表示されるようになり、設定がどのように推移してきたかを正確に把握できるようになりました。
  • サードパーティホスティングのサポート: 以前の発表の通り、Matchmakerがサードパーティのサーバーホスティングと連携可能になりました。

未署名パッケージのインストール警告プロンプト

Package Managerにおける「Unity Core Standards(Unityコア標準)」の取り組みの一環として、パッケージのインストール時に新しいポップアップ通知が追加されました。

未署名のパッケージや、Unity 以外をソースとするパッケージを導入しようとした場合に確認のプロンプトが表示され、ユーザーに注意を促します。この仕組みにより、開発者はプロジェクトに取り込むパッケージの安全性について、より慎重に判断できるようになりました。

その他の新機能・改善点

上記で紹介したハイライト以外にも、Unity 6.4では多岐にわたるアップデートが行われています。

2D

  • 2Dカスタムレンダリング: URPを用いた2Dプロジェクトにおいて、レンダリングプロセスをカスタマイズ・拡張できるようになりました。C#スクリプト内でカスタムレンダーパスを作成し、URPのフレームレンダリングループに注入することができます。

アニメーション

  • ステートマシン開始時の遷移評価: ステートマシンをデフォルト以外のステートから開始できるようになりました。Animator Controller内で「Evaluate Entry Transitions On Start」を有効にすると、デフォルトステートから他のステートへ遷移する際の1フレームの遅延を防ぐことができます(新規コントローラーではデフォルトで有効、既存のものは無効)。

エディター・ワークフロー

  • Build Profiles UIの改善: UIが強化され、新規プロジェクトではプラットフォームリストがデフォルトで非表示になるオプションが追加されました。また、プラットフォームがモバイル、デスクトップ、XR、Web、コンソール、インダストリー、サーバーといったカテゴリごとにグループ化され、見つけやすくなりました。
  • 動的オーバーレイパネル: シーンビューの両端に、折りたたみ可能で柔軟なドック領域(動的パネル)が追加されました。パネル内で複数のオーバーレイをスタックしたり並べ替えたりしてグループ化でき、オーバーレイをドラッグするとドック可能なゾーンがハイライトされます。

エンティティ

  • EntityIdへの移行と注意点: オブジェクト識別用に使用されていた InstanceID が非推奨となり、新たに EntityId 型へ置き換えられました。EntityId は単一の int 値として表現できないため、「int型との相互キャスト」「正負の値によるロード判定」「GetHashCodeの利用」「文字列からintへのパース」「作成順でのソート」「特定ビットへの状態保存」といった従来のコードが機能しなくなる点に注意が必要です。

グラフィックス

  • Rendering Statisticsウィンドウの刷新: プレイモード時の描画負荷をより有用な指標で分析できるようになりました。SRP Batcher、GPU Resident Drawer、BatchRendererGroup API、GPUインスタンシングによって最適化されたドローコール数を個別に確認できるほか、より正確なフレーム時間が表示されます。
  • Mesh LODプレビューの強化: シーンビューのギズモメニューから各オブジェクトのアクティブなLODレベルをラベル表示できるようになったほか、インスペクターに選択バーが追加され、カメラの距離比率に応じたLOD状態をスライダーで確認できるようになりました。
  • サポート終了と移行: PVRTCテクスチャ圧縮フォーマットが廃止され、今後はASTCやETCへの移行が必要です。また、URP Compatibility Mode(および URP_COMPATIBILITY_MODE シンボル)が完全に削除されたため、カスタムレンダーパスはRender Graphへ移行する必要があります。
  • Render Graphサンプルの改善: Render Graphのサンプルパッケージが改良され、最新のAPIが組み込まれるとともに、より多くのユースケースをカバーするようになりました。
  • Render Pipeline Converterの変更: URP向けのコンバーターUIが再設計・改善されたほか、ビルトインレンダーパイプラインからHDRPへのシェーダー変換にも対応しました。
  • HDRPフォグのVolumetric Lighting Density Cutoff: HDRPにおいて、「Volumetric Lighting Density Cutoff」を使用して、指定した密度以下のフォグのライティングを無効化できるようになりました。これにより、多数のフォグボリュームが存在するシーンでのパフォーマンスを向上させることができます。
  • PSOトレーシングとウォーミングの改善: GraphicsStateCollection APIに新しい関数が追加され、PSO(Pipeline State Object)のトレーシングとウォーミングが改善されました。コレクション全体を再トレースすることなく既存のPSOコレクションを変更できるようになったほか、MeshとMaterialの配列から新しい GraphicsStates を生成できるようになりました。
  • Shader Graphの新しいTerrain Propertiesノード: Shader Graphに新たに「Terrain Propertiesノード」が追加され、現在レンダリングされているTerrain(地形)からの入力プロパティを、Terrain Litシェーダーグラフのコンテキストへ渡すことが可能になりました。

入力システム

  • 互換性の向上: Input Systemを使用している MonoBehaviour スクリプトにおいて、旧来の OnMouseDownOnMouseDragOnMouseUp の各マウスイベントがサポートされるようになり、旧Input Managerからの移行が容易になりました。

最適化

  • 物理演算モジュールの無効化: ビルドサイズを削減するために、Package Managerから組み込みの com.unity.modules.physics および com.unity.modules.physics2d モジュールを任意で無効化できるようになりました(※ローカルボリュームを使用している場合は有効のままにする必要があります)。

プラットフォーム

  • Webプラットフォームの強化: Microphone APIがサポートされ、ブラウザ上での音声チャットや音声コマンド機能の開発が可能になったほか、WebGPU向けにPSOトレーシングとウォーミングがサポートされました。
  • プラットフォーム固有のAPI改善: 組み込みLinuxおよびQNXプラットフォームにおいて、Windowing APIが強化されました。実行時にゲームウィンドウの位置や解像度の変更をフレーム単位で検知したり、コールバックを登録してカスタムロジックを実行したりできるようになりました。

プログラミング

  • シリアライゼーションルールの厳格化: クラス階層において、いずれかのクラスに [Serializable] 属性が付与されている場合、その継承元や派生先のすべてのクラスにも同属性が付与されているかを検証し、不足している場合はエディターが警告を出すようになりました。

地形

  • ドラッグ&ドロップ対応の強化: ペイントテクスチャツール、シーンビュー、またはヒエラルキーにTerrain Layerアセットを直接ドラッグ&ドロップできるようになりました。また、マテリアルもシーンビューのTerrainに直接適用可能です(「Terrain Compatible」属性を持たないマテリアルを適用した場合は警告が表示されます)。

UI Toolkit

  • UI構築と設定の改善: Project Settingsから、プロジェクト全体におけるエディターおよびランタイムのデフォルトUIプレビューテーマを設定できるようになり、この設定はバージョン管理で共有可能です。また、UXMLファイルやUSSファイルをOSのファイルブラウザ等からUI Builderのヒエラルキーやキャンバスへ直接ドラッグ&ドロップで追加できるようになりました。

本リリースに含まれる機能の詳細は、公式ドキュメントの「What’s New」にて確認できます。

ダウンロードとサポート情報

最新のエンジンバージョンは公式のダウンロードページから入手可能です。

リリースサポートについて

Unity 6.4は「Supported(サポートされています)」リリースとして位置付けられています。これは、次のリリースが公開されるまでの間、LTS(長期サポート)版と同等レベルのサポート(バグ修正や重要なプラットフォームアップデートなど)が提供されることを意味します。詳細はリリースサポート情報をご確認ください。

各サポート対象リリースに合わせてエディターを継続的にアップグレードすることで、新機能や改善にいち早くアクセスできるだけでなく、今後のLTS版へ移行する際の作業負担を軽減することができます。旧バージョンからUnity 6.4への移行方法については、公式のアップグレードガイドをご参照ください。


Unity 6.4 is now available

コメント

Translate »
タイトルとURLをコピーしました