【Unity】Effekseer製のエフェクトをUnityで使用する

すくえあ
すくえあ

こんにちは、すくえあです。

今回はEffekseerで作成されたエフェクトをUnityで使用する方法についてとなります。比較的簡単に導入できましたが、設定漏れにより表示されなかったりしたため、備忘録として書いていきます😌

Effekseer(エフェクシアー)とは?

Effekseerはオープンソースのエフェクト作成ツールです。Effekseerで作成されたエフェクトはUnity及び他プラットフォーム連携用のプラグインが用意されているため、簡単に導入ができます(少なくともUnityでは簡単でした)。公式サイトでサンプルエフェクトが公開されており、比較的自由度の高いCC-0ライセンスで使用できるため、それだけでも制作に役立ちそうな感じがします。

Effekseer公式サイト

やったこと

  • Effekseerで作成されたエフェクトをUnityで再生

今回は既にEffekseerで作成されたエフェクトをUnityで使用しました。使用イメージは次のような感じです。

※ 動画は制作中ゲームのものとなります

※使用させていただいたエフェクト: 七三ゆきのアトリエ様(BOOTH素材URL)<https://booth.pm/ja/items/4311294>

導入方法

基本的な導入方法は参考サイトの手順そのままとなってしまうため、参考にさせていただいたサイト様と簡単な説明を記載します。

参考1
EffekseerForUnity Help ドキュメント

Effekseerの公式ヘルプになります。実際に使用する際にはこちらを一読することをお勧めします。

参考2
Effekseerでエフェクトを作成してUnityで再生する – Qiita

unitypackageのダウンロードから導入まで画像付きでわかりやすく説明されています(最新版とは少し画像が異なります)。エフェクトの再生方法としてGameObjectにエミッタを紐づけて使用する方法が掲載されています。

参考3
UnityでEffekseerを導入する方法

unitypackageのダウンロードから導入まで画像付きでわかりやすく説明されています。エフェクトの再生方法としてスクリプトから再生する方法が掲載されています。

注意点・懸念点

ここからは導入してみて自分が感じた注意点を書いていこうと思います。

URP等を使用している場合

新規で作成したUnityプロジェクトでは導入方法の手順のみで可能でしたが、URPなどを使用しているプロジェクトでは追加の設定が必要になります。詳細については引用元のリンクを参照してください。

Effekseer は Universal Render Pipeline に対応しています。

EffekseerForUnity Help 日本語 » 使い方 » Render Pipeline

引用元を参考に設定した画面は以下のとおりになります。

使用しているレンダラーリストを確認

Project Setting > グラフィックスからレンダーパイプラインの設定を確認します。設定ファイルをクリックし、インスペクターウィンドウからレンダラーリストを確認します。

レンダラーデータにEffekseerの設定を追加

STEP1のレンダラーリストのインスペクターウィンドウをスクロールし、一番下のAdd Renderer Featureをクリックし、Effekseer URP Render Pass Featureを追加します。

デバイスシミュレータを使用している場合

シーンビューでEffekseerのエフェクトを確認した際、新規ウィンドウが毎回表示され、少し煩わしかったので対応について記載します。

①作業
シーンビューでエフェクトの確認

GameObject紐付け他エフェクトはシーンビューにて再生して確認できます。

②事象
ゲームタブが新規ウィンドウで開かれてしまう

この際にタブ一覧にゲームタブがない場合、新規ウィンドウでゲームタブが開かれます。新規で開かれるゲームタブはフリーのアスペクト比であり、シーンビューにて毎回異なるアスペクト比が設定されてしまいました。

③原因
タブ一覧にゲームタブが存在しない場合に発生

Effekseerのエフェクトを確認するときゲームタブにプレビュー表示されますが、ゲームタブを非表示にしていたためフリーアスペクトのゲームタブが新規ウィンドウで生成されていました(自分の場合はデバイスシミュレータを使用しており、ゲームタブを使用していなかったため、この事象が発生していました)。

④対応
ゲームタブを追加し、シミュレータと同じアスペクト比を設定

ゲームタブが常駐してしまうことにはなりますが、確認の度に新規ウィンドウが表示されアスペクト比が変わってしまうという事態は避けれました。

レイヤー・透明度の設定

ヘルプを見た限りEffekseerで生成されたエフェクトに関して、Unity側で透明度やレイヤーを調整する方法がわかりませんでした。Effekseerで大元の透明度を設定することはできそうですが、Unity側でそこまで調整は出来なさそうです。

今後のUnityとの互換性

EffekseerのUnityプラグインヘルプにあるとおり公式で提携しているわけではないため、動作や今後の互換性などが保証されているわけではないことを意識する必要があります。

なお、Unity Technologies社とこのツールは特に提携しているというわけではないため、
バージョンや状況によっては上手く動作しない可能性があります。

EffekseerForUnity Help 日本語 » 概要

ただ、Effekseer自体にスプライトシート(コマ送りのエフェクトを表示させた画像)を出力する機能もあるため、完全に連携できなくなることはないと思います。

↑ Effekseerのサンプルエフェクトをスプライトシート(4×4)で出力

おわりに

今回はEffekseer製のエフェクトをUnityで使用する方法について記載しました。個人的にはURPの設定が漏れていてエフェクトが再生されないという点で悩んだので、それに関する備忘の念が強いです。エフェクト作成ツールは色々ありますが、Effekseerは機能も充実していて使い勝手が良さそうなので、時間ができたらエフェクト作成のチュートリアルもやってみようかなと思いました😌