Unity を検索

Unity 5.6 のリリースと、Unity 5 の完了

2017年3月31日 カテゴリ: テクノロジー | 26 分 で読めます
シェア

最新のリリースには、プログレッシブライトマッパーのプレビュー、新しいライトモード、Vulkan サポート、新しいビデオプレーヤー、Facebook Gameroom と Google Daydream のサポートなど、他にもたくさんの機能が含まれています。

Unity 5 は 2 年前に GDC 2015 でローンチされ、本日 5.6 のリリースで終了します。5.6 が持つ多くの機能と改良点が、ユーザーの皆様のプロジェクトのお役に立てるよう、願っています。

Unity 5.6 はこちらから。まだ Unity をお持ちでない方はこちらからどうぞ!

Unity 5.6 のハイライト

大幅なライティングの改善
5.6 にはプログレッシブライトマッパーのプレビューが含まれています。プログレッシブライトマッパーのプレビューは、さまざまなライティングシナリオを試す際に即座のフィードバックを提供することができ、現在の Enlighten ソリューションと比較して、より速いイテレーションが可能です。5.6 ではライトモードも提供されています。これにより、静的オブジェクトと動的オブジェクトに対して、リアルタイムとベイクのライティングをさまざまな方法で混合できます。

グラフィックスのパフォーマンス改善
GPU インスタンスは、非常に低い負荷で、多くの類似のオブジェクトが必要な新しい種類のエフェクトを可能にする機能で、プロシージャルインスタンシングのサポートにより改善されました。さらに、Metal向けのコンピュートシェーダーによって、AppleのiOSやmacOSが使用するチップセットのパワーをゲームに活用することができるようになります。

Vulkanサポート
Vulkan のサポートにより、ドライバのオーバーヘッドと CPU 負荷を軽減しながら速度を向上させます。これにより、CPU は自由に追加の計算またはレンダリングを行うことができ、モバイルプラットフォームのバッテリーを節約することができます。

パーティクルシステムの大幅なアップデート
5.6 はパーティクルエフェクトの領域を大幅に拡張し、より多くのオプションと制御をユーザーに提供します。このアップデートによりパーティクルシステムのパフォーマンスも大幅に向上しています。

新しいビデオプレーヤー
新しいビデオプレイヤーはマルチプラットフォーム向けに4Kビデオ再生をサポートし、360度動画のVRエクスペリエンスを可能にします。

ナビゲーションシステムの改善
改良された AI および 経路探索ツール (NavMesh システム) は、複数のナビゲーションメッシュおよびエージェントを操作する可能性を広げます。また、プロシージャルに生成されたコンテンツや動的に読み込まれたコンテンツ用の新しいツールを使用すると、キャラクターナビゲーションの全く新しいユースケースやゲームプレイオプションが可能になります。

新しい 2D ツールと改良点
Unity 5.6 には、より幅広い制御ができ、複雑な 2D オブジェクトを簡単に作成できる 2D 機能のセットが加わりました。2D 物理演算の新機能により、2D オブジェクトと相互作用する完全な機能をそろえたパーティクルエフェクトなど、新しい種類のゲームプレイやエフェクトを実現できます。

TextMesh Pro
Unity のアセットストアで最も優れたツールの 1 つであるこのツールは、現在 Unity 5.3 以降を使用してるユーザーに無料で提供されており、まもなく Unity のネイティブな機能として一体化されます。TextMesh Pro は、テキストのフォーマッティングおよびレイアウトの制御を大幅にアップし、動的な視覚的テキストスタイリングで高度なテキストレンダリングを実現します。

パフォーマンスレポートとデバッグの改良
例外レポートに加えて、パフォーマンスレポートでは iOS のネイティブクラッシュの情報も収集されるようになりました。物理演算デバッグの視覚化とプロファイラの改良により、ゲームでのパフォーマンスの問題の原因を簡単に見つけることができます。

新しいプラットフォームのサポート
Android や iOS 向けの Google Daydream や Cardboard だけでなく、Facebook Gameroom にもシームレスにパブリッシュできます。Nintendo Switchもサポートします。

Unity Collaborate (ベータ版)
Collaborate のプロジェクトをより細かく制御できるように、変更を公開する際の新しいオプションを追加しました。

WebAssembly の実験的サポート
5.6 では Unity WebGL 体験を改善するために設計された新しいクロスブラウザ技術、 WebAssembly を実験的にサポートしています。

