Search Unity

Unity 2018.3 では、プレハブを入れ子にする機能を含む Prefab ワークフローの改良をはじめ、スクリプタブルレンダーパイプライン、Terrain(地形作成)システム、スクリプティングランタイムのそれぞれに対する改良、そして、Visual Effect Graph プレビュー版の搭載が実現しました。

この数年にわたり、最も望まれていた機能の 1 つがプレハブを入れ子にする機能でした。そして、膨大な回数のインタビュー、ユーザビリティテスト、およびゲームジャムでのリサーチを経て、私たちは、皆さまが単にプレハブを入れ子にする機能を要望しているわけではなく、これまでの Prefab ワークフローについて、いくらか変更が必要だと考えているという結論に達しました。これが、再利用性、制御のしやすさ、ユーザーにとっての使いやすさに焦点を当てて、システム全体の改良に取り組んできた理由です。

新しい Prefab ワークフローでは、シーンとプレハブを細かく切り分けることができます。これによって柔軟性を大きく向上させ、かつ時間を浪費させるエラーの心配をせず、自信を持って作業することが可能になります。

他にもワークフローの改良点があります。Unity 2018.3 では、プロジェクト設定と環境設定のウィンドウが統合されました。新しいウィンドウはドックに収納可能で、かつ検索機能を備えることで、目的の設定項目の検索、変更が格段に行いやすくなりました。

デフォルトのスクリプティングランタイムが .NET 4.x に変更されました。古い .NET 3.5 ランタイムは非推奨となり、間もなくサポート終了となります。また、ターゲットを .NET 4.x スクリプティングランタイムとしているプロジェクトでは、オープンソースの Roslyn コンパイラーを使うことができます。

このリリースでは、PhysX 3.4 へのアップグレードも行われます。このアップグレードにより、安定性とパフォーマンスが向上し、複数のワールドや C# Job のクエリのサポートも追加されます。

ワールド構築に役立つ 2D Tilemap ツールで、等角法のタイルマップの作成が可能になりました。これで、戦略ゲーム、経営シミュレーションなど、シミュレーションゲームの 2D プロジェクトの開発がより簡単になります。

Unity 2018.3 には、他にも Terrain(地形作成)システムの更新も含まれています。このアップデートはさらに大規模な改修の第一歩であり、今後の改良の基礎となるように UI やツールに調整を加えただけでなく、パフォーマンスの向上にも焦点が当てられています。また、HD レンダーパイプライン(HDRP)とライトウェイトレンダーパイプライン(LWRP)のサポートも追加されました。

Unity 2018.3 には、 HDRP(プレビュー版)への改良も多数追加されています。このバージョンでは、VR とマルチサンプルアンチエイリアシング(MSAA)の仮サポートが追加され、PC、Mac、XBox One、および PS4 サポートが改良されました。HDRP の要素に対応するインスペクター(Camera、Lights、Reflections、Probe、Material)の UI も更新されています。加えて、新しいライティングモデルが追加され、より複雑なマテリアルを作成できるようになりました。

また、Windows 用の GPU プログレッシブライトマッパーのプレビュー版や、ライティングに関するいくつかの改良も追加されています。

新たに搭載される Visual Effect Graph は、このリリースではプレビュー版のパッケージとして公開になります。このパッケージを使うと、使いやすく柔軟性の高い、ノードベースのシステムを使って美麗なエフェクトを作成することができます。このツールは映画業界で最も広く使われている VFX ソフトウェアツールを参考にして開発されたもので、アーティストの皆さまに、ゲームをはじめ多様なプロジェクトにおいて、GPU で何百万ものパーティクルを発生させて描き出された人目を引くビジュアルエフェクトを作り出す力を与えます。

Unity 2018.3 では、既存のパーティクルシステムにもいくつかの新機能が追加されます。たとえば、パーティクルメッシュをビルボードと同様に反転させる機能、パーティクルライトでのリアルタイム GI サポートの追加、新機能である Ringbuffer モードの追加などです。Ringbuffer モードを使うと、足跡や銃痕のような、パーティクルの持続時間が過ぎても上書きされるまでは出現した位置に表示されるエフェクトの作成が容易になります。

モバイル向けの改良としては、Vulkan および Metal での動的な解像度スケーリングのサポート、Android の AppBundle 生成サポート、および Android で APKzlib を使用する場合の APK ビルド時間の短縮が実現されます。

XR 向けには、Daydream コントローラーのネイティブサポート、VR 向けの Haptics API、および AR Foundation と XR Performance Testing へのアップデートが追加されます。

また、デベロッパーサービスにおいては、Collaborate と Cloud Build に複数の改良が追加されました。Performance Reporting は Cloud Diagnostics と名前を変え、ユーザーから送信されたレポートも追跡するようになります。

その他にも、Unity 2018.3 では細かな変更やバグ修正が無数に行われています。この後の詳細な説明に進む前に、まずは Unity のダウンロードページか、Unity Hub から完全なリリースをダウンロードしてみてください。

 

Unity 2018.3 をダウンロード

 

Unity 2018.3 における新機能・アップデートの詳細

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

Nested Prefab と改良された Prefab ワークフロー

Unity への追加が最も望まれていた機能の 1 つがプレハブを入れ子にする機能です。しかし、膨大な回数のインタビューと幾度かのユーザビリティテスト、150 を超えるお客様への調査、そして、インディーズから AAA タイトルのスタジオまで参加するゲームジャムを 2 回経験して、私たちは、多数のお客様が、Prefab ワークフローについて、単に機能を追加するだけにとどまらない変更が必要と考えているという結論に達しました。そこで、私たちは再利用性、制御のしやすさ、および安全性に重点を置いて、システム全体の改良を行いました。長期的な目標は、単にプレハブを入れ子にする機能をサポートするということだけではなく、Prefab ワークフローの核となる部分を見直して、複数のチームメンバーが同時に効率よく、かつ自信を持ってプレハブを編集できるようにすることです。

新しい Prefab ワークフローでは、シーンとプレハブを細かく切り分けることができます。これによって柔軟性を大きく向上させ、かつ時間を浪費させるエラーの心配をせず、自信を持って作業することが可能になります。

プレハブを入れ子にする

柔軟性の向上

以前は、ビルのように大規模でモノリシックなプレハブを作るか、家具の一部のように細かいプレハブを作るかのどちらかを選ぶ必要があり、両方を行うことはできませんでした。入れ子になったプレハブがサポートされたことで、たとえば、大きなビルをより細かい部屋のプレハブを組み合わせて構築して、さらに各部屋を家具のプレハブを使って構築することが可能になりました。

入れ子構造と継承をサポートする、後方互換性を確保するためのプレハブバックエンドも実装されました。

この新機能は、あらゆる規模のチームにおいて、以下に挙げる作業を簡単にします。

  • プレハブを複数の部品に分割して、効率を向上させる
  • 小さなものから大きなものまで、コンテンツを再利用する
  • コンテンツのさまざまな部分の作業を同時に進める

プレハブバリアント

柔軟なプロパティの運用による効率の向上

デフォルトで、プレハブバリアントは、バリアントの生成元になったプレハブのオブジェクトとプロパティを継承します。しかし同時に、継承されるプロパティを上書きして、追加のコンポーネントやゲームオブジェクトを追加することもできます。これはオブジェクト指向プログラミングの継承のコンセプトと似ています。

たとえば、ドアのプレハブからバリアントを作成し、メッシュとマテリアルを付け替えて、古くて壊れた感じにすることができます。ベースになるドアのプレハブに加えた変更はそのバリアントにも反映されるので、2 つのドアプレハブのコライダーのサイズを調節するときも、ベースのプレハブに変更を加えるだけでよく、簡単に調節することができます。

プレハブのインスタンスのプロパティとオブジェクトのオーバーライドを視覚化する部分にも改良が加えられ、適用範囲を変えてオーバーライドを適用する機能が追加されました。プロパティごと、コンポーネントまたはゲームオブジェクトごと、および、従来同様のプレハブインスタンス全体の中から、適用範囲を選択することができます。

Prefab モード

時間を浪費させる失敗を避ける

私たちが気づいた問題の 1 つに、プレハブアセットに変更を加えるために、いま開いているシーンのヒエラルキーに目的のプレハブアセットをドラッグして、変更を適用し、そして作業に使ったプレハブを削除しなければならないというものがありました。もう 1 つの問題は、プレハブインスタンスのインスペクターに表示される Apply ボタンです。このボタンを誤ってクリックしてしまい、プレハブアセットに不要な変更を適用してしまい、おまけに何を変更してしまったのかが容易にわからないという事態に陥ることがありました。この問題を解決するために、私たちは新しく Prefab モードを追加しました。このモードでは、プレハブを独立した形で編集することができます。

シーン内にプレハブのインスタンスを作ったり、既存のインスタンスに変更を加えることなくプレハブアセット全体に変更を加えることができるようになり、シーン内で誤ってオーバーライドを適用することによる失敗を避けられるようになります。インスタンスとアセットを分けて変更を加えられるようになったことで、自信を持って変更を行っていただくことができるようになりました。

Unity R&D チームの Nikoline Høgh と Stine Kjærbøll が、発見の旅に赴いた姿勢に学びましょう。彼女たちはユーザーテストを実施し、調査を行い、150 を超える顧客と会って話すことで、Prefab ワークフローを根本的に改善する上で非常に価値のあるインサイトを得たのです。

サンプルプロジェクトで新しい Prefab ワークフローを試す

新しい Prefab ワークフローの使い方を学ぶための例を、こちらのページにまとめました。新しい Prefab ワークフローに関する情報をフォーラムでシェアして、皆さまのご意見をお聞かせください。

ユーザー環境設定と設定ウィンドウ

Unity 2018.3 では、すべてのユーザー環境設定とプロジェクト設定を検索・管理するための、一貫性があり効率的な方法を提供するために、新しいウィンドウを追加しました。このウィンドウはドックに収納でき、左右の位置変更も容易で、探している設定を素早く検索することができます。

 

また、このウィンドウにパッケージやアセットストアのプラグインによる独自の設定項目を簡単に追加できる API も提供されます。

 

ユーザビリティの改良

タブを使った作業も簡単になりました。選択したウィンドウのタブは青いアウトラインでハイライトされ、タブの幅はタイトルの長さに合わせて調整されます。また、タブを多数開いてウィンドウの幅に収まらなくなったときは、矢印キーでウィンドウ間を移動することができます。

シネマティクス

Timeline

Unity 2018.3 では、Timeline のアニメーショントラックでヒエラルキーのルートトランスフォームに付けたアニメーションを扱う方法に、大きな改良が加えられました。

新しいトラックオフセットモード

これらのモードは、キャラクターがシーン中のどの位置からアニメーションを始めるかを、Timeline 中で正確に表示します。2018.3 以前のバージョンに搭載されていた Timeline では、アニメーションの開始位置はアニメーターの状態に依存していました。2018.3 では、トラックに後方互換性のために Auto モードのオプションが追加されています。

スケールへの対応

アニメーターの Apply Root Motion フラグがオンになっている場合、Timeline でルートトランスフォームに付いているアニメーションにローカルのスケールを適用するようになります。この変更はゲームオブジェクト間での Timeline アセットの再利用性を向上させ、足が滑ったような動きなど、望ましくないアーティファクトを除去する上でも役立ちます。

ルートモーションが必須ではなくなる

