散々
注文したPCの納期が半年後だったり、購入したゲームは画面酔いが酷かったり、無くしものをしたり、落とし物をしたり、贔屓のスポーツチームは負けたり、と散々な日々を過ごしている皆さんこんにちは。
iPad版のDAZNが「問題が発生しました。しばらくたってから再度お試しください」のメッセージを表示するようになって、かれこれもう一週間以上経っているのに未だに「しばらくたってから・・・」のメッセージを表示し続けているのですが、一体どれだけ待てば良いのでしょうかね?
ちなみにアプリを再インストールしても結果は同じでした。
Feel
前回の記事で紹介したUnityのアセット「Feel」
どんなアセットかと言うと"ゲーム内で発生する様々なイベントに合わせたエフェクトの詰め合わせ"といった感じのアセット。
音声、カメラ、パーティクル等々を利用したエフェクトを簡単に実装できます。
とは言え、購入したアセット内には導入法等が記載されたドキュメント類は含まれていない為、使い方を知るにはWebサイトを参照する必要がありました。
なので今回の記事では導入手順と簡単な実装例を紹介したいと思います。
導入手順
「Feel」のエフェクトをフルで使うには以下のパッケージを事前にプロジェクトに導入しておく必要があります。
- Cinemachine
- 2D Animation
- Post Processing
どのパッケージもPackageManagerからインストールすることが出来ます。(無料です)
「Feel」のエフェクトを使うには空のオブジェクトに「MMFeedbacks」コンポーネントを付与し、このコンポーネントから実装したいエフェクトを追加していきます。
この[空のオブジェクト+「MMFeedbacks」コンポーネント]は実装したいエフェクト単位に作る必要があります。
例えば「煙のパーティクルが発生する」と「画面(カメラ)が揺れる」エフェクトを同時に再生したいのであれば、一つの「MMFeedbacks」コンポーネントに「パーティクル再生」のエフェクトと「カメラシェイク」のエフェクトを追加します。
別々に再生したいのであれば、[空のオブジェクト+「MMFeedbacks」コンポーネント]を二つ用意して、一つに「パーティクル再生」のエフェクト、もう片方に「カメラシェイク」のエフェクトを追加します。
簡単な実装例
実装例として下の動画のような単純に飛び上がるCubeに対して「Feel」のエフェクトを追加したいと思いまます。
CubeはAddFroce(Impulse指定)を行う事で飛び上がっています。この時rigidbodyの回転については全軸freezeの設定をしています。
この状態でシーン内に空のGameobject(JumpFeedback)を追加します。
JumpFeedbackにMMFeedbacksコンポーネントを追加します。
このMMFeedbacksコンポーネントにジャンプ中に回転するエフェクトを追加します。
MMFeedbacksコンポーネントの「Add new feedback」を押すと追加するエフェクトが選択できます。今回は「Transform→Rotatin」を選びます。
MMFeedbacksに[Rotation]が追加されるので「Rotation Target」にCubeオブジェクト(Model)を指定します。
「Remap Curve One」に回転角度「90」を指定、X軸周りに廻すので「Animate X」のみにチェックを入れます。
この状態で再生ボタンを押すと「Playボタン」が有効になるので押してみると
Cubeが90度回転するのが分かります。
このエフェクトをジャンプ中に再生するようにスクリプトを修正します。今回の場合はJump開始のタイミングで再生します。
これを実行してみると
こんな感じ、ジャンプ中にクルッと回るようになりました。
さらにエフェクト追加
次は着地時にカメラシェイクのエフェクトを実装します。
最初にCinemachineのバーチャルカメラ(CM vCam1)を作成し、
このバーチャルカメラに[Cinemachine Impulse Listener]を追加しておきます。
次に空のGameobject(LandingFeedback)を作成→MMFeedbacksコンポーネントを追加します。
「Add new feedback」を押して「Cinemachine Impulse」を追加します。
これをUpdate内でrigidbodyの速度が下向きに転じたあたりでMMFeedbacksを再生するようにします。
実行すると
着地時に画面が揺れるエフェクトが実装されました。
さらにー
同じ手順でLandingFeedbackのMMFeedbacksにポストエフェクトも追加して設定すると、
最終的にこんな感じになりました。
一番最初の動画と比べてかなり印象が違って見えると思います。