どーも、ぐるたか@guru_takaです。
Unityでカメラのシャッターエフェクトを実装してみました。成果物は以下のGIFになります!
参考になれば幸いです。
実装の流れ
以下の手順で実装を進めていきます!
- フラッシュ機能
- シャッター音
STEP1:フラッシュ機能
フラッシュ機能はパネルの白色フェードアウトで実装していきます。
ここでは、マウスのクリックでシャッターを発火させるPGで進めるのでご注意ください!
実装方法は以下の通りです。
①Create→UI→Panelで作成
②作成したPanelのImageを下画像のように設定
③以下のソースを作成
using UnityEngine; using UnityEngine.UI; public class FlashController : MonoBehaviour { private Image img; void Start() { img = GetComponent<Image>(); img.color = Color.clear; } void Update() { if (Input.GetMouseButtonDown(0)) { img.color = new Color(1, 1, 1, 1); } else { img.color = Color.Lerp(img.color, Color.clear, Time.deltaTime); } } }
クリックすると白色Panelに変化。その後、Lerp関数を使い、時間が経つにつれて、Panelがフェードアウトするようになってます。
④作成したパネルに上記のソースをアタッチ
すると、フラッシュのエフェクトが実装できました。わりと良い感じです!
STEP2:シャッター音
無音だと寂しいので、シャッター音を追加します。まず下記リンクからシャッター音をダウンロードしましょう!
参考記事のタイトルとURLを入力してください” site=”効果音ラボ” target=”_blank”]
DLした音声ファイルをUnityのプロジェクトフォルダに移動させます。
その後、Audio Sourceのコンポーネント追加→音声ファイルをアタッチ→「Play On Awake」のチェック欄を空白にしましょう!
そして、Scriptにシャッター音が鳴るよう、加筆します。
using UnityEngine; using UnityEngine.UI; public class FlashController : MonoBehaviour { private Image img; private AudioSource shutterAudio; void Start() { img = GetComponent(); img.color = Color.clear; shutterAudio = gameObject.GetComponent(); } void Update() { if (Input.GetMouseButtonDown(0)) { shutterAudio.Play(); img.color = new Color(1, 1, 1, 1); } else { img.color = Color.Lerp(this.img.color, Color.clear, Time.deltaTime); } } }
ぜひお試しください。もうシャッターエフェクトといっても良いのではないでしょうか!
最後に
以上になります。
好みの問題になりますが、Post Processing Stackを使って、Bloomエフェクトも実装すると、シャッターの眩しい輝きも実装できます。
興味ある方は、 Bloom機能もぜひお試しくださいませ!
コメントを残す