2018.3 以前のバージョンでは、ルートトランスフォームの位置と回転を変更するクリップについては、そのアニメーションクリップではすべてのルートトランスフォーメーションに適用するルートモーションカーブが必要でした。2018.3 ではこれが必須ではなくなります。つまり、レガシーなアニメーションクリップは例外として、位置と回転を変更するクリップはすべて Timeline で動かせるようになるということです。

改良されたエディタープレビュー

エディター内での Timeline のプレビューを改良しました。シーンオフセットを使うと、シーン位置がオフセットとして使用されます。また、イーズイン・イーズアウトを適用すると、シーンのポーズ位置とシーン位置がブレンドされます。

Cinemachine

Cinemachine に、物理カメラ、イベントマッパー、およびインタラクティブな画面を備えた新しいプロシージャルノイズエディターが追加されました。

視覚的なノイズエディターを使って、Cinemachine のカメラの物理的な感触を変更しましょう。

 

ワールドの構築

3D モデリングおよびレベルデザインに使えるツールである ProBuilder は今年の早い時期に Unity に組み込まれましたが、今回、メジャーアップデートとなるバージョン 4.0 がリリースされます。このバージョンは安定性とバグ修正を重視したバージョンですが、いくつかの新機能や重要な変更も含まれています。

ProBuilder 4.0 リリースの最も重要な点としては、ソースコードが配布されることと、エディター・ランタイムの両方でのカスタマイズにおいて開発者により多くの選択肢を与える、改良された新しい公開 API が用意されたことが挙げられます。このアップデートには、新しい Nested Prefab ワークフローのサポート、パフォーマンスの改善、すべての要素選択での選択前のハイライトなど、ビジュアル面のアップグレードも含まれています。ProBuilder 4.0 の詳細をさらに読みたい方は、こちらのフォーラムスレッドをご覧ください。

Terrain ツールのアップデート

Unity 2018.3 には、パフォーマンスとユーザビリティを重視した Terrain システムのアップデートが含まれています。

このアップデートでは、GPU のより有効な活用を可能にするツールやパフォーマンスの改善が行われています。また、従来の組み込みのレンダーパイプラインおよび既存の Unity Terrain システムとの後方互換性を確保しつつ、HDRP および LWRP のサポートも追加されます。

パフォーマンス

パフォーマンス面では、Terrain 向けに GPU でインスタンス化されたレンダーパスを追加しました。ほとんどの場合、インスタンス化することで発行されるドローコールの数を劇的に減らすことができます。Unity で行ったテストのうち多数において、CPU コストが 50% 以上削減されるという結果が得られました(ただし、プラットフォームとユースケースによって実際の削減率は変動します)。

スクリプタブルな GPU ツール

エディター側では、カスタムの Terrain ツールを開発するためのスクリプト API を公開しました。ユーティリティ関数のスイートを利用して、GPU 上でタイルをまたいだシームレスなスカルプティングや塗りつぶし操作を簡単に実装することができます。

また、既存の Terrain ツールをすべて GPU で動作するように書き換えました。これによって、Terrain ツールが大きく高速化された他に、より大きなサイズのブラシや、ブラシのプレビューの改善、Terrain タイルをまたいでペイント操作を行うとき、自動的に継ぎ目のステッチングを行ってペイントする機能が実現されました。

複数の Terrain のサポート

複数の Terrain タイルを使った作業が簡単になりました。Terrain をまたいだペイント操作に加えて、隣接する Terrain との接続を自動的に管理することができるようになりました。以前は、隣接するタイルを接続するために手動でスクリプトを書く必要がありました。

既存の Terrain を拡張する場合は、Create Neighbor Terrain ツールを使って、隣接するタイルのない境界線に沿って、よくマッチする Terrain タイルを追加することができます。

新しいアセットタイプとツール

 

新しい Terrain ツールとブラシアセットには、ハイトマップ、メッシュスタンプ、クローンブラシが含まれます。これらのペイントツールは、現時点では 2018.3 に含まれていませんが、GitHub の Terrain Tools プロジェクトから入手していただけます。

新しい Terrain 関連アセットタイプとして、TerrainLayer アセットと Brush アセットの 2 つが追加され、ワークフローが単純化されます。TerrainLayer は Terrain オブジェクトから独立する形で Terrain マテリアルを定義できるようにし、複数の Terrain オブジェクトで使われるマテリアルの追跡が容易になります。これにより、シームレスなペイントや、マテリアルの修正が容易になります。

Brush アセットはペイントツールやスカルプティングツールで使われる GPU ブラシシェイプを指します。これらのアセットはテクスチャとラジアルの減衰カーブによって定義されるようになり、ブラシ形状の作成や調整が大幅に簡単になります。

R16 テクスチャフォーマット(単一チャンネルの 16 ビットフォーマット)のサポートも追加されました。これによって、ハイトマップのスタンプとして使ったとき、望ましくない「階段(terracing)」を生じさせる 8 ビットでのブラシ形状量子化を回避することができます。

「階段」アーティファクトができる 8 ビットブラシスタンプ(上)と、16 ビットブラシスタンプ(下)

ワールド構築フォーラムまで、ぜひフィードバックをお送りください!

パッケージマネージャーのアップデート

パッケージマネージャー は、Unity が開発した機能を動的に読み込み、アップデートすることで、さまざまなプロジェクト向けに新しい Unity の機能への素早いアクセスを提供します。

Unity の機能のパッケージ形式への移行が進むのに合わせて、利用可能なパッケージやアップデートを見つけやすく、プロジェクトにインストールされたパッケージの管理をより簡単にするために、パッケージマネージャーのユーザー体験(UX)の改良を着実に進めています。

パッケージマネージャーには非常に多くの改良が加えられ、UI については、パッケージラベルの状態の表示、ウィンドウのドック収納機能、およびドキュメンテーションと変更点のリストへの簡便なアクセスを可能にする改良が含まれています。パッケージを名前で検索できるようになり、また、ユーザーが自身でカスタムビルドしたパッケージを手動で追加することができる UX ビルディングブロック群を初めて導入しました。パッケージマネージャーのフォーラムで、最新の開発状況の詳細を確認したり、議論に参加することができます。

Unity Hub のアップデート

9 月に Unity Hub 1.0 をローンチしました。これは、ネットワークに接続して、Unity プロジェクト、ライセンス、エディターのインストール、コンポーネントのアドオンを集中して管理できる場所を提供し、オンボーディングと制作プロセスを効率化するために設計されたデスクトップアプリです。新しい Unity Hub v1.2 のリリースでは、レガシーの Unity エディターを、Unity ダウンロードアーカイブに掲載されている URL にアクセスして、Unity Hub で直接ダウンロード、インストールできる機能が提供されます。プロジェクトで、特定の(古い)バージョンのエディターをお使いのユーザーの方も、Unity Hub からワンクリックで目的のバージョンにアクセスできるようになりました。

パッケージとして配布される機能やアップデートが増えてくると、新しい Package Project Updater が Unity Hub を経由したアップグレードプロセスの効率化に貢献する場面も増えてきます。Package Project Updater は、プロジェクトで使うパッケージ、スクリプト、およびプロジェクトのライブラリの互換性を保ちつつ、プロジェクトを以前の Unity リリースから新しいバージョンへと移行するときに役立ちます。

パッケージのアップデートログもデバッグのために提供されているので、影響を受けるプロジェクトのレベルで移行の状態を追跡することができます。

エンジンのアップデート

Visual Studio Code Debugger for Unity 拡張

オープンソースで、コードが最適化されており、macOS、Windows、Linux で利用できる Visual Studio Code 向けのデバッガー拡張をアップデートしました。Debugger for Unity 拡張は、軽量な環境で C# スクリプトのデバッグをサポートし、最新の 2.x バージョンには、Mono 4.x スクリプティングランタイムのサポートを含む、様々な改良が追加されています。使用を開始するには、Visual Studio Code のサイトに掲載されているセットアップ手順に従ってください。

より高度に統合された、機能豊富な C# コードの記述、デバッグ環境をお探しの方は、Visual Studio や Visual Studio for Mac の利用もご検討ください。利用を開始するには、こちらのドキュメンテーションをご覧ください。

物理

PhysX 3.4

Unity 2018.3 では、NVIDIA PhysX が 3.3 から 3.4 にアップグレードされました。このアップグレードにより、レイキャスト、シェイプの走査、メッシュのクック処理などの演算のスピードが倍になるケースがあります。また、高速回転するオブジェクトに対するコリジョン検出のサポートが改善し、すべての入力が完全に同一であれば同一のシミュレーション結果を保証するよう、決定論的シミュレーションに改善が加えられています。

私たちは、C# Job System の PhysX でできることの範囲が拡張しつづけています。この努力により、多くの種類のコライダーを非同期的、かつメインスレッドを使わない形で利用できるようになり、マルチコアハードウェアで顕著なパフォーマンスの改善が見られました。PhysX 3.4 へのアップグレードは、安定性とパフォーマンスの向上ももたらします。複数のワールドと C# ジョブクエリのサポートも追加されています。

複数シーンの物理

すべての物体とコライダーが入っている単一のシーンと対になるものとして、複数の物理シーンを作成することができるようになりました。この変更により、特定の Unity シーンがデフォルトの物理シーンを使うか、ローカルの物理シーン(2D および 3D のいずれについても)を使うかを指定できるようになります。

詳細は、Unity 2018.3 の物理に関するこちらのブログ記事をご覧ください。

ガベージコレクションの制御

新しい UnityEngine.Scripting.GarbageCollector スクリプティング API が追加され、Mono、IL2CPP の両方のスクリプティングバックエンドで、ランタイムでのガベージコレクションの有効、無効をグローバルに切り替えられるようになりました。メモリを注意深く管理していて、かつランタイムでのメモリ割当てが少ないかまったくない場合は、ガベージコレクションを無効にすることで、ガベージコレクターによるオーバーヘッドの発生を回避できます。また、オーバーヘッドの発生を許容できる場合や、System.GC.Collect() を呼んでガベージコレクションを強制的に発生させるときには、ガベージコレクションを有効にすることができます。別の言い方をすれば、今までランダムなタイミングでガベージコレクションを行うしかなかった状況から、ガベージコレクションのタイミングを制御できるようになったということです。

.NET 4.x Equivalent スクリプティングランタイムのデフォルトオプション化

.NET 4.x Equivalent(.NET 4.x 相当)スクリプティングランタイムが新規の Unity プロジェクトのデフォルトになりました。

古いスクリプティングランタイム( .NET 3.5 Equivalent)は非推奨となり、2019.x リリースサイクル中に利用できなくなる予定です。ただし、2018.LTS では両方のスクリプティングランタイムが引き続きサポートされる予定です。

これまで .NET 4.x Equivalent スクリプティングランタイム(Unity 2018.2 で導入)をプロジェクトで使ったことがない方にとっても、新しいランタイムへの切り替えを行ういい機会です。Mono と IL2CPP を使うすべての Unity プラットフォームで、すべての .NET クラスライブラリ API について完全な TLS 1.2 サポートを得られるというメリットがあります。

プロジェクトサイズを小さくするための工夫も多数盛り込まれています。たとえば、新しいスクリプティングランタイムを使ってある Unity 2018.3 プロジェクトを iOS でビルドしたときの合計ビルドサイズは、古いスクリプティングランタイムを使う Unity 2018.2 以前のバージョンのプロジェクトのビルドサイズと同程度に抑えられています。

.NET 4.x スクリプティングランタイムをターゲットにするプロジェクトでは、オープンソースの Roslyn コンパイラーを利用することもできます。このコンパイラーを使えば、以前使われていた Mono C# コンパイラーに含まれていたバグを回避することができます。