Unity5.6新機能

プログレッシブライトマッパー (プレビュー版)
最も注目すべき 5.6 機能の 1 つは、新しいパストレースベースのソリューションであるプログレッシブライトマッパーです。これにより、ベイクしたライティングと予測 ETA の高速反復が可能になります。5.6 では、プレビュー版の機能として利用いただけます。

Unity 5.0 をローンチした際、ベイクとリアルタイムのグローバルイルミネーション (GI) の両方のために BeastをEnlighten に置き換えました。しかし、Enlighten は、ベイクしたライティングの全てに適しているわけではなかったため、プログレッシブライトマッパーで解決することが必要になりました。

ベイクしたライトの優れた結果をもたらすソリューションに加えて、照明アーティストに対して、迅速で予測どおりにイテレーションできる機能を含んだ、改善されたワークフローを提供できるソリューションを提供したいと考えました。

以前の Unity リリースでは、シーンの変更には新しいベイクが必要で、結果はベイクが完了したときにのみ表示されました。5.0では Enlighten によって事前計算されたリアルタイム GI を使用し、最終ベイクのプレビューを提供することができるようになりました。これにより反射した光がどのように見えるかヒントにはなるものの、途中で得られたプレビューは最終的な結果とは異なることがありました。
マテリアルのアルベドとエミッションの値、およびライトの変更はすぐにプレビューすることができました。しかしながら、ジオメトリの変更にはまだ再ベイクが必要で、その間フィードバックは得られない状態でした。

たとえば、影のベイクや光の反射強度を調整する時のイテレーションで、変更が反映されるまでに数分またはそれ以上待つことは非常にイライラします。待ち時間が増えると、一定の時間内にこなせるイテレーションの回数が減ることになります。このことは、ベイクしたライティングで達成できる品質の妨げとなります。プログレッシブライトマッパーを使用すると、ほぼ即時に、フィードバックが得られます。最初はノイズが多い結果になりますが、急速に改善していき、シーンビューで直接確認できます。これによってアート面のクオリティと自由度を担保することが可能になります。

Enlightenベースのライトマップベイクソリューションと同等の機能レベルを達成できた際に、プレビュー版から正式版になる予定です。ライトモード、ベイクされたLOD、メモリー使用量の軽減、などのサポートはできるだけ早く提供したいと思っています。

新しいライトモードが、混合モード(Mixed Mode)のライトを置き換えます
ライトモード(Light Modes)は混合(Mixed)モードライティングに代わるもので、ベイクしたシャドウとリアルタイムシャドウの適切な処理を含め、ベイクしたライティングとリアルタイムライティングを組み合わせることを可能にします。完全リアルタイムの GI ライティング、部分的にベイクしたライティング、完全にベイクしたライティングなど、さまざまなシナリオをカバーするプリセットをいくつか提供します。シャドウマスクをベイクする機能を追加し、「過去のリアルタイムシャドウディスタンス」のシャドウを用意しました。これにより、パフォーマンス向上のために、リアルタイムのシャドウ距離を大幅に短縮します。リアルタイムのスペキュラーハイライトと共に遠距離陰影がサポートされるので、より高いクオリティの絵作りも達成されます。すべてのライトタイプとレンダリングパスでリアルタイムシャドウフェードアウトが追加され、リアルタイムシャドウからのシャドウマスクへの移行はシームレスに行われます。

混合ライティングを行うライトモード:

  • Baked Indirect モードでは、混合ライトは、ベイクしたライトマップとライトプローブからサンプリングされた 追加の間接照明 をともなって、リアルタイムの動的ライトとして動作します。フォグのようなエフェクトと過去のリアルタイムシャドウディスタンスを利用して、影の描画が欠ける部分をカバーできます。
  • Shadowmask モードでは、混合ライトはリアルタイムであり、静的オブジェクトからの投影はシャドウマスクテクスチャとライトプローブにベイクされます。静的オブジェクトからの影はこれらの事前計算データから受け取ります。動的オブジェクトからの影は、シャドウディスタンス内のシャドウマップを通して受け取ります。間接ライティングは、ベイクしたライトマップとライトプローブからサンプリングされます。このモードでは、レンダリングされたシャドウキャスターの量が大幅に削減され、離れた場所に影が表示されます。ただし、静的オブジェクトから動的オブジェクトへの影の定義は同じではありません。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

  • Distance Shadowmask モードは、動的オブジェクト上に静的オブジェクトからの高品質の影を作成できるハイブリッドで、事前に計算された影がリアルタイムのシャドウディスタンスを越えてしまいます。そのために、静的オブジェクトからキャストされた影は、シャドウマスクテクスチャとライトプローブで事前に計算されます。ただし、シャドウディスタンス内では、動的オブジェクトと静的オブジェクトの両方とも、リアルタイムシャドウマップを使用してレンダリングされます。事前計算された影は、滑らかな遷移にそってシャドウディスタンスを超えて使用されます。間接ライティングは、あらかじめ計算されたライトマップとライトプローブからサンプリングされます。
  • Subtractive モードでは、直接ライティングがライトマップにベイクされます。したがって、静的オブジェクトには、混合ライトからの鏡面または光沢のあるハイライトがありません。ただし、動的オブジェクトはリアルタイムで照らされ、ライトプローブを通して静的オブジェクトから事前計算された影を受けます。主要な指向性ライトによって、動的オブジェクトが静的オブジェクト上に減算的なリアルタイムのシャドウを投げることが可能になります。

