Unityの各テンプレートの解説

こんにちは。N予備校のプログラミングコースにて「Unity 2D/3D コース」を担当している荒川です。まだUnityについて詳しく知らない人は「Unity 2D/3D コース」を通してぜひUnityについて知ってほしいと思っています。

UnityのプロジェクトデータやUnityのバージョンを管理するのがUnity Hubです。Unity Hubを立ち上げると実は4つのテンプレートがあります。

Unity Hubを立ち上げた様子

画像1

用意されているテンプレート以下の4つになります。

「2D」「3D」「Universal Render Pipeline」「High Definition RP」になります。

N予備校のUnityのコースでは、3Dゲームを作る際に「3D」を選択してゲームを作成しました。「2D」は2Dゲームを作るためのテンプレートとして残りの「3D」と「Universal Render Pipeline」「High Definition RP」 の違いついて解説します。

そもそも「3D」テンプレートとは?

 「3D」テンプレートは、Unityを使って3Dコンテンツを作成する際に、何年も前から使用しているテンプレートです。このテンプレートをベースにたくさんのコンテンツが作られた実績があり、今でもたくさんのコンテンツがこの「3D」のテンプレートを使い制作が行われています。

この後の説明では、Pipeline (パイプライン) という言葉がたくさん出てきます。パイプラインとはUnityのシーン上のオブジェクトの情報を取得して、ディスプレイに表示までの一連の処理のことを言います。

「3D」テンプレートにおいて3Dグラフィックスの描画の計算の方法が"Built-in Render Pipeline"と呼ばれるものになります(「2D」についても実は同じ"Built-in Render Pipeline"がベースになってオブジェクトを描画します。「2D」と「3D」の違いはカメラの設定や画像データの取り込みの際の挙動に差が出ます)。しかし、この"Built-in Render Pipeline"は描画方法をC#で自分でカスタマイズすることがほぼできませんでした。これがなぜ問題なのかと言えば、例えば一部の描画方法を自分でカスタマイズしてスペックの低いスマートフォンでも快適に動くようにしたい時などそれをすることがUnityでは難しかったのです。

そのような経緯があり自分でC#を書いてPipelineをカスタマイズすることができる「Scriptable Render Pipeline」が2018年に公開されました。自分でPipelineをカスタマイズが自由にできるのは一見便利そうに感じますが、描画の計算方法をカスタマイズするためにはC#のプログラミングの知識はもちろんですが、3Dグラフィックスに関する知識が必要になります。そこでUnityがScriptable Render PipelineをベースにUnityが提供を始めたテンプレートが「Universal Render Pipeline」と「High Definition Render Pipeline」です。

Universal Render Pipeline テンプレートについて

Universal Render Pipelineが使われている"Boat Attack"プロジェクト

画像2

「Universal Render Pipeline」テンプレートはスマホ、タブレットからPCまで幅広いプラットフォームをターゲットしているテンプレートです。Unityはスタンダードのテンプレートを「3D」テンプレートから将来的に「Universal Render Pipeline」に置き換える予定です。よりUniversal Render Pipelineについて知りたい人はこちらをご確認ください。

High Definition Render Pipeline テンプレートについて

High Definition Render Pipelineが使われているサンプルプロジェクト

画像3

「High Definition Render Pipeline」は最新のゲーム機やグラフィックに力を入れたPCゲームをターゲットにして作られたテンプレートです。その綺麗なグラフィックは実際にテンプレートを開くとサンプルシーンが一緒に立ち上げるのですぐ確認してもらうことができます。詳しいHigh Definition Render Pipelineについてはこちらをご確認ください。

Universal Render PipelineとHigh Definition Render Pipelineを使うことで"Shader Graph"などBuilt-in Pipelineでは利用できない機能が使うことができます。

Shader Graph

画像4

Built-in Render PipelineとUniversal Render PipelineやHigh Definition Render Pipelineの互換性について

Built-in PipelineとUniversal Render PipelineやHigh Definition Render Pipelineの互換性はありません。しかし、落ち込まないで大丈夫です!Built-in Render PipelineからUniversal Render PipelineやHigh Definition Render Pipelineに問題なく表示できるようにアップデートすることが可能です。

ここでは、サンプルとしてアセットストアにある"Space Robot Kyle"を使ってそのモデルがUniversal Render Pipelineで表示されるまでの設定の方法を解説します。なお、同じ方法でHigh Definition Render Pipelineでも表示されるようになります。

画像5

このようにモデルデータが今のままではピンク色になっています。これはBuilt-in Pipelineのシェーダー処理の設定がされているのが原因です。

画像6

このKyleに設定されているマテリアルを探して、マテリアルのShaderの設定を"Standard"にします。Standardにすることでこの後にシェーダをUnitversal Render PipelineやHigh Definition Render Pipelineにアップデートすることが可能になります。

画像7

マテリアルのShaderの設定を「Standard」にしました。

画像8

ここまでできたらほとんど完成です。最後に"Edit→Render Pipeline →Universal Render Pipeline →Upgrade Project Materials to UniversalRP Materials"を選択します。

画像9

KyleがUniversal Render Pipelineの環境でも問題なく表示されました。

画像10

*High Definition Render Pipelineの場合

High Definition Render PipelineでもUniversal Render Pipelineと同じようにBuilt-in Pipelineをベースにしたシェーダをアップデートできます。マテリアルを上記と同じように"Standard"に変更します。

そして、"Edit → Render Pipeline → HD Render Pipeline → Upgrade from Builtin Pipeline → Upgrade Project Materials to High Definition Materials"を選択してください(このあたりの選択肢の表記はUnityのバージョンによって変更される可能性があります)。

画像11

KyleがHigh Definition Render Pipelineの環境でも問題なく表示されました。

画像12

このように新しいテンプレートでも簡単に表示をアップデートすることが可能ですが、Built-in Render Pipeline用のカスタマイズされたシェーダーを使い見栄えを調整していたものは、シェーダーをStandardに変更して表示するので、シェーダーのアップデート後の見栄えが自分の想定していたものとは違ってしまう場合があるので注意が必要です。

結局どのテンプレートを使うべきか?

グラフィックに力を入れた作品を作りたい場合はHigh Definition Render Pipelineのテンプレートを使ってみることをお勧めします。ただし、High Definition Render Pipelineのテンプレートをベースに作品制作を行うにはそれなりのPCスペックが求められるので注意が必要です。3DかUniversal Render Pipelineかの選択については、将来的に3DテンプレートがUniversal Render Pipelineに置き換わることを考えると、これから時間をかけて新しく作品を作っていくのであればUniversal Render Pipelineを選択することも良い選択だと思います。これまでの財産(アセットやネットの情報など)がすぐ使える点が3Dの強みになります。でも、まだUniversal Render Pipelineを使ったことがない人は一度開いてみることをお勧めします。

テンプレートはともかく何かを作ろう!

ここまでいろいろなテンプレートについて解説しました。しかし、(ここまでテンプレートについていろいろ解説してて何ですが・・)テンプレートはともかく実際に何かコンテンツ制作を行うといろいろなことが学べます。ぜひUnityを立ち上げて何か作品を作ってみてください。きっと新しい発見があるでしょう。

この記事が気に入ったらサポートをしてみませんか?