読者です 読者をやめる 読者になる 読者になる

Minecraftとタートルと僕

PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。

Modの設定ファイルに他Modのアイテム・ブロック名を追加する方法

Minecraft チュートリアル 環境構築

はじめに

MinecraftでModを入れて遊ぶときに、その挙動を変えるために設定ファイルを書き換えることがあります。

Modの設定ファイルは「GameDir」フォルダにある「config」フォルダに入っていますので、 ファイルをメモ帳などで開き、該当項目を書き換え、ファイル保存、ゲームを起動することでModの挙動を変えることができます。

※「GameDir」フォルダやその開き方については以下の記事を参照してください。

変更例(MineAllの場合)

以下は、みんな大好き、ブロック一括破壊Mod「MineAll」の設定例です。

私の環境では、Minecraft1.7.10で「mod_MineAllSMP_v2.6.0.zip」を使っているので、 設定ファイルは、「net.minecraft.scalar.mineall.mod_MineAllSMP.cfg」になります。

その中身は以下のとおりです。なお以下の括弧書きは僕の注釈です。

# Configuration file

general {
    # Boolean: false (一括破壊でドロップするアイテムを自動的に集めるか)
    B:AutoCollect=false

    # Boolean: true (自分の立ち位置よりも下のブロックを破壊するか)
    B:DestroyUnder=true

    # Boolean: false (ドロップする大量のアイテムをひとまとめにするか)
    B:DropGather=false

    # Integer: 0 (ブロック破壊したときに使ったアイテムの耐久度を減らすか)
    # 0:not decrease durability 1,2:decrease durability(1=until whole blocks 2=until break an item)
    I:Durability=0

    # String: "KEY_M" (MineAllのON/OFFを切り替えるキー)
    S:Key=KEY_M

    # Integer: 0 (一度に破壊するブロック数の制限、0なら無制限?)
    I:Limiter=0

    # Boolean: true (ゲームスタート時にMineAllをONにするか)
    B:StartMode=true

    # String: "gold_ore, iron_ore, coal_ore, lapis_ore, obsidian, diamond_ore, redstone_ore, lit_redstone_ore, glowstone, emerald_ore, quartz_ore" (一括破壊対象とするブロック名)
    S:blockIds=gold_ore, iron_ore, coal_ore, lapis_ore, obsidian, diamond_ore, redstone_ore, lit_redstone_ore, glowstone, emerald_ore, quartz_ore

    # String: "mod_MineAll" (不明)
    S:channelName=mod_MineAll

    # String: "iron_pickaxe, wooden_pickaxe, stone_pickaxe, diamond_pickaxe, golden_pickaxe" (一括破壊が有効となるツール。ツルハシなど)
    S:itemIds=iron_pickaxe, wooden_pickaxe, stone_pickaxe, diamond_pickaxe, golden_pickaxe
}

まず基本的な知識として、「#」で始まる行はコメント行であること、そしてB:AutoCollect=falseという項目ならば、「=」の右側の値だけを書き換えることを押さえておきましょう。

右側の値として何を受け付けるかはそのModによって異なります。

MineAllでは、その直前の行でどのような値を受け付けるか、そしてデフォルト値(最初の値)は何であるかも例示してあります。親切ですね。

たとえば以下の例であれば、設定項目「B:AutoCollect」の値としてBoolean、すなわちtrueあるいはfalseを受け付けることがわかります。そしてデフォルト値がfalseであることも。

# Boolean: false (一括破壊でドロップするアイテムを自動的に集めるか)
B:AutoCollect=false

もし、ドロップするアイテムを自動的に入手したいならば、B:AutoCollect=trueに書き換えましょう。

次に本題の、一括破壊対象とするブロックや一括破壊ができるようになるツールを追加する方法を説明しましょう。

設定ファイルにブロック名・アイテム名を追加する

一言でいうならば、該当項目にブロック名・アイテム名を追加するだけです。

ただし、名前は「ユニークネーム」(ゲーム内で登録されているブロック・アイテムの正式名称)でなければなりません。

バニラの(Modを追加していない素のマイクラの)ブロックであれば簡単です。以下のページを参照してください。

たとえばエメラルドブロックならば、ユニークネーム(上記ページではIDと呼んでいます)は「emerald_block」ですので、項目「S:blockIds」の末尾に追加しましょう。

「,」区切りなのでお忘れなく。