また、利便性を向上するためにライティングウィンドウを再設計し、ライティングアーティストの作業をストリームライン化するために新しいライトエクスプローラーウィンドウを追加しました。

Vulkan のサポート - グラフィックスのパフォーマンスを次のレベルに引き上げ、モバイル機器のバッテリーを節約
Vulkan は新世代のグラフィックス、および、コンピュート API で、PC やモバイルプラットフォーム上の最近一般的に使用されている GPU に効率の良いクロスプラットフォームなアクセスを提供します。

複数のスレッドを並行して実行できるようにして、複数の CPU コアを活用するように設計されています。つまり、ドライバのオーバーヘッドと CPU の負荷を軽減して速度を上げ、その分 CPU が解放され、追加の計算やレンダリングを行えるということです。Unity を使用して、合計で最大 30-60% レンダリングのパフォーマンスが向上しました 。しかも、Vulkan API の仕様やUnity側で特にカスタマイズを行う必要はありませんでした。

Vulkan のもう 1 つの利点は、OpenGL ES を使用して同じコンテンツをレンダリングする場合に比べて消費電力が少なくて済むことです。平均して Vulkan は OpenGL ES の消費量の 88-90% なので、その分「10-12% 余分に再生時間」があるということになります。下のビデオで OpenGL ES に比べた消費電力を見比べてください。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

Unity 5.6 では、Android、Windows、Linux プラットフォームに Vulkan が対応しています。さらに、OpenVR の初期サポートも加えました。

TextMesh Pro は無料になり、近く Unity に統合
GDC 2017 にて、Unity アセットストアで最も優れたツールの1つが無料となったことを発表しました。

TextMesh Pro は、Unity の既存のテキストコンポーネント (Text Mesh や UI Tex tなど) を置き換えるものです。TextMesh Pro は、主要なテキストレンダリングパイプラインとして符号付きディスタンスフィールド(Signed Distance Field, SDF) を使用し、任意のポイントサイズと解像度でテキストをはっきりとレンダリングすることができます。TextMesh Pro によって、SDF テキストレンダリングのパワーを活用するために設計された一連のカスタムシェーダーを使用して、単にマテリアルプロパティーを変更するだけでテキストの視覚的外観を動的に変更することができます。拡張、アウトライン、ソフトシャドウ、面取り、テクスチャ、グローなどのビジュアルスタイルを追加し、マテリアルプリセットを作成/使用してこれらの視覚的なスタイルを保存して呼び出すことができます。

TextMesh Pro では、テキストレイアウトとフォーマットに対し、より高度なコントロールを提供します。ユーザーは、文字、単語、行と段落の間隔、カーニングと基本的なハイフネーションのサポート、さらに、Justified と Flush テキストのような追加のテキストアラインメントモードを制御できます。30 以上のリッチテキストタグによって、ユーザーは、余白、インデント、ユーザーによる定義可能な スタイルリンクを制御でき、さらには複数のフォントとグラフィックスをテキストと一緒にインラインで使用することができます。

TextMesh Pro の機能を Unity 2017 に統合する作業はすでに開始されており、機能と互換性を定期的に更新してアセットとして引き続きサポートし、TextMesh Pro ユーザーのシームレスな体験を保証するようにします。

統合が完了するまでは、アセットストアから TextMesh Pro (Unity 5.3 以上が必要) の新バージョンを自由にダウンロードできます。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

