はじめに
先日クラフターズコロニーにブログ投稿機能を実装し、せっかくこの機能を作ったし、誰かが投稿しないと他の人も投稿しずらいだろうということで、なにか書こうと思いこの記事を執筆した次第です(のんびり書いてる間に他の方がブログ投稿してくれましたが...)。
今回取り上げる話題は「base game version」についてです。ブログ機能実装にあたり、ブログを書くための話題をいくつか考えていたんですが、思いついたものがどれもパッとしないものばかりで、消去法的にこれになってしまいました。
内容が「統合版」「ワールド制作者」向けのものになり、需要がかなり限定的なものになってしまいましたが、人によっては便利なものではありますので、参考にしていただければ幸いです。
base game version とは
マイクラ統合版ではJAVA版と違いマイクラのバージョンをダウングレードすることがほぼ不可能です。そのため統合版の配布ワールドはマイクラのアップデートごとに不具合が発生する可能性を秘めており、1年前に配布したワールドが最近のアップデートにより動かなくなった、というような事案がしばしば発生します。
統合版の配布ワールド製作者の中には頻繁に行われるアプデに怯えている方もいるでしょう。
マイクラ統合版ではこのアップデートによる既存配布ワールドの不具合発生対策に、おそらくマーケットプレイスに出品するクリエイター向けではありますが、「base game version」というものが用意されています。この「base game version」を設定することでワールドのバージョンを「半」固定化することができます。
実際に使った場合
例えば、base game versionを1.17に設定した場合、1.18以降のアップデートで追加されたブロックが使えなくなります。違いがわかりやすい比較画像として、クリエイティブでインベントリを開くと設定の有無で以下のようになります。
base game version 1.17
デフォルト
どちらもマイクラのバージョン自体は1.19.51ですが、アメジストやスカルク系のブロックがなかったりと差が生まれていることがわかります。
他にも一部の処理が古いバージョンの方式で動作するなど、base game versionを設定すると一般的なワールドとは異なる状態になります。
base game version の信頼性
注意点として、base game versionはアップデート対策として完全なものではありません。はじめ「半」固定化とわざわざ強調しましたが、あくまでJAVA版のようにゲームそのものがダウングレードされることではない点に注意が必要です。
私が以前検証したところ、base game version を設定すると、以下のようなマイクラ内の一部の処理を特定のバージョンに固定することができます。
固定されるもの
- 使用できるブロックやアイテム
- テクスチャや効果音
- (開発が既存のワールドに影響があると判断した)仕様変更
固定されないもの
- バグ修正や(開発が既存のワールドに影響がないと判断した)仕様変更
- 試験的要素
- アドオン?(検証不十分)
つまりざっくり言うと「マイクラのベースプログラムは更新されてしまうが新ブロックなどは反映されない。開発側がクリエイターを考慮して仕様が維持されるものもある。」という感じです。これが困ったものでして、開発側のさじ加減で仕様変更が維持されるのかアップデートされるのかが決定してしまい、結果としてbase game version を設定してもアップデートの仕様変更により不具合が発生する可能性があります。
仕様変更が反映されてしまう具体例としてはドアの仕様変更などが挙げられます。1.18までプレイヤーはドアを開閉してドアに挟まりジャンプすることでドアの上に乗るということができましたが、1.19のアップデートでドアに挟まることはできなくなりました。このドアに挟まれた仕様はアスレチックで良く用いられたギミックなので一部の配布ワールドは被害を受けたかと思われます(私も被害を受けました)。しかしこの仕様変更に関しては開発側はバグ修正であり既存のワールドに影響がない変更と判断しているようで、 base game version を設定していてもアップデートによる不具合を回避することはできません。
もちろん場合によっては開発側が仕様を残してくれることもあり、例えば1.17.40で行われたコマンドブロックの遅延とレッドストーン入力に関する仕様変更は、base game version を1.17.30以前に設定することで仕様が以前のものに戻り不具合を回避することができます。
また固定されないものに「試験的要素」があるのも注意が必要です。試験的要素にはScriptAPIや少し前までは新executeなどもそうでしたし使えれば便利なものがありますが、それらはサポートされません。
この機能の本来の目的(予想)
この機能の本来の目的は少し冒頭でも述べましたが「マーケットプレイス」にあると思われます。マーケットプレイスでは「購入」が発生する以上、昨日購入したワールドがアップデートで動作しなくなった、みたいなことがあると問題になるわけです。ですがJAVA版のようなダウングレードはApple StoreやGoogle Playのアプリだと難しい。 そこでmojangが用意したのがこの機能だと思われます(※全部私の推測です)。
そのためmojangのさじ加減になるbase game versionによる仕様の維持の有無は、マーケットプレイスに出品されているワールドが被害を受けそうな仕様変更かどうか、と推測しておくと良いかもしれません。
base game version の設定方法
ここまで仕様を話してきましたが、設定方法にも触れておきます。base game version を設定するには大きく分けて二通りの方法があります。
- 一度ワールドテンプレートを作成したのちにワールドを作成する(正式な手順)。
- ツールアプリもしくはバイナリエディタ等で直接level.datを編集する。
ただ多くの人にとっては二つ目の方法は難度が高いため、一つ目のワールドテンプレートを経由する方法がおすすめです。ですが、すでにlevel.datを編集する環境や知識があるのでしたら二つ目の方法のほうが楽ですので、できるという方はそちらでもよいかもしれません。
そして一つ目の方法の具体的な手順ですが、Microsoftの公式ドキュメントに詳しい解説があるので、設定方法についてはそちらに譲ろうかと思います(というより解説書くのが面倒)。
ざっくりとした説明をするなら、ワールドテンプレートを作成する流れで、manifest.jsonにbase game versionの設定項目があるのでそれをいじるという感じになります。
まとめ
公式のアプデ対策であるbase game versionですが、配布ワールド界隈でほとんど普及していないように思えたため、このような記事を書かせていただきました。
あまり信頼性はないとは言いましたが、コマブロの仕様変更のような致命的な修正から守ってくれたりするかもしれませんし、私がこれまで試したところbase game versionを設定することによるデメリットはないように思えるので、配布ワールド製作者の方々はぜひ活用していただければと思います。
ちなみに設定のためのファイル操作はスマホだと結構面倒なので、昔作ったカスタムフラットジェネレーターの要領で、mcworldファイルを突っ込んだらbase game version付きのファイルを出力するツールを作れないかなとひそかに考えてたりします。ですが今はクラフターズコロニー本体の開発事項がかなりの量たまってるので、いつになるかは不透明です。
コメント