Feelとはなんぞや
コードを書かなくても演出や動きをオブジェクトにつけることが出来るAsset
基本
ものを動かしてみる。
動かしたいものにMMFPLAYERをアタッチ。
Add new feedbackからTranceform>Positionを選択
Positionをひらくとどれを動かすのかおしえてと出ているので動かしたいものをドラック&ドロップ
あとはどう動かすかの設定で、とりあえず変化させてみる
シーンを再生して、Playを押してみると動く。
これが理解できればPositionのパラメータで好きな変化をつけることができるし、Add new Feedbackで様々な種類のエフェクトをつけることができる。
パーティクルや、サウンド、ループなどノーコードで使いできる。
スクリプトで制御する。
ゲームでエフェクトは何らかのトリガーで発生することが多い。その処理をスクリプトでおこなう。
[SerializeField] private MMFeedbacks test1;
public void FeedBackTest()
{
test1?.PlayFeedbacks();
}
MMFeedbacks型の変数を用意し.PlayFeedbacks();で実行する。
変数には実行したいMMFPlayerを設定する。
.PlayFeedbacks()でさっきのPlayと同じことなのでこれ条件文で囲えばスクリプトで制御できる。
発展
カメラをゆらす
通常のカメラに親のオブジェクトをつくる。
そのオブジェクトに
MMWiggle、MMCameraShakerをアタッチする。
WigglePermittedのチェックをはずす。
WiggleTypeNoiseに設定
カメラとは別のゆらしたいオブジェクトにMMFPlayerを設定。
CameraShakeを追加
これで揺れるようになる。
Cinemachineカメラでの設定方法
メニューから2Dカメラを選択
VirtualCameraのAdd ExtensionよりImpulseListenerを追加する。
別のGameObjectにMMFPlayerを設定
FeedBackにCinemachine ImpulseSouceを追加(Sourceがついているほう)
スクリプトのCinemachine ImpulseSouceをAddComponentで追加。
追加したObjectをドラック&ドロップでInpulseSouceに設定
画面ではFeelTestが設定されている。
プレイで画面揺れるようになる。
エラー文の対処
MMFPlayerを使うのがおすすめだよ警告
Tips
Camera Shake とChinemachine Impulseは同時に使用できない。
CameraShakeを使用する時はChinemachineBraneが無効になっている必要がある。
参考サイト