グラフィックスの改良: プロシージャルインスタンシング
5.6 には、パーティクルシステムや GPU インスタンシングなど、グラフィックス全体の多くの改良点も含まれています。

5.4 と 5.5 で導入された GPU インスタンシングを使用すると、位置、回転、色などのインスタンスごとのデータセットを可能にしたままで、インスタントシェーダーを使用して同じメッシュの多くのインスタンスを 1 回の描画呼び出しで描画できます。CPU がフレームレートを制限する要因である場合、インスタンシングはパフォーマンスの大幅な向上をもたらします。標準シェーダーでインスタンシングを有効にするには、マテリアル設定で Enable Instancing チェックボックスを選択します。または、インスタンシングサポートを自作のシェーダに手動で追加することもできます。

5.6 ではプロシージャルインスタンシングをサポートします。プロシージャルインスタンシングでは、インスタンスデータは、マテリアルプロパティーブロックではなく、シェーダーのカスタムソースとして与えられます。また、DrawMeshInstancedIndirect もサポートします。こちらはコンピュートバッファーから描画引数を与えることができます。スクリプトを使用してインスタンスをレンダリングするこの新しい方法では、CPU オーバーヘッドがほとんど なく、CPU がフレームレートの制限要因である場合は、大幅なパフォーマンスの向上につながります。

詳しくはドキュメントを参照してください。

グラフィックスの改良: パーティクル
Unity 5.5では、スクリプトとシェーダー両方からアクセス可能な、パーティクルにカスタムデータをアタッチするためのサポートが追加されました。5.6 では、このシステムを拡張し、インスペクターで直接データを設定できるようにしました。それにより、スクリプトやシェーダー内のカスタムロジックを操るカーブや色の定義づけが簡単になりました。さらに、このモジュールで決定する色もハイダイナミックレンジ (HDR) の使用が可能になりました。これは、いままでの Unity のパーティクルシステムではできないことでした。

複数のパーティクルシステムを使って並行して作業できるようになり、ワークフローも向上しました。

コーン、サークル、片面エッジの形状には、パーティクルの生成方法を制御するための新しいパラメータが追加されました。以前は、すべてのパーティクルが表面上またはボリューム内で、ランダムに生成されていました。これで、パーティクルは順番に、または、必要な増分でのみ生成できます。

バースト放出を行う繰り返しの回数と間隔を指定できるようになりました。以前は、各バーストの発生は 1 回だけで、合計バースト数は 4 つまでという制限がありました。新しいシステムでは、合計 8 つのバーストが可能で、それぞれのバーストは何回でも繰り返すことができます。

最後に、スタンドアロンプレイヤーでパーティクルのインスタンス化が 2 倍以上高速になりました。

アルベドとスペキュラーの値が許容範囲かを検証できるように、物理ベースのレンダリングマテリアルバリデーターを追加しました。アルベド値は、ユーザー定義の輝度範囲に対しても検証できます。

グラフィックスの改良: Metalのためのコンピュートシェーダー

5.6にMetal コンピュートシェーダーのサポートを追加しました。iOS と macOS の両方をサポートします。コンピュートシェーダーは Unity の他のターゲットグラフィックス API と同様に HLSL で書かれ、Metal シェーディング言語 (現在 Metal v1.1 に限定されています) に変換されます。UAV を使用する既存の通常シェーダーを再利用する場合は、プラグマターゲット 5.0 の代わりに 4.5 を使用してください。また、エディターで Metal レンダリングバックエンドを使用するための実験的なサポートも追加しました。

新しいポストプロセススタック

新しい Unity ポストプロセススタックは(今後廃止予定のシネマティックイメージエフェクトの後継で)、5.6と5.5で利用可能です。新しいポストプロセススタックの必須パッケージはアセットストアから無料でダウンロードできます。

これは画像エフェクトの完全なセットを 1 つのポストプロセスパイプラインにまとめたエフェクトです。これにはいくつかの利点があります:

  • エフェクトが常に正しい順序で設定されます
  • 多くのエフェクトを 1つ のパスにまとめることができます
  • 容易なプリセット管理のためのアセットベースの設定システムを備えています
  • より良いユーザー体験のため、すべてのエフェクトが UI にグループ化されています

