BLOG

アドオン制作者向け 統合版26.40/26.50の変更点:entity JSON厳格化とformat_version移行チェックリスト、Script API v2.10

2026年11月1日 ・ 約10分

はじめに

統合版(Bedrock Edition)は2026年から、バージョン番号が「26.40」「26.50」のような年ベースの表記になっています(内部の format_version は 1.26.40 のように先頭に1が付きます)。「1.20〜1.21系ではないので怪しい」と感じるかもしれませんが、Microsoft公式の更新ノートに 1.26.40 と 1.26.50 のページが実在することを、この記事の執筆時に直接開いて確認しました。

アドオン制作者に特に影響が大きいのは、エンティティ定義の検証が厳しくなったことです。「format_versionを上げたらMobが出なくなった」という事態になりえます。この記事では、公式の更新ノート(英語)をもとに、移行時に確認したい点と Script API の変更をまとめます。

なお、前の版では26.50を「プレビューの段階」として書いていましたが、その後に公式の1.26.50ノート(2026年10月5日付、10月26日更新)が公開されていることを確認しました。そのため、この版で内容を直しています。

最重要:format_version 1.26.40以上は「不正値だと読み込み失敗」

公式ノートによると、format_version が 1.26.40以上のエンティティ定義では、いくつかのコンポーネントやAIゴールに不正なデータを渡すと、定義そのものの読み込みに失敗します。公式も「format_versionを上げる前に検証してください」と書いています。format_versionを据え置けば従来の挙動のままなので、慌てて上げる必要はありません。

必ず直すフィールド(1.26.40以上)

対象 1.26.40以上での扱い
minecraft:behavior.beg の look_time min と max を持つオブジェクトにする
minecraft:behavior.float_wander の float_duration min と max を持つオブジェクトにする
minecraft:behavior.ranged_attack の attack_interval 範囲(float range)を受け取る。attack_interval_min / attack_interval_max の代わり

スキーマが厳格化された主なもの

一部を挙げます(全部は公式ページを見てください)。

  • コンポーネント: cannot_be_attacked、floats_in_liquid、wants_jockey、on_death、on_hurt、on_target_acquired など
  • AI関連: bucketable、hide、jump.dynamic、jump.static、persistent、trust など
  • AIゴール: ranged_attack、leap_at_target、move_to_block、summon_entity、drink_potion、squid_* 系など

on_killイベントの修正

delayed_attack、melee_attack、melee_box_attack、stomp_attack、use_kinetic_weapon では、これまで on_kill が誤って on_attack に割り当てられており、倒したときに発火しませんでした。1.26.40以上では正しく動きます。

26.50でさらに厳格化(format_version 1.26.50以上)

1.26.50のノートでは、同じ方式の厳格化が追加されています。

  • anger_level、barter、boss、collision_box、flocking、home、physics などが厳格なスキーマに
  • minecraft:projectile は別名フィールドを受け付けなくなり、anchor は整数ではなく origin / eye_height / middle の文字列、impact_damage.damage は min と max を持つオブジェクトになる
  • ranged_attack の attack_range が範囲指定になり、attack_radius_min / attack_radius の代わりになる(in_range_movement_mode も追加)
  • minecraft:projectile の multiple_targets の既定値が、1.26.50以上で false に

移行チェックリスト

  1. コンテンツログを有効にして、format_versionを上げた状態で読み込む
  2. 上の表のフィールドを検索して書き換える
  3. 厳格化の対象コンポーネントで、型の間違い(文字列と数値の取り違えなど)がないか確認する
  4. on_kill を使っているゴールの挙動を実機で確認する
  5. 1.26.50に上げる場合は、minecraft:projectile の書き方も確認する

ノックバックと飛び道具の変更(26.40)

apply_knockback_rules(ベータ卒業)

