はじめに
統合版(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に
移行チェックリスト
- コンテンツログを有効にして、format_versionを上げた状態で読み込む
- 上の表のフィールドを検索して書き換える
- 厳格化の対象コンポーネントで、型の間違い(文字列と数値の取り違えなど)がないか確認する
on_killを使っているゴールの挙動を実機で確認する- 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/getFarthestEntityStartSneakingAfterEvent/EntityStopSneakingAfterEventEntityTamedBeforeEvent/EntityTamedAfterEvent(フィルタ型はEntityTamedEventOptionsに名称変更)Camera.addShake/stopShakingEntity.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/serverv2.10.0 の安定版入りしたplayfabId→persistentIdの扱いは、安定版では確認できていない
参考
- 1.26.40 Update Notes(Microsoft Learn)
- 1.26.50 Update Notes(Microsoft Learn)
- bedrock-samples v1.26.50.26-preview(GitHub)
※この文章はClaude AIによって作成されました。