以下のエフェクトが含まれます:

  • アンチエイリアシング (FXAA、Temporal AA)
  • アンビエントオクルージョン
  • スクリーン空間の反射
  • フォグ
  • 被写界深度
  • モーションブラー
  • アイアダプテーション
  • ブルーム
  • カラーグレーディング
  • ユーザールックアップ テクスチャ
  • 色収差
  • グレイン
  • ビネット
  • ディザリング

スタックには、エフェクトを正しく設定し、デバッグした問題を出力するのに役立つ、モニターとデバッグビューのコレクションも含まれています。

新しいビデオプレイヤーと4K動画再生
5.6 には、ハードウェアのパフォーマンスの高速化を念頭に置いて 0 から作成しなおした、完全な新しいビデオプレーヤーが含まれています。高解像度の4K動画再生が可能になり、アルファチャンネル対応した動画もサポートしています。これは、エディターとターゲットプラットフォームの両方のビデオハードウェア機能の使用を目的としています。さまざまなプラットフォームで利用可能な H.264/AAC ハードウェアサポートが可能で、 H.264/AAC の使用が不可能または望ましくない場合に備えて、VP8/Vorbis ソフトウェアが実装されています。将来、他のコーデックのサポートが追加される予定です。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

ビデオプレーヤーは、シーン内の映画を再生するための新しい GameObject コンポーネントとして機能し、 360 度対応に加え、高品質なハードウェアの高速なパフォーマンスによる没入型のインタラクティブなビデオ体験を提供します。どのように動作するかのデモは、Unite 2016 の基調講演をご覧ください。

NavMesh:改良された経路探索と AI
Unity 5.6 では、以前のバージョンの制限を解決するために低レベルの API を導入しています。この変更により、キャラクターと AI のナビゲーションのためのまったく新しい使用法とゲームプレイオプションが可能になりました。低レベルの API に加えて、オープンソースで Githubから入手できる使いやすい 4 つのコンポーネントも提供しています。

プロシージャルに生成された、または動的に読み込まれたコンテンツに Unity の NavMesh ツールを利用したいという要望は一番多く頂いていました。5.6 の新機能を使うと、それが単に可能だというだけでなく、簡単で効率的に行えます。シーンを読み込み、または、生成して、NavMesh の表面にベイクするよう指示するだけです。

新しい機能セットでは、NavMeshes はシーン全体に渡るものではなくコンポーネントベースになりました。この新しい構造によって、1 シーンにつき複数の NavMes を用いることができます。さらに、さまざまなエージェントタイプを使用できるようになりました。これにより、異なるキャラクターの半径、高さ、トラバース設定を簡単に調整できます。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

NavMeshSurface コンポーネントを追加することで、NavMeshes をワールド軸ではなくゲームオブジェクトに整列させることができます。つまり、私たちが 3D 空間で望むどんな方向にでも NavMesh を向けることができることを意味します。これは、2D ゲーム用のナビゲーションツールを使用したいユーザー、または Y 軸とは独立してナビゲーションシステムを整列させたいユーザーにとって、とても有用な追加機能です。

NavMesh のベイクは、現在コンポーネントによって処理されるので、もはやシーン全体に拘束されません。これは、どの要素がベイクの一部になるかを選択できること、または、特定のボリュームをベイクすることを選択できるということです。NavMesh を使用するには大きすぎる面がある場合、ゲームプレイに必要な量だけの NavMesh を簡単かつ効率的に生成できるようになりました。これにより、再生中のベイク時間とメモリオーバーヘッドを著しく節約できます。この方法を使用すると、変更された領域だけが再ベイクされ、ベイクはマルチスレッドで処理されるので、これは非常に効率的です。

2D ゲーム開発のワークフローを向上させる新機能
Unity はより多くの 2D サポートに熱心に取り組んでおり、5.6 に新しい 2D 機能をいくつか発表できることをうれしく思っています。

ソーティンググループコンポーネントは、オブジェクトのセットを、同じソートレイヤー上の他のオブジェクトとは別にレンダリングする機能を提供します。これにより、ソーティンググループの子であるすべてのレンダラーを、確実に一緒にソートすることができ、複雑なシーンの管理に役立ちます。

新しい軸距離 (Axis Distance ) ソートは、透明度 (Transparency) ソートモードをカスタム軸に設定できるようにすることで、Z ソートの問題を解決します。

アウトラインエディターは、スプライトエディターウィンドウに新たに追加されたものです。選択可能なレベルのテッセレーションを自動的に生成するか、スプライトのメッシュ形状を手動で編集するために使用できます。また、メッシュが実際の画像とどれほど似ているかを選択することで、テッセレーションの品質を制御することもできます。

