【Minecraft / Forge Modding】アイテムにテクスチャを貼る【1.7.10】
2019-11-4 | Minecraft / Forge Modding メモ Minecraft 1.7.10 | Java, Minecraft, Modding
2019-11-4 | Minecraft / Forge Modding メモ Minecraft 1.7.10 | Java, Minecraft, Modding
この記事では、追加したアイテムにテクスチャを設定するよ。
Minecraft 1.7.10 版の記事になります。
テクスチャ用の画像を作る。
16 x 16 の PNG ファイルを用意する。アイテムの形に合わせて透過の設定する。
筆者は下記の画像を用意した。
gopichand.png
gopichandhead.png
gopichandbody.png
ironstring.png
テクスチャ用の画像ファイルやローカライズに使うテキストファイルを保存するソース・フォルダーを作成する。
クラスを保存しているソース・フォルダー java
と同じレベルの階層に resource
という名前でソース・フォルダーを新規作成する。
テクスチャ用の画像データを登録するパッケージを作成する。
assets.『任意のパッケージの名前』.textures.items
下記のように作成した。
assets.gopichandmod.textures.items
先ほど、作成したパッケージに画像ファイルを登録する。
"パッケージ・エクスプローラー"のパッケージ assets.gopichandmod.textures.items
にファイルをドラックアンドドロップする。
“ファイル操作”のダイアログが表示され、“ファイルをコピー”か“ファイルへリンク”か尋ねられる。
どちらも一短一長だけど、“ファイルへリンク”を選択した場合。元のファイルを移動するとパスを再設定しなければならなくなるので、“ファイルをコピー”の方が管理しやすいと思う。
画像ファイルを追加したプロジェクト構成は下記のとおりになった。
src/main/java com.gopichandmod GopichandMod.java Recipes.java com.watermelonheadman.gopichandmod.items GopichandItems.java ItemGopichand.java ItemGopichandBody.java ItemGopichandHead.java ItemIronString.java src/main/resource assets.gopichandmod.textures.items gopichand.png gopichandbody.png gopichandhead.png ironstring.png
前回の記事で作ったアイテムのクラスそれぞれにテクスチャに使う画像を指定する処理を追加する。
package com.gopichandmod.items; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import cpw.mods.fml.common.registry.GameRegistry; public class ItemGopichand extends Item { public ItemGopichand() { String name = "gopichand"; this.setCreativeTab( CreativeTabs.tabMisc ); this.setUnlocalizedName( name ); maxStackSize = 1; this.setTextureName( "gopichandmod:gopichand" ); GameRegistry.registerItem( this, name ); return; } }
コンストラクターの中で関数 this.setTextureName
を実行して、テクスチャを設定する。
this.setTextureName( "gopichandmod:gopichand" );
引数に指定する画像を下記の書式で入力する。
"[パッケージの名前]:[画像ファイルの名前(拡張子を除く)]"
このアイテムの場合は、assets.gopichandmod.textures.items
に含まれる gopichandmod.png
をテクスチャに指定するので
"gopichandmod:gopichand"
となる。
もし、テクスチャ用のパッケージを assets.example.gopichandmod.textures.items
のように入れ子にしている場合は
example.gopichandmod:gopichandmod
と入力する。
package com.watermelonheadman.gopichandmod.items; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import cpw.mods.fml.common.registry.GameRegistry; public class ItemGopichandBody extends Item { public ItemGopichandBody() { String name = "gopichandbody"; this.setCreativeTab( CreativeTabs.tabMisc ); this.setUnlocalizedName( name ); maxStackSize = 1; this.setTextureName( "gopichandmod:gopichandbody" ); GameRegistry.registerItem( this, name ); return; } }
package com.gopichandmod.items; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import cpw.mods.fml.common.registry.GameRegistry; public class ItemGopichandHead extends Item { public ItemGopichandHead() { String name = "gopichandhead"; this.setCreativeTab( CreativeTabs.tabMisc ); this.setUnlocalizedName( name ); maxStackSize = 1; this.setTextureName( "gopichandmod:gopichandhead" ); GameRegistry.registerItem( this, name ); return; } }
package com.gopichandmod.items; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import cpw.mods.fml.common.registry.GameRegistry; public class ItemIronString extends Item { public ItemIronString() { String name = "ironstring"; this.setCreativeTab( CreativeTabs.tabMisc ); this.setUnlocalizedName( name ); maxStackSize = 64; this.setTextureName( "gopichandmod:ironstring" ); GameRegistry.registerItem( this, name ); return; } }
テクスチャの設定が反映されているか確かめる為、クリエイティブモードでテストする。
アイテムのアイコンがそれぞれ指定したテクスチャに変わっていれば、成功です。
まだ、変なアイコンのままであれば、ソース・フォルダーやパッケージ、画像ファイルの名前を間違えていないかチェックする。
お疲れ様でした!
最近の投稿
カテゴリー