CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft

投稿日:2017年4月19日

皆さんこんにちは、伊達あずさです。
今回はマイクラ日記番外編の第2弾として、これまでおすすめさせて頂いたマインクラフト用Modの簡単な解説と、その具体的な使い方などをご紹介してみたいと思います。

そんな、番外編第2弾の第1回目に選んだ最初のModは、「マインクラフト 1.10.2対応おすすめModの紹介(便利系編)」の記事内でおすすめさせて頂いたレシピ作成Mod「CraftTweaker(MineTweaker 3)」です!

基礎編目次
  1. CraftTweaker(MineTweaker 3)とは
  2. レシピ追加前の下準備
  3. 定型レシピの追加と既存レシピの削除
  4. 不定形レシピの追加
  5. かまどレシピの追加と削除
  6. かまど燃料の追加

CraftTweaker(MineTweaker 3)とは

CraftTweaker(MineTweaker 3)はMinecraft内に自作のレシピを簡単な記述のみで反映させることができる便利系Modです。
では、どのくらい簡単にレシピを追加できるのかというと、1レシピ当たり、数行(1~4行ぐらい?)のテキストをメモ帳などで書いて保存するだけです。簡単ですね~
もちろんマルチサーバーでも使用する事ができ、その場合はサーバー側でレシピのファイルを用意すればログインしている人達全員に反映されます。
ちなみにレシピファイルの変更はサーバーやクライアントの再起動無しに反映することができます。(コマンド「/mt reload」を使用)
(CraftTweaker2(Minecraft 1.12~)からはコマンドが変更されているため「/mt reload」は使用できなくなりました)

レシピ追加前の下準備

実際にレシピを追加する前に、ちょっとした下準備から始めていきましょう。
まず、レシピ追加のテキストを記述するためのファイルを用意しましょう。
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵1
レシピファイルを入れる場所はマインクラフトのゲームフォルダ(modsフォルダやresourcepacksフォルダがある場所)にある「scripts」の中です。
CraftTweaker(MineTweaker 3)をModsの中に入れた状態で起動すると自動的に作成されるはずです。もしも無い場合は自分で作りましょう。

レシピファイルのファイル名は最後(拡張子)が「.zs」となっていれば基本的には何でも良いです。(全角でも大丈夫)
尚、scriptsフォルダ内に複数のレシピファイルを置いた場合でも全て自動的に読み込まれるので、レシピ毎にファイルを分けることもできます。

次にレシピ追加の際に使用するアイテムの内部名称を調べておきましょう。
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵2
アイテムの内部名称はマインクラフト内でF3とHキーを同時押しすることで見る事が出来るようになります。
Minecraft 1.8より前のバージョンでアイテムの内部名称を見るためには、更にInventory Tweaksなど、内部名称を表示してくれるModを導入する必要があります。

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵3
レシピファイル内でアイテムを指定する場合にはこの灰色の文字で書かれた内部名称を記載することになります。

定型レシピの追加と既存レシピの削除

では実際にこのようなレシピを追加してみましょう。
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵4
あまり実用的なレシピではありませんが、分かりやすい例として、「新・鉄の剣レシピ.zs」と言うファイルを作り、新しい鉄の剣のレシピを追加してみます。

新・鉄の剣レシピ.zsの記述
recipes.addShaped(<minecraft:iron_sword>,
[[null             , null                  , <minecraft:iron_ingot>],
 [null             , <minecraft:iron_ingot>, null],
 [<minecraft:stick>, null                  , null]]);

こんな感じに書いたファイルをscriptsの中に入れれば上記配置で鉄の剣がクラフト可能になります。

最初の記述「recipes.addShaped();」これが定型レシピを追加する際の記述で

recipes.addShaped(<クラフト後のアイテムの内部名称>, <材料の内部名称>);

と、クラフト後のアイテムと、材料アイテムの内部名称を記載して使用します。

材料のアイテムは複数になるため
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵5
[[材料1(左上), 材料2(中上), 材料3(右上)],
[材料4(左中), 材料5(中央), 材料6(右中)],
[材料7(左下), 材料8(中下), 材料9(右下)]]



と、材料全体と各行を[]で囲って指定します。
尚、材料が空白の部分は「null」と記載します。

[[材料1(左上), 材料2(右上)],
[材料3(左下), 材料4(右下)]]