コードサイズ

すべてのプラットフォームのプレイヤー設定において、マネージドコードのストリッピングを標準化しました。Stripping Level オプションは、新しい Managed Stripping Level オプションに置き換えられました。この新しいオプションはすべてのプラットフォームで、かつ Mono と IL2CPP スクリプティングバックエンドの両方で利用することができます。

ゲームのビルドサイズをできるだけ小さくしたい方のために、新しく 2 つの Managed Stripping Level オプションとして、Medium と High を追加しました。これらの新しいオプションは .NET 4.x スクリプティングランタイムをターゲットにしている場合のみ利用することができます。

マネージドのコードストリッピングへの改良と、IL2CPP に加えられたサイズ関連の改良により、.NET 4.x ランタイムをターゲットにしているビルドは従来の .NET 2.0 ランタイムのサイズと同程度に抑えられています。

 

C# 7.3 – Roslyn

.NET 4.x スクリプティングランタイムをターゲットにするプロジェクトで、C# 7.3 がサポートされるようになりました。これは、オープンソースの Roslyn C# コンパイラーとの互換性を高めたことによるもので、最新の C# 7.3 の言語機能を導入し、コンパイル時間を節約することができます。

ダウンロード済みアセットバンドルを再圧縮するランタイム API

アセットバンドルはプラットフォーム固有のアセット(たとえば、モデル、テクスチャ、プレハブ、オーディオクリップ、シーン全体を含めることも可能)を格納したアーカイブファイルであり、ランタイム時に読み込むことができます。アセットバンドルを使うと、ダウンロード可能なコンテンツ(DLC)の初期インストールサイズを抑えることができ、エンドユーザーのプラットフォームに合わせてアセットを最適化し、ランタイムメモリを圧迫することを防ぎます。

Unity 2018.3 では、独自のアセットバンドルキャッシュシステムを作成、管理するための API が提供されます。開発者は従来どおり、LZMA 圧縮バンドルをクライアントに配信することができます。クライアントは受け取ったバンドルを、さらにランタイム時の利用がしやすいフォーマット(LZ4)で再圧縮することができます。このフローは Unity ネイティブ(組み込み)のアセットバンドルキャッシュシステムと同じように扱うことができます。

ナビゲーションシステムのアップデート

NavMesh Surface コンポーネントは特定タイプの NavMesh Agent が動き回ることのできる領域を表現し、NavMesh が構築されるシーン内の領域を定義します。2018.3 では、ナビゲーションシステムに、Prefab モードでプレハブ内の NavMeshSurface を単独でベイクする機能が搭載されます。また、NavMeshQuery.Raycast メソッドをジョブ内で呼び出し、NavMesh 上で直線パスをたどったり、2 つの点の間の障害物を見つけたりすることが可能になりました。引き続きこの機能の改良は続けられます。フォーラムまでぜひご意見をお寄せください。

アセットアップロードパイプライン

2018.3 より前のバージョンでは、アセットアップロードパイプライン(AUP)ではテクスチャしか扱えませんでした。2018.3 では、AUP でテクスチャとメッシュを読み込むようになります。ただし、いくつかの例外があります。「Read/Write Enabled(読み込み/書き込み有効)」がオンのテクスチャ、および「Read/Write Enabled」オンまたは圧縮されたメッシュは AUP を使用しません。2018.2 で導入された Texture Mipmap Streaming は AUP を使うのでご注意ください。

詳細については、最近のブログ記事をご覧ください。

メモリプロファイラー

メモリ消費量はパフォーマンスを厳密に評価できる指標です。ローエンドのモバイル端末など、メモリリソースが限られているプラットフォームでは特に重要な指標となります。

Unity は良いパフォーマンスツールを備えていますが、長い間、メモリに関する問題のトラブルシューティングツールがありませんでした。メモリリークや最も大きなメモリ領域が割り当てられている部分を見つけたり、何が起こったかを探るために少し調査してみることが簡単にできませんでした。

こうした状況を念頭において、プロジェクト内で、メモリについて起きていることの把握をもっと簡単にしたいと考えていました。新しいメモリプロファイラーを使えば、すべてのメモリ割当について詳細に分析することができます。

メモリプロファイラーを使って、スナップショットを取ったり、ネイティブ・マネージドの両方のメモリ使用量を確認できるようになり、メモリ使用量の最適化においてより良い意思決定を行えるようになります。同じことが C# および C++ のメモリ、複数のメモリ割当ての間の関係性、Unity 内部での割当ての調査や、メモリ搭載量が少ない端末を使うときにも当てはまります。

 

それから、複数のスナップショットを比較して、メモリリークを見つけることもできるようになりました。メモリプロファイラーはまずプレビュー版としてリリースされ、今後継続的にアップデートされていきます。ぜひ皆さまのご意見をお聞かせください。パフォーマンス最適化にご興味がある方は、Unity プロファイラーのフォーラムへの参加をご検討ください。

Unity のメモリプロファイラーを使って、メモリ関連の問題をトラブルシュートする方法をさらに知りたい方は、こちらの Unite LA 2018 のセッションをご覧ください。

2D 機能

等角法の 2D タイルマップ

2018.3 では、等角法グリッドのレイアウトをベースにした、パフォーマンスの高い 2D 環境を簡単に作成できるようになりました。通常の等角法タイルマップと、「Z as Y」タイルマップの 2 種類の等角法タイルマップから選ぶことができます。Z as Y タイルマップを選ぶと、高さの概念を導入して、同じタイル上で、高さを変えて異なるタイルを配置することができます。この機能は、たとえばさまざまなフロアが入っている高層ビルや、樹木や塔のような背の高いオブジェクトを作るために使うことができます。

また、タイルをグループ化してレンダリングするか、タイルごとに個別に描画するかを選択することもできます。タイルをグループ化してまとめてレンダリング(Chunk モード)すると、パフォーマンスを最適化することができます。しかし、タイルの前後を動くゲームオブジェクトを使いたい場合は、タイルごとに個別に描画することもできます。

これらに加えて、RuleTiles など、タイルマップと組み合わせて使えるユーティリティが GitHub で入手可能です。

これは 2D ゲームのステージレイアウトを等角法グリッド上に描いた例です。アートは Unity アセットストアでの出品もある、Max Heyder Art (Golden Skull) から許可を得て掲載しています。

 

タイルは Kenney の「Isometric Dungeon Tiles pack」に収録されたものを、許可を得て掲載しています。

2D Animation v2

新しいバージョンの 2D Animation システムによって、新しいワークフローやリギングのプロセスをさらに詳細に制御することができるようになります。

Multi Sprite:たとえば、キャラクターを Photoshop で制作する場合は、手足やキャラクターのパーツは異なるレイヤーに分けて作り、完成したらファイルを PSB でエクスポートして、Unity にアセットとしてインポートします。ここで新しい 2D PSDImporter パッケージが必要になります。Unity はスプライトシートを自動生成します。

新しいスキニングエディター:この新しいエディターウィンドウを使うと、メッシュのテッセレーションとスプライトのデフォーメーションを以前より正確に定義できるようになります。UI/UX の改良も施されました。

2D Animation v2 と 2D PSDImporter のパッケージは、間もなくパッケージマネージャーから入手できるようになります。

 

背景と中央のキャラクターは、Zoink Games から許可を得て掲載しています。

アニメーション

ランタイムコードでの割当不要化、ジョブのバッチ化など、アニメーターへのいくつかの改良が加えられました。この改良により、パフォーマンスが 10 〜 20% 向上します。

パーティクルシステム

Unity 2018.3 では、パーティクルシステムに多数の改良と新機能が搭載されています。

SetParticles/GetParticles へのオフセット指定追加

このスクリプト API に加えられた改良により、offset というパラメーターを利用することができるようになりました。このパラメーターを使うと、パーティクル配列の一部だけを取得したり、またはその配列の一部に値をセットしたりできます。

パーティクルライトでのリアルタイムグローバルイルミネーションのサポート

Lights モジュールを使って光を放出するとき、その光がシーンのリアルタイムグローバルイルミネーションに影響を与えるようになりました。グローバルイルミネーションに寄与する他のライトにするように、ライトのプレハブの設定を単純化することができます。

パーティクルシステムのメッシュの反転

これまでビルボードでしか使えなかった反転オプションが、パーティクルのメッシュに対しても使えるようになりました。同時に、Flip U/V オプションを Texture Sheet Animation モジュールから Renderer モジュールに移動しました。

メッシュ形状に沿った放出に対する順序付け

プロシージャルシェイプがランダム化されていない放出をサポートするのと同様の方法で、メッシュに予測可能な順序でパーティクルを発生させられるようになりました。円形のようなプロシージャルシェイプについては、シェイプの端に沿って段階的にパーティクルが発生します。メッシュについても同じ原理が適用されますが、メッシュの頂点(または面)の順序でパーティクルの発生順序が決まります。

 

回転の無効化(VR)

Renderer モジュールに、カメラが対面するパーティクルがカメラに追従して回転しないようにするためのチェックボックスが追加されました。この機能は VR アプリケーションにおいて、ユーザーが頭を傾けるとパーティクルがおかしな見え方をする可能性がある場合に特に有用です。

確率付きのバースト

バーストにランダム発動の確率を設定できるようになりました。設定した確率に従ってバーストが発生しないようにして、より予測をつけづらいパーティクルバーストを作成できます。

パーティクル向けのスタンダードシェーダーが新しいデフォルトに

Unity 2018.3 では、新しくパーティクルシステムを作成すると、Unlit Particle Standard シェーダーがデフォルトで設定されます。古いシェーダーはすべて Legacy メニューに格納されています。

Ringbuffer モード

新しい Ringbuffer モードを使うと、足跡や銃痕など、持続時間が過ぎた後も上書きされるまではパーティクルがその場に残るエフェクトの作成が簡単になります。この新しいモードでは、パーティクルは必要に応じて 2 つのループモードを設定でき、たとえば輝く火花など、書き換えられるまでは半永久的に動き続けるエフェクトをパフォーマンスのためのリソース予算を守りつつ作成できます。

新しいテクスチャシートアニメーションモード

Unity 2018.3 には、テクスチャシートアニメーションモジュールに新たに 2 つのモードが追加されています。1 つ目のモードは一定の FPS でアニメーションを再生するモードです。2 つ目のモードはパーティクルの速度に基づいたモードで、各パーティクルが移動する速度に応じてアニメーションのフレーム数を決定するモードです。

External Forces モジュールのアップグレード

Unity 2018.3 で、External Forces モジュールが刷新されました。新しい External Forces モジュールには新たに ParticleSystemForceField コンポーネントが追加されています。このコンポーネントは、パーティクルシステムとインタラクトして、パーティクルにさまざまな力を適用することができます。

 

シャドウバイアス

パーティクルのビルボード、線、および軌跡は、2D のカメラに正対するジオメトリを使って擬似的な 3D オブジェクトとして振る舞うため、自身の影が自身に落ちてしまう問題(セルフシャドウイング)を起こしてしまいがちです。この問題を解決するため、各コンポーネントに新しくシャドウバイアスのオプションが追加されています。このオプションを使うと、影をオブジェクトから少しずらして表示して、望ましくないセルフシャドウイングの発生を回避することができます。

Sub-Emitter Ratio プロパティ

Unity の サブエミッターに Ratio という新たなプロパティが追加されました。このプロパティでは、サブエミッターのイベントの発火確率を設定できます。1 に設定するとサブエミッターはトリガーされると必ず発火し、0 に設定するとまったく発火しなくなります。0 から 1 の間の値を設定すると、サブエミッターに発火が起きる確率を割り当てることができます。

