MinecraftのMODプレイヤーにとって、MODの導入には大きな壁がふたつあります。
まずひとつめがBlockID。
現在のMinecraftはプログラムの構造上、BlockIDが0から255までとなっています。
どういうことかというと、画面に設置できるブロックが最大256種類ということです。
さらにそのうち半分近くがMinecraft本体で使用されているため、MODで使用できるブロックの種類は120そこそこということになります。
この数がどれくらいかというと、バージョンで多少変わりますが、IndustrialCraft2で33個、BuildCraftで27個、PlasmaCraftで24個、Red Power2で17個、EquivalentExchange2で5個といった具合で、大型MODを幾つか入れるとそれだけでほとんどの枠を使い切ってしまいます。
このBlockIDの限界を引き上げてくれるMODが幾つかあり、私は現在ExtendedBlockIDSupport(えびす)を使用しています。
これを利用すると上限が4096まで上がるため、BlockID数をほぼ気にする必要が無くなります。
さて、これでめでたしかというともう一つの壁が現れます。
Sprite IDです。
ブロックやアイテムのグラフィックですが、実はあれはアイテムごとに設定されているわけではなく、一枚の大きな絵から一部分を切り出して貼り付けています。
minecraft.jarの中にあるterrain.png、およびgui/items.pngというものがそれで、解凍して見てみるとなじみ深い画像が並んでいます。
で、この一枚絵、Minecraft本体で既にほとんどの枠が使用されています。
この後ModLoaderで呼び出したMODが新しいグラフィックを使おうとした場合、ModLoaderはその一枚絵の空いてる部分に画像を当てはめて使うみたいです。
どういうことかというと、新しいグラフィックをたくさん追加し、一枚絵が一杯になってしまうと、画像のリソースが足りなくなって起動不可能になります。
たとえばgui/items.pngは80枚少々しか追加できないのですが、
Middleage Modは10枚、Transport Thingysは7枚、そしてAdvancedToolsは一気に35枚といったかんじで、新しいグラフィックを追加するMODほど大量に消費します。
解決方法はないのかといえばMinecraftForgeがあり、Forgeの機能を使えば画像を無限に追加することができます。
しかしForgeに対応していないMODについてはどうしようもありません。
と思っていたらまさかの強制対応を行うMODが。
Forge使用時の非ForgeModSpriteID使用低減Modは、名前のとおりForgeを使ってないMODのグラフィックを、無理矢理Forge経由で使用させるようにするMODです。
使用したバージョンは「terrain対応 えびす必須 第3版」です。
まだ人柱版のようで、現在は「おまけ」の中にあります。
導入は自己責任で。
これを適用すると、表面上は何も変わりませんが、ModLoader.txtに大量に書かれていたはずの
詳細レベル (中): addOverride(/gui/items.png,/item/zabuton_chip.png,231). 1 left.
といった表記がごっそり無くなっているはずです。
いくらMODを追加しても、SpriteIDの壁にぶち当たることがほぼ無くなりました。
いったいどんな超技術を使ってるんでしょうね。
手元で試したところでは、何故かPowerStaffだけ変わらずSpriteIDを使い続けましたが、それ以外のMODは全てSpriteIDを消費しなくなりました。
これでもうあの馬鹿みたいにSpriteIDを食い潰すGiant Mobsだって余裕ですよ。
ちなみにこのMODの作者はえびすの作者と同一人物です。
たった一人でMinecraftのふたつの壁を両方とも破壊してしまう人物……一体何者なんだ彼は。
マインクラフト1.2のまとめ
まずひとつめがBlockID。
現在のMinecraftはプログラムの構造上、BlockIDが0から255までとなっています。
どういうことかというと、画面に設置できるブロックが最大256種類ということです。
さらにそのうち半分近くがMinecraft本体で使用されているため、MODで使用できるブロックの種類は120そこそこということになります。
この数がどれくらいかというと、バージョンで多少変わりますが、IndustrialCraft2で33個、BuildCraftで27個、PlasmaCraftで24個、Red Power2で17個、EquivalentExchange2で5個といった具合で、大型MODを幾つか入れるとそれだけでほとんどの枠を使い切ってしまいます。
このBlockIDの限界を引き上げてくれるMODが幾つかあり、私は現在ExtendedBlockIDSupport(えびす)を使用しています。
これを利用すると上限が4096まで上がるため、BlockID数をほぼ気にする必要が無くなります。
さて、これでめでたしかというともう一つの壁が現れます。
Sprite IDです。
ブロックやアイテムのグラフィックですが、実はあれはアイテムごとに設定されているわけではなく、一枚の大きな絵から一部分を切り出して貼り付けています。
minecraft.jarの中にあるterrain.png、およびgui/items.pngというものがそれで、解凍して見てみるとなじみ深い画像が並んでいます。
で、この一枚絵、Minecraft本体で既にほとんどの枠が使用されています。
この後ModLoaderで呼び出したMODが新しいグラフィックを使おうとした場合、ModLoaderはその一枚絵の空いてる部分に画像を当てはめて使うみたいです。
どういうことかというと、新しいグラフィックをたくさん追加し、一枚絵が一杯になってしまうと、画像のリソースが足りなくなって起動不可能になります。
たとえばgui/items.pngは80枚少々しか追加できないのですが、
Middleage Modは10枚、Transport Thingysは7枚、そしてAdvancedToolsは一気に35枚といったかんじで、新しいグラフィックを追加するMODほど大量に消費します。
解決方法はないのかといえばMinecraftForgeがあり、Forgeの機能を使えば画像を無限に追加することができます。
しかしForgeに対応していないMODについてはどうしようもありません。
と思っていたらまさかの強制対応を行うMODが。
Forge使用時の非ForgeModSpriteID使用低減Modは、名前のとおりForgeを使ってないMODのグラフィックを、無理矢理Forge経由で使用させるようにするMODです。
使用したバージョンは「terrain対応 えびす必須 第3版」です。
まだ人柱版のようで、現在は「おまけ」の中にあります。
導入は自己責任で。
これを適用すると、表面上は何も変わりませんが、ModLoader.txtに大量に書かれていたはずの
詳細レベル (中): addOverride(/gui/items.png,/item/zabuton_chip.png,231). 1 left.
といった表記がごっそり無くなっているはずです。
いくらMODを追加しても、SpriteIDの壁にぶち当たることがほぼ無くなりました。
いったいどんな超技術を使ってるんでしょうね。
手元で試したところでは、何故かPowerStaffだけ変わらずSpriteIDを使い続けましたが、それ以外のMODは全てSpriteIDを消費しなくなりました。
これでもうあの馬鹿みたいにSpriteIDを食い潰すGiant Mobsだって余裕ですよ。
ちなみにこのMODの作者はえびすの作者と同一人物です。
たった一人でMinecraftのふたつの壁を両方とも破壊してしまう人物……一体何者なんだ彼は。
マインクラフト1.2のまとめ
PR