マルチプレイなら『シン・VPS』がおすすめ!

CustomModelDataでアニメーションを作成する【マイクラ】

CustomModelDataでアニメーションを作成する【マイクラ】

この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

CustomModelDataで追加したテクスチャを動かしたいマインクラフター
「CustomModelDataにアニメーションをつけるにはどうすればいいのかな? 具体的にやり方を教えて欲しいな」

こんな疑問を解決します!

本記事の内容
  • CustomModelDataでアニメーションを作成する

こんにちは!
マインクラフターのなつめ(@natsume_717b)です。

なつめ

マイクラ歴は5年程で、最近は脱出マップやミニゲームを制作しています!
→ダウンロードページ

この記事では、CustomModelDataをアニメーションさせる方法について解説していきます。

アイテムの見た目を変更することのできるCustomModelDataですが、時間経過で画像が変化させることも可能です。
必要なファイルやその内容について説明しているので、ぜひ参考にしてくださいね。

それでは、さっそく見ていきましょう。

今回解説するリソースパックのサンプルはGitHubからダウンロードすることができます。
ぜひ活用してみてください。

CustomModelDataでアニメーションを作成する

CustomModelDataを用いてアイテムのテクスチャを変更する際に、アニメーションを追加することが可能です。

しかし、ただアニメーション用の画像を追加するだけで済むわけではないので、以下の作業が必要となります。

  • アニメーションさせるのに適した画像ファイルを用意する
  • アニメーションさせる画像だとjsonファイルで認識させる

CustomModelDataについては以下の記事を参考にしてください。
以下の記事の内容を理解している前提で、本記事は話を進めていきます。

【必見!】CustomModelDataを実装する方法【マイクラ】

アニメーションさせるのに適した画像ファイルを用意する

まずはアニメーション用のテクスチャだと認識させるために、縦長の画像を用意しましょう。
アニメーションさせる際は複数の画像ファイルを用意するのではなく、正方形の画像を縦に連ねます。

アニメーションされる順番は、基本的に上から下に向かいます。
なので上記の画像には0、1、2と番号を振りましたが、特別な指示をしない限りその通りに表示されます。

画像の準備はこれだけでOKです。

アニメーションさせる画像だとjsonファイルで認識させる

アニメーション用の画像を用意することができたら、次はアニメーションさせる画像だとjsonファイルを使って認識させます。

このjsonファイルは画像ファイルと同じフォルダに入れる必要があります。
別の場所にフォルダを作成するなどといった手間はないので、簡単ですね。

また、jsonファイルの名前は必ず「拡張子を含めた画像のファイル名.mcmeta」となるようにしましょう。
例えば「sample-animation.png」をアニメーションさせたかったら「sample-animation.png.mcmeta」となります。

.mcmetaの名前によって、どの画像をアニメーションさせるのかを指示していると思えばOKです。

jsonファイルの中身は、以下のようになります。

{
    "animation": {
        "interpolate": true,
        "width": 32,
        "height": 32,
	    "frametime": 40,
	    "frames": [
            {
                "index": 0,
                "time": 50
            },
		0, 1, 2, 1, 0, 1, 2, 1, 0, 1
        ] 
    }
}

各項目について説明していきます。

項目名説明
interpolateアニメーションさせる際に、ゆっくりと変化させるかどうか。
フェードアウト、フェードアウトをかけたい場合にtrueで、パッと切り替えたい場合はfalseにする。
デフォルトはfalseになっています。
widthアニメーションさせる画像の横幅を指定する。
必ず用意した画像の倍数となる数字を入力すること。
また、画像よりも大きい横幅を指定すると読み込み不可となる。
heightwidthの縦版。
なので、縦の大きさの倍となる値を入れること。
(横16×縦48の画像を用意している場合に、widthとheightの両方に16を指定すると3つ分の画像がアニメーションされることになる)
frametimeどれくらいのスピードで画像を切り替えるか。
単位はtickなので、20で1秒。デフォルトでは1に設定されているのでかなり早め。
framesframesで切り替える画像の順番を指定をすることが可能。
上記の例では「0, 1, 2, 1, 0, 1, 2, 1, 0, 1」とあるので、これの通りに画像が変化する。
(0から順番に数える点に注意)
indexは詳細が不明でしたが、0を指定すれば問題ありません。
timeはframetimeと同様に画像を切り替える速度を指定するもので、こちらで指定した値が優先されます。

余談ですが、widthを用意した画像ファイルよりも小さくした場合は、上から下ではなく左上から右に進んでいき、画像が途切れるところで下の段へ移動するようにアニメーションされます。
(アニメーションの順番の指定をする場合も、同様の数え方になる)

ややこしくなるので、基本は縦長の画像を用意して、widthは画像のサイズと同じ値を指定するようにしましょう。

また、以下のように入力しても動作はします。

{
  "animation": {}
}

ただし、すべての項目がデフォルト設定になっていますので、まず使いにくいです。
面倒ではありますが、各項目キチンと設定した方が良いですね。

jsonファイルを作成した後は、実際にCustomModelDataを指定したアイテムを取り出してアニメーションするかを確かめましょう。

まとめ

というわけで、今回のまとめです。

ポイント
  • CustomModelDataをアニメーションさせるには、適した画像ファイルとjsonファイルを作成する必要がある。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】