minecraft:apply_knockback_rules がベータを卒業しました。

  • scale_previous_velocity は slowdown_scale に名前変更
  • horizontal_power の内部の0.4倍スケーリングを廃止。水平・垂直で同じ値なら、似た強さで飛ぶようになる
  • horizontal_hit_angle_scale、vertical_hit_angle_scale、vertical_position_angle_scale は非推奨
  • knockback_mode を追加。relative_horizontal(既定、攻撃者から対象への水平方向)と hit_direction(命中方向・命中位置ベース)

公式は「既存の horizontal_power を使っているなら再テストを」と注意しています。

minecraft:projectile

項目 変更内容
impact_damage.power_multiplier 既定値が 2 から 0 に。難易度のランダム化とは独立して適用
semi_random_diff_damage difficulty_randomization(none / additive / multiplicative)に置き換え。既定は none
ceil_pre_critical_damage 追加。true でクリティカル倍率の前にダメージを切り上げ
should_bounce Booleanからenumへ。no(既定)/ if_invulnerable / if_no_damage_dealt

古いformat_versionのコンテンツは、読み込み時に従来の挙動を保つよう自動で変換されると公式は説明しています(should_bounce は true → if_invulnerable、false → no)。

その他のエンティティ関連

  • minecraft:pushable_by_entity に require_collision_overlap を追加(1.26.40以上は既定 true、それ以前は false)
  • minecraft:not_pickable_from_inside を追加

見落としやすい変更

  • パックの圧縮: パックファイルが圧縮・アーカイブされ、behavior_pack / resource_pack 内の重複した生ファイルがなくなりました(26.40)。
  • アイテム: format_version 1.26.30以上のアイテム定義は、minecraft:item.components に最低1つの要素が必要です。空だと登録に失敗します。
  • NBT: ネストの上限が512に設定されました。
  • 26.50のサーバー: 専用サーバーの既定の通信方式が NetherNet になりました。

Script API

26.40:@minecraft/server v2.9.0 が安定版に

Block.getParts、BiomeSearchOptions、SoundInstance.stop などがベータから昇格しました。Dimension.findClosestBiome は Dimension.calculateClosestBiomeFromSeed に名前が変わっています。

26.50:v2.10.0 が安定版に

26.40ではベータだった v2.10.0 が、26.50で安定版になりました。公式の1.26.50ノートが、次を安定版入りとして挙げています。

  • Dimension.cloneBlocks(CloneMode は Copy / ForceCopy / Move)
  • BlockQueryOptions(Dimension.getBlocks 用)
  • BlockVolumeBase.getClosest / getFarthest
  • EntityStartSneakingAfterEvent / EntityStopSneakingAfterEvent
  • EntityTamedBeforeEvent / EntityTamedAfterEvent(フィルタ型は EntityTamedEventOptions に名称変更)
  • Camera.addShake / stopShaking
  • Entity.teleport は、同乗者がいて別ディメンションへ飛ぶ場合にエラーを投げるように変更

@minecraft/server-ui v2.2.0 も安定版になり、@minecraft/server-graphics は v1.0.0 になりました。次のベータは @minecraft/server v2.11.0 です。

playfabId から persistentId への名称変更

26.40のノートでは、ベータの v2.10.0 で Player.playfabId が persistentId に名前変更されたと書かれています。ただし、26.50の安定版の一覧には、この名称変更は明記されていませんでした。安定版でどう扱われているかは、確認できていません。playfabId を使うスクリプトは、利用するAPIバージョンの型定義で確かめてください。

まとめ

  • format_version 1.26.40以上では、エンティティの不正値は読み込み失敗になる。1.26.50以上ではさらに対象が増え、minecraft:projectile の書式も変わる
  • beg.look_time と float_wander.float_duration は min/max オブジェクト、ranged_attack は attack_interval(26.50では attack_range も)に統一
  • horizontal_power の内部スケーリング廃止、should_bounce のenum化、power_multiplier の既定値変更に注意
  • cloneBlocks、BlockQueryOptions は、26.50で @minecraft/server v2.10.0 の安定版入りした
  • playfabId → persistentId の扱いは、安定版では確認できていない

参考

※この文章はClaude AIによって作成されました。

← ブログ一覧へ