この記事では、Minecraft Java Edition(バージョン1.20.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- functionコマンドで変数を使う方法
Ver.1.20.2にアップデートされたことで、functionコマンドが変数を扱えるようになりました。
実際にやってみたものがこちら。
【functionコマンドに変数を使う方法】
・変数を組み込むコマンドは文頭に/(スラッシュ)ではなく$を使う
・mcfunction内のコマンドに$(name)という形で変数名を指定しているものを組み込む
・functionコマンド実行時に{変数名:値}となるように指示する詳しくは動画で↓… pic.twitter.com/HzZvdanFY3
— 夏メ (@natsume_717b) September 25, 2023
上記ツイートでは、mcfunctionには文頭の/(スラッシュ)を記入する必要がないため、表現として間違ったものを一部記載しています。
訂正のツイートはリプにありますが、実際に試してみようという方はご注意ください。
変数を扱えるようになったことで、コマンドもかなり自由度が増しました。
functionコマンドが使えるようになったら、絶対に覚えるべきと言えるほど重要なのでぜひこの記事を参考に学んでくださいね。
それでは、見ていきましょう!
functionコマンドで変数を使う方法を解説
functionコマンドで変数を扱いたい場合、実行するmcfunctionに引数を書き記さなければなりません。
しかし、既存のコマンドの書き方とは異なる点があるため、まずは実際に変数を指示したコマンドを見ていきましょう。
$time set $(day_time)
上記のコマンドはmcfunctionの中身です。
つまり、functionコマンドでこれを呼び出すというわけですね。
しかし、見慣れない記号として$があります。
実はこれが変数を使用する証です。
文頭に1つと、変数を適用したい場所に”$(変数名)”という形で2つ目があります。
このコマンドは、day_timeで指示された値を挿入するということなので
/time set day_timeの値
というコマンドと同じ意味合いになります。
functionコマンドで呼び出す際には
/function ntm_test:function_test {day_time:8000}
といった感じで通常のfunctionコマンドに{}を付与して、その中に変数と引数の情報を書きます。
ntm_test:function_testは今回使用しているmcfunctionの格納位置、ファイル名です。
各自異なると思いますので、正しく変更してください。
変数の情報を書くときは”変数名:引数”となればOKです。
なので、上記のコマンドでは{day_time:8000}となっていますね.
また、適切であれば文字列でも問題ありません。
上記のtimeコマンドを実行するfunctionコマンドの場合は、midnightやnoonなどもOKということです。
/function ntm_test:function_test {day_time:midnight}
これで変数を指示しつつfunctionコマンドを実行できます。
複数の変数を同時に指示する場合
さて、mcfunctionには複数のコマンドを記載することだと思います。
そうなると異なる変数を指示したい場合も、当然出てくるはず。
そういった場合には,(カンマ)で区切りましょう。
以下がその例です。
/function ntm_test:function_test {day_time:8000,Diamond:10}
day_timeのほかにDiamondという変数が現れました。
このような場合でも、カンマで区切って同じように値を指示してあげれば何も問題ありません。
実行するfunctionの中身は以下のように変更しています。
$time set $(day_time)
$give @a diamond $(Diamond)
1つ目のコマンドのほかに、giveコマンドを$を用いて書き足しました。
今回の場合は、貰えるアイテムの数が変数(引数)によって決められるわけですね。
なので、先ほど示したfunctionコマンドを実行すると、昼間になりながらダイヤモンドが10個貰えます。
まとめると、複数の変数を使うときはカンマで区切るということを覚えておけばOKです。
以下は実際にやってみた様子になります。
【functionコマンドに変数を使う方法その2】
複数の変数を組み込んだ場合の動画です
複数になったからと言っても面倒なことはなく、,(カンマ)で区切れば問題ありません
ちなみに変数の指定漏れがあると、そのfunctionコマンドが失敗に終わるので要注意です… pic.twitter.com/DhsGCgcpcA
— 夏メ (@natsume_717b) September 25, 2023
まとめ
というわけで、今回のまとめです。
今回はVer.1.20.2でfunctionコマンドに追加された変数を使う方法についてまとめました。
- 変数を使う場合には、適切に$を使ったコマンドを記入する必要がある。
- 複数の変数を使う場合は、カンマで区切ることが大事。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!