カリング

Unity 2018.3 では、パーティクルシステムが画面外に出ていったときの挙動を制御する方法が提供されます。以前のバージョンでは、そのような場合にパーティクルシステムのシミュレートを停止するか続行するかは自動的に決定されていました。この挙動では、パフォーマンスのスパイクを引き起こしたり、画面外のエフェクトをシミュレートして無意味にパフォーマンスを落としたりということが時々起きていました。新しい Culling Mode オプションを使えば、シミュレートの挙動を制御でき、より良い意思決定を行えるようになります。

不均一なスケールへの対応

不均一なスケーリングを適用しているときに期待通りの動作とならない原因となっていたいくつかのバグが修正され、ローカル・ワールドどちらの空間に置いたパーティクルに対しても不均一なスケーリングを適用して、予想通りの結果を得られるようになりました。

レガシーなパーティクルシステムの廃止

新機能の開発に注力するため、レガシーなパーティクルシステムの廃止に向けて作業を進めてきました。2018.1 ではスクリプトバインディングの削除を行い、2018.3 でレガシーなパーティクルシステムは廃止となりました。

古いプロジェクトがこの廃止の影響を受ける場合は、Legacy Particle System Updater ツールを使って、レガシーなパーティクルシステムを Particle System コンポーネントに変換することができます。詳しくは、こちらのフォーラムスレッドをご覧ください。いつも通り、ご意見やご質問は Unity のフォーラムまでお寄せください。

プラットフォーム

モバイル

2018.3 ではモバイル向けに多数の改良が行われました。以下にその内容を示します。

Android App Bundle

Android App Bundle は Google Play 向けの新しいアップロード形式です。この形式のバンドルにはゲームのコンパイル済みコードとリソースがすべて含まれますが、APK の生成と Google Play への署名を遅延させることができます。「Dynamic Delivery」と呼ばれる、Google Play の新しいアプリ配信モデルにおいて、アプリバンドルは各ユーザーのデバイス設定に合わせて最適化された APK の生成と配信を行うために使われ、ユーザーは、ユーザーの環境でアプリを実行するために必要なコードとリソースだけをダウンロードすることになります。もうビルドと署名を手動で行う必要はなく、複数のデバイスをサポートするためにいくつもの APK を管理する必要もありません。また、ユーザーはより小さく、より最適化されたアプリをダウンロードすることができます。


モバイル向けの動的解像度への対応(iOS/Android – Vulkan)

2018.3 で、iOS/tvOS(Metal)と Android(Vulkan)向けに追加された 動的解像度とは、レンダーターゲットの一部または全部を動的にスケーリングして、GPU の負荷を減らす技術のことです。パフォーマンスデータから、ゲームが GPU バウンドになってフレームレートが落ちることが察知されると、自動的にトリガーされます。トリガーされた場合、徐々に解像度を下げてフレームレートを一定に保ちます。また、ユーザーがゲームプレイの中で特に GPU に負荷がかかる箇所に差し掛かったときに、手動でトリガーすることもできます。徐々に解像度のスケールが行われた場合は、動的解像度が働いたことが気になることはほぼありません。

Android ランタイムパーミッション

Android 6(API level 23)以降のバージョンでは、Android.Permission API を使って、アプリケーションの起動時以外にも、必要になったときに、カメラ、マイク、位置情報などのシステム機能を利用するためのパーミッションを要求することができます。パーミッションがすでに与えられているかを確認したり、Android システムのパーミッション要求ダイアログが表示される前に、パーミッションが必要となる理由を説明するメッセージを表示することができます。

Unity に同梱された OpenJDK

デフォルトで、Unity は OpenJDK をベースにした Java 開発キットをインストールするようになりました。これによって、常に正しい JDK バージョンを指定することができます。

コンソール機

Xbox One 用 DirectX 12

2018.3 で、Unity に Xbox One 用の DirectX 12 サポートが追加されました。

DirectX 12 はドライバーのオーバーヘッドを削減し、マルチコアシステムをより良く活用することのできる、新世代のグラフィックス API です。ゲームによっては、DirectX 12 による印象的なパフォーマンスの向上を目にすることができるでしょう。たとえば、Unity の『Book of the Dead 』のデモは、DirectX 12 を採用することでフレームレートが 8.72% 上昇しました。

現時点では実験的機能としてご利用いただけます。詳細は近日中にブログ記事として公開予定です。

XR

Daydream コントローラーのネイティブサポート

このアップデートで Daydream コントローラーのネイティブサポートが追加され、Input Manager でトラッキングとボタン入力を取得することができるようになります。2018.3 のマルチプラットフォーム VR 機能の一覧をご覧になりたい方は、こちらのブログ記事をご覧ください。

VR コントローラー向けの Haptics API

Windows Mixed Reality ヘッドセットコントローラー、OpenVR で動作する Vive コントローラー、Oculus Touch コントローラーで触覚をトリガーするための API が提供されます。サポートするプラットフォームの拡張、将来のリリースに向けた機能概要の作成は引き続き行っていきます。

AR Foundation へのアップデート

最近、Unity は AR Foundation をはじめとする XR パッケージに向けた大きなアップデートを行いました。まず、 ARCore および ARKit を使ったアプリでライトウェイトパイプライン を使ったレンダリングをより細かく制御できるようになりました。2 つ目の新機能は、カメラ画像を最適化する API のセットです。この API を使うと、CPU でカメラ画像に効率的にアクセスすることができます。これはカスタムのコンピュータービジョンアルゴリズムなど、独自の物体画像処理を実装しようとしている開発者にとって、理想的な機能です。それから、ARKit の ARWorldMap 機能 のサポートに改良が加えられ、セッション情報を共有できるようになりました。

XR パフォーマンスのテスト

最近、Unity では XR プロジェクトのテストに役立つ GitHub レポジトリを追加しました。Automated Tests パッケージには、Unity での XR 開発に使える機能テスト、パフォーマンステストのほか、様々なタイプの自動化されたテストが収録されています。Acceptance Tests プロジェクトは、Unity 設定による振る舞いを検証し、Unity リリース間での機能の比較を行い、変更に対するテストを 高いパフォーマンスで行いたい方にご利用いただけます。

TextMesh Pro

TextMesh Pro は 2018.3 で検証済みパッケージとなり、高度に最適化された、新しい Font Generator と共にリリースされます。新しい Font Generator はランタイムでのグリフ生成を可能にします。この仕組みは Hybrid Dynamic Font System と呼ばれ、静的フォント、動的フォントの両方のアセットを同じプロジェクトで組み合わせることを可能にする仕組みです。

DCC(デジタルコンテンツ制作)

FBX エクスポーター

FBX Exporter は 2017.2 で導入され、2018.3 では Unity のパッケージマネージャーから利用できる検証済みパッケージとなります。FBX Exporter を使えば、最小限の手間で、FBX をサポートするあらゆるアプリケーションにジオメトリを送ったり、逆にアプリケーションからジオメトリを出力させたりすることができます。

物理カメラ

既存の Unity カメラシステムをベースに構築された、2 つ目の実世界カメラモードが利用可能になりました。新しいモードでは、垂直方向の視野の制御ではなく、焦点距離とセンサーサイズに基づいて動作します。これによって、物理カメラに慣れたシネマトグラファーやアーティストにとって、より自然に見える描画結果を得ることができます。ビネット、色収差、フレアなど、より自然なレンスエフェクトもサポートされます。

SRP での Autodesk Interactive シェーダーサポート

シェーダーグラフを使って、以前のラフネスの設定をサポートする形で「Autodesk Interactive」シェーダーアセットを作成しました(Autodesk Interactive シェーダーは、以前 Autodesk Maya や 3ds Max で Stingray PBS シェーダーと呼ばれていたものです)。

グラフィックス

Visual Effect Graph(プレビュー版)

2018.3 で、HDRP で動作する Visual Effect Graph がプレビュー版として新しくリリースされます。このツールを使えば、単純なものから複雑なものまで、設定を変更しやすく再利用性の高い次世代のエフェクトを作成したり、GPU で数百万個のパーティクルを処理させたりすることができます。この使いやすく自由度の高いノードベースのシステムは、映像制作の分野で最も使われているビジュアルエフェクト向けツールを手本として開発されたもので、ゲームにとどまらず様々なクリエイティブなコンテンツ向けに、驚くほど美麗なエフェクトを素早く作り出すことができます。

シンプルなエフェクトならあらかじめ用意されたノードをドラッグアンドドロップするだけで作成でき、ノードを組み合わせてさらに複雑なエフェクトを作り上げることもできます。レスポンシブな設計も取り入れられており、変更を加えるとリアルタイムに変更の結果を見ることができます。

Visual Effect Graph のアーキテクチャは、GPU で数百万個のパーティクルをパフォーマンスを犠牲にすることなく発生させることを可能にします。

Unite LA 2018 で展示された、Visual Effect Graph の技術デモ『Spaceship』

すべてのアセットに個別のエフェクトのすべての振る舞いが格納されています。1 つのエフェクトはメッシュ、パーティクルをはじめとするシミュレーションコンテナーの任意の組み合わせによって構成されており、すべて Visual Effect Graph で処理されます。Timeline など、他のツールとも統合されています。

 

Visual Effect Graph は現在 HDRP をサポートしています。LWRP のサポートは来年にリリース予定です。Unity でまさに改良作業が行われている最中ではありますが、ご意見やフィードバックをぜひお寄せください。Visual Effect Graph を使ってみたい方は、Unity のリソースページをご覧ください。

ライティングの改良

2018.3 では、Punctual Light に減衰の設定を付けられるようになりました。CPU/GPU によるプログレッシブライトマッパーに、この変更が加えられたことで、スクリプタブルレンダーパイプラインを使っていなくても、ベイクしたライトに対して、スクリプトから物理的に正しい「逆 2 乗減衰」を適用することができるようになりました。結果として、ベイクしたライティングが実世界での光の照らし方により近いものとなり、明るいホットスポットや、長い距離にわたってゆっくりと光が減衰していく様子を再現することができます。より現実感のあるライティングが実現できるようになり、ライトマップを適用したシーン全体の現実感の向上につながります。

ライトプローブのデリンギングも実装されました。Ligth Probe Group のトグル操作で、プローブにウィンドウ処理をかけるかを設定できます。ウィンドウ処理によって、負の値やバンディングを軽減することができます(よく発生するサンプリングの問題は、ライトプローブが使う球面調和関数に関連したものです)。

2018.3 では、円盤状のエリアライトが CPU/GPU プログレッシブライトマッパーに固有の機能として搭載されます。このエリアライトの形状は、建築関連のビジュアライゼーションや、円形の開口部から光が出てくる表現を使うアプリケーションで有用です。こうしたケースでは、長方形のエリアライトはフィットしません。円盤状のライトは他にも、小さなホットスポットやライトの縁に向かってソフトな陰影が見られるなど面白い特徴を備えており、ライティングアーティストにとって、便利な道具の 1 つとなるでしょう。

GPU プログレッシブライトマッパー(Windows 版プレビュー)