スプライトレンダラーの 2D テクニックである 9 スライススプライトを導入しました。 9 スライススプライトを使用すると、ゲームで複数のアセットを準備することなく、異なる寸法で画像を再利用できます。これは、UI で使用される 9 スライスに似ています。これにより、寸法が変更されたときに画像の決められた領域を引き伸ばしたり、繰り返したりして、少量のテクスチャメモリーでプラットフォームや背景を簡単に作成できます。

最後に EncodeToEXR をTexture2D に追加しました。これにより、HDR テクスチャのコンテンツをディスク上の EXR ファイルに保存できます。HDRでないテクスチャの EncodeToPNG および EncodeToJPG と同様です。

2D 物理演算の改良と機能

2D 物理演算では、内部 2D 接触処理システムを全て書き換えました。堅牢で信頼性の高い接触のレポーティングができるようになり、すべての条件下で正しい Enter、Stay、Exit のコールバックの状態が把握できます。

2D 物理演算 API に多くの変更が行われましたが、特に重要なものは以下の通り:

  • Rigidbody2D または Collider2D の既存の接触をすべて検索する機能、完全な接触の詳細、または、接触している Collider2D のみを返します。
  • すべての物理演算クエリで使用できるContactFilter2Dという新しいタイプ。これにより、レイヤーマスク、衝突法線角度、Collider2D の Z 深度などによる結果の高速フィルタリングが可能になります。それに加え、Linecast、Raycast、BoxCast、CircleCast、CapsuleCast、OverlapPoint、OverlapCircle、OverlapBox, OverlapArea、OverlapCapsule、GetContacts、IsTouching などの既存の物理クエリー関数が新しいContactFilter2D を受け入れ、アローケーションのない新しいオーバーロードとともに可能になります。フィルタリングの使用例としては「プレイヤーが特定のレイヤーに特定の方向で接触しているかどうか」「 Collider2D 領域で特定のレイヤー上で接触があるか」または、「Rigidbody2D が特定の方向で接触があるか」などがあります。
  • 特定の Rigidbody2D にアタッチされた Collider2D とオーバーラップするすべての Collider2D を取得する機能、または新しい OverlapCollider 関数を使用して、特定の Collider2D とオーバーラップしているものを見つける機能。
  • Rigidbody2D に現在アタッチされたすべての Collider2D を見つける機能。

このリリースの新しいコンポーネントCompositeCollider2Dにより、BoxCollider2D と PolygonCollider2D の両方を、ポリゴンまたは輪郭 (エッジ) 生成を使用して 1 つの Collider2D に結合できます (コライダーのサポートは追加予定)。このソリューションは、複数の別々の Collider2D から形成された単一の連続した表面を提供するだけでなく、多くの別々の Collider2D が単一の合成物にマージされた場合にも、シーンの読み込みを大幅に高速化することができます。CompositeCollider2D には、あらゆる Collider2D に期待するすべての機能があります。つまり、マテリアルを持ち、トリガーになり、エフェクターによって使用され、Rigidbody2D などに接続する、などです。

新しいEdgeRadius機能を使用すると、BoxCollider2D または EdgeCollider2D で半径を設定し、端と頂点の曲率をの拡大することができます。

API の改良の一環として、2 つの Collider2D または Rigidbody2D の最近接距離または重なり (透過) を求めることができるように設計された新しいDistance関数もあります。この関数を使用すると、Rigidbody2D 上で Collider2D またはすべての重なりを求めることができます。Kinematic Rigidbody2D と一緒に使用すると、完全なカスタムの解決が可能です。

最後に、2D Colliders のパーティクルコリジョンコードも、新しい SIMD ライブラリーを使用して完全に書き直され、高速衝突拒否を可能にし、大幅なパフォーマンス向上 (約 10 倍速く) を実現しました。さらに、パーティクルのための新しい 2D Collider オーバーラップソルバーを加え、より早く正確に重複を避けられるようになりました。

Unity Performance Reporting に iOS サポートが追加
Unity Performance Reporting は、デバイスやプラットフォーム間で自動的にアプリケーションエラーを収集するため、リアルタイムで問題を見つけて解決することが容易になります。Unity 5.6 の Performance Reporting では、例えばネイティブのObjective Cプラグインのクラッシュなど、 iOSのゲームに関するクラッシュを見つけ報告します。今後、さらに多くのプラットフォームをサポートする予定です (次は Android)。Unity プロジェクトで Performance Reporting を使用するためのコードは必要ありません。開始するには、Services ウィンドウで「Performance Reporting」をオンにしてください。

