シンプルなアクションゲームを作ってみよう25-シーンにエフェクトを加える-

記事内に広告が含まれています。

シンプルなアクションゲームを作ってみようの第25回です。

今回はシーンにエフェクトを加えていきます。

前回はゲーム開始前のカウントダウン機能を作成しました。

シンプルなアクションゲームを作ってみよう24-カウントダウン機能を作成する-
シンプルなアクションゲームでゲームが開始する前にカウントダウン表示をしてゲームを開始する前の準備が出来るようにします。

シンプルなアクションゲームを作ってみようの他の記事は

シンプルなアクションゲームを作ってみよう

シンプルなアクションゲームを作るのを通してUnityの使い方を学ぶカテゴリです。

から参照出来ます。

スポンサーリンク

PostProcessingStackを使用する

今回はシーンにエフェクトを加える為にPostProcessingStackの機能を使います。

PostProcessingStackを使用するとシーンにエフェクトを加える事が出来ます。

PostProcessingStackのインストール

PostProcessingStackはPackage Managerからインストール必要があります。

UnityメニューのWindowからPackage Managerを選択します。

PostProcessingStackをインストールする

パッケージの種類をUnity RegistryにしPost Processingを選択してInstallボタンを押します。

Post Processing Volumeゲームオブジェクトの作成

Stage1シーンにPost Processing Volumeゲームオブジェクトを作成します。

Post Processing Volumeゲームオブジェクトを作成するとPost Processing Volumeコンポーネントを持つゲームオブジェクトが作られます。

Stage1シーンのヒエラルキーで右クリックから3D Object→Post Processing Volumeを選択します。

Post Processing Volumeゲームオブジェクトを作成する

3D ObjectからPost Processing Volumeを選択して作成しなくても空のゲームオブジェクトを作成し、Box Colliderを取り付けてIs Triggerにチェックを入れ、Post-process Volumeコンポーネントを取り付ける事でも同じように出来ますが、あえてやる必要はありません。

出来たPost-process Volumeゲームオブジェクトを選択し、インスペクタを見るとPost-process VolumeコンポーネントでProfileを設定する項目があります。

ここにはどんなエフェクトを加えるかの設定ファイルを設定しますが、このコンポーネントから設定ファイルを作れるのでNewボタンを押します。

Post-process volume Profileを作成する

Newボタンを押すとAssets/シーン名/シーン名_ProfilesフォルダにPost-process Volume Profile.assetファイルが作成されます。

Post-process Volume Profile.assetファイルが作成された

Post-process VolumeコンポーネントのNewボタンを押すと設定ファイルが作られProfileにそのファイルが設定されます。

設定ファイルにエフェクトを追加する

Assets/Stage1/Stage1_Profiles/Post-process Volume Profile.assetファイルを選択し、インスペクタでエフェクトの設定をしていきます。

Add effect…ボタンを押し、Unity→Depth Of Fieldを選択します。

Add effect…ボタンを押してエフェクトの設定を加える

Depth Of Fieldは焦点以外をぼかすエフェクトです。

Depth Of Fieldの設定

Focus Distanceは焦点までの距離を設定します。
Apertureは絞りを設定します。
Focal Lengthはレンズとフィルムの距離を設定します。
Max Blur Sizeはぼかす最大半径を決定します。

ポストプロセスの影響範囲

Post-process VolumeゲームオブジェクトのPost-process Volumeに設定したエフェクトの効果の範囲はPost-process VolumeゲームオブジェクトのBox Colliderで検知する範囲になります。

Main Camera等のカメラにPost-process Layerコンポーネントを取り付けて、Layerでエフェクトを有効にするレイヤーを指定し、カメラのゲームオブジェクトがPost-process VolumeのBox Colliderの範囲に入った時にカメラにエフェクトを加えた映像を表示します。

しかし今回の場合はカメラがPost-process VolumeのBox Colliderの範囲内に入った時にエフェクトを加えるよりも最初からエフェクトを加えたいので、Post-process VolumeゲームオブジェクトのインスペクタでPost-process VolumeコンポーネントのIs Globalにチェックを入れて範囲関係なくエフェクトを有効にします。

Post-process VolumeコンポーネントのIs Globalにチェックを入れる

Post Processingレイヤーの作成

Post Processing Volumeのエフェクトはレイヤーによって有効にするかどうか決定出来るので新たにPost Processingレイヤーを作成します。

レイヤーはインスペクタのLayerの部分を押して新しいレイヤー名を設定します。

Post Processレイヤーを作成する

Post-process VolumeゲームオブジェクトのインスペクタでPost Processingを設定します。

Post-process VolumeゲームオブジェクトにPost Processingレイヤーを設定する

Main CameraにPost-process Layerコンポーネントの取り付け

このゲームではMain Camera一つでゲームの画面を映していますので、Main CameraにPost-process Layerコンポーネントを取り付けます。

Main CameraのインスペクタでAdd ComponentからRendering→Post-process Layerを選択し取り付けます。

Post-process LayerのLayerをPost Processingにします。

Post-process LayerコンポーネントのLayerをPost Processingにする

これでMain Cameraに映る映像にエフェクトを加えられるPost-process VolumeはPost Processingレイヤーが設定されているPost-process Volumeコンポーネントを持つゲームオブジェクトだけになります。

実行して確認してみる

機能が出来たので実行して確認してみましょう。

上のようになりました。

Post-process VolumeコンポーネントでDepth Of FieldのOnOffのボタンを切り替えるとエフェクトの効果の違いがわかりやすいです。

終わりに

今回はPost Processing Stackを使用してゲームのカメラの映像にエフェクトを加えました。

次回はシーン間の移動機能を作成していきます。

タイトルとURLをコピーしました