Advancementsプロローグ

Minecraft バージョン1.12の最大の新要素、これまでの「実績」に代わる「Advancements(進捗)」。実績と同じように、ゲームを進めて目標を達成していく… のですが、大きく進化した点があります。
それは、Advancementsを自分で自由に作れるという点です。
編集するだけではありません。いくらでも追加でき、自分だけの進捗タブやツリーを作って、自分だけのクリア条件、自分だけのクリア報酬を設定できるのです。
1.12の「ファンクション」システムと組み合わせれば、配布ワールド制作に大いに役立つでしょう。

Advancementsの自作は非常に奥が深いので、記事は複数に分けて投稿します。#0の今回は、
そもそもAdvancementsってどんなシステム? 配布ワールド制作にどう役立つの?
という皆さんの疑問を解決します。

※この記事の内容は2017年5月18日 23:57現在最新の「1.12-pre4」に準拠しています。今後仕様が変わる可能性もありますのでご注意下さい。

スポンサーリンク


そもそもAdvancementsってどんなシステム? 何ができるの?

とは

バージョン1.12の新要素、「Advancements(進捗、進歩)」とはどんなシステムなんでしょうか。


実績と違ってタブで分かれており、途中から解除もできる

場所はどこ

1.12(のSnapShot)でゲームメニューを開くと、これまで実績があった場所に「Advancements」があります。クリックしてみましょう。

なんもない

何もありません。「実績」の場合はやるべき事が書かれていたのに...どうすればいいんでしょう?

とりあえず木を伐って作業台を作ってみて下さい。すると進捗の画面が更新され、「Minecraft」という名前の進捗を解除できます。

Adventure達成

エンティティ(Mobなどのブロックじゃない物体のこと)を倒したり、倒されたりしてみましょう。すると進捗画面に「Adventure」というタブが追加され、同時に「Adventure」という進捗が解除できます。
進捗はカテゴリごとに分類されており、それぞれのタブの最初の進捗の名前はタブ名と共通なのです。


途中からでも

Advancementsの特徴は、タブに分かれていることだけではありません。実績と違って、"前の進捗"を無視して途中からでも解除可能なのです。

いきなり解除

例えば、運良く宝箱からいきなりダイヤの装備品を入手したとします。するとAdventureタブの「Cover Me With Diamonds」が、前の進捗をガン無視して解除可能なんです!
しかもこれ、解除する進捗のタブが表示されていない状態でもいきなり解除可能なんです。実績は順番が正直面倒臭かったですからね。嬉しい!


自作すればこんなことができる!

こいつら全部

そして進捗システムの最大の特徴...それは全てがJSON文書でできているという点です! つまりは自分で自由に編集し、追加できるということ! これからの配布ワールド作成に大きく関わるシステムなんです。

こんな感じで自作

例えばこんな感じで、新しいタブを追加し、その中にオリジナルの"進捗ツリー"を構築できるんです。背景やアイコン、それぞれの進捗のタイプや名前などを何でも自由に設定可能。ワクワクするでしょ?

トリガーたち

カスタマイズできるのは見た目だけではありません。それぞれの進捗を解除する色々な「トリガー(trigger)」を選んで設定できます。一つの進捗に複数のトリガーを設定することも可能。

コンディションたち

トリガーには、それぞれ複数の「コンディション(conditions)」を設定できます。例えばトリガーが「placed_block(ブロックを置いた)」なら、「どのブロックを置いたのか」の条件を設定するのがコンディションです。LootTableの書き方を知っている方ならすんなり分かる仕組みですね。


リワード(報酬)としてコマンドを実行できる→コマンドブロックの代わりになる!

リワードとは

進捗を自作してもおまけ要素になるだけだよね? ― いえいえ、進捗システムはワールド制作における革命です。
なぜなら、進捗を達成した報酬として"複数のコマンドを実行"できてしまうのです! つまりコマンドブロックの塊をJSONファイルに置き換えられるということ!

ゾンビを爆発で倒すと

例えばこちらのJSON文書は、「ゾンビを爆発で倒す」進捗を設定したものです。リワードに「ダイヤをgiveする」「この進捗を非達成状態にする」コマンドを書いたファンクションのテキストファイルの場所を指定しているので、ゾンビを爆発で倒す度にダイヤモンドが与えられるわけです。配布ワールドに使えそうでしょ?

ダミー進捗を使おう

Advancementsのヤバさが一瞬で分かる画像です。
進捗に「impossible」というトリガーを設定することで、普通にプレイしていたら解除できない"ダミー進捗"が作れます。リワードとして複数のコマンドを書いたファンクションファイルを指定しておき、コマンド本やボタンなどでダミー進捗を解除すれば... 一気に複数のコマンドを実行可能! 大量のコマンドブロックを並べる必要はもうありません。

「ファンクション」システムの解説
function解説
https://napoan.com/pc-112-functions-guide/

これから解説していきます

ということで、この「Advancements(進捗)の自作完全ガイド」シリーズの記事では「配布ワールド制作に役立つ」Advancementsの作り方を解説していきます。次回は自作の基本、書くためのツールや保存場所、タブとツリーの作り方を解説します。



ほんとは自作手順も含めた記事を投稿する予定だったんですが、力尽きたためプロローグという形で一旦投稿しました。小分けにすれば頑張れるはず。

スポンサーリンク

毎度毎度ツイート、コメント等ありがとうございます。Twitterではブログの更新状況など色々呟いてます。気軽にフォロー下さい。

スポンサーリンク

コメント

  • yu_sukeGO_256

    おおお!ついに実績編集追加ですね!!配布ワールドで活用できそうです!

    • でんでん (Minecraft ID:denden0816)

      実績→進捗

  • ookiikuma

    常時実行コマンドをAdvancementで実行する場合はトリガーにarbitrary_player_tickを使ったほうがトリガーがtickの時よりコマンド実行数減りますよ(てか画像の例だとマルチプレイ時に5秒じゃなくて2.5秒とかになりますしお寿司)

    • 知りませんでした><教えて下さりありがとうございます

      • ookiikuma

        1.12-pre2でarbitrary_player_tick廃止になってgameruleで常時実行できるようになりましたという報告?のような

  • green bear

    報告
    1.11のreplayMODはoptifineと共存できましたよ!
    それと1.11の解説もしてくれるとありがたいです

  • 河城翔(anatawa12)

    1.12の正式版が出てからでも、「Advancements for 1.7.10」とかっていうmodが欲しい

    • RikuS3n

      無理に1.7.10を使う必要はないと思うのですが…

      • xyz

        とかって書いてあるからバージョンに拘ってるんじゃないと思いますよ

  • アヌビス

    ナポアンさんのコマンド力で配布ワールド作って配布して欲しいですヽ(*´∀`)ノ

    • Garixy

      僕たちで作るっていうのはどうですか!!

      • アヌビス

        じゃツイッター教えてくださいww☚(技術力0の人間)

  • 神風紅茶

    そうなのかすげぇぇぇえ!
    jsonだけ配布とかもできるのか

  • reef8190

    進捗どうですか?

  • らっきー

    advancementのrewardにfunctionを設定した場合、基本的には機能するのですが、@sや@pのセレクタを含ませた場合、機能しません。
    @sを使用するexecuteコマンドをrewardに使いたいのですが、何か解決策はありますでしょうか?

    • らっき

      すみません、これはマイクラ自身の問題ではありませんでした。