「さぁ!Golaemで群衆を動かそう!!」
意気揚々とモーションビヘイビアをノードにインプットしたものの、次のステップで手が止まってしまった…なんてことはありませんか?
「次のトリガーを入れる時、前(Stop)と後(Start)のどっちに入れたらいいの??」
そう思ったあなた!安心してください。 かくいう私も、最初は迷いました。
Golaemのワークフローは強力ですが、接続のルールを理解するまでは少しパズルみたいですよね。今回は、そんな「どっちにトリガーを入れればいいの?」という疑問をスッキリ解決できるよう、整理して解説します。これを読めば、もう迷わずにノードを繋げるようになるはずです!
モーションを置いただけでは「永遠に」動き続ける?
「Golaem Behavior Editor」に歩きのモーションを配置してみましょう。
実行すると、キャラクターは当然のごとく歩き出します。……が、放っておくとどこまでも、ずっと歩き続けてしまいます。(↓)


「よし、次は止まらせよう!」と思い、歩きのノードの後ろに「止まるモーション」を置いてみます。
ですが……この人たちは一向に歩くことをやめません。 後ろにノードを置いたはずなのに、相変わらず画面の端までスタスタと歩いていってしまいます。(↓)


「あれ、いつ止まるの? 繋いだはずなのに!」
と思ったあなた。そう、この「止まらない歩き」をコントロールし、次のアクションへと橋渡しをするのが、今回解説するトリガー(Trigger)の役割なんです。
トリガーを配置して、動きのスイッチを入れよう!
さて、「ノードを並べただけではダメだ」と分かりました。いよいよ、動きを切り替える「スイッチ」となるトリガー(Trigger)を配置していきましょう!
トリガーの基本は、「前のモーションを止めて、次のモーションを動かすこと」を前提として考えます。
まず、配置したWalk(歩き)モーションの右側にある三角マーク(接続ポイント)をダブルクリックしてみましょう。
そこから設定できるトリガーの中から、今回は「50フレーム(50f)で歩きを止める」というStopトリガーを設定してみます。
すると、一体どうなるでしょうか……?


「止まりました!」
うまく次のidleモーションに繋げました!
では、Stopトリガーではなく、Startトリガーに入れた場合、どうなるでしょうか?


あれ、、、?止まらない??
そうです、先ほどお伝えした「前のモーションを止めて、次のモーションを動かすこと」を前提として考えると、
「前のモーションを止める命令を受けてない」状態になります。
軍隊で考えるとイメージしやすいかもしれません
Golaemのキャラクターたちは、いわば 規律の厳しい「軍隊」 のようなものです。 軍隊では、上官からの明確な指示がない限り、勝手な行動は一切許されません。
例えば、事前に 「歩いた後、止まれ!」 と命令されていたとしましょう。 一見、正しい指示に見えますが、兵士(キャラクター)からすればこう思うはずです。
「……で、それは『いつ』『どこで』実行すればいいんですか!?」
具体的なタイミング(トリガー)が指定されていない場合、兵士は「いつ止まればいいのか」が判断できず、結局ずっと歩き続けるしかありません。
逆に「50フレームで止まれ!」というStopトリガーだけを与えられると、彼らは忠実に「歩くのをやめる」という任務だけを遂行する事が出来るのです。
「いつ待機(モーション)に移ればいいですか?」よりも
「いつ歩くのを止めればいいですか?」が先に来ます。
【実践クイズ】この設定、キャラはどう動くと思う?
ここで、ちょっと意地悪な設定を考えてみましょう。 もし、あなたがこんな風にトリガーを入れたとしたら……キャラクターはどう動くでしょうか?
Q. StartトリガーとStopトリガーの両方に追加したらどうなる?
- 前のモーション(歩き)の Stopトリガー: 30f(30フレームで強制終了)
- 後のモーション(止まる)の Startトリガー: 60f(60フレームから開始)

さあ、想像してみてください。 30フレームで前の動きが終わり、次の動きが始まるのは60フレーム。 この「空白の30フレーム」の間、キャラクターはどうなっているでしょうか?
- 30fでidleモーションになる
- フェードでゆっくり止まる
- 30fから60fの間、透明になって消える
・・・
・・・
・・・
・・・
・・・
正解は……「1. 30fでidleモーションになる」です!

再三となりますが、
「前のモーションを止めて、次のモーションを動かすこと」
が前提条件としてあります。
それを考えると、「60fからidleモーションになります」よりも「30fで歩くのを止めます」が優先されるのです。
まとめ
如何だったでしょう?
多少は理解する手助けにはなれたでしょうか?
こちらの流れを掴んでおけば基本的なモーションを動かす部分は対応できるかと思ってます。
ただし、あくまでモーションの流れだという事を念頭に置いておいてほしいです。
「physics ビヘイビア」になると、また少し考え方が変わってきます。
こちらの説明は改めて更新します。
補足
モーションビヘイビアは、デフォルトでループモーションとしてノードに配置されます。
LPを止める方法として、Loopのチェックを外せば動きを止めることは可能ですが、
モーションが終了するとTポーズ(もしくはAポーズ)になってしまうので、
待機モーションを作成して、動きの流れで止める事が望ましいです。