2018.3 では、Windows 向けに GPU プログレッシブライトマッパーのプレビュー版がリリースされます。強力な GPU を搭載したマシンであれば、GPU プログレッシブライトマッパーを使ったライトマップのベイクが大きく高速化されます。Unity では純粋なパストレーシングに基づくアルゴリズムを、Unity でのライトマップのベイクに使う Radeon Rays と OpenCL を基礎として構築し、CPU プログレッシブライトマッパーと比較して 10 倍のパフォーマンスの向上を実現しました。今回リリースするバージョンはプレビュー版であり、提供される機能は限られていますが、今後、Unity のすべてのライティング機能へとサポート範囲を広げていきます。

GPU プログレッシブライトマッパーは Lighting ウィンドウから使用することができます。このライトマッパーは 2GB 以上のメモリを搭載した最近の GPU であれば動作しますが、より大きなライトマップを扱う場合は、より大きな容量のメモリを搭載した GPU を使うことを推奨します。ご意見はフォーラムまでお寄せください。

2018.3 リリースには、プログレッシブライトマッパーのアップデート、複数のライトマップ、直接ライティング、間接ライティング、AO、すべてのライトのタイプ、環境ライティング、光の放出、複数回の光の反射のサポート、GPU コンポジティングと、カリングテストおよび収束テストのサポートが含まれます

現在、2019.1 で Linux と macOS 向けのサポートを追加するための作業を進めています。

ライトウェイトレンダーパイプライン(プレビュー版)

We have added several improvements to the Lightweight Render Pipeline (LWRP) and are expecting it to leave Preview status and be ready for production in 2019.1. In 2018.3, we’ve added Physically Based Light Attenuation, Custom Renderer, and Custom Render Pass Injection.

物理ベースの光の減衰

LWRP では、逆 2 乗減衰(距離による減衰あり)をリアルタイムライト・ベイク済みライトの両方に適用するようになりました。これにより、様々な照明条件についてライティングの結果がより正確なものになり、比較的小さな範囲のライトの表現も可能にします。結果として、オブジェクトごとのライトカリングのパフォーマンスも向上します。LWRP の以前のバージョンから 4.1.0-preview にアップグレードされる場合は、シーンのライト設定をアップグレードする必要があります。

シャドウの品質の改良

深度と法線によるシャドウバイアスのオフセットがシャドウマップのテクセルサイズに合わせてスケールするようになりました。この変更により、シャドウアクネに対処するときにより細かな制御が可能になりました。シャドウのカスケードの数と解像度に関わらず、この設定は機能します。

カスタムレンダーパス

LWRP でレンダラーを拡張するときのワークフローも簡単になりました。カスタムレンダーパスを ScriptableRenderPass クラスで作成し、レンダラーでスケジュールすることができます。LWRP では、カスタムレンダーパスを挿入する方法は 2 つあります。

IRendererSetup を実装して、LWRP のレンダラーを完全に上書きすることもできます。レンダラーの設定はカメラにアタッチ可能なスクリプトの形を取っており、スクリプトに登録された ScriptableRenderPasses がすべて実行されます。Forward+ レンダリングやディファードレンダリングなど、様々なレンダリング戦略を実装するために、この仕組みを利用することができます。

ScriptableRenderPass を使って平らで反射のあるテクスチャを作成した例。このテクスチャをシェーダーグラフに取り込み、金属の床に適用しました

 

これは、組み込みのレンダーパイプラインのコマンドバッファーのサンプルを、ScriptableRenderPass を使って、光の屈折によってぼやけた見た目にするテクスチャに変換した例です

ドキュメンテーションのアップデート

LWRP のドキュメンテーションが、パッケージマネージャーウィンドウの「View Documentation」をクリックして参照できるようになりました。クリックすると LWRP のドキュメンテーションサイトに移動します。また、Lit シェーダーと Simple Lit シェーダーのドキュメンテーションを追加しました。LWRP 全体のドキュメントは 2019.1 でのリリースを予定しています。

パフォーマンスの改良

GLES2 のポイントライトとスポットライトの改良、および HSR をサポートする GPU 向けの改良を行いました。

詳細については、パッケージマネージャーの UI から参照できる LWRP の変更履歴をご覧ください。また、LWRP のテストと開発を支援する目的で開発された Boat Attack デモもご利用いただけます。

組み込みのレンダーパイプラインと LWRP の比較

組み込みのレンダーパイプラインはオブジェクトごとにライトのカリングを行います。また、ライトはそれぞれ別のレンダーパスでシェーディング処理にかけられます。LWRP もオブジェクトごとにカリングを行いますが、すべてのライトを 1 つのパスでシェーディング処理にかけるので、バッチの数が少なくなります。

以下に示したスクリーンショットは、Angry Bots 2 デモの 1 シーンを収めたものです。リアルタイムなライティングとシャドウを、Unity 組み込みのレンダーパイプライン(左)と LWRP(右)で行った結果の比較になっています。組み込みのレンダーパイプラインではフォワードレンダリングパスを使用しています(LWRP はフォワードレンダリングのみサポートしています)。

どちらのシーンも同じライトの設定を使っています。

  • ディレクショナルライト 1 つ(ソフトシャドウ)
  • ポイントライト 2 つ(シャドウなし)
  • スポットライト 2 つ(ソフトシャドウ)

組み込みのレンダーパイプラインでのライティングに合わせて、LWRP のシーンではポイントライトとスポットライトの強度を上げています。強度を上げることによるパフォーマンス上のコスト増加はありませんでした。

組み込みのレンダーパイプラインによるリアルタイムなライティングとシャドウ(左)を、LWRP で再現(右)した。LWRP のほうがバッチ数とドローコールが少なくなっています

HD レンダーパイプライン(プレビュー版)

HD レンダーパイプライン(HDRP)はハイエンドなビジュアル、ハイエンドなゲームに特化したレンダーパイプラインです。2018.3 のリリースでは、ビジュアル品質の向上とアーティスト向けのワークフローの改善を目的としていくつかの機能の追加や改良を行いました。また、安定性の向上が図られ、Mac 向けの Metal サポート、PC、Xbox One、PS4 向けの Vulkan サポートも改善されています。

これに加えて、VR 向けの仮サポート と MSAA(マルチサンプルアンチエイリアシング)も追加されました。HDRP の要素である、Camera、Lights、Reflection Probe、Material のインスペクターの UI もアップデートされました。新しいライティングモデルも導入され、さらに複雑なマテリアルを作成することが可能になりました。

注:Unity 2018.3 のリリース時点では、HDRP は HDRP テンプレート内にあるバージョン 4.1.0 のパッケージとして提供されます。ここに挙げた機能を利用するには、テンプレートをインストールした後、バージョン 4.6.0 のパッケージにアップグレードすることをおすすめします。

プラットフォームのサポート、パフォーマンス、安定性

2018.3 では Metal と Vulkan の API のサポートが強化され、アーティファクトの削減とパフォーマンスの向上も同時に実現されています。フォグと透明なオブジェクト上のデカールにアーティファクトが未だに見られますが、以前のバージョンとの比較において、全体的な体験の質は大きく向上しました。

VR の仮サポートも搭載されました。こちらの記事を読み、プロジェクトの設定方法の詳細をご確認ください。VR ではフォワードレンダリングモードの利用が必須になります。Camera-Relative Rendering はまだサポートされておらず、また、ライティングとボリューメトリクスについて、いくつかの問題が残されています。

VR とフォワードレンダリングを組み合わせることで、このバージョンでは MSAA の仮サポートを実現しました。現在、スクリーンスペースリフレクションを除くすべてのエフェクト(たとえば、SSAO やコンタクトシャドウ)が、MSAA で処理される状態です。MSAA を使うとレンダリングのコストが増加するので、注意して使用してください。

Unity 2018.3 では、PS4 および XBox One での HDRP パフォーマンスが向上しています。非同期なコンピュートパイプラインを使って、複数のエフェクト(スクリーンスペースアンビエントオクルージョン、スクリーンスペースリフレクション、密度ボリュームのボクセル化、ライトのカリング、およびマテリアルの分類)を実行することが可能になりました。これらのエフェクトはすべて、シャドウレンダリングパスと並行して実行することができます。

フォワードレンダリングパスは、「スカラリゼーション(scalarization)」と呼ばれる技術の適用によって改善されました。この技術は、コンソール機で使われている AMD GCN アーキテクチャ専用です。詳細は、HDRP チームのメンバーによるこちらのブログ記事 をご覧ください。

最後に、レンダーパイプラインの設定から、ビルドにどのシェーダーバリアントを含めるか細かく設定することができるようになりました。使わないバリアントを除外することでビルド時間が大幅に短縮できます。同時に、より多くのシェーダーバリアントが除外されます。

UI とカメラ制御の改良

HDRP の UX が単純化されたことに加え、FrameSettings の制御も改良されました。FrameSettings がポストプロセッシングと同様のオーバーライドシステムをサポートするようになり、FrameSettings が RenderPipelineSettings から値を継承したり、継承した値をオーバーライドすることができるようになりました。カメラは Unity 組み込みのレンダーパイプラインの物理カメラのパラメトリゼーションをサポートします。

ライトプローブとリフレクションプローブのインスペクターに、詳細設定の表示トグルが追加されました。この追加によって、UI が大量のデフォルトパラメーターで散らかってしまうことがなくなります。

既存機能の品質と制御に関する改良

「ディープコンポジティング」と呼ばれる技術を導入することで、ボリューメトリックフォグのレンダリングが改良されました。詳細は HDRP チームのメンバーによる、こちらのブログ記事をご覧ください。この技術によってグローバルなフォグと重なり合う密度ボリュームの構築結果を改善することができます。加えて、ボリューメトリックフォグが、遠距離で対数フォグにフォールバックするようになり、ハイトフォグの有効化もサポートするようになりました。これらの変更によって、ボリューメトリックと密度ボリュームのパラメトリゼーションと制御がさらにアーティストにとって親しみやすいものとなりました。ボリューメトリックボクセルに対するライティングのパフォーマンスも改善されています。

シャドウを伴うディレクショナルライトによるボリューメトリック効果により、樹の間から入ってくる光軸が表示されています

シャドウシステムの安定性が向上し、制御できる範囲が広がりました。シャドウの品質レベルは「Low」「Medium」「High」の 3 つから選択できます。選択された品質がそれぞれ対応するフィルタリングアルゴリズム(このバージョンでは PCF および PCSS)にマップされます。

注:フォワードレンダリングパスを使っている場合、品質の切り替えだけが可能です。遅延パスはデフォルトで Low 品質に設定されます。現時点では、Low 品質はコンソール機のデフォルトモードとなります。

シャドウアトラスを伴うシャドウマップのメモリ管理が改良されました。画面上で可視状態になっているシャドウに対する予算が設定されるようになりました。加えて、シャドウのフレームワークはシャドウマップの解像度を距離に応じてスケールするようになり、また、シャドウがシャドウアトラスのサイズに収まらない場合は、収まるように自動的にシャドウをリサイズします。これはシャドウが常に画面に表示されることを意味しますが、シャドウがシャドウアトラスに収まらない場合、シャドウの描画品質は落とされることになります。

コンタクトシャドウはシャドウマップから独立した形で有効にできるようになりました。コンタクトシャドウはディレクショナルライト、ポイントライト、スポットライトでサポートされますが、同時には 1 つしか使えません。コンタクトシャドウの品質やパフォーマンスも向上しました。

オフ:ディレクショナルライトに対してコンタクトシャドウが有効になっていないシーン

オン:ディレクショナルライトに対してコンタクトシャドウが有効になっているシーン

シャドウのデバッグに役立つよう、Render Pipeline Debug ウィンドウに新しいツールセットを追加しました。このツールセットを使って、個別のライト、シャドウアトラス、各シャドウマップのスケール係数、およびシャドウマスクシャドウに対応するシャドウを表示できるようになりました。

