オリジナルを上書きせずにカスタム絵画とレコードを追加する方法
絵画とレコードはどちらもデータパックのレジストリになったため、バニラのものを上書きする代わりに新しいものを追加できます。それぞれに必要な2つのファイルと、絵画が従うべきサイズルールを説明します。
以前はカスタム絵画を追加するには、paintings_kristoffer_zetterstrand.png を上書きしてバニラの絵画を失う必要がありました。しかし、絵画とレコードはどちらもレジストリになったため、置き換えるのではなく追加する形になりました。
絵画には2つのファイルが必要
絵画を定義するデータパックのエントリ:
data/<namespace>/painting_variant/my_art.json
{
"asset_id": "my_pack:my_art",
"width": 2,
"height": 2,
"title": { "text": "My Art" },
"author": { "text": "Me" }
}
そして、画像を提供するリソースパック:
assets/my_pack/textures/painting/my_art.png
width と height はブロック単位で、テクスチャは1ブロックあたり16ピクセルでその比率に合わせる必要があります。2×1の絵画には32×16のテクスチャが必要です。比率が間違っていると引き伸ばされます。自動調整機能はありません。
バニラのサイズは1×1から4×4までです。より大きなサイズも機能しますが、それに合う壁が必要です。
入手可能にする
バリアントを追加しても、ゲーム内には配置されません。2つの方法があります。
- 配置タグ —
#minecraft:placeableに追加すると、通常の絵画アイテムがランダムにその絵画になる可能性があります。 - 直接 —
/give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:my_art"}]
ほとんどのマップ制作者は後者、つまりランダムな絵画ではなく特定の絵画を望んでいます。
レコードには3つのファイルが必要
data/<namespace>/jukebox_song/my_song.json
{
"sound_event": { "sound_id": "my_pack:music/my_song" },
"description": { "text": "My Artist - My Song" },
"length_in_seconds": 154,
"comparator_output": 12
}
さらに、そのサウンドIDをファイルにマッピングする sounds.json と、.ogg 自体が必要です。
assets/my_pack/sounds.json
assets/my_pack/sounds/music/my_song.ogg
3つの重要な詳細があります。
length_in_secondsが正しい必要があります。 これは、ジュークボックスが停止するタイミングとパーティクルストリームが終了するタイミングを制御し、オーディオ自体ではありません。値が間違っていると、最後に無音になったり、途中で途切れたりします。comparator_outputは1〜15の範囲で、コンパレーターが読み取る値です。バニラのレコードはそれぞれ異なる値を持っています。同じ値を再利用すると、レッドストーンで区別できなくなります。- oggをストリーミングする。 音楽の長さがあるものについては、
sounds.jsonの"stream": trueを使用します。
次に、それを与えます。
/give @p music_disc_13[jukebox_playable="my_pack:my_song"]
どのレコードアイテムでもキャリアとして機能します。コンポーネントが再生するものを決定します。
上書きよりも優れている理由
バニラアセットを置き換えるパックは、同じことをする他のすべてのパックと競合し、Mojangがファイル名を変更すると壊れてしまいます。レジストリへの追加は名前空間化されているため、絵画を追加する2つのパックは共存できます。また、編集なしでバージョンアップ後も機能する唯一のアプローチでもあります。
カスタムコンテンツパック作成者 を使って、絵画のバリアント、ジュークボックスの曲、トーテム、チャットの絵文字を1つのリソースパックzipにまとめて作成しましょう。