Search Unity

Unity 2018.1 は新しいリリースサイクルの第 1 号です。Unity の中核を成す技術が大幅にアップグレードされ、アーティスト、デベロッパー、エンジニアの更なる才能発揮とより効率的な連携が可能になったことで、AAA ゲームを作り出す夢を叶える力となるでしょう。

本記事では、まずは最も際立ったアップグレードのいくつかをご紹介し、続いて全機能の解説をご提供します。以下、最初にご紹介する 2 つの目玉機能「スクリプタブルレンダーパイプライン」と「C# Job System」は両方とも、今回搭載された大きな新機能の最初のバージョンです。これらは今後も、美しいグラフィックスの実現と Unity のランタイムパフォーマンスの更なる向上のため、継続的に進化していく予定です。

新機能の一覧を読み進めると同時に、こちらで Unity 2018.1 をダウンロードしていただけます

スクリプタブルレンダーパイプライン(SRP)

Unity 2018.1 では「スクリプタブルレンダーパイプライン」(SRP)がプレビュー版として使用可能になりました。SRP を使用すると、デベロッパーやテクニカルアーティストは、膨大な量の C++ エンジンコードの知識がなくても、モダンなハードウェアと GPU のパワーをフル活用することができます。

SRP によって、C# コードとマテリアルシェーダーを使ったレンダーパイプラインのカスタマイズが行いやすくなります。C++ レンダーパイプラインを丸ごと記述・修正した場合の複雑で困難な作業を省きながらも、最大限の制御が可能になります。

この他に、必要に応じてすぐに使用できる 2 つのレンダーパイプラインも搭載されました。ひとつは AAA タイトルの開発を目指すデベロッパー向けの「高画質レンダーパイプライン」(HD RP)、もうひとつは、美しさと速度のバランスを取りながらモバイル端末などのプラットフォームのバッテリー寿命を延ばしたいデベロッパー向けの、「ライトウェイトレンダーパイプライン」(LW RP)です。

C# Job System と Entity Component System(ECS)

新しいプログラミングモデル(Entity Component System)と新しいランタイムシステムの組み合わせにより、プログラミングに頭を悩ませることなくマルチコアプロセッサーの利点を最大限に活かせるようになりました。これにより余った馬力で、ゲームに更にエフェクトや複雑性を加えたり、AI を追加して、より豊かで没入感のあるゲーム体験をつくり出すことも可能となります。

レベルデザインとシェーダー

Unity 2017.x では、アーティストとデザイナーとデベロッパーが共にゲーム体験を作り上げるための新機能を公開しました。タイムライン、Cinemachine、新しい FBX Exporter などの強力なビジュアルツールの追加によって、3ds Max や Maya などのデジタルコンテンツ制作ツールと連携した作業がよりスムーズに行えるようになりました。

Unity 2018.1 では、アーティスト・デザイナー・デベロッパーの効率的な連携を更に支援すべく、ステージやムービーコンテンツ、ゲームプレイシーケンスの作成をコード記述なしで行えるようにしました。例えば、ProBuilder や Polybrush などの新しいツールや、新しいシェーダーグラフによって、プログラミングの知識がなくても直感的にレベルデザインやシェーダー作成が行えるようになりました。

パッケージ

Unity 2017.2 では、Package Manager が公開されました。これは、Unity の新機能の読み込みや更新をプロジェクト内で動的に行えるようにするための、根本的なモジュラーシステムおよび API です。Unity 2018.1 では、ここに新しく Package Manager User Interface、Hub、およびプロジェクトテンプレートが加わって、更に進化したものになりました。これらの追加要素によって、新しいプロジェクトを更に簡単に手早く開始できるようになりました。

いくつかの機能はパッケージとして入手可能となっています。これはなぜかと言うと、Unity をよりモジュラー化することで機能の継続的なリリースを行いやすくしたいと考えているからです。

各種機能のうち、現時点で製品版への使用が推奨されておらず、フルサポートが提供されていないものには「プレビュー版」の表記を付けました。プレビュー版は、その機能の更新・修正・試用を早期の段階で行っていただくためのもので、独立したモジュラーパッケージの形で提供されます。お試しになった上で将来的に製品版への使用をご検討いただけます。

Unity 2018.1 の新機能および改良点

グラフィックス

スクリプタブルレンダーパイプライン(SRP)(プレビュー版)

Unity 組み込みのレンダリングモードは、幅広いゲームの作成に対応できる、強力なパイプラインを提供しています。プラットフォームが(パフォーマンス、アーキテクチャ、フォームファクターの面で)多様化し進化し続ける中、Unity では、より強力で自由度の高いレンダーパイプラインが必要であると考えました。

Unity 2018.1 では「スクリプタブルレンダーパイプライン」(SRP)がプレビュー版として使用可能になりました。SRP を使用すると、デベロッパーやテクニカルアーティストは、膨大な量の C++ エンジンコードの知識がなくても、モダンなハードウェアと GPU のパワーをフル活用することができます。

SRP は、C# コードとマテリアルシェーダーによって簡単にレンダリングパイプラインをカスタマイズできる仕組みです。C++ レンダーパイプラインを丸ごと記述・修正した場合の複雑で困難な作業を省きながらも、最大限の制御が可能になります。

Unity は組み込みでいくつかのレンダリングモードを提供しています。大部分の小規模ゲームの場合はこれらで事足りますが、SRP を使用すると、元々の設定の限界を超えて、独自のニーズに合わせてレンダリングのプロセスを調整したり、特定のターゲットプラットフォームのハードウェア用にパフォーマンスを最適化したりすることができます。

SRP は、Unity の新しいレンダリング方式です。今までのブラックボックスモデルから、大部分が C# で記述されたよりオープンなシステムに変わり、ユーザー自身が独自のニーズに合わせてパイプラインを記述したりテンプレートをカスタマイズしたりできるようになりました。バージョン 2018.1 では組み込みのレンダリングエンジンに加え、2 つの初期バージョンのパイプラインをリリースしています。

一人称視点のインタラクティブ・デモ『Book of the Dead』では、スクリプタブルレンダーパイプラインの可能性をご覧いただけます。


スクリプタブルレンダーパイプライン(SRP)に関する詳細や使用開始の方法については、
先日のブログ記事をご覧ください。

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

PC および据え置き機をターゲットにした高精度ビジュアルのためのパイプライン

HD RP は、一部のプラットフォーム(PC DX11+、PS4、Xbox One、Metal、Vulkan — 現時点では xR には非対応)のみに対応したモダンなレンダラーです。

HD RP は高性能 PC や据え置き機をターゲットに、美しい高解像度ビジュアルの実現に焦点を合わせたものです。トレードオフは性能の低いプラットフォームには適さないことと、知識の習得および開発セットアップの再構成が必要になることです。

このレンダラーは、ディファード/フォワード、およびタイル/クラスターを組み合わせたもので、フォワードとディファードの違いを意識する必要がないように設計されています。このレンダラーに含まれる機能は、ボリューメトリックライティング(開発中)、一元的ライティング(不透明・透明・ボリューメトリックの全てに同じライティングを適用)、新しい形状のライト(ポイントライトの選択肢に Line と Rectangle、スポットライトの選択肢に Box と Pyramid を追加)、デカールなどです。

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

ドローコールの数を削減

LW RP は、より少数のドローコールを使用する、シングルパスのフォワードレンダラーです。このパイプラインを使用した場合、Unity 組み込みのレンダリングパイプラインの場合よりもプロジェクトのドローコールの数が削減されます。LW RP は全プラットフォーム対応ですが、特にモバイル端末や、限られたリソースを限界まで使う xR などのアプリケーションに最適なソリューションです。トレードオフは HD RP 同様、新しい SRP ワークフローへの切り替えに伴って新しい知識の習得が必要になることです。また、現段階では LW RP に未対応のサードパーティ製ツールも一部存在します。

LW RP には独自のレンダリングのプロセスがあるため、それを踏まえて記述されたシェーダーが必要となります。マテリアルのシェーダー選択ドロップダウンメニューにある Lightweight Pipeline グループから、新しい標準シェーダーのセットにアクセスできます。これには、標準の物理ベースレンダリングシェーダー、簡易的なライティングモデルを持つ標準の非物理ベースレンダリングシェーダー、標準テレインシェーダー、標準 Unlit シェーダーが含まれます。Unity の旧 Unlit シェーダーはすべて、すでに軽量レンダーパイプラインと併用可能となっています。これには従来のパーティクルや UI、スカイボックス、スプライトシェーダーも含まれます。

Package Manager を使って LW RP をダウンロードしてください。LW RP に関する詳細およびまず使ってみるための方法はこちらのブログ記事でお読みいただけます。

 

テンプレートで創作をジャンプスタートさせよう

