Unity

【Unity】E-mote制御でテキストがない場合においてのタイムライン制御

Unity

地味にこれは自分で困ってたんですが、メモがてら書いておきます。

多分、自分以外困らないパターンだし。

まず、このようにタイムラインで作っていて、次のシーンでその直前のところで初期化タイムラインでモーションを初期化していますが、うまく機能してません。

テキストがないとうまく機能してないようで、間に処理が挟まれないことで動いてしまって重複、それでモーションが止まるのかなと思いました。
クリックさせるとかで処理が一時的に止まれば、入力されて動くようになるのだろうとは思いましたけど、意味もなくクリック待ちを作るとかは論外。

仕方ないので同じタイムラインで、メインモーションとかでやると動かないから基本は差分モーション。
差分モーション1に動作が終わると同時に次の動作を入力。

処理の全体像はこうなってます。
差分モーション1が4秒で大体終わるので、そこから予備時間としてwait1を置く。こうすれば、最初に動いていたモーションを違和感なく繋がるはず。それか、WaitInputをコマンドに指定してAg6に1を入力と。

次の動作はこうなっていて、こうするとテキストがなくてもモーションが止まることなく動いてくれました。
今まではテキストが入っていたから大丈夫だったんですが、それ以外とかはwait処理とかでクリックしないとモーションが止まってフェードパーツ全表示になるとかあったり、そういうのがまだ解決はしてませんけど。

次の課題は、テキストを進ませないとモーションが動かないというところをうまいことやりたいところです。
今のところ、トリガーとなるテキストで強制的に進むようにするけど多分テキストが見切れるかなと思います。ここはこれから調整します。

今回、一部でE-moteがバグってるのか、いくらやってもUnity上でモーションが再生されません。
むしろ、どういうわけかタイムラインが無視されて次のモーションが動いてる。

読み込まないこともあるし、Unityのバージョン変えればいいのかどうか。多分、ティラノスクリプトでもあった変な挙動だから、E-mote側の問題かもしれないけど。
差分モーション扱いで作ってるけど、やっぱりループ部分を作っても動いてないし、このタイムラインだけが正常ではないようです。一部だけループせずで止まってる状態ですが、直らない不具合ということで。

コメント

  1. TheUnsaid より:

    A simple solution is to create a motion that is only one frame and is a still image. You can move to that “stopped” motion and loop that motion if you want the motion to stop.