アニメーションコントローラー
#playanimation
アニメーションコントローラーとは、どの時に、どのアニメーションを再生するかを制御するものです。
既存のアニメーションコントローラーにアクセスすると、そのアニメーションコントローラーが上書きされます。
例
playanimation @e[type=allay] animation.player.attack.positions none "1" controller.animation.allay.dancing
アレイに対してこのコマンドを実行すると、レコードを再生しても踊らなくなります。
これは、【レコードが再生されていたら踊る】というアニメーションコントローラーが、【何もしない】に上書きされたことで起こります。
(再生するアニメーションは何でもいいが、今回は再生しても影響を与えないattack.positionsにした)
また、存在しないアニメーションコントローラーを入力すると、新しいものとして登録されます。
例
playanimation @a animation.ender_dragon.neck_head_movement animation.piglin.celebrate_hunt_special 0 "v.head_position_y=0;v.head_rotation_y=q.life_time*1000;return !q.is_sneaking;" head
playanimation @a animation.piglin.celebrate_hunt_special animation.ender_dragon.neck_head_movement 0 "v.head_position_y=0;v.head_rotation_y=q.target_y_rotation;return q.is_sneaking;" head
このコマンドを実行すると、スニークしているときは頭が回転し、そうでないときは踊るアニメーションが再生されるアニメーションコントローラーが新たに登録されます。
※反復実行するとちらつく。アニメーションが再生されるタイミングと、アニメーションが移行するタイミングが同時ではないのが原因。(1f必要)
左のアニメーションが再生されているとき、条件を満たしたら右のアニメーションに移行するということ。
これは何個でも追加できる。
また、左のアニメーションが再生されているとき、というのは、同じアニコン内でのアニメーションに限る。
たとえば、上のコマンドを実行している状態で、別のアニコン(head2など)で
animation.piglin.celebrate_hunt_specialを再生しても、animation.ender_dragon.neck_head_movementへの移行へは影響しない。
アニメーションコントローラーはクライアントエンティティに保存されます。
アニメーションコントローラーはコマンドで削除することはできません。
自作したアニコンは、ワールドを抜けたり、アニコンを持つエンティティを遠くに飛ばすことでリセットされます。