Uploaded:2023/01/01 Latest-Update:2023/01/01

アドオン作成 - アニメーション

目次は右上の「≡」から!
機能

エンティティの体の動きをアニメーションと呼び、このJSONはそのアニメーションを設定します。

ファイルの場所

リソースパックのanimationsフォルダにファイルを置きます。

リソース
  ┣ manifest.json
  ┣ pack_icon.png
  ┗ animations
    ┗〇〇.json
基本の構造
{ "format_version": "1.8.0", "animations": { ~#r"~#M(83ffd9)animation.my_entity.moveM#~": { %%%% "loop": true, %%%% "bones": { %%%% ~#b"body": { %%%%%%%% "position": [ 0.0, 0.0, 0.0 ], %%%%%%%% "rotation": [ 0.0, 0.0, 0.0 ], %%%%%%%% "scale": [ 1.0, 1.0, 1.0 ] %%%%%%%%}b#~ %%%% } %%%%}r#~ } }

● アニメーションのID

アニメーションのIDは"identifier": "〇〇"のように指定するのではなく、 上の例でマーカされてる部分にプロパティとして記します。

推奨フォーマットは「animation.(エンティティ名).(アニメーション名)」です。

● loop

アニメーションが再生されたとき、再生が止まるまでループするかどうかを指定します。

● bones

このアニメーションが紐づいているエンティティのモデルのボーン1つに対してアニメーションを指定します。

上の例で"body"とあるところはアニメーションを設定したいボーンの名前で、 青枠の部分1つで1つのボーンについて記述します。

● position, rotation, scale

そのボーンの位置、回転、スケールを指定します。数(小数)で指定すると、その状態で固定になります。 時間とともに"動く"ようにしたいなら、q.life_timeなどを使ったMolang式で指定します。

具体的な書き方

● 指定するボーンを増やす

{ "format_version": "1.8.0", "animations": { ~#r"animation.my_entity.move": { %%%% "loop": true, %%%% "bones": { %%%% ~#b"~#M(83ffd9)bodyM#~": { %%%%%%%% "position": [ 0.0, 0.0, 0.0 ], %%%%%%%% "rotation": [ 0.0, 0.0, 0.0 ], %%%%%%%% "scale": [ 1.0, 1.0, 1.0 ] %%%%%%%%},b#~ %%%% ~#b"~#M(83ffd9)headM#~": { %%%%%%%% "position": [ 0.0, 0.0, 0.0 ], %%%%%%%% "rotation": [ 0.0, 0.0, 0.0 ], %%%%%%%% "scale": [ 1.0, 1.0, 1.0 ] %%%%%%%%}b#~ %%%% } %%%%}r#~ } }

このように青枠部分を増やします。上記の例でマーカされてる部分はボーン名です。

● 1つのファイルに複数のアニメーションを定義できる

{ "format_version": "1.8.0", "animations": { ~#r"animation.my_entity.move": { %%%% "loop": true, %%%% "bones": { %%%% ~#b"body": { %%%%%%%% "position": [ 0.0, 0.0, 0.0 ], %%%%%%%% "rotation": [ 0.0, 0.0, 0.0 ], %%%%%%%% "scale": [ 1.0, 1.0, 1.0 ] %%%%%%%%}b#~ %%%% } %%%%},r#~ ~#r"animation.my_entity.jump": { %%%% "loop": true, %%%% "bones": { %%%% ~#b"body": { %%%%%%%% "position": [ 0.0, 0.0, 0.0 ], %%%%%%%% "rotation": [ 0.0, 0.0, 0.0 ], %%%%%%%% "scale": [ 1.0, 1.0, 1.0 ] %%%%%%%%}b#~ %%%% } %%%%}r#~ } }

このように赤枠部分を増やして1つのファイルで複数のアニメーションを定義することができます。

Blockbenchを使って作成

難しいアニメーションを設定するとき、完成図を見ずにJSONとにらめっこするだけではかなりキビシイときがあります。 そういうときには便利なツール「Blockbench(ブロックベンチ)」を使いましょう。

エンティティのモデリングついでに作成するのがオススメです。

 → Blockbench

使い方はまたいつか書きます。

©2023 Rinca Hayamine