DOTS パッケージ

Data-Oriented Technology Stack(DOTS)を使用すると、プログラミングで頭を悩ませることなく最新のマルチコアプロセッサーを最大限に活用できます。DOTS はプレビュー版であり、Unity ではスタックに新しいパッケージを継続的に追加しています。

DOTS パッケージ

DOTS を使用して Unity のコアを再ビルドするにあたり、新機能を継続的に追加しています。現在開発中の重要な DOTS パッケージの概要を紹介します。

ゲーム設計に関する優れたアプローチ

Unity の Entity Component System(ECS)を使用すると、解決中の実際の問題(ゲームを構成するデータや動作)にフォーカスするハイパフォーマンスな C# コードを記述できます。

ECS は、ゲームをデザインおよびビルドするためのより優れた方法を提供するだけでなく、ECS を使用することで、Unity の C# Job SystemBurst コンパイラーを活用し、最新のマルチコアプロセッサーの性能を最大限発揮させることができます。

ECS により、オブジェクト指向のアプローチからデータ指向の設計に移行しています。つまり、コードを再利用したり、他の人がコードを理解して寄稿したりすることが簡単になります。

ECS の使用を開始してゲームプレイを制作する情報については、ECS に関するドキュメントをご覧ください。ECS を使用して作業するときのコード戦略の選択に関するヒントについては、Unite Copenhagen 2019 のエンティティとのインタラクションのオプションに関する講演を視聴してください。また、GitHub からこれら Entity Component System のサンプルを入手することもお勧めしています。

Entities パッケージには Unity Live Link も含まれます。新しい Unity Live Link では、エディターで変更を加え、スタンドアロンプレイヤーを実行している任意の接続されたデバイスで反映された変更を確認できます。これにより、実機でのパフォーマンスについてのフィードバックが直接得られます。

さらに、Conversion Workflow では、既知のワークフローを使用しながら DOTS の能力を利用して、ゲームオブジェクトをワンクリックでエンティティに変換できるため、現在の GameObjects のまま DOTS を使用することが可能です。

詳細を見る
C# Job System

C# Job System

新しい C# Job System では、最新のコンピューターの複数のコアを安全かつ簡単な方法で活用できます。これは、C# プログラマーによる安全かつ高速でジョブ化されたコードの記述をサポートするよう設計されています。

複数のコアを活用する
C# Job System は Native C++ Job System を公開し、C# スクリプトを Unity の内部コンポーネントに沿ってジョブ化することを許可します。

安全な環境
競合状態などのマルチスレッディングに関わる潜在的な危険から保護を提供します。

詳細を見る

Burst コンパイラー

新しい LLVM ベースのバックエンドのコンパイラーテクノロジーにより、C# のジョブから高度に最適化されたマシンコードを生成します。

すべてのプラットフォームに最適
Burst コンパイラーは、コンパイルするプラットフォームに合わせて出力を最適化します。

ハンドコーディングがより少なく
手間をかけることなく、複数のプラットフォームにわたって、ハンドチューニングされたアセンブラーコードの数多くの利点を得ることができます。

使用を開始する前に、こちらの Unite Copenhagen の講演を視聴して、GitHub からコンパニオンコードをダウンロードしてください。

詳細を見る

Unity Physics(プレビュー版)

Unity は DOTS テクノロジーをベースに構築された新たな物理演算エンジンを開発しました。これにより、最新のネットワーキングのニーズに対応した並外れたパフォーマンスを実現する、物理演算シミュレーションを作成できます。Unity Physics は現時点ではプレビューリリースであり、パッケージマネージャーから入手可能で、Unity 2019.1 以降のバージョンに対応しています。

Havok Physics for Unity は、非常に複雑な物理演算シミュレーションを生成する必要があるお客様向けのソリューションです。このソリューションは、現世代コンソール向けの最有力作品の半数以上に使用されている業界トップの Havok Physics エンジンを基盤としています。Unity Physics と同じ C# DOTS フレームワークを使用して記述されていますが、ネイティブ C++ で記述されたクローズドソースの独自開発エンジン Havok Physics を使用できるほか、高いパフォーマンスと安定性が得られます。

詳細を見る
DOTS を利用したアニメーション、FPS Netcode、Conversion Workflow、Unity Live Link など、Unity 2019.3 の DOTS ベースプロジェクトの新機能について説明します。

Unity NetCode(プレビュー版)

Unity を使用してマルチプレイヤーゲームを制作することを検討している方は、DOTS サンプルプロジェクトでこの領域における Unity の現時点までの進捗を確認できます。付属の NetCode によりクライアント側の予測、権威サーバー、補間が提供され、ネットワーク化した FPS ゲームを簡単に制作できます。開始するには、パッケージマネージャーから Unity Transport および Unity NetCode プレビューパッケージをインストールします。

Unity のネットワーキングの未来については、こちらの Unity Copenhagen 2019 の講演で確認してください。

詳細を見る

DSPGraph(実験的)