上記のように記載することで、4マスの作業台を使わないクラフトも表現できます。
このように指定したレシピは作業台を利用した9マスのクラフトにもそのまま適用されます。(相対的な位置だけあっていれば作れる)

これで新しい鉄の剣のレシピが完成したわけですが、しかし、このままでは、新しい鉄の剣のレシピと既存の鉄の剣のレシピが共存することになります。
そこで、次は既存の鉄の剣のレシピを消してみましょう。
やり方はとても簡単。レシピファイルをこんな感じに書き変えてみましょう。

新・鉄の剣レシピ.zsの記述
recipes.remove(<minecraft:iron_sword>);
recipes.addShaped(<minecraft:iron_sword>,
[[null             , null                  , <minecraft:iron_ingot>],
 [null             , <minecraft:iron_ingot>, null],
 [<minecraft:stick>, null                  , null]]);

こんな感じで、新しいレシピを追加する前に「recipes.remove(<minecraft:iron_sword>);」と追記するだけです。

これはクラフトによってアイテムを入手できないようにしたい場合などにも利用できそうですね。

では、次は少しだけ実用的なレシピを作ってみましょう。
欲しいときに限ってなかなか出ないスライムボールをクラフトで作れるようにしてみましょう。
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵6
とりあえず、こんな感じで、苗木と砂糖からスライムボールを作る事が出来るレシピ「スライムボールレシピ.zs」を追加してみます。

スライムボールレシピ.zsの記述
recipes.addShaped(<minecraft:slime_ball>,
[[<minecraft:sapling>, <minecraft:sapling>, <minecraft:sapling>],
[<minecraft:sapling>, <minecraft:sugar>, <minecraft:sapling>],
[<minecraft:sapling>, <minecraft:sapling>, <minecraft:sapling>]]);

先ほどの例を参考にして・・・こんな感じのレシピファイルを作成すれば実現できますね。

でも・・・
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵7
マツの苗木だとスライムボールが出来ないんですよね。

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵8
と言うのも、オークの苗木もマツの苗木も内部名称が「minecraft:sapling」と同じ記述になっているからなのです。
なのに何故、オークの苗木ではスライムボールが出来たのでしょう。っていうか、どうやったらマツの苗木を指定できるの!?

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵9
その答えはこの数字に隠されているのです。
このスラッシュの後ろの数字、これはデータ値と呼ばれるものなのですが、オークの苗木とマツの苗木ではこの数字が違っているのです。
そんなデータ値を表現するにはどうしたらいいかと言うと・・・

<minecraft:sapling:1>

このように後ろに「:データ値」と追記することで表現することができます。(マツの苗木の例)

でも、先ほど作ったスライムボールレシピ.zsにはデータ値なんてどこにも書かれていませんでしたよね?なのに何故オークの苗木ではスライムボールを作る事が出来たのでしょうか。
実はデータ値を省略した場合は自動的にデータ値が0(先ほどの例だと<minecraft:sapling>は<minecraft:sapling:0>と同義)と判断されるためなのです。

という訳で、マツの苗木でもスライムボールが作れるように書き直してみましょう。

スライムボールレシピ.zsの記述(修正1)
recipes.addShaped(<minecraft:slime_ball>,
[[<minecraft:sapling>, <minecraft:sapling>, <minecraft:sapling>],
[<minecraft:sapling>, <minecraft:sugar>, <minecraft:sapling>],
[<minecraft:sapling>, <minecraft:sapling>, <minecraft:sapling>]]);
recipes.addShaped(<minecraft:slime_ball>,
[[<minecraft:sapling:1>, <minecraft:sapling:1>, <minecraft:sapling:1>],
[<minecraft:sapling:1>, <minecraft:sugar>, <minecraft:sapling:1>],
[<minecraft:sapling:1>, <minecraft:sapling:1>, <minecraft:sapling:1>]]);

新たにマツの苗木用のレシピを追加してみました。

他の苗木も適用したい場合はこんな感じで次々と記述して行ってもいいのですが、データ値が異なるだけのものを一気に追加する場合、「<minecraft:sapling:*>」と書くこともできるんです。
こうすると、全ての苗木でスライムボールが作れるようになります。

では、全ての苗木でスライムボールを作る事が出来るように先ほどのレシピファイルを書き直してみましょう。