デカールがチャンネルごとの選択マスクによって改良されました。この改良により、マテリアルプロパティのサブセットだけに影響するデカールを作れるようになりました。たとえば、マテリアルの法線プロパティ、金属感のあるサーフェス、あるいは滑らかさだけを変更するようなデカールを作成できるということになります。モードは 2 つあります。

  • BaseColor, Normal, Smoothness
  • BaseColor, Normal, Smoothness, Metal and AO (more expensive)

デカールのギズモにも改良が加えられ、デプスバイアスと描画順序をコントロールできるようになりました。

 

フォワードレンダリングパスを使う場合、デカールは正しい形で法線バッファを書き換えます。よって、スクリーンスペースリフレクションに対しても正しい形で影響を与えることができるのです。

ライトに追加のコントロールを追加しました。たとえば、ライトでは現在、カンデラやルーメンに加えて、距離がある場合のために物理的単位である EV100 やルクスをサポートしています。HDRI の空にはルクス値を使うこともできます。ディレクショナルライトについては、ハイライトの形状を制御できるようになり、太陽の円盤形をよく模倣できるようになりました。ポイントライトとスポットライトでは、より滑らかな減衰の表現をすることができます。また、Light Explorer が HDRP のすべてのタイプのライトをサポートするようになりました。

反射システムの改良

2018.3 にはスクリーンスペースリフレクション(SSR)も搭載されています。この技術によって、滑らかな表面での反射を表現することができます。荒い表面は、通常のリフレクションプローブや、平面反射にフォールバックします。マテリアルにタグ付けを行って、SSR の影響下に置かないようにすることもできます。

注:現時点では、高解像度の画面でこのエフェクトを使用するとコストがかなり大きくなります。

左側が平面反射がないシーン、右側が平面反射のあるシーンです。床への空の映り込みに注目してください

このバージョンでは、平面反射も導入されました。これは、平面のサーフェスで高品質な反射表現を可能にするものです。リアルタイムでのレンダリングでなければ、Planar Probe コンポーネントはリフレクションプローブのコンポーネントとまったく同様に働きます。これは、Planar Probe がリフレクションプローブと同じコントロールのセットを持っているためです。

 

リフレクションの制御:リフレクションプローブと平面反射の UI がアップデートされ、アーティスト向けのワークフローが改善しました。リアルタイム反射のレンダリングの FrameSettings を制御することができるようになりました。

組み込みのレンダーパイプライン機能とのバランスの改善

ライトをレイヤー化すると、ライトとオブジェクトをタグ付けして、指定したライトからの光を同じタグを付けたオブジェクトのみに当てることができます。これは組み込みのレンダーパイプラインでも可能です。HDRP では、ライティングのアーキテクチャが異なるため、この機能を持ち込むには機能の刷新が必要でした。2018.3 で、Punctual Light、エリアライト、リフレクションプローブ、および平面反射について、ライトのレイヤーが導入されます。このバージョンでは 31 個のライトまでサポートされます。また、シャドウは現時点では正しく扱われません。

画像中のドラゴンにはそれぞれ異なるライトレイヤーのタグが付けられています。また、右側にポイントライト、左側にリフレクションプローブが置いてあります。左端のドラゴンが青くなっているのは、このドラゴンだけ青いライトの影響を受けているためです。右から 3 番めのドラゴンにはタグが付けられておらず、ローカルのリフレクションプローブの影響を受けないため、暗い灰色になっています

Terrain 機能は組み込みのレンダーパイプラインの機能の 1 つですが、これも HDRP との互換性がない機能でした。このバージョンでは、Terrain Lit シェーダーが導入され、 組み込みの Terrain システムとの互換性が確保されました。1 回のドローコールで最大 8 枚のレイヤーをサポートできます。Terrain Lit シェーダーは Lit シェーダーと同じライティングモデルを使いますが、オプションは LayeredLit シェーダーで使えるものだけに限られています。注:現時点では、Terrain Lit シェーダーでテッセレーションとディスプレイスメントはサポートされていません。

Terrain Lit シェーダーを使ったマテリアルの例

組み込みのレンダーパイプラインにおけるパーティクルのレンダリングは、パーティクルシステムを経由してサポートされています。HDRP では、ライティングを考慮しないパーティクルシステムのシェーダーのみがサポートされています。ライティングを考慮したパーティクルを使って GPU でエフェクトの描画を行うため、このバージョンでは新しく Visual Effect Graph をサポートしています。この機能を経由して、Lit シェーダーや、その簡略化バージョンである「Simple Lit」シェーダーを使うことができます。Simple Lit シェーダーはライティングを考慮するパーティクルを大量に描画する際に、パフォーマンスの向上をもたらします。

Visual Effect Graph でノードベースのグラフを使ってエフェクトを作成している様子が右側に示されています。左側は結果として得られたエフェクトで数百万個のパーティクルで構成され、完全に GPU で描画されています

デバッグツールの追加

問題の追跡やパフォーマンスの継続的な監視を行うため、デバッグツールは常に重要なツールです。このバージョンでは、レンダーパイプラインのデバッグウィンドウで、デバッグ関連の変更がいくつか行われました。

  • 個別のシャドウ、シャドウアトラス、シャドウのスケーリング係数の表示
  • エミッシブ色のオーバーライド
  • スクリーンスペースリフレクションのデバッグモード
  • 輝度計測(Luminance Meter)モード
  • タイプ別にライトを無効化する機能
  • カメラカリングのフリーズにより、カメラの錐台でどのオブジェクトがカリング対象になったか確認
  • ライトボリュームの表示

ライトボリュームの表示例。スポットライト 1 つと複数のポイントライトが置かれていることがわかります

新しいシェーダーとシェーダーグラフのサポート

HDRP がシェーダーグラフをサポートするようになりました。シェーダーグラフは、将来の開発におけるメインのソリューションとなる見込みです。Lit マスターノードはシェーダーグラフ版と、組み込みシェーダー版(Lit、LayeredLit、TerrainLit)があります。他のすべてのシェーダーはシェーダーグラフ版だけが利用できます。将来追加されるシェーダーもシェーダーグラフを使って開発される予定です。

PBR マスターノードは Lit シェーダーをベースに作られています。このノードは LWRP と共通の制限された機能セットを使っており、クロスパイプラインのアセットを作成することができます。2018.3 では、PBR マスターノードにデカールとライトのレイヤー化のサポートが追加されました。

Lit シェーダーがシェーダーグラフで使えるようになりました。このシェーダーでは、コートマスク、遊色効果、半透明効果、サブサーフェススキャッタリング、異方性マテリアルを含め、すべての機能を使うことができます。ただし、正確な法線ブレンディングで使う表面勾配はまだサポートされていません。また、このバージョンのシェーダーグラフではテッセレーションがサポートされません。

注:組み込みの Lit シェーダーで風のエフェクトが無効になり、代わりにシェーダーグラフで有効になりました。今後、風のシミュレーションをはじめ頂点アニメーションを使いたい場合は、シェーダーグラフを使う必要があります。

 

Fabric シェーダーもシェーダーグラフに追加されました。このシェーダーを使うと、柔らかそうな見た目の布地のマテリアルの作成や、繊維による光の散乱の擬似的な表現を作成が可能になります。Fabric マスターノードは CottonWool と Silk の 2 つのライティングモデルをサポートしています。これらのモデルを組み合わせて、様々な見た目のクロスを作成できます。CottonWool の実装は、SIGGRAPH 2017 で発表された Sony Pictures Imageworks による最近の研究成果に基づいています。Silk は GGX による異方性の表現をベースとしたものです。

この画像の女の子が着ている服には Fabric モデルが使われています。メッシュには、服の柄を定義する法線マップをシェーダーグラフで組み合わせたものを適用しています

Unity マーク入り球体に Fabric モデルを適用した結果

StackLit シェーダーがシェーダーグラフに追加されました。注:シェーダーグラフ版が同じパッケージに取り込まれるため、組み込みの StackLit はバージョン 4.4.0 のパッケージから削除されました。

StackLit シェーダーは Lit シェーダーを改良したもので、パフォーマンスよりも画質に重点を置いたシェーダーとなっています。そのため、このシェーダーが向いていないゲームもあります。Lit シェーダーと比較して、StackLit はサーフェスのコーティングをより正確に扱います。このシェーダーの開発においては Unity Labs の Laurent Belcour の研究成果によるところが大きく、その内容は SIGGRAPH 2018 発表論文「Efficient Rendering of Layered Materials Using an Atomic Decomposition with Statistical Operators」にまとめられています。StackLit シェーダーには、「hazy parametrization」という、ハイライトを制御するためのパラメトリゼーションにおける新手法が採用されています。この手法は、「A Composite BRDF Model for Hazy Gloss」という論文で提案されました。

このシェーダーを使うと、すべての機能を制限なしに組み合わせることができます。たとえば、異方性マテリアルをサブサーフェススキャッタリング、遊色効果、および hazy parametrization と組み合わせて使うことが可能です。

さらにこのバージョンでは、コミュニティで報告されたバグが多数修正されています。修正、変更、追加の完全なリストは、GitHub の変更履歴でご覧になれます。

動画関連機能の改良と、レガシーの MovieTexture 機能の削除

Unity 2018.3 では、テクスチャの更新が高速化されています。これによって、これまでメインスレッドで時間を使ってテクスチャをアップロードしていたプロセスが不要になり、グラフィックスのスレッドを使ってより短い時間で同じことができるようになります。HoloLens や、厳しい動作環境で実行している Windows をお使いの方は、特に大きな恩恵を受けられるはずです。

オーディオリサンプリング機能も追加されました。ユーザーが動画の再生速度を変えると、それに従ってオーディオの再生速度も変わり、動画と同期するように再生されます。

Unity 2018.2 から、レガシーな MovieTexture 機能を削除する作業を進めてきました。もし MovieTexutre を使っているプロジェクトをお使いの場合は、Unity 5.6 で導入された VideoPlayer を使うようにアップグレードする必要があります。VideoPlayer は MovieTexture とは根本的に異なるアプローチを採用しているため、自動アップグレードツールをご提供することができなくなる見込みです。MovieTexture の廃止に関する詳細は、フォーラムでご覧ください。

サービス

Cloud Diagnostics(以前の Performance Reporting)

Performance Reporting にも多数の新機能とアップデートが加えられました。これに伴って、サービス名も「Cloud Diagnostics」に変更し、現在このサービスで行っていること、これからこのサービスで行うことのスコープをより良くとらえた名称としました。最も重要な変更点は、この機能を Unity Plus、Unity Pro ユーザーでない方にもご利用いただけるようになったことです。詳細は、こちらのブログ記事でご確認ください。

まず、2018.3 でビルドされたゲームからのレポートに、デバッグログとカスタムのメタデータを含められるようになりました。これらの機能は、レポートが送信されたときの状況をより良く把握する上で役立ちます。

 

まったく新しいレポートタイプも導入されました。以前のレポートタイプ、たとえば「クラッシュ」「例外」といったものは、機械が生成したものでしたが、今回導入される「User Reports」を使うと、エンドユーザーから直接フィードバックを集めることができます。エンドユーザーから、スクリーンショットや、セーブされたゲーム、動画など、ユーザー体験の向上に役立つあらゆる情報を送ってもらえるようになるわけです。送信されたレポートはすべて、Unity の Developer Dashboard に集められます。