S:blockIds=gold_ore, iron_ore, coal_ore, lapis_ore, obsidian, diamond_ore, redstone_ore, lit_redstone_ore, glowstone, emerald_ore, quartz_ore, emerald_block

このようにバニラのブロックであれば色々なWebページで紹介されているので問題ないのですが、自分で追加したModのブロック・アイテムだと問題が複雑になります。

正式名称(ユニークネーム)が何であるかを自分で調べないといけないのですから。

Modで追加されたブロック・アイテムの正式名称を調べる

調べるもっとも簡単な方法は、ゲーム内の全てのブロック・アイテムの名称をファイルに出力してくれるModを入れることです。

ここでは、のと氏のIDCheckerを使った例を紹介しましょう。

上記サイトから該当するModファイル(たとえば、IDChecker-1.7.10b.jarなど)をダウンロードし、自分の「GameDir」にある「mods」フォルダに放り込みましょう。これでModインストール完了です。

そしてゲームを起動しましょう。無事タイトル画面まで表示されたらOKです。そのままゲーム終了してかまいません。

このModはゲームを起動することで、ゲーム内の全てのブロック・アイテムの名前などの情報をファイルに書き出してくれます。

「GameDir」に「IDChecker」というフォルダが増えているのにお気づきでしょうか、そのフォルダの中を覗いてください。

f:id:hevohevo:20150117222129p:plain

この中の、「BlockList.txt」「ItemList.txt」が重要です。まずは「BlockList.txt」ファイルをダブルクリックするなどして、メモ帳で開いてみましょう。

以下は僕の環境の例です。

/////////////////////////////////////

Block List
2015/1/17 21:2:26

/////////////////////////////////////

ID,RegisterName,UnlocalizedName,LightLevel,OpacityLevel
0,minecraft:air,tile.air,0,0
1,minecraft:stone,tile.stone,0,255
2,minecraft:grass,tile.grass,0,255
3,minecraft:dirt,tile.dirt,0,255
4,minecraft:cobblestone,tile.stonebrick,0,255
5,minecraft:planks,tile.wood,0,255
6,minecraft:sapling,tile.sapling,0,0
・
・
途中省略
・
・
191,Mekanism:SlickPlasticBlock,tile.SlickPlasticBlock,0,255
192,Mekanism:GlowPlasticBlock,tile.GlowPlasticBlock,0,255
193,Mekanism:ReinforcedPlasticBlock,tile.ReinforcedPlasticBlock,0,255
194,Mekanism:RoadPlasticBlock,tile.RoadPlasticBlock,0,255
195,Mekanism:PlasticFence,tile.PlasticFence,0,0
196,Mekanism:SaltBlock,tile.SaltBlock,0,255
197,MekanismGenerators:Generator,tile.Generator,0,0

1行につき1つのブロックの情報が記述されています。IDCheckerはいろいろな情報を出力していますが、今回はブロックの名前だけに注目しましょう。

見づらいかもしれませんが、「,」区切りであることを頭の片隅に入れて注目してください。

2,minecraft:grass,tile.grass,0,255であるならば、IDが2*1、登録された正式名がminecraft:grassであることがわかります。なお、残りの2つの情報は今回の本題から外れるので説明を省略します。

バニラのブロックは全て「minecraft:XXXX」という名前なのですが、「minecraft:」の部分はほとんどの場合省略できます。つまり、「stone」とだけ記述したらそれは「minecraft:stone」を意味します。

それでは他のModで追加されたブロックはどうでしょうか。

上記の例で下から2番目、IDが196の行を見てください。

MekanismというModで追加されたSaltBlockというブロックであることがわかります。なお登録名は「Mekanism:SaltBlock」ですね。

他Modのブロック・アイテムの名前を設定ファイルに記述する

もし、MineAllの一括破壊の対象として、このSaltBlockを追加したいならば「Mekanism:SaltBlock」という文字列を追加しましょう。たとえば次のように。

S:blockIds=gold_ore, iron_ore, coal_ore, lapis_ore, obsidian, diamond_ore, redstone_ore, lit_redstone_ore, glowstone, emerald_ore, quartz_ore, emerald_block, Mekanism:SaltBlock

MineAllで一括破壊をするためのツールを追加したいならば、「ItemList.txt」ファイルを開いて、その追加したいツールの登録名を探して見ましょう。

