提供: Minecraft Modding Wiki
2013年2月22日 (金) 22:40時点における59.136.13.226 (トーク)による版
移動先: 案内検索

このページはForge wiki内のBasic Blocks Tutorialの翻訳記事です。多くが意訳で、雑な翻訳であること、見やすさに応じて太字などは独自に変えられている場合がありますのでご注意ください。

Havvy's Minecraft Forge Tutorials(Basic Blocks)

終着点

  • Minecraftにおける新しいブロックの追加の基礎を学ぶ
    • Dirt,Stone,GlowStoneに似ているものを追加する
  • 以下のブロックのメソッドの利用方法について理解する
    • setStepSound
    • setResistance
    • setHardness
    • setCreativeTab
  • 以下のブロックのメソッドのオーバーライドの利用方法について理解する。
    • idDropped
    • quantityDropped

前提知識

  • Forgeの開発環境が整っていること
  • Basic Moddingの理解

基本

ブロックはMinecraftのワールドの大部分を構成しています。プレイヤーやモブ、壁画やアイテム以外はすべてがブロックです。

シンプルなブロックを作ることは、Blockのコンストラクタがデフォルトでpublicなので、アイテムを作ることよりも簡単です。一方で、ブロックは設定しなくてはならないことを多く持っています。すべてのブロックは以下のプロパティを持ちます。

Block ID

ゲーム内では、ブロックに0~4095の一意の値をつけます。500からはじめ1つのブロックにつき1づつ使います。

Texture ID

ユーザーに見せるテクスチャ

Material マテリアルは、次のセクションで解説する様々なプロパティを設定します。

Blast Resistance

クリーパーやTNTなどの爆発をどの程度軽減するか。

Luminance

どの程度そのブロックが明るく輝くか

Hardness

そのブロックを掘るのにどれだけ時間がかかるか

Creative Tab

どのクリエイティブのタブに属するか。

Sounds

エンティティがブロックの上を歩いた時、どのような音が聞こえるか。

Materials

残りのプロパティと比べると、マテリアルは何をセットするか複雑です。ですが、良いニュースなことに、あなたはおそらくマテリアルを作成する必要はありません。マテリアルは以下のプロパティによって設定されます。

  • ブロックが燃えるかどうか
  • ブロックがそれ自身でドロップされるかどうか
  • ブロックがピストンなどで押すことができるかどうか
  • マッピングにおけるカラー
  • ブロックが雪や葉っぱのように半透明かどうか
  • ブロックが雪のように地面をカバーするかどうか

正確なリストは、net.minecraft.src.Materialにて見つけることができます。それらの中から選ぶことは難しいはずがありません。もし、あなたの望むようなマテリアルが存在しなければ、新しく作って使えばいいのです。

GenericBlock

Blockを継承しなくてもブロックをすることは可能ですが、カスタムテクスチャを利用する際は便利です。そのため、以下のクラスをtutorial.generic.packageに追加してください。

package tutorial.generic;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class GenericBlock extends Block {

        public GenericBlock (int id, int texture, Material material) {
                super(id, texture, material);
        }
        
        @Override
        public String getTextureFile () {
                return CommonProxy.BLOCK_PNG;
        }

}

このコンストラクタはブロックのコンストラクタに渡しているだけです。Blockに対しての改良は、独自のテクスチャファイルを読み込むためのgetTextureFileに対してのオーバーライドのみです。 残りの設定はbaseModクラス内で行います。

Generic Dirt

ブロッククラスを見てください。Dirtは0.5Fの硬さ、じゃりと同じ音を持っています。ここでは、少しのメソッドしかありません。

public final static Block genericDirt = new GenericBlock(500, 1, Material.ground)
        .setHardness(0.5F).setStepSound(Block.soundGravelFootstep)
        .setBlockName("genericDirt").setCreativeTab(CreativeTabs.tabBlock);

見る限り、ブロックIDは500になり、textureは0でgroundマテリアルを利用します。 setHardnessでは、float値を取ります。dirtは0.5Fで、黒曜石は50Fです。硬さについては、[Minecraft Wiki]にて詳しく記述されています。