3月にお知らせして以来、私たちはUnity 5.4のベータテストに大変力を注いできました。いよいよ最高の品質と安定性を持った Unity 5.4 をお届けすることができます。これはベータ版をお使いいただいた方たちの助けなしには実現できなかったことです。みなさまのフィードバックとバグ報告に感謝します!感謝の気持ちを込めて、特別なプレゼントを用意しましたので、ぜひこの記事を最後までご覧ください。
なお、私たちはここ数ヶ月 Unity 5.4 を磨き上げると同時に、あなたが開発中のプロジェクトのために Unity 5.3.x が堅牢なプラットフォームになるよう多大な努力をしてきました。
Unity 5.4 について簡単に説明します。
詳しくは以下をお読みください。
Unity 5.4 ベータ版では、マルチスレッド レンダリングの対応がより進みました。プロジェクトとビルドするターゲット プラットフォームによっては、目をみはるほどのフレームレート向上が得られます。
パーティクル、スプライト、フレア、円光、ライン、トレイルをメインスレッドから取り除くために Unity 5.3 で行なった変更に加え、コマンドリスト生成を並列化しました。 スクリプト、物理演算、その他のシステムが使用するのと同じ1つの CPU コアでコマンドリストを構築する代わりに、複数の CPU コアに処理の再割り当てが行われます。こうすることで、ボトルネックの可能性を取り除き、多くの複雑なシーンの処理をより迅速に行うことができるようになりました。
ドローコールの減少は、パフォーマンスの向上につながります。 GPU インスタンシングの実装により、同じマテリアルを共有する膨大な数の同一ジオメトリをわずかなドローコールでレンダリングすることが可能となります。
GPU インスタンシングはWindows (DX11/12 の Shader Model 4.0 以降)、macOS と Linux (OpenGL 4.1 以降) 、PlayStation 4 や Xbox One で対応しています。その他のプラットフォームについても順次対応してゆきますので、楽しみにお待ちください。
上記のシーンは3種類の岩のモデルで構成されています。各々の岩はマテリアルプロパティブロックによってそれぞれ異なるグレースケールの色合いを与えられています。最初のシーンはGPUインスタンシング対応のスタンダードシェーダーを、次のシーンは今までの(ビルトイン)スタンダードシェーダーを使用しています。 Intel Core i7-4980HQ@2.8GHz CPU と nVidia GeForce GT 750M を搭載したWindows / Direct3D 11 で動作しています。
もしあなたがグラフィックス プログラマーで独自のシェーダーを作成中なら、2D テクスチャ配列は、大きなシーンの最適化やレンダリングシステムの実装の際にとても役に立ちます。これは、サイズ、形式が共通の 2D テクスチャをGPU にひとつのオブジェクトとして扱わせることができる機能です。
低レベルなグラフィックスの機能も進化しました。コンピュート シェーダーは DispatchIndirect によって連携できるようになり、コンピュート バッファー カウンターも改善、そしてデバッグ情報もコンピュートシェーダーのデバッグ用に利用可能になりました。新しい CopyTexture 関数でより高速なテクスチャのコピーが可能となりました。そしてシェーダーパラメーターで正式に uniform 配列サポートも追加されました。Metal、OpenGL、DirectX9 プラットフォームでは Alpha to coverage も実装され、iOS の Metal ではマルチスレッドレンダリングにも対応しました。最後に、イメージエフェクトはシーンビューのカメラに新しい ImageEffectAllowedInSceneView 属性を使って適用できるようになりました。
Unity 5.4 はパーティクルに新しいサイズ制御を搭載しています。これを使うと、パーティクルの幅と高さを個別に制御したり、メッシュ パーティクルを三次元空間で完全に制御することができます。
新しいトリガー モジュールも公開されました。これを利用すると、コライダーのリストに対してパーティクルのプロパティーを変更することができます。たとえば最も簡単な例では、パーティクルがコライダーに触れたときにカスタム スクリプトのコールバックを使ってパーティクルを消滅させることができます。すべてのパーティクル プロパティーの変更が可能なので、たとえば以下のような粘性のあるパーティクル表現も実現できます。
ライトプローブ プロキシボリューム (LPPV) で、大きなパーティクル システムをより本物らしくライティングできるようになりました。LPPV は、ベイクしたライトマップを使用できない大きな動的オブジェクトに、ベイクしたライティング情報を取り込む方法です。
LPPV は、バウンディング ボリュームに従って相互に補間されるライトプローブを3D グリッド状に生成することで動作します。グリッドの解像度は指定可能です。これにより、プローブによってライティングしたオブジェクトに対して空間的なライトのグラデーションを与えることができます。LPPV はパーティクルだけでなく、すべての大きな動的オブジェクトに利用することができます。
おっと、シネマティックイメージエフェクト (スクリーンスペースレイトレースリフレクション, 被写界深度、 トーンマッピング、カラーグレーディングなど)がオープンソースパッケージとしてAsset Storeで入手できるのも忘れてはいけません(さらにこちらのリポジトリで開発に寄与することもできます)。シネマティックイメージエフェクトは、Adam デモでその有効な利用法が紹介されています。
Unity 5.4 には、モーションベクターサポートも加えられました。モーションベクターはフレームからフレームへと続くモーションをピクセルレベルで追跡し、モーションブラーや一時的なアンチエイリアシングなどの自分だけのポストプロセシングエフェクトを作成するときに、絶大な効果を上げることができます。例えば、シネマティックイメージエフェクトパッケージの現在のベータ版 (Link to bitbucket repo) で、この機能を使って納得のいくモーションブラーエフェクトを作成できます。
Unity 5.4 についに、 OpenVR (SteamVR/HTC Vive)、Oculus Rift、Gear VR、Playstation VR のための最適化されたビルトインサポートが備わりました。デバイス特有の微調整の必要性を最小限にしながら、たった 1つの API で 複数のプラットフォーム用のビルドが簡単に行えます。
これを行うために、VR サブシステムをリファクタリングし、異なる VR デバイスで重複していた機能に対応する冗長なコードを除去しました。また、パフォーマンスに関しては、最適化したシングルパスステレオレンダリング機能 (旧名称 Double Wide Rendering) を加えました。これにより、シングルパスで両方の視点の画像をレンダリングできるようになり、高フレームレートの維持がより強化されました。
VR を始めようとしているユーザーは、便利なチュートリアルと無料アセットで、効率よくスタートすることができます。
最後に、Google IO で発表された通り、Unity は、Google の新しい Daydream プラットフォームを ネイティブサポートします。Unity のネイティブなインテグレーションが待ちきれない方は、Google 開発者ポータルで Google Daydream VR Dev Kit for Unityを取得して使用してください。
知らない方もいるかもしれませんが、IL2CPP は Unity のスクリプティングバックエンドで、Unity プロジェクトのスクリプトとアセンブリからの IL (中間言語) コードをC++ コードへ変換しています。C++ コードは、それから、プラットフォームのネイティブコンパイラーでコンパイルされます。明らかな恩恵は、Unity がスクリプト (ゲームロジック) を実行するときにパフォーマンスがよくなるということです。Unity 5.0 で最初に導入のときは、WebGL で使用するために実装されました。今では、IL2CPP は、iOS、PS4、PS Vita に対して Windows Store/UWP を使用できる実験的サポート付きの完全なサポートと、 Xbox One への完全なサポートを行っています。
さらに、今日、Android 対応のIL2CPP が実験期間を経てついに、完全対応となったことを発表することができ、大変うれしく思います。
Unity 5.4 では、開発用ビルドで IL2CPP アーティファクトをキャッシュし、ビルド前のランタイムコンポーネントを使用するオプションを提供し、ユーザーコードが必要なのはリビルドするときだけにして、WebGL のビルド時間を削減することに注力してきました。最初のビルドは、まだかなり時間がかかりますが、その後のビルドは繰り返しです。そのため、ずっと速くなりました (また、簡単に Cloud Build にビルドをオフロードできるということをお忘れなく - 以下をご覧ください)。
WebGL は、web ゲームを今すぐに作成できる完全にサポートされた実行可能なビルドターゲットです。私たちは、開発者が WebGL をゲームのデプロイメントのオプションとして取り入れるのを見て興奮しています。Unite Europe 2016 で発表された Nordeus の Bringing Top Eleven の WebGL 化 の話などがその良い例です。彼らの話は WebGL を始めるとても良い助言となりますし、(ネタバレになりますが)収益も 30% 増加したそうです!
さらに、嬉しいことに Unity で WebGL 2.0 が実験的ターゲットとして使用可能になりました。WebGL 2.0 仕様書はまだドラフトで、Web ブラウザの現時点のリリースには含まれていません。まず、Firefox や Chrome で機能を有効にしましょう。Unity では “Auto Graphics API” プロパティのチェックマークを外し、リストの一番上に“WebGL 2.0”を加えて、お試しください。
Retina ディスプレイのあるMacで開発をしていると、Unity エディターが美しく表示されるようになったことに気がつくかと思います。Windows ユーザー向けにHiDPI サポートも開発中です。
さらに、高解像度のターゲット デバイス向けの開発を行っているユーザーのために、エディターのゲームビューでズームイン、ズームアウトしてスクリーン上の全体の解像度を調整することが可能になりました。OS X と Windows 版、どちらのエディターにも対応しています。
Cloud Build は、プラットフォームごとに行っていたコンパイルとビルドつくりからあなたを解放し、チーム内の繰り返し作業を削減しました。Unity 5.4 では、Cloud Build の設定をエディターから直接行えるようにすることで、簡略化しました。さらに、Cloud Build のステータスを Services タブから見られるようになり、ダッシュボードへ行ったり来たりする必要がなくなりました。便利になった Cloud Build をどうぞよろしく!
もし時間があるなら入門ビデオをご覧ください。
Unity の Performance Reporting は、さまざまなデバイスやプラットフォームのアプリケーションエラーを自動的に収集するので、リアルタイムで問題を見つけ出し対処することができます。Unity 5.4 はPerformance Reporting を、たった 1クリックで完全にエディターにまとめることができます。このように、わずか数秒です。見てください。
エラーログがダッシュボードに現れます。
これはまだ、ほんの始まりにすぎません。 Performance Reporting はあなたのゲームの内部の動きをより深く理解するための一そろいのツールです。Exception reporting はその最初の機能で、もっと多くの機能が加わります (詳しくは最近のブログ)をご覧ください)。
Unity 5.4 のリリースに伴い、Analyticsの重要な機能アップデートを公開しました。新しいAnalytics ダッシュボードでAds の収益と ARPDAU を一括表示、Livestream (Plus と Pro のみ可) でリアルタイムのゲームイベントを追跡、 新しいヒートマップで選択した重要なゲームのマトリクスをマップ化、そしてさらに、Rawデータエクスポート(Pro のみ)機能を使って、それらのデータすべてを簡単にダウンロードしてカスタム化した分析を行えます。
Unity のクロスプラットフォームのアプリ内課金システム - Unity IAP で Amazon アプリストアのサポートが始まりました。 Unity IAP だけで、複数のストアをすべて網羅したサポートを提供できます。
以前にアナウンスしたように、ブラウザ ベンダーが「プラグインフリー」なWeb に移行している現状をうけ、WebPlayer 出力をサポートするリリースはUnity 5.3 が最後になります。もちろん、引き続き Unity 5.3.4 以前のバージョン を使用して Web Player ゲームをビルドすることもできます。もしくは、WebGL に目を向けていただくのがいいかもしれません。
iPhone ユーザーが急速に iOS の最新版へ移行していることを受けて(“Games by the Numbers” の 2016年第二四半期のレポートでは、99.2% の iOS ゲームは iOS 7.x 以降の OS でインストールされています)、iOS 6をサポートするためのリソースを最新のiOSに使う日が来たと私たちは考えました。
また、残念ながらPS3のサポートを終了することにし、そのリソースを PS4 に投入してより素晴らしいゲームが開発できるよう注力していくことになりました。
ベータ版プログラムに参加いただき、どうもありがとうございました。ここで改めて、既存のプロジェクトをアップグレードする時間を割いて、問題の報告をしてくださった皆さんのご尽力に感謝いたします。いまや Unity は多岐多様に渡って使用されているので、我々だけでは不具合の発見がとても難しかったでしょう。
有効な不具合を報告してくださった方には、Unity 5.4 のベータテスター T シャツを差し上げます。該当する方にはメールでご連絡いたします。さらに、Asset Store でお使いいただける$100 のバウチャーが 100本当たる抽選も行います。
メールの到着をお待ち下さい。
次は Unity 5.5 が待ちきれないですって?ご心配なく、もうすぐです。ぜひよいベータテスターになるためのガイドをお読みになってお待ち下さい。
Unity 5.4 についてもっと詳細に確認したい場合は、リリースノートをご参照ください。
Is this article helpful for you?
Thank you for your feedback!