スライムボールレシピ.zsの記述(全バニラ苗木対応版)
recipes.addShaped(<minecraft:slime_ball>,
[[<minecraft:sapling:*>, <minecraft:sapling:*>, <minecraft:sapling:*>],
[<minecraft:sapling:*>, <minecraft:sugar>, <minecraft:sapling:*>],
[<minecraft:sapling:*>, <minecraft:sapling:*>, <minecraft:sapling:*>]]);

この記載の場合は数種類の苗木を混ぜて使うこともできちゃいます。
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵10

ちなみにもっと欲張って、一度に作れるスライムボールの数を増やすこともできます。
例えば、1回のクラフトで4つのスライムボールができるようにするには

recipes.addShaped(<minecraft:slime_ball>*4,
[[<minecraft:sapling:*>, <minecraft:sapling:*>, <minecraft:sapling:*>],
[<minecraft:sapling:*>, <minecraft:sugar>, <minecraft:sapling:*>],
[<minecraft:sapling:*>, <minecraft:sapling:*>, <minecraft:sapling:*>]]);

と記載すれば良いです。

しかし、同じ材料が何度も登場する場合、何回も同じ内部名称を書くのが面倒くさくなってきますよね。
そんな場合、内部名称を自分で作った変数に代入してから使用することもできます。

val sapling = <minecraft:sapling:*>;
recipes.addShaped(<minecraft:slime_ball>*4,
[[sapling, sapling, sapling],
[sapling, <minecraft:sugar>, sapling],
[sapling, sapling, sapling]]);

同じ内部名称が何度も登場する時などには便利ですね。

更におまけ!
マインクラフトでハサミを作る際・・・
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵11
これでも出来るし、
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵12
こんな感じで左右反転させても作れますよね?実はこれも1回の記述で表現出来ちゃうんです。
先ほどの新・鉄の剣.zsを例にとると

recipes.remove(<minecraft:iron_sword>);
recipes.addShapedMirrored(<minecraft:iron_sword>,
[[null, null,<minecraft:iron_ingot>],
[null,<minecraft:iron_ingot>,null],
[<minecraft:stick>,null,null]]);

こう書くことで、材料の並べ方を左右反転しても鉄の剣が作れるようになります。

不定形レシピの追加

レシピの中には、材料の位置が一切関係ないクラフトも存在します。
羊毛を染料で染色する際なんかがそうですね。
CraftTweaker(MineTweaker 3)ではそういった不定形レシピも追加する事ができるんです。

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵13
では試しに、こんな感じで石炭と木炭を1つずつ使うことで2つのイカスミを作る「イカスミレシピ.zs」を作ってみましょう。

イカスミレシピ.zsの記述
recipes.addShapeless(<minecraft:dye> * 2,
[<minecraft:coal:0>, <minecraft:coal:1>]);

このように書けば、木炭と石炭さえクラフト枠に入っていれば、どのような配置であろうともイカスミを作る事が出来るようになります。

定型レシピの時とは違い、不定形レシピには材料の位置記載が要らないため、使用する材料を[]の中に「,」区切りでひたすら列記していけばいいわけです。(材料が例え1つでも[]を外しては駄目ですよ~)
ただ、9つを超える材料を記述してしまうと、実現不能になってしまうのでご注意ください。(実際にクラフトできないだけでエラーはでません)

かまどレシピの追加と削除

マインクラフトの世界では原木をかまどに入れれば木炭になりますし、生の牛肉をかまどに入れればステーキになります。
次はそんなかまどを使ったレシピを追加してみましょう。

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵14
それでは、非常に実用性が高そうな腐った肉から革を作る「かまどで革レシピ.zs」でも作ってみましょうね。

かまどで革レシピ.zsの記述
furnace.addRecipe(<minecraft:leather>, <minecraft:rotten_flesh>, 0.5);

先ほどの不定形レシピと似ていますが、最後に妙な数字(上記例では0.5)が付いていますね。
これは、かまどで加工した際に得られる固定の経験値が得られる確率を示しています。
バニラでもかまどで作った木炭をインベントリに入れる際に経験値が入りますよね?あれです!
上記レシピの場合は、かまどで腐った肉から革を作る度に経験値が0.5(50%)の確率で手に入りますよってことですね。

もちろん、既存のかまどレシピを削除することもできます。

furnace.remove(<minecraft:cooked_beef>);

こんな感じで記述すれば、もう二度とかまどでステーキを作ることはできなくなるのです!
CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵15

でも、もし、生の牛肉からステーキを作りたくないだけなどの場合は

