どーも、ぐるたか@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機能もぜひお試しくださいませ!


コメントを残す