Developer Dashboard でユーザーが送信したスクリーンショットとフィードバックは集計され、レビューできる形にまとめられます

コネクティッドゲーム

UNET が段階的に廃止されることを受けて、多人数参加型のアプリ開発に利用できる後継機能をご提供するための作業を進めてきました。新しいネットワークトランスポートレイヤーは、現在オープンなアルファ版としてご利用頂ける状態です。このレイヤーは軽量で、Unity の将来のバージョンに向けた ECS スタイルに合わせて構築されています。さらに、重要なマルチプレイヤーサービスが 2 つ、クローズドのアルファ版まで完成しています。まず、Game Hosting Servers でクラウドを利用したサーバーフリートを立ち上げ、ゲームの「headless」なインスタンスを実行します。次に、Matchmaking がプレイヤーのグループを集め、さらに Game Hosting Servers と連携して、リアルタイムでプレイヤーからの要求を監視して、クラウドリソースの利用量を自動的に調整します。

現在オープンなアルファ版であるコネクティッドゲーム関連の機能にアクセスしたい方は、GitHub レポジトリをご覧ください。さらに、クローズドのアルファ版にアクセスしたい方は、今すぐご登録ください

Project Tiny プレビュー版パッケージのリリース

Project Tiny は、モジュール化された新しい Unity ランタイムと、インストール不要で超高速なロードが可能なゲームや体験を開発するためのエディターモードで構成され、高品質な 2D インスタントゲームやプレイアブル広告を素早く作成するために必要なツールを開発者に提供します。Project Tiny で作成したゲームやプレイアブル広告はサイズが小さく、様々なモバイル端末で驚くほど速く起動します。

Project Tiny は「Tiny Mode」と呼ばれるパッケージとして提供されます。インストールするには、2018.3 のパッケージマネージャーを開き、「Preview Packages」を有効にして、Tiny Mode のインストールを開始してください。お使いの Unity のライセンス(Personal、Plus、Pro)によらずご利用いただけます。ダウンロードされたプレビュー版のパッケージに、Tiny Mode のユーザーマニュアル、API ドキュメンテーション、およびサンプルプロジェクトが同梱されています。さらに詳細な情報や、トレーニング動画をお探しなら、ソリューションのページや Project Tiny のプレビュー版に関するブログ記事をご覧ください。

フォーラム でも詳細な情報をご提供しています。また、フィードバックはこちらのフォーラムまでお寄せください。皆さんのご意見をお待ちしています。

FPS Sample

2018 年 10 月に開催した Unite LA で、多人数参加型の一人称視点シューティングゲームのサンプル「FPS Sample」プロジェクトがリリースされたことをお知らせしました。

Unity に所属する、経験豊富な 6 人のゲーム開発者のチームが、2018.3 の最新機能を使ってこの大規模なプロジェクトの開発を進めました。この開発中にもたらされたフィードバックは、R&D チームが 2018.3 ベータ版の開発を進める上で、非常に有益なフィードバックとなりました。

チームが大事にしている原則の 1 つに従って、プロジェクトは「バニラな(カスタムの施されていない)」Unity を使って進められました。言い換えると、このプロジェクトではカスタムビルドやアセットストアのパッケージは一切使わなかったということです。このゲームサンプルプロジェクトには、最新バージョンの Unity でビルドされたソースコード、アートワークのアセット、サウンドエフェクトまで、すべてが収録されています。FPS Sample は、2018.3 の機能を使ってどのようなことができるかを確かめるためのとても良いサンプルとなっています。また、皆さまが自分のオンラインシューティングゲームを作るためのフレームワークや出発点として、FPS Sample プロジェクトを使っていただくことももちろん可能です。このプロジェクトに関して利用可能なすべてのアセットは Unity Companion ライセンスのもとで利用可能です。つまり、Unity を使って開発される商用のプロジェクトで FPS Sample を使っていただくこともできるということです。

リードテクニカルアーティストの Martin Kümmel Vestergaard とリードプログラマーの Peter Andreasen が、FPS Sample の核となる考え方や、プロジェクトがどのように Unity の R&D と Unity ユーザーの双方に恩恵をもたらすかについて説明している動画をご覧ください。



FPS Sample の開発チームは、FPS Sample を引き続きアップデートし、最新バージョンでの動作の保証や、最新機能の検証のためのサンプルとして運用していく計画を立てています。この運用を通じて、有用なフィードバックを得たいとも考えています。

プロジェクトを入手して、2018.3 の機能が実際に動いているところを見たい方は、GitHub のプロジェクトページを開き、ダウンロード方法やプロジェクトの実行方法の説明をご覧ください。

FPS Sample プロジェクトの詳細はこちらのブログ記事や、FPS Sample のウェブページでご確認ください。 ご質問やご意見、問題があった場合は、FPS Sample のフォーラムまでお知らせください。

リリースノート

2018.3 のフルリリースでは 45 個の機能と 250 件の変更と改良、1915 件のバグ修正が盛り込まれました。これらの要素の詳細をご確認されたい方は、これまでのリリースと同様、リリースノートで完全なリストをご覧ください。

TECH と 長期サポート(LTS)ストリーム

こちらのブログ記事や、以前に GDC でお知らせしたとおり、Unity のリリースは TECH ストリームと長期サポートストリーム(LTS)で構成されるようになりました。

TECH ストリームには最新機能がすべて含まれ、1 年に 3 回のメジャーリリースがあります。今年の TECH ストリームのリリースはバージョン 2018.1、2018.2、2018.3 の 3 つとなり、各バージョンで新機能が追加されてきました。

2018.3 は 2018.x のバージョン番号が付けられる TECH ストリームサイクルにおける最後のリリースであり、バージョン 2019.1 のリリースによって新しい TECH ストリームが始まったタイミングで、新しいバージョン番号(2018.4)が与えられ、LTS ストリームに移行します。この移行のタイミングで、2018 LTS の 2 年間のサポートスケジュールが開始されます。

TECH ストリームとは異なり、LTS ストリームでは新機能の提供、API の変更や改良は行われません。ただし、コミュニティ、コンソール向け SDK/XDK の広範囲に影響するクラッシュ、退行、および問題、あるいは多くの開発者のゲーム出荷スケジュールに影響を与える重大な変更については対応が取られます。

TECH ストリームでは毎週バグ修正を行ったリリースが行われますが、LTS ストリームで 2 週間に 1 度、定期的なバグ修正のためのリリースが行われます。そのため、LTS ストリームは安定したバージョンでゲームやコンテンツの開発、リリースを引き続き行いたいという方に向いています。一方、TECH ストリームは最新機能を試したり、最新の Unity が提供する機能にキャッチアップしたいユーザーに向いています。

2019.1 アルファ版テストにご参加ください

これから提供される新機能に関心がある方は、Unity 2019.1a が次期バージョンの最初のアルファ版として公開されていますので、ぜひお試しください。

ベータ版と比べてバグに遭遇する可能性が高いですが、アルファ版ユーザーの方は、より早く新機能に触れ、自身のプロジェクトが新バージョンと互換性があるかの検証を行うことができます。また、フィードバックをご提供くだされば、Unity の問題の解決を早めることにもつながります。

アルファ版ユーザーの方は Unity の専門家と連絡を取り、Unity コミュニティの経験豊富なメンバーとインサイトを共有し、アンケートへの参加、フィードバックの提供を通じて将来の Unity に影響を与えたり、ユーザーによるラウンドテーブルへの招待を受ける可能性をつかめます。

始めましょう

アルファ版のテストを始めるには、最新の 2019.1 プレリリース版をダウンロードしてください。2019.1 に搭載予定の主要なコンテンツがすべて入り、ベータ版への移行が行われるまで、アルファ版の差分リリースが毎週公開されます。

この良いベータテスターになるためのガイドは、アルファ版のユーザーの皆さまにもお使いいただける内容となっており、考慮すべきポイントをざっと見渡すことができます。ニュース、アップデート、ヒントとコツを掲載したメール(不定期)を受け取られたい場合は、以下のフォームからご登録ください。




78 コメント

コメントの配信登録

