2025年1月27日月曜日

forge Mod で作成したブロックにテクスチャを設定する

forge Mod で作成したブロックにテクスチャを設定する

概要

前回 Block を継承したカスタムクラスを定義し MOD 用のカスタムブロックを定義しました
デフォルトではテクスチャがなく紫と黒のチェック柄のブロックになってしまいます
今回はテクスチャの画像を準備しカスタムブロックに設定する方法を紹介します

環境

  • macOS 15.2
  • Java 21.0.5
  • forrge MDK 1.20.6-50.1.32
  • minecraft 1.20.6

テクスチャ画像の配置

  • mkdir -p src/main/resources/assets/examplemod/textures/block/

でこの配下に custom_block.png などのテクスチャファイルを配置します
webp 形式ではなく png 形式を準備してください

モデルファイルの作成

テクスチャをカスタムブロックに適用するための JSON ファイルを用意します

  • mkdir -p src/main/resources/assets/examplemod/models/block/
  • vim src/main/resources/assets/examplemod/models/block/
{
  "parent": "block/cube_all",
  "textures": {
    "all": "examplemod:block/custom_block"
  }
}

モデルアイテムファイルの作成

ブロックがアイテムとして表示される際のテクスチャを設定します

  • mkdir -p src/main/resources/assets/examplemod/models/item/
  • vim src/main/resources/assets/examplemod/models/item/custom_block.json
{
  "parent": "examplemod:block/custom_block"
}

blockstates ファイルを作成する

ブロックの状態に応じて適用するテクスチャを設定します

  • mkdir -p src/main/resources/assets/examplemod/blockstates/
  • vim mkdir -p src/main/resources/assets/examplemod/blockstates/custom_block.json
{
  "variants": {
    "": { "model": "examplemod:block/custom_block" }
  }
}

variants はブロックの状態ごとに使用するモデルを定義です
空文字列は状態がない場合に適用されるモデルを指定します

build.gradle の確認

リソースファイルのパスが正しく設定されているか確認します
forge Mod の場合 assets 配下に配置した各種リソースは src/generated/resoureces というパスにビルド時に最適化されそれが利用されます

  • vim build.gradle
sourceSets.main.resources { srcDir 'src/generated/resources' }

動作確認

  • ./gradlew clean && ./gradlew build && ./gradlew runClient

カスタムブロックにテクスチャが設定されていることを確認しましょう

最後に

forge Mod でカスタムブロックにテクスチャ設定してみました
正しいパスに各種アセットを配置するとあとは自動でビルド時にテクスチャを設定してくれるようです

今回はブロックにテクスチャを設定しましたがアイテムにも同様にテクスチャを設定できます
アイテムの場合は png を置くパスが src/main/resources/assets/examplemod/textures/item/laser_gun.png になります
またアイテム用のテクスチャは四角の画像ではなく背景が透過されたアイテムっぽい画像を用意しましょう

次回はブロックではなくアイテムのテクスチャを設定する方法を紹介します

0 件のコメント:

コメントを投稿