物理演算デバッグの視覚化
シーンのオブジェクトが衝突しているか、していないかを見極めるのが難しい場合があります。 Render と Collision のメッシュが同期していない場合は特に難しいです。シーンの衝突ジオメトリを素早く検証するために、物理演算衝突ジオメトリのためにデバッグビューモードを加えました。物理ミドルウェアで何が発生しているのか「グラウンドトルース」を提供し、Unity のシーンで関連するコライダーをすばやく見つけるためにデザインされています。また、へこんだ MeshCollider すべてを表示するのに加え、スリープ状態のリジッドボディをすべて非可視にするため、分析ツールとしても使えます。

物理演算の貫通状態から戻るときの力を扱う関数の追加とエディターUIの改善
貫通状態から戻るときの力を扱うカスタム関数を書くために Physics.ComputePenetration と Physics.ClosestPoint の 2 つの新しい関数を追加しました。Physics.ComputePenetrationは、2つのコライダーを別々に離すのに必要な最小並進を返します。

 

マゼンタ色の線に注目してください。球とカプセルを離すのに必要なオフセットを表しています。
Physics.ClosestPointは、特定の点に最も近いコライダーの表面上の点をとらえます。

また、シーンビューでプリミティブな 2D と 3D のコライダーを編集するためのインタラクティブなハンドルも統一しました。それらはすべて同じロジックを使い、新しいモディファイアキー (Shift と Alt) をサポートして、コライダーの寸法を簡単に編集したり、中心を固定したり、任意の方向から均一に形状を拡大/縮小したりすることができます。

また、折りたたみ可能な階層的なデータを表示する TreeView IMGUI Control を追加しました。TreeView を使用すると、他の IMGUI コントロールやコンポーネントと一緒に使用できる、エディターウィンドウ用の高度にカスタマイズ可能なリストビューと複数のコラムを持つテーブルを作成できます。TreeView は IMGU の制御とコンポーネントと一緒に使用できます。行のコンテンツレンダリング、ドラッグロジック、選択ロジック、アイテムの検索、並べ替え、および名前変更をカスタマイズすることができます。

MultiColumnヘッダーと検索フィールドを持つ TreeView の例

API 関数を使い始めるには、Unity スクリプト API のドキュメント または TreeView のマニュアルを参照してください。

各 UI 要素の GPU に送信されるデータ量を改善し、Canvas に新しい「AdditionalShaderProperties」を追加しました。これにより、追加の未使用のチャネルが除外されるため、作成されたすべての新しい Canvas コンポーネントのデフォルトの挙動が変更され、キャンバスをレンダリングするためのメモリコストが削減されます。

Visual Studio 2017を使用している場合、Unity のワークロードのインストールが自動的に検出され、表示されて外部スクリプトエディターリストに追加されることにお気づきでしょう。

Google Daydream & Cardboard VR のサポート
5.6 は、iOS とAndroid両方の Cardboard、AndroidのDaydream に対し、ネイティブの Google VR をサポートします。Daydream プラットフォームから最適化したパフォーマンスとレイテンシーを得るために、Google VR NDK と統合し、プラットフォームの非同期リプロジェクションと VR パフォーマンスモードを活用するようにしました。

Google I/O でリリースされた Unity 用の Google VR SDK の Daydream サポートと比較して、よりストリームライン化したワークフロー、大幅な最適化、レイテンシーの削減を提供できるようになりました。使用するには、プレハブも、プログラムも、手動でマニフェストの変更を行うことも不要です。ただ、VR を有効にして Daydream をターゲットプラットフォームにするだけで、自分だけの仮想世界を作り始めることができます。

また、VR モードを簡単に切り替えることができるようになりました。そのため、アプリケーションを Google VR 向けに簡単に拡張し、完全なネイティブサポートで Google Cardboard をターゲットにすることができます。Cardboard をターゲットとするアプリケーションは古いデバイスでも作動するので、多くのユーザーに使用してもらうことができます。現時点では、Cardboard のサポートは Android のみですが、iOS Cardboard のサポートもすぐに開始されます。
Unity の Google Daydream への取り組みをさらに詳しく知りたい場合は、Unite 2016 のDaydream に関するプレゼンテーションをご覧ください。

