Unity2018.1から?新しくプロジェクトを作成する時のテンプレートの種類が増えました。
わたくしの場合は以前作成したプロジェクト内にブログの記事用の機能を作成していたので、最近まで増えたことも知りませんでした。(^_^;)
以前は2D、3Dの選択だけであったと思いますが、いくつか種類が増えていたのでテンプレートごとにどこが変わるのかを見ていきましょう。
テンプレートの種類
テンプレートはどういったプロジェクトにするかによって選びますが、ゲームに合わせてあらかじめUnity内の設定がされていたり必要なプロジェクトファイルが取り込まれます。
まずはUnityで新しくプロジェクトを作る際に選択出来るテンプレートを見てみます。
UnityHubを開いて新規作成からUnityのバージョンを選ぶとテンプレートの選択ウインドウが開きます。
上のようにTemplateの所で2D、3D、3D With Extras、High-Definition RP、Universal Render Pipelineが選択出来ます。
2D、3D
2D、3Dは以前からあるものと同じ設定だと思われます。
Unityビルトインのレンダリングパイプラインを使用する設定がされます。
レンダリングパイプラインはレンダリング(画像の生成)の工程手順の事です。
ビルトインのレンダリングパイプラインはDefferedとForwardがあり。
詳しい情報は
Unityのマニュアルを参照してみてください。
3D With Extras
3D With Extrasは3Dに加えて新しいPostProcessing機能やサンプル等が用意されています。
以前の記事でPostProcessingStack機能についてやりましたが、それの新しいバージョンのPostProcessing機能を最初から使用出来ます。
High-Definition RP
High-Definition RPはUnityマニュアルによると、
Shader Model 5.0(DX11以上)をサポートするハイエンドプラットフォームを使用するプロジェクトのプロジェクト設定を構成します。
とあります。
パフォーマンスよりも現実的なグラフィックを要するゲームの場合はHigh-Definition RPを選択すると良いようです。
シェーダースクリプトをビジュアル操作で作成する事が出来るシェーダーグラフやVisual Effect Graphが使えます。
Universal Render Pipeline
Universal Render Pipelineは
すばやく簡単にカスタマイズでき、幅広いプラットフォームで最適化されたグラフィックを作成できる、ビルド済みのスクリプト可能なレンダーパイプライン
とUnityマニュアルにあります。
ライトをベイクして使う等の動作が軽めのゲームやモバイルゲーム等はこちらを選択すると良いかもしれません。
PostProcessing機能やシェーダースクリプトをビジュアル操作で作成する事が出来るシェーダーグラフが使えます。
Scriptable Render Pipeline(SRP)について
High-Definition RP、Universal Render Pipelineのテンプレートでは最新のレンダリングパイプラインのScriptable Render Pipeline(SRP)で構築されています。
このSRPはC#スクリプトでレンダリングの制御等が出来、以前のビルトインのパイプラインに替わるものとされています。
Unityマニュアルには
Unityは、HDRP(High Definition Render Pipeline)とURP(Universal Render Pipeline)の2つのSRPフレームワークを使用するスクリプト可能なレンダリングパイプラインを構築しました。
と記載があり、HDRPのプロジェクトは、URPと以前のUnityのビルトインのパイプラインとは互換性がないので、ゲーム等の作成前にレンダリングパイプラインを決定しておく必要があるようです。
結局どれを選択すればいいのか?
以前は2D、3Dだけの選択だったのでわかりやすかったですが、他のテンプレートが増えたことで初心者にはちょっと分かり辛くなったかも?(^_^;)
シェーダーグラフを使ったシェーダーの作成やVisual Effect Graphを使ったエフェクトの作成、かつ
本格的なグラフィックを使ったゲームの場合はHigh-Definition RP、パフォーマンス重視の場合はUniversal RPを選択するといいのかも?
シェーダーグラフやVisual Effect Graphを使わない場合で
以前からのビルトインのシェーダーを使う場合は2D、3Dのテンプレートでいいかもしれません。
あくまでテンプレートなので、自分で設定を変更する事も出来ますし、以前からのプロジェクトでビルトインのシェーダーを使っていたが、シェーダーグラフを使いたい!と言った時にSRPを設定する必要がありますが、それも後から行う事が出来ます。
前述したようにHDRPは、URPと以前のビルトインシェーダーのパイプラインと互換性がないので注意は必要です。
SRPの設定手順
わたくしは以前作成したプロジェクトでシェーダーグラフを使おうと思ったんですが、シェーダーグラフのウインドウを開いてもSRPに関連付けられていないというエラーが出てうまく動作しませんでした。
その為HDRPパッケージかURPパッケージを用意し設定する必要がありました。
シェーダーグラフのインストールもそうですが、これはUnityのPackage Managerを使ってインストールする事が出来ます。
UnityメニューのWindowからPackage Managerを選択します。
PackageManagerのウインドウでAllを選択し、シェーダーグラフならShader Graph、HDRPならHigh Definition RP、URPならUniversal RPを選択しインストールします。
今回はわたくしのパソコンだとHigh Definition RPだとUnityがクラッシュするのでUniversal RPをインストールしたと仮定してレンダリングパイプラインの設定をしてみましょう。
Assetsフォルダ内で右クリックからCreate→Rendering→Universal Render Pipeline→Pipeline Asset(Forward Renderer)を選択し、ファイルを作成します。
UnityメニューのEdit→Project Settings→Graphicsを選択し、Scritable Rendering Pipelines Settingsに作成したUniversal Render Pipeline Assetを設定します。
これでSRPの設定が終わりました。
HDRPの場合はUnityメニューのEdit→Project Settings→PlayerのOther SettingsのColor SpaceをLinearにしておきます(HDRPではGammaが使えないようなので)。
終わりに
シェーダーグラフを使ってみようと思ったらエラーが発生して使えませんでした。
そんなわけでSRPの設定が必要になり、加えてプロジェクト作成時のテンプレートの設定を見るにまで至りました。(^_^;)
SRPの細かい設定はUnityのwikiに載っていますが、やはり専門的な設定なのでわからないものばかりですね。
とりあえずデフォルトの設定のまま使っていくとします。(-ω-)/