画像は縦長のストリップです
16×16の4フレームアニメーションテクスチャは16×64のPNGになります。各フレームは正方形で、上から下に積み重なり、最初のフレームが一番上に配置されます。ゲームは幅からフレームサイズを推測するため、高さは幅の整数倍である必要があります。これは、炎、水、プリズマリンなどがアニメーションする仕組みと全く同じです。
prismarine.png 16 wide × 64 tall = 4 frames of 16×16
┌────────┐ frame 0
├────────┤ frame 1
├────────┤ frame 2
├────────┤ frame 3
└────────┘.mcmetaファイル
テクスチャの隣には、同じ名前に以下のファイルが配置されます .mcmeta — そのため prismarine.png が付属しています prismarine.png.mcmeta. なお、途中に .png がそのまま残るため、これで躓く人が続出します。
{
"animation": {
"frametime": 2,
"interpolate": true
}
}このファイルがないと、縦長のPNGはアニメーションとして扱われず、サイズが間違った潰れたテクスチャとして扱われます。帯画像だけでは機能しません。
frametime
各フレームが保持されるゲームティック数。1秒間に20ティックあるため、 frametime: 2 は1秒間に10フレームで、 frametime: 20 は1秒間に1フレームです。デフォルトは1(1ティックごとに1フレーム)で、非常に速く、意図した動作にならないことがほとんどです。
interpolate
付属の interpolate: true、Minecraftはフレーム間をカットする代わりに滑らかに補間します。これが、バニラでわずかなフレーム数からゆっくりとした輝きを生み出す仕組みです。中間フレームは自動生成されます。
輝き、水、穏やかな色の変化など、徐々に変化するものに使用してください。点滅するライトや回転するパターンなど、明確なステップとして認識されるべきものにはオフにしてください。ブレンドするとぼやけてしまいます。
フレームの順序とタイミングの制御
デフォルトではフレームはファイル順に再生され、ループします。A frames 配列で上書きできます。フレームの順序変更、繰り返し、個別のフレームごとの持続時間を設定可能です:
{
"animation": {
"frametime": 4,
"frames": [
0,
1,
{ "index": 2, "time": 20 },
1
]
}
}これはフレーム0、1、2、1を再生するピンポンループで、フレーム2を1秒間保持し、他はデフォルトの4ティックを使用します。このようにフレームを再利用することでPNGを小さく保てます。バウンスのためにフレームを複製する必要はありません。
短く維持する
JSONを書かずに実行する
The エディター はアニメーションをファイル形式ではなくフレームとして扱います。フレームを作成し、速度を設定すると、エクスポート時に帯画像と.mcmetaファイルが正しく生成されます。GIFをインポートしてフレームに変換することもでき、手動でループを描くより通常は高速です。
アニメーションの順序がおかしい、または動かない場合、ほとんどの原因は.mcmetaの名前です。以下を確認してください: texture.png.mcmeta ではなく texture.mcmeta。その他のエラーについては以下を参照してください。 テクスチャパックが動作しない理由.