たとえば、Mekanismのブロンズつるはしで一括破壊したいならば、「MekanismTools:BronzePickaxe」を設定項目「S:itemIds」に追加すればよいですね。例えば次のように。

S:itemIds=iron_pickaxe, wooden_pickaxe, stone_pickaxe, diamond_pickaxe, golden_pickaxe, MekanismTools:BronzePickaxe

その他のModの例(CutAll)

たとえば、MineAllと同じくらい、あるいはそれ以上によく使われるModとしてCutAll*2があります。

他のModで追加された木や葉をCutAllを使って一括伐採したいならば、その丸太ブロック、葉ブロックの名前を設定ファイル内に書き込む必要があります。

設定ファイル「net.minecraft.scalar.cutall.mod_CutAllSMP.cfg」内では、以下の項目に注目ですね。

# String: "log, brown_mushroom_block, red_mushroom_block, log2" (対象とする木ブロック)
S:blockIds=log, brown_mushroom_block, red_mushroom_block, log2
# String: "iron_axe, wooden_axe, stone_axe, diamond_axe, golden_axe" (対象ツール)
S:itemIds=iron_axe, wooden_axe, stone_axe, diamond_axe, golden_axe
# String: "" (対象とする葉ブロック)
S:leavesIds=

最初は上記のように、対象とする葉ブロックの項目「S:leavesIds」は空欄となっています。 「BlockList.txt」からModで新しく追加された樹木の葉ブロックの名前を探して追加しましょう。

なおバニラの葉である「minecraft:leaves」と「minecraft:leaves2」の違いは以下のページを参照のこと。

その他のModの例(SpawnChecker)

僕が愛用しているModとして、敵Mobの湧く場所をわかりやすく表示してくれるSpawnCheckerがあります。

このModのうれしいところは、明かりツール(たとえば松明など)を持っているときだけ湧き場所を表示するというとても便利な機能があることです。すばらしい!

そしてこの機能を、バニラの松明だけでなく他のModで追加される明かり系ツールを持っているときにも使いたくなってきます。

たとえば、松明をたくさん収納できる便利ツールです。松明を数百本まとめて収納しておいて右クリックでいつでも設置可能です、なんてツールは様々なModで見ることができます。

僕は、中にブロックを無限に入れて持ち運ぶことができるStorageBoxを愛用しています。この中に松明を入れて(ほぼ)無限松明ツールとして使うわけです。

では、StorageBoxを設定ファイルに書き加えましょう。

該当するSpawnChecnker側の設定項目は以下の通り(設定ファイル名「spawnchecker.cfg」より抜粋)。

# spawn checker enabling item id list.
# Add "itemid" if you'd like to use other vanilla's item.Add "modid:itemid" if you'd like to use other mod's item.(default: torch, lit_pumpkin)
S:checker_enabling_items <
    torch
    lit_pumpkin
 >

先ほどのMineAllなどとは違い、「,」区切りではなく1行あたり1つの名前という記述方法のようですね。

たとえばStorageBoxの登録名「net.minecraft.storagebox.mod_StorageBox:Storage Box」*3を「ItemList.txt」ファイルから調べ、この名前を追加します。

たとえば以下のように。

# spawn checker enabling item id list.
# Add "itemid" if you'd like to use other vanilla's item.Add "modid:itemid" if you'd like to use other mod's item.(default: torch, lit_pumpkin)
S:checker_enabling_items <
    torch
    lit_pumpkin
    net.minecraft.storagebox.mod_StorageBox:Storage Box
 >

これでゲーム内で、(松明を大量に収納した)StorageBoxを手に持っているときにもMobの湧き場所を表示することができます。

*1:過去のMinecraftはアイテムやブロックなどをIDすなわち数字で区別し管理していました。たとえばMinecraft1.6.xではブロックなどを完全にIDで管理していたために、Modの設定ファイルにブロックを追加するときは名前ではなくIDを書き加えていたのです。しかしMinecraft1.7以降、ブロックなどはIDではなく名前で管理することになりました。Minecraft1.7.10はID完全廃止の移行期間ということで、ブロック等はできるだけIDではなく名前を使うよう推奨されています。ぶっちゃけ、設定ファイルにIDを書いても問題なく動くことも多いのですが、できるだけ名前を書きましょう。

*2:一括伐採大好き!!

*3:とても長いですね^^;