提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
2行目: 2行目:
 
{{チュートリアル難易度|difficulty=0|clear=none}}
 
{{チュートリアル難易度|difficulty=0|clear=none}}
 
{{チュートリアルカテゴリー ‎|type=Block| difficulty=0}}
 
{{チュートリアルカテゴリー ‎|type=Block| difficulty=0}}
<p>ワールド上に設置できる簡単な無機能ブロックの追加方法</p>
+
<p>ワールド上に設置できる簡単なブロックの追加方法</p>
 
==ブロックの追加==
 
==ブロックの追加==
注意:一度入れたMODを外すと、再び入れてもテクスチャが反映されなくなります。デバッグ時にご注意を。
 
 
===ソースコード===
 
===ソースコード===
 
*SampleMod.java
 
*SampleMod.java
11行目: 10行目:
  
 
import net.minecraft.block.Block;
 
import net.minecraft.block.Block;
 +
import net.minecraft.client.Minecraft;
 
import net.minecraft.client.resources.model.ModelBakery;
 
import net.minecraft.client.resources.model.ModelBakery;
 
import net.minecraft.client.resources.model.ModelResourceLocation;
 
import net.minecraft.client.resources.model.ModelResourceLocation;
 
import net.minecraft.creativetab.CreativeTabs;
 
import net.minecraft.creativetab.CreativeTabs;
 
import net.minecraft.item.Item;
 
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
 
 
import net.minecraftforge.fml.common.Mod;
 
import net.minecraftforge.fml.common.Mod;
 
import net.minecraftforge.fml.common.Mod.EventHandler;
 
import net.minecraftforge.fml.common.Mod.EventHandler;
 +
import net.minecraftforge.fml.common.SidedProxy;
 
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
 
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
 
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
 
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
 
import net.minecraftforge.fml.common.registry.GameRegistry;
 
import net.minecraftforge.fml.common.registry.GameRegistry;
  
@Mod(modid = SampleMod.MOD_ID,  
+
@Mod(modid = "SampleMod", name = "SampleMod", version = "1.0", dependencies = "required-after:Forge@[1.8-11.14.0.1239,)", useMetadata = true)
        name = SampleMod.MOD_NAME,  
 
        version = SampleMod.MOD_VERSION,  
 
        dependencies = SampleMod.MOD_DEPENDENCIES,
 
        acceptedMinecraftVersions = SampleMod.MOD_ACCEPTED_MC_VERSIONS,
 
        useMetadata = true)
 
 
public class SampleMod {
 
public class SampleMod {
    /** ModId文字列 */
+
     public static final String MOD_ID = "SampleMod";
     public static final String MOD_ID = "samplemod";
+
 
     /** MOD名称 */
+
     @Mod.Instance("SampleMod")
     public static final String MOD_NAME = "SampleMod";
+
     public static SampleMod INSTANCE;
    /** MODのバージョン */
+
 
     public static final String MOD_VERSION = "0.0.1";
+
     @SidedProxy(clientSide = "com.example.examplemod.ClientProxy", serverSide = "com.example.examplemod.CommonProxy")
    /** 先に読み込まれるべき前提MODをバージョン込みで指定 */
+
     public static CommonProxy proxy;
    public static final String MOD_DEPENDENCIES = "required-after:Forge@[1.8-11.14.0.1239,)";
+
 
    /** 起動出来るMinecraft本体のバージョン。記法はMavenのVersion Range Specificationを検索すること。 */
 
     public static final String MOD_ACCEPTED_MC_VERSIONS = "[1.8,1.8.9]";
 
    /** 追加したいブロックのインスタンスを格納するための変数。レシピ等で利用。 */
 
 
     public static Block sampleBlock;
 
     public static Block sampleBlock;
 +
    public static Item sampleItem;
  
 
     @EventHandler
 
     @EventHandler
48行目: 41行目:
  
 
         GameRegistry.registerBlock(sampleBlock, SampleItemBlock.class, "sampleblock");
 
         GameRegistry.registerBlock(sampleBlock, SampleItemBlock.class, "sampleblock");
 +
 +
    }
 +
 +
    @EventHandler
 +
    public void init(FMLInitializationEvent event) {
  
 
         //テクスチャ・モデル指定JSONファイル名の登録。
 
         //テクスチャ・モデル指定JSONファイル名の登録。
55行目: 53行目:
 
             ModelBakery.addVariantName(Item.getItemFromBlock(sampleBlock), MOD_ID + ":" + "sampleblock0", MOD_ID + ":" + "sampleblock1");
 
             ModelBakery.addVariantName(Item.getItemFromBlock(sampleBlock), MOD_ID + ":" + "sampleblock0", MOD_ID + ":" + "sampleblock1");
 
             //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。
 
             //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。
             ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(sampleBlock), 0, new ModelResourceLocation(MOD_ID + ":" + "sampleblock0", "inventory"));
+
             Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 0, new ModelResourceLocation(MOD_ID + ":" + "sampleblock0", "inventory"));
             ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(sampleBlock), 1, new ModelResourceLocation(MOD_ID + ":" + "sampleblock1", "inventory"));
+
             Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 1, new ModelResourceLocation(MOD_ID + ":" + "sampleblock1", "inventory"));
            //ModelLoader.setCustomStateMapper(sampleBlock, (new StateMap.Builder()).addPropertiesToIgnore(sampleBlock.METADATA).build());
+
 
            //上記のようにして無視させたいPropertyを指定することもできる。
 
            //その他にもここで設定できる項目もあるが割愛させていただく。
 
 
         }
 
         }
 
     }
 
     }
128行目: 124行目:
 
}
 
}
 
</source>
 
</source>
*SampleItemBlock.java
+
*SmpleItemBlock.java
 
<source lang = "java">
 
<source lang = "java">
 