テンプレートは、プロジェクトの条件(2D/3D、高性能プラットフォーム[PC や据え置き機など]向け/ライトウェイトなプラットフォーム[モバイルなど]向けなど)ごとに、一般的なベストプラクティスに基づいて設定が事前に調整されています。テンプレートを使えば、基本的な設定に頭を悩ませることなく簡単に作業を開始できます。

テンプレートは、Unity のプロジェクト設定を最適化した状態で提供されます。すぐに作業を開始できるように一部のプレハブとアセットも提供されています。開発するゲームの種類やビジュアルの忠実度に合わせて事前に設定が整っているので、新規プロジェクトの開始時に数多くの初期設定の変更に頭を悩ませる必要がありません。

テンプレートを使うと開発に素早く取り掛かれるばかりでなく、知らなかった設定を発見できたり、スクリプタブルレンダーパイプラインやシェーダーグラフ、ポストプロセッシングスタックなどの新機能を発見する切っ掛けにもなり得ます。

以下は使用可能なテンプレートの一覧です。

テンプレート 説明
2D Unity 組み込みのレンダーパイプラインを使用した 2D プロジェクト用のテンプレートです。

画像インポート、スプライトパッカー、シーンビュー、ライティング、Orthographic(正投影)カメラなどのプロジェクト設定を 2D 向けに設定します。

3D Unity 組み込みのレンダリングパイプラインを使用した 3D プロジェクト用のテンプレートです。

プロジェクト設定を 3D 向けに設定します。例えば、デフォルトの色空間がリニアに変更され、デフォルトのライトマッパーがプログレッシブに変更されます。

3D With Extras
(プレビュー版)
3D テンプレートと類似していますが、ポストプロセッシング、プリセット、サンプルコンテンツなどの付加的な利点があります。
High End
(プレビュー版)
シェーダーモデル 5.0(DX11 以上)に対応するプラットフォーム向けの高精度グラフィックス用です。このテンプレートは HD RP を使用します。

HD RP は、高度なマテリアルタイプや、「タイル/クラスター」および「ディファ―ド/フォワード」を組み合わせた調整可能なライティングアーキテクチャを搭載した、モダンなレンダリングパイプラインです。

Lightweight
(プレビュー版)
パフォーマンスに重点を置いたテンプレートで、ベイクされたライトを主に使用しているプロジェクト向けです。このテンプレートは LW RP を使用します。LW RP はシングルパスのフォワードレンダラーで、オブジェクト毎のライトカリングを行います。LW RP を使用するとプロジェクトのドローコールの数が削減されるので、低性能ハードウェアに最適のソリューションと言えます。

ピクセルライト毎にパスが増えるのではなく、全てのライトが単一のパスでシェーディングされます。

Lightweight VR
(プレビュー版)
ベイクされたライトを主に使用した VR プロジェクト用の、パフォーマンスに重点を置いたテンプレートです。LW RP を使用し、実行には VR デバイスが必要です。

 

シェーダーグラフ(プレビュー版)― 誰にでも簡単にシェーダーの作成が可能に

従来、Unity でのシェーダー作成は、プログラミングのスキルを持ったユーザー専門の分野でした。2018 年、これが塗り替えられます!

シェーダーグラフを使用すれば、一切コードを記述せずに、デザイナーツールを使って視覚的にシェーダーをビルドすることができます。コード記述の代わりに、簡単なドラッグアンドドロップ操作でグラフのネットワーク上でノードを接続していきます。その場で結果を確認してイテレーションを行えるので、経験の浅いユーザーでも簡単にシェーダーの作成を始めることができます。

シェーダーグラフのシステムの特徴は以下の通りです。

  • LW RP と併用できるように設計されています。(HD RP にも近日対応予定です。)
  • 拡張すれば全てのカスタムレンダーパイプラインに対応可能です。
  • オープンなアーキテクチャを持っており、カスタムノードの記述が可能です。

シェーダーグラフの使用を開始したい場合は、GitHub の Shader Graph Example Library および Unity の シェーダーグラフチュートリアル動画(英語)を是非ご利用ください。

プログレッシブライトマッパー

プログレッシブライトマッパーは、ベイクされたライトの表現を向上させ、ライティングアーティストのワークフローを改善します。Unity エディター上でプログレッシブな更新が行われるため、ライティングの結果を予測しながら、より迅速にイテレーションを回すことが可能になります。

これは元々バージョン 5.6 でプレビュー機能としてリリースされたものでしたが、それ以降のリリース毎に機能の追加と改良が行われて来ました。2018.1 ではプレビューモードではなくなり、大きなシーンのベイキングのためのメモリの最適化が可能になりました。

また、バージョン 2018.1 から、プログレッシブライトマッパーは Custom Bakes API によってパワーユーザーを支援します。これにより、新しいライティングツール([例]『Book of the Dead』で一人称視点のインタラクティブ体験の作成に使用されたカスタムのオクルージョンプローブなど)の開発に用いられるベイキングソリューション内のデータへのアクセスが可能になります。

ポストプロセッシングスタック v2

ポストプロセッシングスタックを使うと、プロフェッショナル基準の制御でシーンにリアリスティックなフィルターを適用できます。アーティストにとって使いやすいインターフェースで簡単に高品質ビジュアルの作成や微調整が行え、リアリスティックで迫力のあるエフェクトが作成できます。

ポストプロセッシングスタックは 2018.1 をもってベータ版ではなくなり、最も要望の多かった機能が追加され、可能な限りのバグ修正が行われました。また XR のサポートも、モバイル専用パスやボリュームブレンディング、またカスタムのユーザーエフェクト用の完全なフレームワークの追加によって改良されました。

本バージョンのポストプロセッシングスタックを皮切りに、今後それに続く多数のパッケージのリリースが予定されています。アセットストアパッケージ同様に利便性のあるプラグイン形式で、かつ Unity の根幹機能と同様に更新が可能になります。

2018.1 で改良されたポストプロセッシングスタックには、質の高いエフェクトと、強力なオーバーライドスタックが使用できる自動ボリュームブレンディング、またユーザー独自のカスタムエフェクトを記述・配布するための自在度の高いフレームワークが搭載されました。LW RP、HD RP、組み込みのレンダリングパイプラインとの互換性も備えています。

Dynamic Resolution が PS4 に対応

Dynamic Resolution は Unity 2017.3 で Xbox One 向けに初めてリリースされました。今バージョンではこの機能が PS4 にも使用可能になりました。この機能はユーザーが動的に GPU 予算を管理できるようにするものです。例えば、高解像度(4K など)に達することがあるゲームなどに適しています。しかしそれ以外の場合は、GPU パフォーマンス向上のために解像度を落とすほうが推奨されます。

ユーザーは Dynamic Resolution を適用したいレンダーテクスチャとカメラを Unity エディターで選択し、それらの解像度を 1 つのスクリプト呼び出しからランタイムで調整できます。FrameTimingManager の提供する情報と Dynamic Resolution の組み合わせによって、ユーザーは、(選択されたレンダーターゲットの解像度を変えることで)自動的に GPU 負担のバランスを取るスクリプトを作成することができます。このシステムがレンダーターゲットに対して割り当てるメモリのサイズは、Dynamic Resolution を使用しない場合より大きくなることはないので、解像度が変更された際に大きな CPU パフォーマンスオーバーヘッドが発生することはありません。

(注)ユーザーは、Dynamic Resolution を導入する前に、自分のゲームが GPU バウンドになり得ることを必ず確認する必要があります。CPU バウンドの場合はこの機能は役に立たないからです。

GPU インスタンシングが GI に対応

GPU インスタンシングが、インスタンス毎のグローバルイルミネーションデータのフェッチングに対応になりました。これを行う方法は 2 つあります。ひとつは、Unity レンダーループに自動的に LightProbe-lit または Lightmap-lit オブジェクトををバッチ化させる方法です。もうひとつは、明示的に新しい API を呼び出して、(後にインスタンストレンダリングに使用される)MaterialPropertyBlock オブジェクト内に、シーンと共にベイクされた LightProbe データを展開する方法です。

ライトマップ UV のオーバーラップの視覚化

この機能は、不都合なアーティファクトに関係した問題を解決します。これは、ライトマップが多数のチャートに分割されて抽出されていて、あるチャートのテクセルの値が(近過ぎて)別のチャートにブリードしてしまうことで、アーティファクトが発生する場合に起こります。新しく追加された UV Overlap Visualization 機能によって、この問題の影響が及んでいるチャートやテクセルを即座に確認することができます。自動的にオーバーラップが特定されるので、その情報に基づいて(チャートの余白を大きくするなどの方法で)問題を解決する際に役立ちます。

Metal のテッセレーション

Metal のテッセレーションは、低精度のメッシュを使用しながらビジュアル面のリアリティを向上させる方法のひとつです。従来の DX11 ハードウェアのテッセレーション方法(hull/domain シェーダーステージを使用する)を踏襲しています。この機能を使用している既存の HLSL シェーダーはクロスコンパイルされて Metal コンピュートシェーダー内に透過的に変換されるので、プラットフォーム間でなるべくシームレスに移行が行えるようになっています。(ターゲットのグラフィック API によって、テッセレーション実装のネイティブのアプローチは異なります。)

