以下の内容はhttps://www.karvan1230.com/entry/2021/06/01/221102より取得しました。


【Unity】総合エフェクトツール「Feel」を使ってみる

f:id:Karvan:20210601214309p:plain

散々

注文したPCの納期が半年後だったり、購入したゲームは画面酔いが酷かったり、無くしものをしたり、落とし物をしたり、贔屓のスポーツチームは負けたり、と散々な日々を過ごしている皆さんこんにちは。
iPad版のDAZNが「問題が発生しました。しばらくたってから再度お試しください」のメッセージを表示するようになって、かれこれもう一週間以上経っているのに未だに「しばらくたってから・・・」のメッセージを表示し続けているのですが、一体どれだけ待てば良いのでしょうかね?
ちなみにアプリを再インストールしても結果は同じでした。

 

Feel

前回の記事で紹介したUnityのアセット「Feel」
どんなアセットかと言うと"ゲーム内で発生する様々なイベントに合わせたエフェクトの詰め合わせ"といった感じのアセット。
音声、カメラ、パーティクル等々を利用したエフェクトを簡単に実装できます。

assetstore.unity.com

とは言え、購入したアセット内には導入法等が記載されたドキュメント類は含まれていない為、使い方を知るにはWebサイトを参照する必要がありました。
なので今回の記事では導入手順と簡単な実装例を紹介したいと思います。

 

導入手順

「Feel」のエフェクトをフルで使うには以下のパッケージを事前にプロジェクトに導入しておく必要があります。

  • Cinemachine
  • 2D Animation
  • Post Processing

どのパッケージもPackageManagerからインストールすることが出来ます。(無料です)

「Feel」のエフェクトを使うには空のオブジェクトに「MMFeedbacks」コンポーネントを付与し、このコンポーネントから実装したいエフェクトを追加していきます
この[空のオブジェクト+「MMFeedbacks」コンポーネント]は実装したいエフェクト単位に作る必要があります

例えば「煙のパーティクルが発生する」と「画面(カメラ)が揺れる」エフェクトを同時に再生したいのであれば、一つの「MMFeedbacks」コンポーネントに「パーティクル再生」のエフェクトと「カメラシェイク」のエフェクトを追加します。
f:id:Karvan:20210601214735p:plain

 

別々に再生したいのであれば、[空のオブジェクト+「MMFeedbacks」コンポーネント]を二つ用意して、一つに「パーティクル再生」のエフェクト、もう片方に「カメラシェイク」のエフェクトを追加します。

f:id:Karvan:20210601214749p:plain

 

簡単な実装例

実装例として下の動画のような単純に飛び上がるCubeに対して「Feel」のエフェクトを追加したいと思いまます。

f:id:Karvan:20210601215017g:plain

CubeはAddFroce(Impulse指定)を行う事で飛び上がっています。この時rigidbodyの回転については全軸freezeの設定をしています。

この状態でシーン内に空のGameobject(JumpFeedback)を追加します。

f:id:Karvan:20210601215130p:plain

 

JumpFeedbackにMMFeedbacksコンポーネントを追加します。

f:id:Karvan:20210601215155p:plain

 

このMMFeedbacksコンポーネントにジャンプ中に回転するエフェクトを追加します。
MMFeedbacksコンポーネントの「Add new feedback」を押すと追加するエフェクトが選択できます。今回は「Transform→Rotatin」を選びます。

f:id:Karvan:20210601215252p:plain

 

MMFeedbacksに[Rotation]が追加されるので「Rotation Target」にCubeオブジェクト(Model)を指定します。

f:id:Karvan:20210601215519p:plain

 

「Remap Curve One」に回転角度「90」を指定、X軸周りに廻すので「Animate X」のみにチェックを入れます。

f:id:Karvan:20210601215545p:plain

この状態で再生ボタンを押すと「Playボタン」が有効になるので押してみると

f:id:Karvan:20210601215635g:plain

Cubeが90度回転するのが分かります。

このエフェクトをジャンプ中に再生するようにスクリプトを修正します。今回の場合はJump開始のタイミングで再生します。

f:id:Karvan:20210601215700p:plain

これを実行してみると

f:id:Karvan:20210601215718g:plain

こんな感じ、ジャンプ中にクルッと回るようになりました。

 

さらにエフェクト追加

次は着地時にカメラシェイクのエフェクトを実装します。
最初にCinemachineのバーチャルカメラ(CM vCam1)を作成し、

f:id:Karvan:20210601215922p:plain

このバーチャルカメラに[Cinemachine Impulse Listener]を追加しておきます。

f:id:Karvan:20210601220038p:plain

 

次に空のGameobject(LandingFeedback)を作成→MMFeedbacksコンポーネントを追加します。
「Add new feedback」を押して「Cinemachine Impulse」を追加します。

f:id:Karvan:20210601220113p:plain

 

これをUpdate内でrigidbodyの速度が下向きに転じたあたりでMMFeedbacksを再生するようにします。

f:id:Karvan:20210601220146p:plain

 

実行すると

f:id:Karvan:20210601220208g:plain

着地時に画面が揺れるエフェクトが実装されました。

 

さらにー

同じ手順でLandingFeedbackのMMFeedbacksにポストエフェクトも追加して設定すると、

f:id:Karvan:20210601220255g:plain

最終的にこんな感じになりました。
一番最初の動画と比べてかなり印象が違って見えると思います。

 




以上の内容はhttps://www.karvan1230.com/entry/2021/06/01/221102より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14