コメント受付を終了しました。

  1. Hello..
    I have a question about prefab. When my prefab is more complicated, creating prefab becomes very, very slow. For example, terrain vegetation under large scenes. There are also many buildings. Can u help me..?

  2. nice!

  3. So, so many features and improvements… nice work, Unity employees!

  4. is this LWRP water race game available somewhere

  5. Hello.
    I’m trying to use this version in ubuntu, but when I start the editor, the top menu bar won’t appears. Can you help me?

  6. I got a bug report recently:
    [Physics.PhysX] RigidBody::setRigidBodyFlag: kinematic bodies with CCD enabled are not supported! CCD will be ignored.
    Could Anyone tell me what’s going on in this new version unity? This project can run without any bug report in last version(2018.2.5f1) of unity

  7. Priceless, thank you Unity. The best game engine ever!

  8. I was looking forward for the update of unity.
    I’m delighted and excited to see the improvement of prefab objects, which will make my work much more convenient and almost without any error :-)

    (p.s: I was wondering why I cannot open the brand new FPSsample which created by unity, until now that I finally realize that’s because the version of my unity is to low.)

  9. I just upgraded to 2018.3 and I can’t run my project due to errors.

    Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs(6,34): error CS0104: MinAttribute' is an ambiguous reference between UnityEngine.MinAttribute’ and `UnityEngine.PostProcessing.MinAttribute’
    Do I need to delete PostProcessing? Never had it before.

    1. Charles Beauchemin

      12月 19, 2018 11:15 pm

      Check our forums to see how to get past this issue: https://forum.unity.com/threads/post-processing-stack-error.554926/

  10. Fatih Mert Doğancan

    12月 18, 2018 11:27 pm

    Nested prefabs like Photoshop SmartObject. Nice works !!

  11. Awesome features, I saw that Unity was looking at creating something around the KIN token. Has anything come of that as yet or is it still work in progress?

  12. Amazing changes and new features, making Unity a completely modernized engine and set of tools. Thanks a lot and congrats on the huge work! I have a (very) minor question.

    Back in the day, you guays said that a new Build settings window was in the works:

    https://forum.unity.com/threads/editor-select-all-scenes-checkbox-in-build-settings.427493/

    Any update on that? I too would like to see something as the requested ‘Select All Scenes’ checkbox, just for the sake of convenience.

    Anyway, keep up the good work!

  13. Does new AR Foundation supports AR kit 2 ????

    1. Charles Beauchemin

      12月 18, 2018 5:00 pm

      Hi Abdu, some features from ARKit2 are supported. See this blog post from today which gives more details: https://blogs.unity3d.com/2018/12/18/unitys-handheld-ar-ecosystem-ar-foundation-arcore-and-arkit/

  14. Alejandro Castan

    12月 16, 2018 10:20 pm

    Hi. I am interested in trying the new Unity 2018.3 in this 3D Environment more info here
    https://youtu.be/5SIIvHB_5SI
    Would it be possible get it?
    Thanks

  15. Ahmad Karami

    12月 16, 2018 7:47 pm

    WOW, Awesome, I can tell you at least in 5 years ago , unity team is best, please add 3D Volumetric Box AI System and Crawd System to AI Behavior Tree in Unity 2020.1 , I see All things in Unity is Amazing , well done , thank a lot , I think people can migrate to unity , cause I see tools in unity that that tools is not other game engine , c# 7 is very powerful for make great games with unity , I analysed a number of game engines like ue4 , lumberyard, cryengine, etc , but unity 2018.3 is the best , that is all

  16. @Unity, please revisit issue of throwing warnings when using “[SerializeField] private” in
    unity 2018.3. This is NOT by design. https://issuetracker.unity3d.com/issues/serializedfield-fields-produce-field-is-never-assigned-to-dot-dot-dot-warning

    1. Yes it does not make sense it is by design but I think it is by Visual Studio’s compiler design as it is special Unity inspector making sure it is assigned to so may be difficult to fix (yet not a by design thing!).

    2. I wonder if fixing this would require a modification to the Rosyln compiler to allow Attributes to flag a field as used? This IS actually possible because Rosyln is open source, and Unity has a seat at the .NET Foundation table.

      Alternately, they could inject the pragma statements at build time for all [SerializeField] entries.

      Regardless, “By Design” is kind of a lie. More like “ignoring this regression because fixing it is hard.”

      1. Ah, looks like they ARE working to fix it. I should have read more: https://github.com/dotnet/roslyn/issues/30172

  17. Nice. I really hope they fix that async loading bug that premature shoots you over to the next scene if you simply alt tab and go back to Unity. Drives me nuts! Reported 2 years ago :/

  18. Using Pro builder UV editing in the new prefab window is painstakingly slow. Also, everything in the scene view of the prefab window is black.

    1. Hi! Can you give us more info on this via the World Building Forum? Thanks!
      https://forum.unity.com/forums/world-building.146/

  19. i’m having these 10 errors inside unity 2018.3.0 and all shaders looks pink [12:57:58], [12:57:58], [12:57:58], [12:57:58], [12:57:59], [12:57:59], [12:57:59], [12:57:59]

  20. It’s great to see Unity finally going in the right direction and focus on important features and stability. A few more versions and we should stop having this feeling that we are using an unfinished and unstable beta product. :)

  21. Unfortunately there are some problems with switching to .NET 4.5 Scripting Runtime: the issue with Unity not using InvariantCulture then is still existing – seems we have to wait for 2019.1 :(. And now every private [SerializeField] variable not initialized will produce a warning in the console. Very annoying, especially with structs.

  22. Why I can’t create visual effect graph,My create button can’t see this option.

  23. “Then export the file as a PSB and import the asset into Unity.”
    Whats a PSB file?

    1. PSB format is a Photoshop file format similar to PSD https://helpx.adobe.com/photoshop/using/file-formats.html

  24. Nice, does the support for .Net 4 means it will be easier to use NuGet package? Also is there any plan to have some kind of NuGet package manager directly embedded in Unity to avoid including managed assemblies (.dll) in the Assets?

  25. So, does unity 2018.3 support in public to build android 64bit apk ?

  26. Decal Projectors are not in yet? I couldn’t find them in 2018.3.

  27. Carlos DaLomba

    12月 14, 2018 1:55 am

    I am literally blown away by how many improvements you’ve all made and worked SO hard to put together!! It’s a challenge to even keep up with the rate of advancements we’re getting here! Thank you all so much for your very dedicated hard work :D

  28. What an awesome release! Great work :P

  29. Loving it!!
    Still got an Asynchronous multiplayer audio question I can’t seem to solve…but no question, still love Unity overall! Thanks everyone!

  30. Would love to use it! Unfortunately, it can’t create games for Oculus Go, so I’m stuck with an older version.

    I keep getting fatal errors that say I can’t use Rigidbodies that are both kinematic and CCD at the same time, even though that’s how you need the VR controllers need to be.

    When I turn off rigidbodies it says, “UnauthorizedAccessException: Access to the path “Assets/Oculus/VR/Plugins/1.32.0/Android/OVRPlugin.aar” or “Temp/StagingArea/aar/OVRPlugin.aar” is denied.” I also tried version 1.26 and 1.28 of the OVRPlugin.

    VR is the future, hopefully this will be useable soon!

    1. I had the same issue. You have some rigidbodies in your scene set as kinematic and with continuous collision detection set. Just change it to Continuous Speculative.

      1. Thanks, I tried that. But like I was saying in my last post, then I would get the next error I listed. So I’m not sure how to use 2018.3.

    2. Same issue here, I think I’ll just fallback to 2018.2 for now :(

  31. Unity 2018_3 and Visulal Studio Code error:

    Some projects have trouble loading. Please review the output for more details.

    Source: C# (Extension)

    [fail]: OmniSharp.MSBuild.ProjectLoader
    The reference assemblies for framework “.NETFramework,Version=v4.5” were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.

    [fail]: OmniSharp.MSBuild.ProjectManager
    Attemped to update project that is not loaded

    1. miniwolf_unity

      12月 14, 2018 3:25 pm

      Could you perhaps create an issue on the github page here: https://github.com/Unity-Technologies/vscode-unity-debug/issues
      Then I will be happy to help you resolve the issue.

      1. Thank You very much! :) I will try – i never used github before.

  32. Any news for terrain shader enhancement?
    Tessellation, POM, etc.

  33. Echoing what “Who” commented, I’m not so much seeing any changes to Textmesh Pro. I was sort of expecting the updates previewed by Zolran in October. https://www.youtube.com/watch?v=slvRsAYS7zw&t=1000s

    1. Charles Beauchemin

      12月 14, 2018 2:28 am

      An update to the TextMesh Pro package should come in the following weeks and will be compatible with 2018.3. Stay tuned!

      1. Thanks, Charles. Glad to hear it.

  34. In our team we have been using 2018.3 Beta for some time because Nested Prefabs really is great enhancement that changes the way we develop video games.

    I already asked for this (https://feedback.unity3d.com/suggestions/prefabs-lock-expand-hierarchy), but I would like to say it another time here. It would be awesome, that to maintain scene hirerachy readablity and navigation simple and painless, to add a lock bool option to prevent expanding Prefabs when selecting them, to see them as One-simple-GameObject without children unless you open them on Prefab new isolated view or uncheck the locking option.

    Thank you!

    1. Stine Kjærbøll

      12月 14, 2018 2:12 pm

      Hi Dani,

      Great to hear that your team is already using and appreciating the new Prefab workflows.

      As to your request about “locking” Prefabs so only the root is visible/selectable in the Hierarchy, it makes a lot of sense and you’re not the only person that has asked that.

      At this point we haven’t scheduled work to tackle that problem, but it’s in our backlog and will be part of future priority considerations.

  35. allaze-eroler

    12月 13, 2018 7:47 pm

    hello, there is really one tiny but seriously tiny problem with textmesh pro: where is that sorting layer? it lacked a really important feature though…

    1. Stephan Bouchard

      12月 13, 2018 10:54 pm

      When using the normal component the Sorting Layer and Sorting Order settings are found in the Extra Settings section of the text component inspector panel.

      1. allaze-eroler

        12月 15, 2018 3:37 pm

        i checked that part, all i found is “geometry sorting”, there is no such “sorting layer” or “sorting order” i even checked on other type of textmesh pro…otherwise, i would already found it long ago and had no need to comment about it. the current version i use for textmesh pro is 1.3.0 with “2018.3 verified”.

        1. Stephan Bouchard

          12月 19, 2018 3:41 am

          Here is a screenshot of the component with the options for Sorting Layer and Sorting Order highlighted.

          [img]https://i.imgur.com/8HkYqDs.png[/img]

        2. Stephan Bouchard

          12月 19, 2018 3:47 am

          Just to add more clarity here. The component that works with the Canvas / Canvas Renderer does not support Sorting Layer / Order since that is not supported by the Canvas system. Sorting in the case of the canvas system is based on scene hierarchy.

          As per my previous comment, Sorting Layer and Order is available on the component as shown in this image. https://i.imgur.com/8HkYqDs.png

  36. Yet the ugly light colored editor on the free version? I guess beggars cant be choosers.

    1. My man, you have been beating this drum for ages and nobody cares. Let go.

  37. I can’t see any new version of TextMeshPro ? How does the hybrid system work?

    1. Stephan Bouchard

      12月 13, 2018 10:53 pm

      The latest package release of TMP with Dynamic SDF support isn’t available yet hence why users are not noticing any changes.

      I am still making minor tweaks to the package and taking the opportunity to try to address as many user reported issues on previous versions of TMP while continuing to test the new package. Assuming I don’t run into any unforeseen issues, I expect the new package to be available in the next 7 to 10 days.

      In terms of what to expect, see the following video https://www.youtube.com/watch?v=slvRsAYS7zw&t=1000s

      1. This is up their with nested prefabs as the most amazing feature!
        Finally I can get rid of the remaining TextMesh’s in my game, I had a few remaining due to user input e.g. chat.
        Thank you for this, it’s going to make everything so much nicer.

      2. P.s. I’m assuming dynamic fonts also work on mobile? Please say yes or i will cry.

        1. Stephan Bouchard

          12月 13, 2018 11:56 pm

          Works on all platforms / mobile :)

  38. I take it SpeedTree 8 did not make it into this release? It’s still showing as green on the roadmap.

    1. I’d also really like to know about the Speedtree updates – are they in 2018.3?

    2. Charles Beauchemin

      12月 13, 2018 9:35 pm

      Speedtree is handled by a partner company. We worked with them to give them the best support in our engine for their tool. They will surely deliver something soon.

    3. SpeedTree 8 support is implemented, the problem is that SpeedTree 8 Modeler isn’t out yet.

  39. Fahim Faysal

    12月 13, 2018 5:11 pm

    Lots of new stuff. I like how you guys are releasing new projects to learn from. Please consider releasing and ARPG project as well.

  40. Hell, yeah!

    1. Connecting Terrains does not appear to be working for me. Also, when in “Create Neighbor Terrain” mode, clicking the mouse wheel will also add terrains instead of pan the view.

  41. Hi Unity,

    Love the effort and work you’ve all done with this one. Thumbs up, very impressed. I have decided to give you all a pay rise in the new year. Tell John Riccitiello I’ve said so and point him to this message. He knows full well it’s the right time to bump everyone’s motivation now such a monumental release has been done after such a challenging year.

    :D

    ps. hippo is always right. Go get a pay rise.

    1. Charles Beauchemin

      12月 13, 2018 5:19 pm

      Thanks for your help on the forums, hippo! it’s greatly appreciated!

  42. Carl Emil Carlsen

    12月 13, 2018 4:38 pm

    Thank you for all the hard work everyone, these are all great improvements.

    Please, please add custom render passes to HDRP as well! I still can’t use Graphics.DrawProcedural for anything in HDRP. Relying on ShaderGraph, VFX Graph and PostProcessing is not enough for people (like me) who wants to pass around ComputeBuffers between multiple processes and render them on demand. The current workaround is to create dummy meshes and overwrite mesh data with buffer content in vertex shaders – that is both ugly and inefficient. CommandBuffers on cameras was a great invention as it invited lot’s of experimentation and unique looks.

    So, I have a ComputeBuffer with some stuff – disregarding how I arrived to it – please let me render it in HDRP (without modifying the pipeline itself).

  43. Excellent!

    Nested Prefabs!
    Probuilder 4 + source?!
    Planar Reflections – good but how about for all modes?

  44. Awesome!

  45. Nested prefabs finally. Grats!

  46. Lahcene Belbachir

    12月 13, 2018 3:25 pm

    It’s great seeing how far Unity has come, thanks a lot to all the hard working developers that made this possible!
    Does anybody know when the SpeedTree 8 Modeller will be available Unity?

  47. Isaac Surfraz

    12月 13, 2018 3:11 pm

    Amazing release, thanks!

  48. Thank you very much Unity team! I have been waiting long and hard for this release and its finally here. Can not wait to start to implement some of these amazing new features into my games.