グラフィックス関連のその他の改良点と機能

スカイオクルージョンは 2018.1 では試験的機能としてリリースされています。スカイボックスからのライティングをアンビエントオクルージョンの計算に含めることにより、グラフィックスのリアリティと写実性を向上させます。

また、ライトの情報を GI ベイキングのバックエンドにパスする、新しい試験的な C# インターフェースも追加しました。

2D

2D 物理演算

デバイス上で全ての CPU コアを使用してリジッドボディのシミュレーションを実行できるようになりました。これには、新しい接点の検知の実行や、離散・連続の両方の Island ソルバーとブロードフェーズ同期の実行が含まれます。これらは全てネイティブ Job System を使用して行われます。これは、2D Physics 設定を開いて「Job Options (Experimental)」の下にある「Use Multithreading」にチェックマークを入れるだけで簡単に使用を開始できます。また、ジョブベースの物理演算用のテストプロジェクト(この機能の開発中に使用されたもの)もいくつか含めました。こちらは Github から入手可能です。

2D SpriteShape プレビュー版(パッケージ)

SpriteShape は、スプライトのレイアウトと世界作成のためのツールで、特定の角度範囲に基づいた形状のパスに沿ってスプライトをタイル状に配置することができます。更に、この形状はタイル状テクスチャで埋めることもできます。

SpriteShape 機能の主な利点は、スプライトの適応的または連続的タイル化機能とベジエスプラインパスとの強力な組み合わせです。連続的なタイリングの場合、特定の角度にアサインされたスプライトが自動的に切り替わります。

この機能は現段階ではプレビュー版パッケージとして入手可能になっています。サンプルプロジェクトとドキュメンテーションはこちらで入手していただけます。

Unity のフォーラムで、この機能を使用されたご感想やご意見をお聞かせください。この機能はご自身のワークフローにうまく適合していますか?プロジェクトの改善に繋がりましたか?円滑に運んだ、あるいは運ばなかったのはどんな部分ですか?

2D アニメーションシステム プレビュー版(パッケージ)

新しい 2D アニメーションシステムも開発中です。こちらは今後段階的にリリースする予定ですが、現時点ではプレビュー版が入手可能です。

初回のリリースは、骨格アニメーションのスプライトのリギング用ツールの開発に重点を置いたものでした(Anima2D の Unity へ統合とは、状況は似ているかもしれませんが異なります)。

ツールには、バインドポーズ編集、手動メッシュテッセレーション、スキンウェイトペインティングが含まれます。ひとつのランタイムコンポーネントが全てをまとめてスプライトの変形を制御します。このシステムは、単一のスプライトから成る単純なアニメーションキャラクターの作成を可能にするために開発されたものです。

現在進行中のプロジェクト

今後も更に新しい機能やワークフローを開発・追加していく予定です。複数のスプライトを使ったキャラクターの作成をより効率的に行える、より大規模な制作のワークフローにも対応できるツールもご提供できるかもしれません。これは複数のスプライトを使用した複雑なキャラクターの作成を可能にします。また、異なるキャラクター間でリグとアニメーションクリップの共有も行えるようになるかもしれません。

現在、この機能のプレビュー版パッケージが入手可能です。サンプルプロジェクトとドキュメンテーションはこちらでご入手いただけます。お試しになったご意見・ご感想を是非お聞かせください。うまく対応できているワークフロー、対応し切れていないワークフロー、改善案など、専用フォーラムにお寄せいただければ幸いです。

パーティクルシステムの改良

GPU メッシュインスタンシング

パーティクルシステムが GPU インスタンシングに対応になりました。これにより、各段に少ない CPU パフォーマンスコストで、より多くのパーティクルメッシュがレンダーできるようになりました。パーティクルシステムはプロシージャルインスタンシングを使用しています。これに関してはこちらで詳細な説明をご提供しています

Particle Standard Shaders にインスタンシングへの対応が追加され、全ての新しいコンテンツにデフォルトで有効化されます。また、手動になりますが、Unity 2018.1 より前のバージョンで作ったコンテンツに対してインスタンシングを有効化することもできます。これは Renderer Module 内のチェックボックスをクリックするだけで簡単に行えます。また、ご自身のシェーダーにパーティクルインスタンシングへの対応を追加することも可能です。

以下は、インスタンス化しない旧方式を使用した、8.6 FPS でレンダーされた 10,000 個の球体メッシュ(上)と、インスタンス化する新方式を使用した、85 FPS でレンダーされた 100,000 個の球体メッシュ(下)です。

Orbital Particle Velocity

Unity 2018.1 では Velocity over Lifetime モジュールに新しいオプションがいくつか追加され、設定した点を中心にしてパーティクルを動かすことができるようになりました。デフォルトでは中心は Transform に合わせられていますが、Module 内でオーバーライド可能です。Orbital パラメータ―でパーティクルが中心点の周りを巡るようにしたり、Radial パラメータ―で中心点に近付けたり遠ざけたりすることも可能です。

Textured Shape モジュール

このモジュール内の全ての形状タイプがテクスチャに対応するようになりました。テクスチャを使用して以下の事を行えます。

  • パーティクルの色の制御
  • パーティクルのアルファの制御
  • 任意のしきい値とテクスチャチャンネルに基づくパーティクルの破棄

Sub Emitter

Unity 2018.1 で Sub Emitter を生成する方法は 2 つあります。1 つ目は Trigger モジュールを使用したもので、これは Collision モジュールからの Sub Emitter の生成と類似しています。Sub Emitter モジュール内で Sub Emitter タイプを Trigger に設定すると、Trigger モジュール内で条件が満たされた時(パーティクルが衝突ボリュームに入った時)に、対応した Sub Emitter がトリガーされます。

2 つ目は新しい方法で、スクリプトからトリガーする方法です。TriggerSubEmitter という新しいスクリプト API を追加しました。これを使って、単一あるいは一式のパーティクル、または全パーティクルに、Sub Emitter をトリガーできます。Sub Emitter モジュール内で生成タイプを Manual に設定すると、パーティクルシステムは、スクリプト内での呼び出しによってのみこのエミッターをトリガーするようになります。また、既存のタイプ(Collision または Death)を使用して、スクリプト経由でこれらの Sub Emitter のための付加的なトリガーを追加することも可能です。

旧パーティクルシステムの廃止

旧パーティクルシステムは、それに対応している全てのバージョンの Unity で、今後も開発に負担を掛ける事になります。VR やマルチスレッドレンダリングなどの新しいエンジン機能に関しては、Unity が進化するごとに互換性の確認に時間を費やさなければなりません。そして当然、新しいエンジン機能は常に存在するため、旧パーティクルシステムのコードの維持・管理に常に労力を費やすこととなります。

このため、論理的に考えて次に取るべきステップは旧パーティクルシステムの廃止であるという結論に達しました。したがって Unity 2018.1 でそのスクリプトバインディングを削除する運びとなりました。

旧パーティクルシステムは Unity 5.4 をもって完全に非推奨化されており、Unity アナリティクスのデータによるとほぼ使用されていない状態です。旧パーティクルシステムは Unity 2018.3 を目途に完全な削除を予定しています。

上記によって不都合が生じる場合は、以下の選択肢があります。

発生し得る問題を全て完全に解決できるとは限りませんが、懸念される問題がある場合はご報告ください。影響を最小限に抑えるべく、出来る限りのサポートをさせていただきます。

アニメーション

ウェイト付き接線(Weighted Tangent)(アニメーションカーブ)

ウェイト付き接線(Weighted Tangent)を使用すると、アニメーターは、アニメーションカーブをより少ないキーとより滑らかなカーブで作成できます。これは、接線がウェイトを制御できるようにすることによって行われます。接線を Weighted に設定すると、付加的なキーを追加することなくストレッチしてカーブ補間に影響を与えることができ、より滑らかで精密な結果を得ることができます。

アニメーションチームは、Unity における全てのカーブ編集をウェイト付き接線に対応させました。したがって、この新機能はパーティクルシステムと併用することができます。

追加されたベジエハンドルとウェイト付き接線のおかげで、(接線のウェイトを制御することで)より少ないキーとより滑らかなカーブでアニメーションカーブを作成することができます。接線を Weighted に設定すると、付加的なキーを追加することなくストレッチしてカーブ補間に影響を与えることができ、より滑らかで精密な結果を得ることができます。

また、シンプルながらも非常に便利なズーム制御機能もアニメーターコントローラーウィンドウに追加されました!

 

ProBuilder(パッケージ)

本ブログで2 月に発表した通り、ProBuilder とその開発チームが Unity の仲間に加わりました。ProBuilder、PolyGrid、Polybrush の 3 つのツールによって、Unity エディター内で、統合された高度なレベルデザインを付加的なコストなしで行えるようになりました。パッケージは ProBuilder、ProGrid、Polybrush で構成されており、Unity の全サブスクリプションプラン(Personal、Plus、Pro、Enterprise)に含まれています。