今後予定されている DOTS オーディオシステムの基盤となるのが、DSPGraph です(プレビュー版公開中)。Unity の新しいローレベルのオーディオエンジンは Burst コンパイラーと一緒に使用できるほか、C# で完全に拡張可能で、オーディオプログラマーやオーディオシステム開発者が独自のカスタムオーディオシステムを構築できるようにします。

DOTS オーディオディスカッションフォーラムに参加し、質問をしたり、オーディオに関するニーズを共有したりしてください。

詳細を見る
ステージを走っている 3D ビデオゲームのキャラクター

Unity Animation(実験的)

今後予定されている DOTS 対応のアニメーションシステムの初期バージョンの動作については、DOTS サンプルプロジェクトで確認できます。アニメーションブレンディング、IK、ルートモーション、レイヤー、マスキングなどのアニメーション機能が提供されており、今後さらに予定されています。

追加のサンプルを入手
Unity エディターの『Tiny Racing』のデモ

DOTS ランタイム(プレビュー版)

Unity が予定している高度にモジュール化された DOTS 搭載の最新ランタイムである Project Tiny では、小さくて軽量、そして高速なインスタントゲームを作成できます。Unity が現在取り組んでいる内容についての初期段階の情報については、Tiny Racing のデモをダウンロードして確認してください。これには、初期 3D レンダリング機能のプレビューと、iOS/Android/HTML5/Windows および Mac 用のビルドターゲットが含まれます。

詳細を見る

DOTS の使用を開始する

DOTS パッケージは、Unity パッケージマネージャーから入手できます。パッケージの全一覧を確認するには、「Advanced」 > 「Show Preview Packages」を選択します。まずは、Entities パッケージと Hybrid Renderer を追加することをお勧めします。

DOTS パッケージに関するドキュメント

Entities(プレビュー版)

Entities パッケージは、DOTS の中核を成します。Unity の Entity Component System(ECS)が含まれており、Conversion Workflow と Unity Live Link を使用するための前提条件です。このパッケージは現在プレビュー版として公開されています。

 

 

DOTS エディター(プレビュー版)

DOTS エディターパッケージには、データ分析ツールや可視化ツールが追加されています。たとえば、Entity Preview Inspector を使用すると、ゲームオブジェクトがどのようにしてエンティティに変換されるかを詳しく見ることができます。このパッケージは現在プレビュー版として公開されています。

Hybrid Renderer(プレビュー版)

Hybrid Renderer は、既存のレンダラーがオブジェクトをレンダリングするために必要とするインスタントデータを提供する、新しい経路です。シーン内のゲームオブジェクトをエンティティに変換するために、変換システムは各ゲームオブジェクト上の MeshRenderer コンポーネントと MeshFilter コンポーネントを探し、それらをエンティティ上の RenderMesh コンポーネントに変換します。このパッケージは現在プレビュー版として公開されています。

Burst コンパイラー

Burst コンパイラーは、LLVM を使用して、ジョブ化された C# コードをネイティブコードに変換します。コンパイルするプラットフォームに合わせて出力を最適化します。

Unity Physics(プレビュー版)

Unity は、DOTS テクノロジーをベースに構築された、新しいハイパフォーマンスな物理演算エンジンを開発しています。Unity Physics パッケージを使用して、決定論的なリジッドボディのダイナミクスと空間クエリシステムのメリットを享受してください。このパッケージは現在プレビュー版として公開されています。

Havok Physics(プレビュー版)

Havok Physics は、非常に複雑な物理演算シミュレーションを生成する必要がある顧客向けの、クローズドソースソリューションです。Unity Physics と同じ入力および出力データフォーマットを共有するため、2 つのオプション間でいつでもスワップできます。現在、Unity Pro ユーザー向けのサブスクリプションプランを Unity アセットストアから入手できます。このパッケージは現在プレビュー版として公開されています。

Unity Transport(プレビュー版)

Unity Transport API を使用すると、ご自身のマルチプレイヤープロジェクト用にサーバーとクライアントを作成して設定できます。このパッケージは現在プレビュー版として公開中で、Windows、Linux、Mac、OSX、iOS、Android のプラットフォームにのみ対応します。このパッケージは現在プレビュー版として公開されています。

Unity NetCode(プレビュー版)

Unity NetCode パッケージには、マルチプレイヤーゲームの制作に使用できる、クライアント予測機能が付属した専用サーバーモデルが用意されています。現在プレビュー版として公開中で、エンティティの同期に必要なアーキテクチャにフォーカスしています。 このパッケージは現在プレビュー版として公開されています。 

Unity Mathematics

Burst コンパイラーは、この演算ライブラリを使用して、C# を高度に効率化されたネイティブコードにコンパイルします。シェーダーのような構文のベクタータイプと数学関数が用意されています。

弊社のウェブサイトは最善のユーザー体験をお届けするためにクッキーを使用しています。詳細については、クッキーポリシーのページをご覧ください。

OK