セットするとアニメーションを一時停止します。(StateMachineノードを扱いたくない時に)。複数のアニメーションを接続でき、トランジションの時間を指定できます。BlendSpace2D¶BlendSpace2Dは二次元でより高度なブレンドをするためのノードです。二次元空間に点を追加し、それらの位置をコントロールしてブレンドを決めます。(それぞれ別の名称に変更可)。デフォルトでは、点はどこにでも置けます(座標系の上で右クリックするか、点を作成ボタンを使う)。三角形はドロネー分割で自動生成されます。三角形の自動作成をオフにすれば、三角形を手動で作成することもできますが、必要になることはあまり無いでしょう:最後に、ブレンドモードは変更することができます。標準状態では、一番近い三角形の中で補完された点によってブレンドされますが、もし対象が(フレームごとに動かす)2Dアニメーションなら、離散モードに切り替えてもよいでしょう。離散アニメーション間においても現在の再生位置を維持したい場合のために、キャリーモードもあります。モードはブレンドメニューから変更できます。(そのため三角形は不要)。StateMachine¶このノードは比較的シンプルなステートマシンです。ルートノードを作り、線をつないで接続します。ステートは、独自のプロパティを持つトランジションを用いて接続します。トランジションは一方通行ですが、ふたつを互いに接続させあうことができます。次のステートへと即座に切り替わります。現在のステートが終わると、新しいほうの先頭から始まります。次のステートへと即座に切り替わりますが、新しいステートでも古いステートと同じ再生位置になります。現在のステートの再生位置が最後になるまで待ち、それから次のステートの先頭に切り替わります。トランジションはまた、いくつかのプロパティを持ちます。作成した後でもここで変更できます。(自動移行)は、このステートに到達したらすぐにトランジションがオンになります。スイッチモードと合わせるのが最適です。この条件が満たされた場合に自動移行させます。テキストフィールドには変数名を入れます。このステートと次との間でのクロスフェードにかかる時間です。ひとつのステートから別へと移動するときの、このノードの優先度を設定します。自動移行では無視されます)。ボーンを用意するのが一般的なテクニックです。これにより、キャラクターを床に合わせて歩かせることが可能になります。ムービー場面においても、正確に物体に触れさせられるようになります。指定することができます。(アニメーションはそのまま)。APIからトランスフォームとして取得します:GDScriptC#anim_tree.get_root_motion_transform()animTree.GetRootMotionTransform();これをKinematicBody.move_and_slideなどの関数に渡すことで、キャラクターの動きをコントロールできます。(通常このノードはゲーム中は無効にされます)。コードからコントロールする¶ツリーを作成してプレビューしたら、最後に残る質問は「これを全部コードからコントロールする方法は?」です。ノードはリソースであり、したがって、すべてのインスタンス間で共有されます。ノードの値を直接変更すると、このAnimationTreeを使用するシーンにある、すべてのインスタンスも影響を受けます。これにはクールな応用方法もあります。アニメーションツリーの一部をコピー&ペーストできますし、(ステートマシンやブレンドスペースのような)複雑なレイアウトのノードを、異なるアニメーションツリー間で再利用できます。データはAnimationTreeノードに格納されており、プロパティを通じてアクセスします。セクションに、リアルタイムで変更できるパラメーターが全てあるので確認してみてください:これらはAnimationPlayerや、AnimationTree自身からすらもアニメーション化できるので便利です。ロジックを実現できます。パスを知る必要があります。それには、パラメーターの上にマウスをホバーするだけです。現在のステートからの移動を指示すると、グラフは中間のものを全て通ってから、別のステートへと移ります。アルゴリズムにて行われます。(プロパティのひとつ)。