ProBuilder は他では見られない、3D モデリングツールとレベルデザインツールのハイブリッドです。シンプルなジオメトリの構築用に最適化されていますが、必要に応じて詳細な編集と UV 展開も行うことができます。

ProBuilder を使用すると、構造物や複雑な地形、車両、武器などの素早いプロトタイピングが可能です。また衝突ジオメトリやトリガーゾーン、ナビメッシュのカスタム作成も行えます。

また ProBuilder には、モデルのエクスポート用ツール、インポートされたメッシュの編集用ツールが含まれているほか、ProBuilder ツールセットにユーザーのコードからアクセスできる、ランタイムですぐに使用できる API も含まれています。

これに加えて ProGrid は、3 つの軸にスナップする視覚的かつ機能的なグリッドを提供します。グリッドを基準にして作業することで作業スピードも品質も向上させることができ、ステージ構築を非常に迅速・簡単・精密に行えます。特にモジュラー環境やタイルベースの環境で便利ですが、ProBuilder と組み合わせれば、どのような環境においても、より迅速で精密なジオメトリ構築が可能になります。詳細は ProGrid の概要およびチュートリアル(英語動画)でご覧ください。こちらのブログ記事の下部にスクロールすると、ProGrid の統合と入手に関する情報をご覧いただけます

Polybrush を使用すると、Unity エディター内で直接、テクスチャと色をブレンドしたり、メッシュをスカルプトしたり、オブジェクトを散布させたりすることができます。ProBuilder と組み合わせると、完全にエディター内で完結するレベルデザインソリューションとなります。

ついに、Maya などのデジタルコンテンツ制作ツールと Unity をシームレスに行き来して、モデルのディテール調整やブラッシュアップをお楽しみいただけるようになりました。

以下の画像は、ProBuilder を使用して簡単に構造物や複雑な地形・車両・武器などのプロトタイピングを行ったり、衝突ジオメトリやトリガーゾーン、ナビメッシュのカスタム作成を行っている例です。

押し出しと差し込み

 

プロシージャルシェイプ

 

シーン内 UV 制御

 

自在に形状を編集可能

 

ProBuilder は、数多くの Unity 製ゲームで使用されています。こちらのハイライト動画(英語)をご覧ください。

こちらの短い動画(英語)で、ProBuilder の機能を概略的に紹介しています。

Polybrush を使用すると、Unity エディター内で直接、テクスチャーやカラーをブレンドしたり、メッシュをスカルプトすることができます。

Polybrush はベータ版ですが、最新のイテレーションで新機能がひとつ追加されました。高度にカスタマイズ可能なブラシを使って、ワールド内にオブジェクトを散布させることができるようになりました。

テクスチャをブレンドする

 

頂点色をペイントする

 

細かいメッシュを配置する
ジオメトリをスカルプトする

 

詳しくは Polybrush Introduction and Tutorial(英語)をご覧ください。

ProBuilder、Polybrush、ProGrid はひとつのパッケージとして、精密なジオメトリの素早い構築を完全にエディター内で行うためのレベルデザイン用ソリューションを提供します。

ProBuilder は新しい Unity Package Manager 経由で入手可能です。同パッケージの他の 2 つの要素は 2018 のリリースサイクル中に Unity に直接統合される予定ですが、現時点ではアセットストアから無料でダウンロードしていただけます([Polybrush(ベータ版)] [ProGrids])。

使用を開始するには

Unity エディター内で Window メニューからPackage Manager を開き、「All」をクリックして「ProBuilder」を選択し、「Install」をクリックしてください。

詳細はドキュメンテーション(英語)およびチュートリアル動画『Getting Started with ProBuilder for Unity』(英語)をご覧ください。

既にいずれかのパッケージを購入されている方は、こちらのブログ記事の「ツールの入手方法とロードマップ」のセクションで詳細をご確認ください。

エンジンの中核システム

C# Job System、Entity Component System および Burst コンパイラー

新しい高性能マルチスレッドシステムによって、Unity の中核を成すシステムが再構築されます。新しいシステムによって、プログラミングに頭を悩ませることなく、そのとき利用可能なマルチコアプロセッサーをゲームでフル活用できるようになります。これは、パラレルコードを記述する安全で簡単なサンドボックスを提供する、新しい C# Job System の賜物です。また、Entity Component System を利用してデフォルトで効率の良いコードを書く新モデルと、高度に最適化されたネイティブコードを生成する Burst コンパイラーも新しく搭載されました。

パフォーマンスがデフォルトで用意されることで、ゲームを実行できるハードウェアの幅が広がるばかりでなく、より多くのユニット・より複雑性の高いシミュレーションによって、更に豊かなゲーム世界の創作が可能になります。

C# Job System

迅速なパラレルコードを C# で記述し、マルチコアプロセッサーをフル活用しよう

モダンなハードウェアアーキテクチャのトレンドは、コアの速度を増加させる従来の方法ではなく、マルチコアによって処理能力を優先させる方向に進みつつあります。C# Job System の登場によって、処理能力向上による利益をフルに活かすことができます。

C# Job System を使うと、スピードの速いジョブ化されたコードを C# スクリプトで記述できます。また、競合状態やデッドロックなどの、マルチスレッドの落とし穴を回避する仕組みも提供されているので安全です。

全般的なパフォーマンスの向上

C# Job System はパフォーマンスを全般的に向上させます。特に、Entity Component System(2018.1 プレビュー版)や新しい Burst コンパイラ(2018.1 プレビュー版)などの新機能が利用可能になったことで、その利点は一層強化されます。これらのシステムは全て、Unity の基本的なパフォーマンス能力を底上げしながら既存のワークフローに引き続き対応し、技術的な移行をスムーズに行うために開発されたものです。

必要な作業

こうしたパフォーマンス向上の効果を得るには、Unity でのコードの記述方法を一部変更する必要があります。まず、計算中にメモリ内の複数の場所からデータを引っ張って来るのではなく、クリーンでリニアなデータ配列を CPU が読み出せるようにすることで、処理速度が大幅に向上します。積極的なメモリ管理を行うことがパフォーマンスの最適化に繋がります。Unity の API に追加された新しいツールのセットによって、データレイアウトやメモリの管理方法を詳細に明示的に管理することができます。

 

Entity Component System(プレビュー版)

Entity Component System は、実際に解決しようとしている問題、つまりゲームを構成するデータと挙動に焦点を合わせた、コード記述の方法です。

ゲームのプログラミングへのアプロ―チとして、デザインの観点から見てより優れているだけでなく、Entity Component System を使用すると Unity の Job System と Burst コンパイラーを活用する上で理想的な状況が作られ、モダンなマルチコアプロセッサーをフル活用することができます。

Unity では、オブジェクト指向のアプローチからデータ指向のデザインに移行するために Entity Component System を利用しています。これにより、コードが再利用しやすくなり、記述者本人以外も理解・作業しやすくなります。

Entity Component System は 2018.1 ではプレビューパッケージとしてリリースされ、2018.x のリリースサイクルで継続的に改良され、新しいバージョンが公開されていく予定です。

Burst コンパイラー(プレビュー版)

Burst は LLVM ベースのコンパイラーで、.NET IL から、数値演算を意識した新しいバックエンドコンパイラー技術によってマシンコードを生成します。Burst は C# ジョブから高度に最適化されたコードを生成します。このコードはコンパイルのターゲットプラットフォーム特有の能力を活用します。したがって、手動で調整されたアセンブラコードの利点の多くを複数のプラットフォームで苦労せずに得ることができます。

Burst コンパイラーは 2018.1 ではプレビュー版としてリリースされ、2018.x のリリースサイクルで継続的に改良され、新しいバージョンが公開されていく予定です。

今後の Unity でのパフォーマンスの最適化について深く掘り下げた講演です。高機能 C# スクリプトの提供のための継続的な開発について解説しており、C# Job System と Entity Component の両方を網羅した内容となっています。動画『Writing High-Performance C# Scripts』(英語)をご覧ください

 

C# Job System を使い始める際の助けとなるよう、C# Job System を使った大規模システムの記述例のレポジトリもご提供していますので、ご参照・ご共有ください。[C# Job System Cookbook].

Entity Component System を使ったビルド方法に関する詳細は、Entity Component System Samplesをご覧ください。

アセットのインポート

昨秋の Unite Austin 2017 で、Autodesk の 3D ツールと Unity エンジンのより密接な連携によるワークフローを構築するための、Unity と Autodesk の共同パートナーシップを発表させていただきました。

以来、3dsMax/Maya/Unity のワークフローを利用する全てのゲームデベロッパーとアーティストのための相互運用性の改善を行ってまいりました。

目標は、変更を安全にアセットに適用し戻して作業を続行できる、アーティストによって使いやすいインターフェースとワークフローを実現することです。

