Timeline でパーティクルを再生
いままで Activation Track でパーティクルの表示を切り替えてたんですが、これだと Timeline で確認ができない。でもじつは Control Track を使うと確認ができるということを知った。Control Track の設定で、Random Seed というのもあるので、これを変えればランダムなが固定される。
こうなる。
いままで Activation Track でパーティクルの表示を切り替えてたんですが、これだと Timeline で確認ができない。でもじつは Control Track を使うと確認ができるということを知った。Control Track の設定で、Random Seed というのもあるので、これを変えればランダムなが固定される。
こうなる。
カスタム Marker のところで Timeline を止めて、再度再生するときに再びその Signal が呼ばれてしまったので、MarkerではなくSignalEmitterを継承したマーカーを作ると、Emit Once という設定項目が出てきて1度だけ発行してくれるようになった。
ちょっとわかりづらいアニgifですが…
タイムラインの WrapMode は両方とも Holde で、中身はパーティクルが最初に Active になり終わりの方で Inactive になる。Cube は Active になったり Inactive になったりする。そして片方が終わったらもう片方を流し、終わったらまた最初の Timeline を流す。Cube の方は問題なくアニメーションしているように見えるけど、パーティクルは2つめの Timeline からおかしくなる。
ログを出してみると OnEnable と OnDisable が毎フレーム連続して呼ばれている状態になってしまう。Cube の方はとくに Active/Inactive が交互になってもレンダリング段階で Active になっているので点滅とかはしない。でもパーティクルの方は、Active になるとエミットされるようになっているので、毎フレームエミットしようとしては消えてを繰り返しておかしくなる…
以前の記事みたいにバインドを外せば直るはず。もしくは、WrapMode を None にしてあげても問題ない。けど、Hold にしたいケースは多々あるし、Cube のように問題なさそうに見えても Active/Inactive が切り替わってしまうのもどうなのかという感じ… Timeline を再度流す際にバインドを外すっていうのもなんだかメンドウだし…
Timeline がたくさんあるお仕事をしているので、ロック/アンロックの切り替えが面倒なので簡単な EditorScript 作りました。***/Editor などのフォルダに入れて、Cmd/Ctl + Lでトグルできます。
参考)
コガネブログ | ショートカットキーで Inspector をロックしたりデバッグモードに切り替えたりできるエディタ拡張「LockInspector.cs」紹介
コガネブログ | Alt + Q で Inspector のロック状態を切り替えるエディタ拡張
Timeline を WrapMode:Hold など使って、その Timeline に Activation Track があった場合、Timeline 終了後に別の Timeline を流して、そこに同じオブジェクトの Activation Track があった場合に挙動がおかしくなることがあった。
トラックを選択して出てくるインスペクタ
今回の場合こちらを、Inactive にしてあげたら直った。
タイムラインで WrapMode を Hold にした際に、その後 Animator でアニメーションが制御できなくなってしまう。例えばオープニングアニメーションのあとにスタートボタンだけボタンを押されたときに Animator でボタンのアニメを再生させたいとかそんな場合、ボタンを包む GameObject でコンテナを作って、Timeline ではそっちを制御するなんかの工夫が必要になってくる。
Timeline を流した後、別の Timeline を流す分には問題なくアニメーションが流れるけど、Animator での制御が効かない。
vertex shader を触って波のような感じで動かしていたら、頂点がずれる問題に気づいた。通常の Plane なんかでは大丈夫だけど、なぜか隙間ができる。どうも三角形を形成する頂点が隣接するものの頂点と繋がっている訳ではなく、三角形ごとに作られている感じになってる(二倍の頂点がある)。
Package Manager より提供される Vector Graphic にて uGUI でも扱える、SVGImage を試してみました。まったく知識がなかったので、どういった処理をしているのか気になっていた。
AnimationType が Humanoid のものにアニメーションをつけようとすると
Keyframing rotation on humanoid rig is not supported!
だの
Keyframing translation on humanoid rig is not supported!
怒られる。