(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発した新作VRゲームです!


SteamVR Pluginを使った超簡単なカメラのフェードの実装【Unity】【Steam】【VR】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2019.4.14f1
Steam VR Plugin 2.6.1 (sdk 1.13.10)


はじめに

UnityでSteam向けのVRゲームを開発する際は、

SteamVR Pluginというアセットを使うのが一般的ですが、

SteamVR Plugin | Integration | Unity Asset Store


今回はそのSteamVR Pluginを使って、

シーン遷移時等で使うカメラのフェードを超簡単に実装してみようという記事。


イメージとしては以下のような感じ。

f:id:kan_kikuchi:20201207094623g:plain


ただし、カメラが複数あると正常に機能しない点には注意が必要です。

(複数でもフェードはするがちょっと汚い感じになる)


ちなみにSteamVR Pluginの導入は済んでいる前提なので、あしからず。

なお、SteamVR Pluginの導入については以下の記事を参照の事。





Steam VR_Camera

まず、CameraにSteam VR_Fadeというコンポーネントを追加します。

f:id:kan_kikuchi:20201203063812j:plain


なんと後はSteamVR_FadeのStartを使うだけでフェードが行えます。

なお、第1引数でフェードする色、第2引数でフェード時間を指定します。

(一瞬で切り替えたい場合はフェード時間を0にする)

using Valve.VR;//SteamVR_Fadeを使うのに必要
//2秒で真っ黒にする(黒でフェードアウト)
SteamVR_Fade.Start(new Color(0, 0, 0, 1), 2);
f:id:kan_kikuchi:20201207094417g:plain


もちろん黒以外にフェードアウトする事も可能です。

//2秒で真っ白にする(白にフェードアウト)
SteamVR_Fade.Start(new Color(1, 1, 1, 1), 2);
f:id:kan_kikuchi:20201207094434g:plain


また、フェードインしたい場合は不透明度(α)を0にします。

//2秒でフェードの色を消す(フェードイン)
SteamVR_Fade.Start(new Color(0, 0, 0, 0), 2);
f:id:kan_kikuchi:20201207094449g:plain