ウィンドウを切り替えながら作業を行う場合、アセットは往々にして、編集され、名前が変更され、場合によっては性質が変わってしまうこともあります。これを解決するため Unity では、外部のアプリケーションによって FBX に加えられた修正を、情報を欠損することなく元々のアセットにリマップできるようにする計画です。

ワークフローと統合に関する改良点としてはこの他に、ウィンドウ切り替えを伴うライト、アニメーション(カスタムプロパティを含む)作業、ブレンドシェイプ(試験的)などがあります。

キャッシュサーバー v6.0

品質とパフォーマンスの改善に向けた 6 ヶ月にわたる取り組みの結果、リモートキャッシュサーバーのバージョン 6.0 が入手可能になりました。キャッシュサーバーは、ローカルマシン上または専用のエリアネットワークサーバー上でアセットのインポート処理を最適化し、Unity での作業がより迅速になります。この改良によって時間が節約され、個人やチームの開発のプロセスをスピードアップさせます。リモートキャッシュサーバーは GitHub からダウンロードしてください

エディター全般

Package Manager UI

Package Manager

2017.2 では、プロジェクトを構成する Unity 製の機能やアセットを管理するための自在度の高いモジュラー方式の新しいアプローチとして、Package Manager の第一弾を公開しました。今までは API としてのみ利用可能でしたが、Unity 2018.1 では Package Manager User Interface を新公開します。この新しい Package Manager UI を使うとプロジェクトの開始が更に効率的になり、Unity の新機能のインストール・更新・有効化をより簡単に行えます。

Unity Package Manager UI は、プロジェクト管理ワークフローを以下のように改善します。

  • 新しくリリースされた機能へのクイックアクセス ― ご使用のバージョンのエディターで利用可能な機能の一覧を確認してクラウドからダウンロードできます。パッケージはその場で動的にプロジェクトに含められます。
  • 最新の修正をすぐに取得可能 ― プロジェクト内で有効化したパッケージの確認・ダウンロード・更新が簡単に行えます。
  • プレビュー機能へのアクセス ― Unity の新機能の多くがプレビュー版としてダウンロード可能になり、最新の技術を使用することができます。
  • 軽量プロジェクトが簡単に共有可能 ― Unity パッケージはご自身のマシン内のグローバルキャッシュ内に保存され、プロジェクトによって参照されます。プロジェクトを共有する際にパッケージを送信する必要がありません。エディターが、必要なパッケージをクラウドのレポジトリからフェッチしてダウンロードします。

ウィンドウ内にある Package Manager から、シェーダーグラフ、ポストプロセッシング、ProBuilder、ライトウェイトレンダーパイプライン、HD レンダーパイプラインなどの機能のインストールが可能です。

テストアセンブリを Assembly Definition によって定義可能に

Unity は、マネージドアセンブリへのスクリプトのコンパイル方法を自動的に定義します。プロジェクトに追加するスクリプトが多いほど、反復的なスクリプト変更に掛かる Unity エディターのコンパイル時間が長くなり、したがってコンパイル時間も長くなります。

2017.3 で、ユーザー独自のマネージドアセンブリをフォルダー内のスクリプトに基づいて定義する機能を公開しました。プロジェクトのスクリプトを複数のアセンブリに分割すると、大きなプロジェクトで、エディター上でのスクリプトのコンパイル時間を大幅に削減できます。各マネージドアセンブリを Unity プロジェクト内のひとつのライブラリと考えることができます。

2018.1 では、Assembly Definition File(asmdef)アセンブリが他のどのスクリプト(Assembly-CSharp.dll and friends)よりも先に起動時にコンパイルされるようになり、コンパイル処理が最初のコンパイルエラーで停止しなくなりました。

全ての参照と正常にコンパイルされた asmdef アセンブリは、残りのスクリプト(Assembly-CSharp.dll など)のコンパイル前に読み込まれます。したがって Unity パッケージが(プロジェクト内のその他のコンパイルエラーに関わらず)常に確実にビルドされ、読み込まれるようになります。

またこれにより、パッケージにプレイモードのテストアセンブリが含まれていても、ユーザーのプロジェクト設定を変えなくて済むようになります。

これまでは、プレイモードテストの追加する際はユーザーがそれを設定内で有効化する必要がありました。その結果、ビルド内にアセンブリが登録されることとなり、また、C# デベロッパーがテスト用に設計するプロジェクト内には通常用いる分離もない状態でした。

2018.1 では、テストアセンブリを参照するようにアセンブリをマークすることができます。他のアセンブリは、古い設定が使用されていない限り一切それらを参照しません(後方互換性あり)。ただし、事前定義されたアセンブリもこれらのアセンブリを自動参照しません。

これに加え、新しい BuildOption もデフォルトで追加されました。通常のビルドはこれらの設定ではアセンブリをビルドしません。テストアセンブリを含めてビルドするのは TestRunner のみです。

上記の全てによって、設定を有効化せずにプロジェクト内にテストを含めることが可能となります。

プリセット

プリセットは、その適用先アセットのタイプおよびプロパティ修正のリスト(名前と値の組み合わせ)を含んだアセットです。

プリセットは、シリアライズされたオブジェクトのどれからでも簡単に作成でき、どれにでも簡単に適用できます。これは、オブジェクトのインスペクターの UI から、またはパブリック API メソッドによって行います。

オブジェクトは、適用されたプリセットへのリンクを保持しません。したがって、適用後にプリセットを修正しても二次的な影響はありません。

新公開の Preset Manager で、各オブジェクトタイプに 1 つ、デフォルトのプリセットを登録できます。Unity エディターでオブジェクトが 1 つ作成されると、そのオブジェクトのデフォルトのプリセットが自動的に適用されます。デフォルトのプリセットを変更しても既存のオブジェクトには影響しません。

プリセットはエディター内にのみ存在します。ランタイム API への変更はありません。

プリセットによって、(インポート前に即座にプリセットの適用を可能にする)API フックと、(エディターコードがデフォルトのプリセットでオブジェクトを作成できるようにする)新しいオブジェクト作成 API が使用可能になります。

Substance のビルトインサポート廃止

2017 年 12 月に行った発表通り、Unity 2018.1 のエディターでは、Substance Designer マテリアルインポートのビルトインサポートが廃止になりました。Substance を含める方法に関してはこちらをご覧ください。

Cinemachine とタイムライン

タイムラインの改良と編集モード

2018.1 では、タイムラインにいくつかの改良を加えました。キーボード操作で、タブや方向キーで簡単にトラックの折り畳みや展開ができるようになったので、ワークフローがスピードアップします。

また、タイムラインズームバーが新しく追加され、簡単にズームイン・ズームアウトしてタイムライントラックの全体を確認できるようになりました。

タイムラインに編集モードも追加されました。

クリップの操作を行う際に、ズームベースのスナップ挙動がクリップを近接のクリップに合わせてくれます。ブレンド効果を作り出したい時は、エッジのマグネット挙動を Ctrl キーで解放できます。こうすると、動かしたクリップやトリミングされたクリップが、エッジのマグネット挙動の影響を受けずに近接のクリップにブレンドされます。

以下の 3 つのモードが搭載されています。

  • Mix モードでは、2 つのクリップをブレンドして遷移を作ることができます。従来のタイムラインの挙動を踏襲する方式です。デフォルトの編集モードはこれになります。
  • Rippling モードでは、新しいマテリアルのためのスペースを作って、既にクリップが含まれるトラックにクリップを挿入することができます。
  • Replace モードでは、トラックに既に含まれているクリップを他のクリップで上書きして、タイミングを保持しながらマテリアルを更新することができます。

希望のモードを選択できる 3 つの新しいボタンが搭載されました。

Cinemachine の改良

Cinemachine は 2018.1 で多くの改良が行われました。Cinemachine Storyboard は、Cinemachine クリップの機能のひとつとして搭載された、タイムライン上でストーリーボードのタイミングと基本的なアニメーションの設定を行える機能です。これによりストーリーテリングのプロセスが最初から最後まで Unity で行えるようになり、開発チームのメンバーが創作プロセス全体を通して一貫して関わり続けることが容易になりました。

ボードのペースを調整したり、クロスフェードを行ったり、基本的なズームや動きを「Ken Burns」方式で行うことができます。

ストーリーのあらすじを固めてタイミングとショットを自由に調整してみましょう。オーディオを追加してリアリスティックな印象を与え、ストーリーをまとめ上げましょう。準備が整ったら、編集は維持したままで、ストーリーボードと Cinemachine カメラの切り替えをボタンひとつで行うことができます。

ストーリーボードの作成とプレビジュアライゼーション編集を他のツールで行う必要はありません。全てを Unity 上で行えます。

この他にも、Package Manager の統合、カメラのシェイクシステム、カスタムカメラブレンドカーブへの対応、その他多数の改良が加えられています。

スクリプト

MonoDevelop の廃止