package com.example.examplemod;
 
package com.example.examplemod;
148行目: 144行目:
  
 
</source>
 
</source>
*sampleblock.json(BlockState用)
+
*sampleblock0.json(BlockState用)
 
<source lang = "javascript">
 
<source lang = "javascript">
 
{
 
{
 
     "variants": {
 
     "variants": {
         "meta=0":  { "model": "samplemod:sampleblock0" },
+
         "normal":  { "model": "samplemod:sampleblock0" }
        "meta=1":  { "model": "samplemod:sampleblock1" }
 
 
     }
 
     }
 
}
 
}
176行目: 171行目:
 
             "scale": [ 0.375, 0.375, 0.375 ]
 
             "scale": [ 0.375, 0.375, 0.375 ]
 
         }
 
         }
 +
    }
 +
}
 +
</source>
 +
*sampleblock1.json(BlockState用)
 +
<source lang = "javascript">
 +
{
 +
    "variants": {
 +
        "normal":  { "model": "samplemod:sampleblock1" }
 
     }
 
     }
 
}
 
}
184行目: 187行目:
 
     "parent": "block/cube",
 
     "parent": "block/cube",
 
     "textures": {
 
     "textures": {
        "particle": "blocks/wool_colored_orange",
 
 
         "down": "blocks/wool_colored_black",
 
         "down": "blocks/wool_colored_black",
 
         "up": "blocks/wool_colored_white",
 
         "up": "blocks/wool_colored_white",
217行目: 219行目:
 
             //モデルJSONファイルのファイル名を登録。1IDで1つだけなら、登録名はGameRegistryでの登録名と同じものにする。
 
             //モデルJSONファイルのファイル名を登録。1IDで1つだけなら、登録名はGameRegistryでの登録名と同じものにする。
 
             //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。
 
             //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。
             ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(sampleBlock), 0, new ModelResourceLocation(MOD_ID + ":" + "sampleBlock0", "inventory"));
+
             Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 0, new ModelResourceLocation(MOD_ID + ":" + "sampleBlock0", "inventory"));
             ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(sampleBlock), 1, new ModelResourceLocation(MOD_ID + ":" + "sampleBlock1", "inventory"));
+
             Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 1, new ModelResourceLocation(MOD_ID + ":" + "sampleBlock1", "inventory"));
            //ModelLoader.setCustomStateMapper(sampleBlock, (new StateMap.Builder()).addPropertiesToIgnore(sampleBlock.METADATA).build());
 
            //上記のようにして無視させたいPropertyを指定することもできる。
 
            //その他にもここで設定できる項目もあるが割愛させていただく。
 
 
         }
 
         }
 
</source>
 
</source>
227行目: 226行目:
 
ModelBakery#addVariantNameメソッドは、羊毛ブロックのような、1IDで複数種類のブロックのモデルを登録する際の登録名を予め指定しておくメソッドである。
 
ModelBakery#addVariantNameメソッドは、羊毛ブロックのような、1IDで複数種類のブロックのモデルを登録する際の登録名を予め指定しておくメソッドである。
 
BlockStateのPropertyを持たないブロックを追加する場合は必要ない。
 
BlockStateのPropertyを持たないブロックを追加する場合は必要ない。
ModelLoader#setCustomModelResourceLocationメソッドでテクスチャ・モデルのJSONファイルを登録している。
+
ItemModelMesher#registerメソッドでテクスチャ・モデルのJSONファイルを登録している。
 
ここで登録されるのは手持ちやドロップアイテム時の描画についてであり、設置時のモデルに関して登録は不要である。
 
ここで登録されるのは手持ちやドロップアイテム時の描画についてであり、設置時のモデルに関して登録は不要である。
 
1.7と同様の処理については[[1.7のブロック追加]]を参照のこと。
 
1.7と同様の処理については[[1.7のブロック追加]]を参照のこと。
275行目: 274行目:
 
このファイルは、<br />
 
このファイルは、<br />
 
assets\<modid>\blockstates<br />
 
assets\<modid>\blockstates<br />
ディレクトリに配置する。(※MODIDに大文字が含まれる場合、フォルダ名称は小文字にする)
+
ディレクトリに配置する。
  
meta=0:BlockStateの状態指定。"meta=0,bool=false"のように書く。BlockStatesが無い場合は、"normal"とする。
+
normal:BlockStateの状態指定。"meta=0,bool=false"のように書く。"normal"は状態別にしない場合。
  
 
model:モデル用JSONファイルのファイル名を指定。"<modid>:ファイル名"という形式。
 
model:モデル用JSONファイルのファイル名を指定。"<modid>:ファイル名"という形式。
284行目: 283行目:
 
このファイルは、<br />
 
このファイルは、<br />
 
assets\<modid>\models\block<br />
 
assets\<modid>\models\block<br />
ディレクトリに配置する。(※MODIDに大文字が含まれる場合、フォルダ名称は小文字にする)
+
ディレクトリに配置する。
  
 
parent:親のモデルJSONファイルを指定。"block/cube_all"で全面同一テクスチャの立方体モデルを指定。
 
parent:親のモデルJSONファイルを指定。"block/cube_all"で全面同一テクスチャの立方体モデルを指定。
293行目: 292行目:
 
このファイルは、<br />
 
このファイルは、<br />
 
assets\<modid>\models\item<br />
 
assets\<modid>\models\item<br />
ディレクトリに配置する。(※MODIDに大文字が含まれる場合、フォルダ名称は小文字にする)
+
ディレクトリに配置する。
  
 
parent:親のモデルJSONファイルを指定。ブロックの場合は、ブロックモデルのJSONファイルを指定。
 
parent:親のモデルJSONファイルを指定。ブロックの場合は、ブロックモデルのJSONファイルを指定。

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)