はじめに
playanimation
コマンドというコマンドがあります。言わずと知れた、エンティティのアニメーションを再生するコマンドですね。カスタムエンティティを制作していると、このコマンドを用いてオリジナルのアニメーションを再生したくなることがあります。本記事では、その方法を解説し、playanimationコマンドでカスタムアニメーションを再生できるようにしていきます。前提として、アドオンの制作環境そのものが必要になる旨、予めご了承ください。こちらが詳しいです:
Step 1 アニメーションの登録
まず、アニメーションの本体そのものを作成します。ここでは例として、腕を振るattack
というアニメーションを定義しましょう。リソースパック内にanimations/your_entity.animation.json(your_entityはカスタムエンティティの名前)を作成し、以下を貼り付けます:
{
"format_version": "1.8.0",
"animations": {
"animation.your_entity.attack": {
"loop": false,
"animation_length": 0.5,
"bones": {
"right_arm": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [-90, 0, 0],
"0.5": [0, 0, 0]
}
}
}
}
}
}
animation.your_entity.attackが、このアニメーションの正式名称です。一応、これで定義は完了しましたが、playanimationで呼び出すことはできません。
Step 2 クライアント用エンティティファイルを編集
続いて、先ほどのアニメーションをエンティティに登録し、コマンドで呼び出すためのショートネームを付けます。リソースパック内にentity/your_entity.client.json(your_entityはカスタムエンティティの名前)を作成し、以下を同様に貼り付けましょう:
{
"format_version": "1.10.0",
"minecraft:client_entity": {
"description": {
"identifier": "your_addon:your_entity",
"materials": { "default": "entity_alphatest" },
"textures": {
"default": "textures/entity/your_entity"
},
"geometry": {
"default": "geometry.your_entity"
},
"animations": {
"attack": "animation.your_entity.attack" // (1) ショートネームをここで定義
},
"scripts": {
"animate": [
"attack" // (2) ショートネームをここで登録
]
},
"render_controllers": ["controller.render.default"]
}
}
}
これによって、attackというショートネームで、先ほど作ったアニメーションを呼び出せるようになります。
playanimation
コマンドを実行
ここまで来たら、あとはコマンドを実行するだけです。以下のplayanimationコマンドをゲーム内で実行し、挙動を確認してみましょう:
/playanimation @e[type=your_addon:your_entity,c=1] attack
コマンドの最後に指定しているattack
が、ステップ2で定義したショートネームです。このコマンドが実行されると、指定されたエンティティが腕を振るアニメーションを1回再生されます。