私達は、新しい C# 機能と一緒に優れた C# IDE 体験をお届けすることが重要であると考えています。したがって、(1 月のブログ記事での発表通り、)MacOS の新しい .NET 4.6 スクリプティングランタイムで最新の C# 機能と C# デバッギングに対応するために、Unity 2018.1 をもって MonoDevelop-Unity 5.9.6 を Visual Studio for Mac に差し替えます。これにより、(現時点では試作版の).NET 4.6 スクリプティングランタイムの Unity でのアップグレードと共に、C# 6.0 以降で利用可能な既存の C# 機能の多くに対するサポートの質を向上できると考えています。

Windows では、引き続き Visual Studio 2017 Community を Unity に同梱します。Visual Studio Community は既に最新の C# 機能と C# デバッギングを新しい .NET 4.6 スクリプティングランタイムでサポートしています。MonoDevelop-Unity 5.9.6 はこれらの機能に対応していないため、Unity 2018.1 の Windows インストーラーから削除されます。

また Visual Studio Code は、IntelliSense に対応するために Unity とその拡張機能をサポートしており、また Unity C# プロジェクトのデバッグをサポートするために Unity Debugger Extensionにも対応しています。詳細は Unity Development with VS Code をご覧ください。これによる影響と代替 IDE についての詳細はこちらのブログ記事でお読みいただけます。

皆様からのフィードバックをお待ちしております。また、Visual Studio およびその Unity への統合に関する問題がございましたら https://developercommunity.visualstudio.com/にご報告ください。

Windows スタンドアロンおよび MacOS スタンドアロン用の IL2CPP スクリプティングバックエンド

2018.1 では、Windows スタンドアロンと MacOS スタンドアロン用の IL2CPP スクリプティングバックエンドを追加しました。これにより、Mac/OSX スタンドアロンと Windows スタンドアロン プレイヤーへの IL2CPP の CPU 速度が向上し、サードパーティーの分散リソース管理技術をアプリケーションのコードに安全に役立てることができるようになります。

スクリプトのアップグレード .NET 4.x

新しいスクリプティングランタイムは Unity 2018.1 では試作版ではなくなり、安定スクリプティングランタイムの初回プレビュー版となります。2017.2 と 2017.3 のリリースサイクル中、多くの Unity ユーザーの皆様がこの試作版スクリプティングランタイムをご使用になり、貴重なフィードバックをお寄せくださいました。(有り難うございます!)また、この開発は Microsoft の Mono および Visual Studio 両チームの優秀なデベロッパーとの協力によって進められました。色々な問題が解決されて不具合の修正が完了したことで、このモダンなスクリプティングランタイムは格段に安定したものとなり、多くの方に広くお使いいただく準備が整いました。

アップグレードされたコンパイラーとランタイムによって、安定性が向上し、デバッグ機能がより豊富になり、モダンな .NET アーキテクチャとの整合性が全てのプラットフォームで改善されました。例えば、C# 6 と新しい .NET API によって、Unity にモダンな .NET ライブラリやツールとの互換性がもたらされます。

Standard 2.0 .NET への対応と新しい「Unity」プロファイル

新しいスクリプティングランタイムと一緒に 2 つのプロファイルが利用可能です。 .NET 4.x.NET Standard 2.0 です。両方とも .NET Standard 2.0 に完全対応しており、最新のクロスプラットフォームライブラリが使用できるようになっています。.NET Standard 2.0プロファイルは、小さなビルドサイズ、クロスプラットフォーム対応、事前コンパイル用に最適化されています。.NET 4.x プロファイルは大きな API サーフェスを使用可能にし、主に後方互換のために存在します。

Resonance Audio ― モバイルおよびデスクトップ用空間オーディオ

Google の空間オーディオ SDK である Resonance Audio が Unity 2018.1 に完全統合され、よりリアリスティックな VR および AR 体験がモバイルとデスクトップで作成可能になりました。Resonance Audio が Unity エディターに統合されたことで、同時に何百もの 3D 音源を最高の忠実度で、Android、iOS、Windows、MacOS、Linux の XR、3D および 360 動画プロジェクトでレンダーできるようになりました。

Unity で作成された最近のゲームの例では、Pixar による Gear VR 向けの 『Coco VR』、Disney による Android・iOS 向け AR アプリ『Star WarsTM: Jedi Challenges』、Runway による Daydream 向け『Flutter VR』などが挙げられます。

XR

ネイティブのマルチプラットフォーム AR API(プレビュー版)

新しいネイティブのマルチプラットフォーム XR API が今リリースで搭載されました。初回版はハンドヘルド AR SDK での抽出を目的としたものですが、これにより今後更に拡張したフレームワークを提供するための基盤が敷かれました。この API は、デベロッパーがハンドヘルド AR アプリケーションを一旦ビルドして、複数のデバイスタイプに亘ってデプロイできるようにするために設計されたものです。この API に機能が追加されたので、将来的には、Bitbucket の ARKit プラグインと GitHub の試験的 ARInterace プロジェクトは廃止される予定です。ハンドヘルド AR SDK への対応はプレビュー版パッケージとしてエディター内に提供されます。

Magic Leap

Magic Leap の使用を開始したい皆様、お待たせいたしました。Unity for Magic Leap テクニカルプレビュー版 と Lumin SDK が Magic Leap Creator Portal上で入手可能になりました。

2018 にリリースされる Magic Leap One™ と Creator Edition は、Magic Leap プラットフォーム向けのゲーム体験をビルドしたいデザイナーとデベロッパー用に設計されました。

 

Magic Leap テクニカルプレビュー版は、この新しいプラットフォームに興味をお持ちの全ての皆様のために提供されています。2018.1 の機能に加えて、テクニカルプレビュー版では、Build ウィンドウの下にターゲットプラットフォームとして新しく Magic Leap の Lumin OS が追加されています。Lumin SDK とこのプレビュー版を組み合わせれば、Magic Leap Zero と(ハードウェアプラットフォームのシミュレーションを行える)Magic Leap Remote にもアクセスできるようになります。こちらで詳細をご覧ください

Daydream スタンドアロン VR ヘッドセット

Unity 2018.1 は、Worldsense 技術を用いた Google の Daydream スタンドアロン VR ヘッドセットに対応しており、これにより、Daydream アプリケーションでインサイドアウトの 6 自由度(6DoF)トラッキングが対応可能になりました。これを使って早速ビルドを開始し、今年予定されているハードウェアのリリースをお待ちください!

ARCore 1.1 for Unity

ARCore がプレビュー版でなくなり、Google Play で 100,000,000 台以上の Android 対応デバイス向けに、質の高い AR アプリケーションを発表することが可能になりました。また ARCore 1.1 for Unity は、Oriented Feature Point(缶やボックスや本などの仮想コンテンツを Detected Feature Point に近接したサーフェスに配置できる新しい機能)によってシーン環境の把握を助けます。更に ARCore Instant Preview によって、ほぼリアルタイムでの AR アプリケーションのテストやイテレーションも行えます。Unity 2018.1 に ARCore が提供することについての詳細は、こちらをご覧ください。.

ARcore Instant Preview ― デバイスからのデータが Unity エディターにストリーミングされ、ゲームウィンドウに表示されます。

 

Oriented points ― 2 つの仮想スタッドが、反対側から見ると壁に配置されています。

360 度立体画像/動画キャプチャー

360 度環境のトレーラーを制作してスキルを見せつけたい VR デベロッパーにとっても、人を夢中にするシネマティックな短編映像を制作したいディレクターにとっても、さらに簡単なワークフローが実現されました。立体的な 360 度画像と映像を Unity でキャプチャーする新しい技術が、没入感のある体験の創造をサポートし、YouTubeWithinJauntFacebook 360Steam 360 Video などのプラットフォームで何百万人ものオーディエンスへの共有を後押しします。

Unity の、デバイスに依存しない 360 度立体キャプチャー技術は、立体キューブマップレンダリングを使用した Google の Omni-Directional Stereo(ODS) 技術をベースにしいます。Unity はグラフィックスパイプライン内で、Unity エディター内および PC スタンドアロンプレイヤー上の両方で、立体キューブマップへのレンダリングにネイティブ対応しています。立体キューブマップは生成後に(360 度映像プレイヤーの使用する投影法である)立体正距円筒によるマップに変換されます。

立体 360 度キャプチャーは、スクリーンスペース、キューブマップシャドウ、スカイボックス、MSAA、HDR、および新しいポストプロセッシングスタックと併用でき、フォワードおよびディファ―ドのライティングパイプラインで機能します。

詳細はこちらのブログ記事をご覧ください。

360 度立体視機能の試験版によって、平面視または立体視の 360 度画像のキューブマップ画像としてのキャプチャーが対応になりました。エディター上およびランタイムで機能します。

プラットフォーム

Android ARM64(プレビュー版)

