golaem crowd ノード完全解説|群衆に命を吹き込む!モーションビヘイビア接続の基本

golaem crowd

「さぁ!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フレーム」の間、キャラクターはどうなっているでしょうか?

  1. 30fでidleモーションになる
  2. フェードでゆっくり止まる
  3. 30fから60fの間、透明になって消える

・・・

・・・

・・・

・・・

・・・

正解は……「1. 30fでidleモーションになる」です!

再三となりますが、
前のモーションを止めて、次のモーションを動かすこと
が前提条件としてあります。

それを考えると、「60fからidleモーションになります」よりも「30f歩くのを止めます」が優先されるのです。


まとめ

如何だったでしょう?

多少は理解する手助けにはなれたでしょうか?

こちらの流れを掴んでおけば基本的なモーションを動かす部分は対応できるかと思ってます。

ただし、あくまでモーションの流れだという事を念頭に置いておいてほしいです。

「physics ビヘイビア」になると、また少し考え方が変わってきます。

こちらの説明は改めて更新します。

補足

モーションビヘイビアは、デフォルトでループモーションとしてノードに配置されます。
LPを止める方法として、Loopのチェックを外せば動きを止めることは可能ですが、
モーションが終了するとTポーズ(もしくはAポーズ)になってしまうので、
待機モーションを作成して、動きの流れで止める事が望ましいです。

タイトルとURLをコピーしました