UnityでFPSをつくる その10-5 [ シーン遷移 ]
今回はタイトルシーンを作り、メインシーンへと遷移するようにします。

ProjectウィンドウのSceneフォルダへ新規にSceneを作り、「TitleScene」にリネームしてください。

TitleSceneに切り替え、HierarchyウィンドウからMainCameraを選択。

CameraコンポーネントのClearFlagsをSolidColorへ変更、Backgroundを黒にします。

次に、以下の画像を右クリックで名前を付けて保存を選択、「TitleImage」にリネームして保存します。

ProjectウィンドウのImagesフォルダを選択、右クリックでImportNewAssetを選択、保存した画像「TitleImage」をImportします。

「TitleImage」を選択した状態のまま、InspectorウィンドウからTextureTypeをSprite(2D and UI)へ変更してApplyで適用します。

Hierarchyウィンドウへ「TitleImage」をD&DしてTransformの値を以下のようにします。

この「TitleImage」をライトで照らす演出を加えたいのですが、現状のままではライトの影響を受けません。

そこで、SpriteRendererコンポーネントのMaterialを変更してライトの影響を受けるようにします。
まずは、ProjectウィンドウのMaterialsフォルダ内に新規でMaterialを作成し、「Sprites-Diffuse」にリネームします。

「Sprites-Diffuse」を選択した状態のまま、InspectorウィンドウからShaderのタイプをSprites/Diffuseに変更します。

このMaterialを「TitleImage」に適用します。
Hierarchyウィンドウから「TitleImage」オブジェクトを選択し、SpriteRendererコンポーネントのMaterialに「Sprites-Diffuse」を選択してください。

これで「TitleImage」オブジェクトがライトの影響を受けるようになりました。

次にライトの設定をしていきます。
HierarchyウィンドウからDirectional Lightを選択、「Point Light」にリネームしてください。
続いてInspectorウィンドウから各コンポーネントの項目を以下のように変更します。

ライトに照らされる表現が完成しました。

今回選択したライトの種類「Point」は電球のイメージで、ライトの原点へ近づけば近づくほど周囲のオブジェクトが強い光に照らされます。
Rangeに設定した数値が球形で表示された光の届く範囲、

Intensityがライトの原点から発せられる光の強さです。

次に、STARTキーの入力を促すテキストを追加します。
HierarchyウィンドウにTextオブジェクトを追加し、「PressStart」にリネームします。

Inspectorウィンドウから各コンポーネントの項目を以下のように変更します。


STARTキーが入力されたらフェードアウトするように見せる為、UIにImageオブジェクトを追加し、「FadeBoard」にリネームします。

ゲーム実行時の画面解像度(1920×1080)にFadeBoardのWidthとHeightを合わせて、Colorを黒色で透明にします。

続いて、この画面にポストプロセス(カメラに映ったシーンを画像として加工する処理)を使ってエフェクトを加えていきます。
Unityでポストプロセスを使うには「PostProcessing」というライブラリ(汎用性の高い複数のプログラムを再利用可能な形にまとめたもの)をインストールします。
メニューバーの「Window」から「Package Manager」を選択、

Package Managerウィンドウが開くので「Post Processing」を選択してInstallボタンを押します。

Installが完了するとチェックマークが付きます。

これでPostProcessingが使えるようになりました、ウィンドウは閉じてしまって大丈夫です。
PostProcessingのエフェクトはPost-process Layerがアタッチされたカメラに対して作用します。
今回はUI(PressStart)とSprite(TitleImage)両方にエフェクトをかけたいのですが、UIはデフォルトではスクリーンに直接描画される方式(Screen Space – Overlay)でカメラを経由していない為、カメラを経由する描画方式(Screen Space – Camera)に変更します。

HierarchyウィンドウからCanvasを選択してCanvasコンポーネントのRender Modeを「Screen Space – Camera」に、Render Cameraを「Main Camera」にします。

次に、カメラ側の設定をします。
HierarchyウィンドウからMain Cameraを選択して、Add ComponentでRendering → Post-process Layer を追加してください。

追加したコンポーネントのLayer項目で対象となるレイヤーを新規作成します。
タグを追加した時と同様に、今回はLayerのコンボボックスをクリックしてAdd Layerを選択します。

User Layer 8 の欄に「PostProcess」と入力してください。

HierarchyウィンドウでMain Cameraを選択し、Post Process LayerコンポーネントのLayer項目を「PostProcess」に変更します。

次に、エフェクトの種類や度合いを決める「Post-process Volume」を作成します。
Hierarchyウィンドウで3D Object → Post-process Volume を選択してください。

MainカメラにアタッチしたPost-process Layerコンポーネントの対象になるよう、Layerを「PostProcess」に変更します。

Post-process VolumeコンポーネントのIs Globalにチェックを入れて、ProfileのNewボタンを押します。

Is Globalにチェックを入れない場合はカメラの原点がBox Colliderの範囲内の場合のみエフェクトが適用され、

チェックを入れた場合はカメラの原点がBox Colliderの範囲内外に関係なくエフェクトが適用されます。

Newボタンを押して新規に作られたPost-process Volume Profileが設定ファイルとなり、どういった種類のエフェクトをかけるかが決まります。
今回は光の滲(にじ)みを表現する為に、「Bloom」というエフェクトを使用します。
Post-process VolumeのInspectorからAdd effect → Unity → Bloom を選択してください。

追加されたBloomの項目Intensityにチェックを入れ、値を「20」にします。

Post-process LayerにPost-process Volumeの設定が反映され、カメラに映ったシーンにBloomエフェクトがかかりました。

長くなってきたので続きは次回にしたいと思います、おつかれさまでした!