2018.1 では、IL2CPP 技術をベースにした Android 用の ARM64 ビットランタイムへの対応が追加されました。現時点で Unity で Android 用に作成できるのは 32 ビット ARM か x86 ビルドのみです。現在、ほぼ全てのチップセットが 64 ビット版として公開されていますが、潜在的な利点をまだ活用できていません。64 ビット Android アプリケーション実行に対応したことで、パフォーマンス面でメリットがもたらされると共に、ゲームが 4GB 以上のメモリ領域を扱えるようになります。

非 VR アプリケーション用の Android Sustained Performance Mode

Android Sustained Performance Mode は、デバイスパフォーマンスを長期間に亘って予測可能で一貫性のあるレベルに設定し、サーマルスロットリングを防ぎます。これにより、バッテリー寿命を延長でき、パフォーマンスと引き換えに滑らかなユーザー体験が実現されます。これは Google の Sustained Performance API がベースになっています。この設定は VR アプリケーション向けには既に使用可能でしたが、非 VR アプリケーション向けにも使用可能になりました。

パフォーマンスのレポート

Performance Reporting(Unity Plus および Unity Pro に含まれます)が、MacOS とモバイルプラットフォーム(iOS と Android)だけでなくWindows デスクトップにも対応になりました。Windows のネイティブのクラッシュがレポートされるようになり、Unity Developer Dashboardで確認・デバッグ可能になりました。またダッシュボードも更新され、レポートの管理・表示に新機能が加わっただけでなく、特に使用頻度の高いプロジェクトのためのパフォーマンスが改善されています。

リリースノート

新機能・改良・修正の一覧はリリースノートでご確認いただけます。また、フォーラムに是非フィードバックをお寄せください。

2018.1 ― 2 つの新しいサポートストリームのご紹介

GDC にて、Unity の新しいリリースプランを発表しました。新しいリリースプランは TECH ストリームと長期サポートストリーム(LTS)の 2 つのストリームで構成されます。TECH ストリームでは毎年 3 回のメジャーリリースがあり、各メジャーリリースには新機能が盛り込まれます。その年のうち最後にリリースされた TECH ストリームでのリリースがその年の LTS ストリームでの最初のリリースとなり、翌年へと持ち越されます。

TECH ストリームと LTS ストリームの導入により、それぞれのリリースを 1 年間サポートする現在の体制から大きく転換することになります。新しいリリースサイクルでは、

TECH ストリームでの特定のメジャーリリースのサポートは、そのメジャーリリースの次のバージョンがリリースされると同時に終了します。
LTS ストリームでのリリースは 2 年間サポートされます。

それぞれのリリースへの Unity のアプローチは、上記の点以外にも、以下のように変化します。

リリース回数が 4 回から 3 回に変更 ― これまでの年 4 回リリースを行う体制から、年に 3 回 TECH ストリームでのリリースを行う体制に移行します。

その年の最初のリリースは春に行う ― TECH ストリームは毎年春に開始するものとします。今年のリリースバージョンは 2018.1 から始まります。春にリリースを行った後は、夏と秋にそれぞれリリースを行います。

バグフィックスの頻度: ― TECH ストリームでは毎週バグフィックスをリリースします。これに対して、LTS ストリームでは隔週でバグフィックスをリリースします。

パッチからアップデートに変更― 毎週リリースされるパッチには「.p#」サフィックスが付与されなくなります。これはパッチに対するテストを改善して、リリースするものはパッチではなくすべてのユーザーにお使いいただけるアップデートになると判断したためです。

新しいストリームの運用

最初の LTS ストリームでのリリースは2017.4 となります。これは 2017.3 に最新のアップデートを適用したリリースです。「2017.3」から「2017.4」へのバージョン番号の変更は、新しい LTS サイクルが開始したことを示します。つまり、「xxxx.1」「xxxx.2」「xxxx.3」というバージョン番号がつけられたリリースは TECH ストリームでのリリース、「xxxx.4」というバージョン番号がつけられたリリースは LTS ストリームでのリリースであることを示しています。

TECH ストリーム、LTS ストリームの両方で行われる定期アップデートでは、連続したバージョン番号がつけられます。たとえば、2017.4.0 の次は 2017.4.1、2017.4.2、2017.4.3、…のように、アップデートごとにバージョン番号が上がっていきます。

下の図は 2 つのストリームがどのように運用されるかを示したものです。青いボックスは TECH ストリームを、緑のボックスは LTS ストリームの開始を示します。

LTS について詳しく知りたい方は、こちらのブログ記事 の「よくある質問」を是非ご覧ください。

2018.1 ベータ版のテストにご協力くださった皆様に感謝申し上げます。

ベータテストにご協力くださった皆様のおかげで 2018.1 のリリースが実現されました。本当にありがとうございました。新機能をいち早くご試用くださったこと、素晴らしいフィードバックをお寄せ下さったことに、感謝申し上げます。

2018.1 懸賞当選者に関して

2018.1 ベータ版の懸賞当選者の全ての皆様には連絡済です。幸運な当選者の皆様には、数週間のうちに懸賞が届けられます。

2018.2 ベータ版のテストにご参加ください

まだベータ版のテスターになられていない方は、是非参加をご検討ください。最新の機能に早期アクセス可能となり、ご自身のプロジェクトに新ベータ版と互換性があるかどうか確認することもできます。ベータ版のテスターになると以下のことが行えます。

  • 全ての最新機能に、公式リリース前に早期アクセスできます。
  • 互換性をテストして、プロジェクトのアップグレードを行う準備が整っているか確認できます。
  • 経験と知識が豊富な Unity コミュニティのメンバーと交流し、意見交換を行えます。
  • 素敵な懸賞に当たる可能性もあります — ベータ版のテスターは自動的に懸賞にエントリーされます。
  • アンケートやフィードバックをお寄せいただくことで、Unity の未来に影響を与えることができます。座談会に参加できるチャンスもあります。
  • 割引や特別イベントへの招待など、特別なメリットを得られるグループの一員になれます。

ベータ版のアンケートからの皆様のフィードバックを基に、数多くの新しい取り組みの開始を予定しています。このオープンなベータ版の仕組みを、より形式化されたプログラムとして進化させます。これにより、更に効率的で迅速な QA プロセスが実現され、最終的には更にブラッシュアップされた製品に繋がります。

最新のベータ版はこちらでダウンロードできます。全ての新機能が利用できるだけでなく、不具合を報告していただくことで、最高品質のソフトウェアの実現に寄与できます。

まずは、影響力のあるベータ版テスターになるためのガイド(英語)で概要をご確認ください。ベータ版のニュースやアップデート、ヒントなどに関するメールを受け取りたい方はこちらでサインアップ可能です。

54 コメント