Nintendo Switchのサポート
ドッキングしたコンソールスタイルやハンディタイプでゲームをプレイするオプションによって、Nintendo Switch はクリエイターがゲームについて異なる視点で考えるきっかけとなりました。「スーパーボンバーマンR」やGDCのUnityブースで展示された、「いっしょにチョキッとスニッパーズ」といったUnityで制作されたタイトルも既にリリースされています。Nintendo Switchサポートをお知らせすることができ、大変うれしく思います。(サポートは、現在はUnity 5.5ベースですが、今後5.6.x のサイクルでUnity5.6でもサポート予定です)

Facebook Gameroomのサポート
Facebook は、開発者がプレミアムと無料プレイの高品質なゲームを PC に配布するための、より簡単な方法として Gameroom を提供し、ニュースフィードとは別の PC 専用のアプリケーションとして CPU と GPU の性能をフルに利用できるようにしました。
ネイティブの Windows プレイヤーのように、プロジェクトを Windows 用の新しい Facebook Gameroom デスクトップアプリケーションとしてビルドしてエクスポートし、ネイティブアプリとしてパフォーマンスを最適化することや、Unity の WebGL サポートFacebook.comにビルドしてエクスポートすることができるようになりました。

コンテンツを Facebook の友人と共有することから、アプリ内課金を処理することまで、必要なものすべてが全部 Unity に統合されています。Facebook でホストするビルドさえ Unity エディターから直接アップロードすることができます。Gameroomに関する詳しい情報は、こちらをご覧ください。

WebAssembly の実験的サポート
5.6 では Unity WebGL 体験を改善するために設計された新しいクロスブラウザ技術、 WebAssembly を実験的にサポートしています。技術的には独立した新しい標準として定義しされていますが、Unity の見解としては、WebAssembly は基本的に asm.js JavaScript サブセットのバイトコード形式です (asm.js は WebGL に Unity コードをデプロイするために使用されます)。現在使用されているテキストベースの表現と比較して、バイトコード形式は、asm.js にコンパイルされたコードのサイズフットプリントを大幅に縮小します。これにより、コードの高速ダウンロード、さらに重要なことは、はるかに少ないメモリを使用して、著しく速くコードを解析しコンパイルすることができます。これにより、コンパイルされた大きな JavaScript コードベースの起動時間が短縮され、メモリ要件が削減されます。どちらも現在、WebGL プラットフォームをターゲットにしたときに開発者が直面する一般的な問題の一部です。

マルチプレイヤーの改善
5.6 では、既存の Unity Multiplayer 機能の最適化と安定性の向上が行われています。特に、信頼性の低いネットワーク状態での動作の安定性を改善しました。ほとんどの変更は透過的であり、ネットワーク API の現在の実装に影響を与えません。

エディターと共にリリースされる変更に加えて、マルチプレイヤーのドキュメントを改良し、新しい学習教材を作成し、新しい機能についての基礎的な作業を開始しました。詳細については、Unity マルチプレイヤーの状態 (現在および将来) に関する最新情報を提供する最新のブログ記事を参照してください。

Unity Collaborate (ベータ版) の新機能
Unity Collaborateは、チームが Unity プロジェクトを保存、共有、同期することを容易にします。使いやすく、場所や役割にかかわらず、チーム全体がプロジェクトに貢献できるようになりました。Git、SVN などの従来のバージョンコントロールよりも簡単に使用できるため、その分、チームはもっと重要なこと、つまりゲームにより多くの時間を使うことができます。

初期のベータユーザーからのフィードバックに基づいて、選択したファイルをパブリッシュするPartial Publishを含め、要望の多かった機能をいくつか追加しました。 以前は、すべての変更されたファイルを一度に公開する必要がありました。

Ignore Files を使うと、プロジェクトにプッシュしたくないファイルやディレクトリを無視することができます。また、新しい Rollback 機能を使うと、 プロジェクトの以前のバージョンを最新のものにすることができます。特に、必要のない変更を取り消し、以前の状態に戻すときに便利です。

Unity 5.6 で Unity 5 サイクルを終了。2017 年の計画は?

Unity 5 サイクルの締めくくりとなる Unity 5.6 に関する詳細や 2017 年の計画に関してはこちらのブログ記事をご覧ください。

Unity 5.6 の全ての新機能、変更、バグ修正と既知の問題については、リリースノートをご覧ください。

2017年3月31日 カテゴリ: テクノロジー | 26 分 で読めます