コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】uGUI でキレイな場面転換の演出を実装できる「FadeCamera2」紹介

はじめに

「FadeCamera2」を Unity プロジェクトに導入することで
uGUI でキレイな場面転換の演出を実装できるようになります

「FadeCamera2」の使い方はテラシュールブログさんが紹介されていますが、
備忘録としてこちらにも書き残しておこうと思います

使用例

プロジェクトの準備

パッケージの入手

https://github.com/tsubaki/FadeCamera2/blob/master/FadeCamera2.unitypackage?raw=true

上記の URL を開くと「FadeCamera2.unitypackage」を入手できるので
この「FadeCamera2.unitypackage」を Unity プロジェクトにインポートします

マスク画像の入手

「For You」というサイト様が
マスク画像をフリーで公開されているので、使用させていただきます

http://4you.bz/rule

上記のページを開いて「一括ダウンロード(4 : 3)」もしくは
「一括ダウンロード(16 : 9)」ボタンを押します
そして、ダウンロードした圧縮ファイルを展開して、
中にある PNG ファイルを Unity プロジェクトに追加します

f:id:baba_s:20180215225645p:plain

そして、上記のようにファイルが追加されていればプロジェクトの準備が完了です

マスク画像のフォーマットの設定

f:id:baba_s:20180215231321p:plain

マスク画像として使用するテクスチャのフォーマットは
いくつか設定を変更する必要があります

項目 内容
Texture Type Single Channel
Alpha Source From Gray Scale
Alpha Is Transparency オン

設定を変更したら「Apply」ボタンを押して反映します

キャンバスの配置

f:id:baba_s:20180215232003p:plain

フェードを使用したいシーンに「FadeCanvas」プレハブを配置します

f:id:baba_s:20180215232207p:plain

そして、配置した「FadeCanvas」を選択して
「Mask Texture」の欄に好みのマスク画像を設定します

スクリプトの作成

using UnityEngine;

public class Test : MonoBehaviour
{
    public Fade fade;

    private void Update()
    {
        if ( Input.GetKeyDown( KeyCode.Z ) )
        {
            fade.FadeIn( 0.5f, () => print( "フェードイン完了" ) );
        }
        else if ( Input.GetKeyDown( KeyCode.X ) )
        {
            fade.FadeOut( 0.5f, () => print( "フェードアウト完了" ) );
        }
    }
}

上記のようなスクリプトを作成して

f:id:baba_s:20180215233104p:plain

シーン内のオブジェクトにアタッチして
「Fade」の欄に「FadeCanvas」を設定してゲームを再生して
Z キーや X キーを押すと演出が再生されることが確認できます

その他

色の設定

f:id:baba_s:20180215233359p:plain

「FadeCanvas」の「Color」を変更することで演出の色を調整できます

クッキリした演出に変更

f:id:baba_s:20180215233655p:plain

「FadeCanvas」の「Material」に「UI-Fade-Cutout」を設定することで
演出の見た目がクッキリハッキリしたモノになります

f:id:baba_s:20180215234402g:plain

おわりに

今回は「FadeCamera2」を使用して場面転換を実装する方法を紹介しました
「FadeCamera2」は他にも、UI 自体をフェードさせる機能もあります
そちらの方法を知りたい方は、テラシュールブログさんの記事をご覧頂ければと思います

関連記事