コメントの配信登録

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

  1. Everything that matters are in preview yet.
    After the update my project was broken, It makes my PC works too much that I can’t do anything more during buildings..
    I’m losing a lot of time waiting for the full stable version..
    Until there, my unity project will keep in the fridge.

  2. Luis Morcillo

    6月 3, 2018 10:40 am

    Impressive amount of additions! I wish Linux ARM support was there too. Hopefully someday…

  3. Anton Winkler

    6月 2, 2018 10:32 am

    Hi

  4. When can we expect support for VR with the HDRP?

  5. Looks like the best Unity upgrade to date!

  6. Fantastic job, folks! Especially on 2D. Looking forward to more 2D features in the future.

  7. After switching to 2018 stable, my game began to lag very terribly. Physics2D began to show spikes, ~15FPS. After rolling back to 2017 LTS, everything came back to normal ~50-60FPS. So don’t hurry to switch your main projects to 2018.

    1. This is the first time we’ve heard of such an issue. Would you mind producing a bug report with a simple reproduction case so we can figure out what is wrong? Also, could you look at the profiler to see where the time is going? Feel free to contact me directly on the forums.

  8. what is the water used in 2018.1 video, lightweight render pipeline ? is this an asset or an example we can download ?

  9. With upgrading to .Net 4.x, LLVM backend and “data-oriented design” any chances getting F# support in near future? I would be so excited to use this powerful, yet concise, language in my projects without getting headache of scripting the whole build process ground-up myself.

  10. Would the ProBuilder stuff be retro compatible with 5.6? Mostly interested in the runtime functionality.

    1. Charles Beauchemin

      5月 4, 2018 1:43 am

      Unfortunately, the package manager is not compatible with 5.6. You can find ProBuilder on the Asset Store although it won’t contain all the latest functionalities being developed.

  11. I can´t find 2D SpriteShape Preview (package) and 2D SpriteShape Preview (package) to install in Package Manager … Where they are ???

    1. Charles Beauchemin

      5月 3, 2018 4:37 pm

      Please check our forum post here: https://forum.unity.com/threads/spriteshape-preview-package.522575/
      The 2D packages are on a staging registry and need a specific line to your project manifest.json.

  12. Ok question.
    C# Job System: I don’t understand if this will change my current code/the way I write simple code…
    Can I continue to create class where I write my code in Awake, Start, Update etc…?
    A simple example of how this will change my default way of coding would be great (the video example is not basic). Also I like to let Unity think about the memory management and I don’t need triple A performance… Can I just ignore it?
    Sure if I really need to create something that need performance I will like to give the new Job System a try… But right now I just want to know if I need to rewrite lot’s of my current code or this is only something for advanced performance.

    1. Richard Fine

      5月 3, 2018 10:15 pm

      You’re absolutely free to ignore the Job System if you don’t think you need to use it :)

      1. Thank you.
        I like optional feature, I will use it when I need to generate multiple object of the same type.

  13. I hope there’s a big promotion, but it doesn’t work at the moment. I’m looking forward to a high picture, a good picture… I hope that the function is becoming more and more powerful…

  14. I‘m impressed. I briefly tried it and it is a big step in the right direction. I especially love the new Postprocessing Stack and the new real-time lights. And the unified material- and light rendering is great too. Now it‘s actually fun to work with Unity as an artist.
    Awesome job!

  15. Is there any information that can be released on upcoming multiplayer improvements?

  16. Shader graph is still not working in HD render pipeline : /

  17. So Shader Graph is still unusable in HD Render Pipeline? I still got pink shader ball with new created Shader Graph in Unity 2018.1.0f2.

  18. Now we have basic 3d modeling, sculpting and painting directly in the editor. Also, we have 2d rigging. So can we expect 3d rigging in Unity, to complete 3d assets prototyping (and not only prototyping) workflow in the editor?

  19. Just installed 2018.1. few questions:
    1) Since .NET 4.x is not live why isn’t it the default scripting back-end. It seems unintuitive to change it from 3.5 to 4.x
    2) I created a standard 3D project and noticed that Progressive lightmapper is the default lightmapper. Is that the recommended lightmapper now? I thought it is mainly for baked lighting etc (mobile friendly) but it seems to be the default for PC standalone as well. My apologies, I am not a lighting expert, so this is mainly an informational question.
    3) From the release notes above, the Shader Graph and Post Processing V2 are not labeled as Preview (as oppose to the other Preview features) however when I opened the Package manager , they were marked as Preview. You might want to update the release notes so people know these are still in preview.

  20. These are some very fine release notes. Nicely presented with lots of screenshots and videos. Just great, thanks!

  21. Steve Elbows

    5月 2, 2018 8:02 pm

    Just a quick tip: If you use the templates that come with 2018.1, they presently dont give you the latest versions of post-processing & render pipeline packages that you can already get manually using the Package Manager UI. Apparently this is because the templates went through QA with earlier versions of these packages, but there are quite a lot of fixes in newer versions of these packages so this is something to watch out for.

    1. Charles Beauchemin

      5月 2, 2018 8:15 pm

      Thanks for this valuable contribution Steve!
      For more details on the scriptable render pipelines, please go to this forum: https://forum.unity.com/forums/graphics-experimental-previews.110/

  22. When will the handheld AR SDK’s be available in the package manager, as mentioned in this article?

    1. Charles Beauchemin

      5月 2, 2018 8:11 pm

      Soon! :-)

  23. How can we get ECS to work? I tried setting the .NET framework to 4.6, but Visual Studio tells me that I don’t have the 4.6 .NET installed on my pc. Updating VS to the newest version didn’t help either.

    1. Charles Beauchemin

      5月 2, 2018 8:04 pm

      Please go to our Entity Component System and C# Job System forum to get some assistance.

  24. Only good things ahead for Unity! Really looking forward to the reworked and harmonized input system and the nested prefab development.

  25. How to change installation folder of VS 2017?

    1. Charles Beauchemin

      5月 2, 2018 8:03 pm

      For now, you need to use the installer for VS2017 to do that. We are looking at providing this option in our installer as well.

  26. When will the handheld AR SDK’s be available in the package manager, as mentioned in this article?

    1. Charles Beauchemin

      5月 2, 2018 8:06 pm

      It is coming soon

  27. Wayne Adams

    5月 2, 2018 4:52 pm

    Integrated slate editor for shaders.. bout dang time.

  28. When upgrading an existing project to LW RP, is it possible to completely remove lighting for optimization purposes? My game already has zero lights, zero ambient, etc. And if so, could this technique be applied to only certain scenes?

    1. Richard Fine

      5月 2, 2018 5:10 pm

      If your goal is optimization, you can probably do even better than LW – you can write your own completely custom RenderPipeline that strips lighting support out entirely.

      1. Ippokratis Bournellis

        5月 3, 2018 10:24 am

        So there is some documentation, some examples on how to write the rendering pipeline now ? Have you or someone else you know actually tried to implement one and found the pipeline to be bug-free enough to use it ? The scriptable rendering pipeline sounded promising when it was announced two years ago, it would be great to see it working, documented, with examples. Congrats for the release.

  29. awesome!!!

  30. I feel like Unity 2018.1 shouldn’t have come out of beta yet. It doesn’t seem ready.
    – The package manager just makes things confusing. I feel the question ‘Is it on the Asset Store or Package Manager?’ will become common. The package manager and Asset Store should be merged together somehow.
    – The tools Unity have aquired from the Asset Store do not feel like ‘part of Unity’. It is like Unity have failed in making some new good features so buy stuff they can add from the Asset Store to make it look like they’ve done something.
    – Templates I don’t see the point in. Having example projects for different setups is nice but I only need to see them once as a reference. Not every time I create a new project. The word ‘template’ would suggest a good base for a project not a load of assets which you import and immediatley delete.
    – The Unity Hub is nice but not useful yet. There are a lot of features they could have easily added like project grouping which I would have expected to be in the initial release. It also doesn’t work with older versions of Unity which is the exact reason a lot of people like Asset Store developers need it.
    – And last but not least the new Render Pipelines shouldn’t be in a full Unity release yet. I know they are still in ‘preview’ but they should have been left in beta. HD is still unusable in a production enivronment as nothing supports it a the moment. Documentation is still lacking. Lightweight isn’t lightweight enough in my opinion.

    1. Charles Beauchemin

      5月 2, 2018 4:15 pm

      Hi Vince,
      Thanks for expression your opinion. Here are a few things you might be interested to know:
      1- Package Manager: the new package manager will eventually replace the old package format and the Asset Store will handle both at some point. We are proceeding one step at a time and we take all the feedback from our users and package developers as we go.
      2- Tools: the tools we acquired, like TextMesh Pro, as slowly morphing to become more integrated with Unity. During 2018.2 lifecycle, for example, you will see a TextMesh Pro UX refactor take place. Probuilder and others are also going this way.
      3- Templates: the templates are more than just importing some assets, they also change some settings for people wanting to create a project for a specific target or game genre. As we go, you will see more templates available and each one will ease the project creation.
      4- Hub: the Unity Hub is currently used by 26k weekly users and we didn’t deprecate any workflow for users that prefer not to use it. If you have feedback to give to the team, feel free to post on our Hub Preview forum.
      5- Render Pipelines: the scriptable render pipelines are still in preview and you can provide the graphics’ team feedback on our forums.
      I hope this helps you understand our decisions.

      1. Hello Charles, is there support for Tree Creator trees and Terrain for HDRP?

    2. Are you kidding? Unity Hub rocks! You can easily open many instances of the same version of unity to have several projects side by side, and projects open automatically in the correct version of Unity. It’s great. I love it.

      1. Agreed!

    3. I disagree with the asset store and package manager being confusing. Package manager has core engine features, asset store has add-ons. Simple.

      I would rather have free, Unity provided assets that are not fully integrated than wait for the full integration, I don’t care that they don’t “feel” like they are a part of Unity yet.

      Don’t like the idea of using templates? No problem, create an empty project instead (duh).

      I don’t know, the Unity Hub is useful for us, and we’ll know additional features will get added in the future.

      If lightweight isn’t lightweight enough for you, go make a custom render pipeline that meets your own expectations on what lightweight is, nobody is preventing you from doing that.

      1. OMG I love your reply XD Some just whine because they can’t do anything else. If you don’t like something, DONT USE IT! -_- ITS THAT EASY! :b

        1. Illena Cruz

          5月 2, 2018 11:03 pm

          Can I make games with Unity game engine for Xbox ? Do I need any permission from https://xboxsupport.org/
          ?

        2. Jacob Herold

          5月 3, 2018 5:06 pm

          It should be possible if you join the Xbox Live Creators Program. It’s not exactly the same as a ‘regular’ release on Xbox One, but it allows the use of the Xbox One in Dev Mode so you can test it. Read more here: https://www.xbox.com/en-US/developers/creators-program

  31. Mylk The Funky Homosapien

    5月 2, 2018 2:24 pm

    Any differences between this version and the first Release Candidate?

    1. Richard Fine

      5月 2, 2018 2:51 pm

      Four fixes – you can see them at the very end of the release notes page (https://unity3d.com/unity/whats-new/unity-2018.1.0).