furnace.remove(<minecraft:cooked_beef>, <minecraft:beef>);

とか

furnace.remove(<*>, <minecraft:beef>);

といった感じで書くことでレシピを削除することもできます。

かまど燃料の追加

かまどには燃料がつきものです。
CraftTweaker(MineTweaker 3)ではかまどで使用する燃料の設定もできちゃうんです。

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft_挿絵16
試しにTNTを2000 tick(100秒)のかまど燃料として使えるようにする「追加かまど燃料.zs」を作ってみましょう。

追加かまど燃料.zsの記述
furnace.setFuel(<minecraft:tnt>, 2000);

これで今後はTNTを燃焼時間2000 tickのかまど燃料として使用する事が出来るようになりました。
しかし、残念ながらCraftTweaker(MineTweaker 3)では石炭の燃焼時間を変更したり、苗木を燃料にできないようにするなどといった、既存のかまど燃料の変更は行う事ができないみたいです。

ちなみに、バニラのかまど燃料をそのまま燃料として使用しているものであれば、Modによって追加された装置であっても、ここで設定したものが燃料としてそのまま使えます!

今回は基礎編ということで、基本的なレシピの追加方法についてご紹介いたしました。
次回はより複雑なレシピの作り方をご紹介するとともに、今回より実用的なレシピ(武具や道具を修理するとかね!)も幾つか作ってみたいと思います。

この記事をもっと読む
Prev | Next

プレイ日記一覧へ

Studio POPPOをフォローしませんか?

CraftTweaker(MineTweaker 3)の解説とその使い方(基礎編):Minecraft」への31件のフィードバック

  1. honker

    アイテムレシピを削除するだけならrecipes.removeだけでも問題ないのでしょうか?

    返信
  2. 名無ちは

    はじめまして、とても参考になり、3つの記事のおかげで様々なレシピや草から出てくるアイテム追加ができました。
    一つ質問なのですが、ケーキを作る際に牛乳バケツが空のバケツになって戻ってくるレシピって作れますか?

    環境は1.10.2です

    返信
  3. 彼岸花

    furnace.setFuel(, 400); ですが、
    CraftTweaker2-1.12-4.1.15 だと400秒ではなく、400 tickと認識されました。

    バージョンによるのかもしれませんが、少なくとも2では、
    furnace.setFuel(, 2000);
    は2000秒ではなく、2000 tickと思われます。

    返信
  4. Tsukaeru

    recipes.remove();
    recipes.addShaped(,
    [[, , ],
    [, , ],
    [, , ]]); レシピ追加はできるけどレシピ削除されないんですけど何か間違ってますかね?

    返信
  5. やっしー

    なんどもすみません。
    recipes.addShapedMirrored(,
    [[minecraft:flint,null],
    [minecraft:stone,null]]);
    これでエラーになるんですが原因をおしえてください。(&lt;とか&gt;とか使っても同じ)
    あとrunicdungeons:item.magicchalkはモッドのやつです。(IDは間違ってない)

    返信
  6. やっしー

    furnace.addRecipe(<minecraft:gold_nugget>,<minecraft:gold_block>,315);

    なにか問題ありますかね?

    返信
  7. shu

    はじめまして。

    質問をさせてください。(記事内容とズレてしまうかもしれません、すみません)
    CraftTweaker2を1.12環境でMODsフォルダに入れると、起動時に「サポートされていない、改造されたバージョンを使用しているようです」というエラーを出してしまいます。
    Curseにアップされている1.12-4.0.0~1.12-4.0.8をすべてを試しましたが同様のエラーでロゴ画面まで行けませんでした。
    CraftTweaker2を削除すると起動ができプレイも可能です。

    記事では1.12バージョンにも触れられていますが、こういった現象はでていますでしょうか。

    Minecraft 1.12
    forge-1.12-14.21.1.2387
    Java 8 (64bit)

    返信
  8. hatune39

    質問です。たびたびすいません。
    ①NBTタグの付いたアイテムのクラフトレシピ化は可能ですか?
    ②MODとかで4×4以上のクラフト台を増やしたのですが4×4のレシピとかも作れるんですか?

    返信
  9. KINGUDAMUN

    めっちゃいいですね!これ
    ガラスパイプのダイヤなくすレシピ見てたんですけど参考になりました
    カスタムスタッフ2が分からなかったんですよ
    これからも頑張ってください!

    返信

伊達あずさ へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください