提供: Minecraft Modding Wiki
移動先: 案内検索
(ページの作成:「このページはModLoaderを使用することを前提に書かれています。 MOBを追加するサンプルソースとして、Mr.Minecraft氏(公式ではT...」)
 
(解説: 脱字修正 Mode→Model)
 
(4人の利用者による、間の5版が非表示)
1行目: 1行目:
このページはModLoaderを使用することを前提に書かれています。
+
{{前提MOD|reqmod="ModLoader"}}
  
MOBを追加するサンプルソースとして、Mr.Minecraft氏(公式ではThe Playerや"Steve?"と呼ばれるようですが、ここでは便宜上この名前を使用します)を追加するModを示します。
+
MOBを追加するModのサンプルとして、Mr.Minecraft氏(公式ではThe Playerや"Steve?"と呼ばれるようですが、ここでは便宜上この名前を使用します)を追加するModを示します。
  
  
 
== Modを構成するファイル ==
 
== Modを構成するファイル ==
  
このModは以下のファイルで構成されています。通常、新しくMOBを追加する場合はEntity、Model、Renderの3種類のファイルを作成する必要があります。
+
このModは以下のファイルで構成されています。
  
 
;mod_MrMinecraft.java:Modの本体
 
;mod_MrMinecraft.java:Modの本体
17行目: 17行目:
  
 
=== mod_MrMinecraft.java ===
 
=== mod_MrMinecraft.java ===
<pre>
+
<source lang="java">
 
  package net.minecraft.src;
 
  package net.minecraft.src;
 
  import java.util.*;
 
  import java.util.*;
41行目: 41行目:
  
 
}
 
}
</pre>
+
</source>
  
  
 
=== EntityMrMinecraft.java ===
 
=== EntityMrMinecraft.java ===
<pre>
+
<source lang="java">
 
package net.minecraft.src;
 
package net.minecraft.src;
  
65行目: 65行目:
  
 
}
 
}
</pre>
+
</source>
  
  
 
=== ModelMrMinecraft.java ===
 
=== ModelMrMinecraft.java ===
<pre>
+
<source lang="java">
 
package net.minecraft.src;
 
package net.minecraft.src;
  
87行目: 87行目:
  
 
}
 
}
</pre>
+
</source>
  
  
 
=== RenderMrMinecraft.java ===
 
=== RenderMrMinecraft.java ===
<pre>
+
<source lang="java">
 
package net.minecraft.src;
 
package net.minecraft.src;
  
114行目: 114行目:
  
 
}
 
}
</pre>
+
</source>
 +
 
 +
 
 +
== 解説 ==
 +
 
 +
新しくMOBを追加するとき、Entity、Model、Renderの3種類のファイルが必要となります。
 +
 
 +
EntityはMOBの動作を定義し、クリーパーであれば爆発、ニワトリであれば産卵といった処理を記述します。このサンプルでは、Mr.Minecraft氏は村人(EntityVillager)の動作を継承しているため、村人と同じように建築物を出入りしたりゾンビに追いかけられたりします。またテクスチャをデフォルトスキンに設定しています。
 +
 
 +
ModelはMOBの形を定義します。形はすべて直方体の組み合わせで表され、Javaのコードで記述されています。一般のゲームのように、外部からモデルファイルを読み込んで描画する方式とは異なります。このサンプルでは人間型モデル(ModelBiped)を継承しています。オリジナルのModelを作成する際はTechneなどのModel作成ツールを用いるとよいでしょう。
 +
 
 +
Renderは実際にMOBを描画します。歩行、手を振る、座るなどのモデルの動きもこのファイルで定義されています。このサンプルではデフォルトの描画および動きを継承しています。
 +
 
 +
追加したMOBのテクスチャーは、\McRoot\jars\binに入ってる'''minecraft.jar'''の中の'''「mob」'''フォルダの中に入れると反映されます。
 +
 
 +
== Minecraft用モデル作成ツール ==
 +
 
 +
[http://www.minecraftforum.net/topic/247851-/ FMCModeler] - Flash上で動くモデリングツール。Javaコード上のモデルの配列コードを読み込み、書き出しすることも可能。
 +
 
 +
[http://www.minecraftforum.net/topic/200676-modeler-techne/ Techne] - Windows専用のモデリングツール。Javaコードエディタを備えているので、ソースを見つつモデリングすることが可能。.NET Framework4.0が必要。

2018年3月13日 (火) 22:55時点における最新版

この記事は"ModLoader"を前提MODとしています。

MOBを追加するModのサンプルとして、Mr.Minecraft氏(公式ではThe Playerや"Steve?"と呼ばれるようですが、ここでは便宜上この名前を使用します)を追加するModを示します。


Modを構成するファイル[編集]

このModは以下のファイルで構成されています。

mod_MrMinecraft.java
Modの本体
EntityMrMinecraft.java
Mr.Minecraft氏の動作を定義する
ModelMrMinecraft.java
Mr.Minecraft氏の形を定義する
RenderMrMinecraft.java
Mr.Minecraft氏の描画を行う


ファイルの内容[編集]

mod_MrMinecraft.java[編集]

package net.minecraft.src;
 import java.util.*;

public class mod_MrMinecraft extends BaseMod {

    public mod_MrMinecraft() {
        super();
    }

    public void load() {
        ModLoader.registerEntityID(EntityMrMinecraft.class, "Mr.Minecraft", ModLoader.getUniqueEntityId());
        ModLoader.addSpawn(EntityMrMinecraft.class, 10, 3, 6,EnumCreatureType.creature);
    }

    public String getVersion() {
        return "1.2.3-a";
    }

    public void addRenderer(Map renderers) {
        renderers.put(net.minecraft.src.EntityMrMinecraft.class, new RenderMrMinecraft(new ModelMrMinecraft(), 0.5f));
    }

}


EntityMrMinecraft.java[編集]

package net.minecraft.src;

public class EntityMrMinecraft extends EntityVillager {

    public EntityMrMinecraft(World world) {
        super(world);
        texture = "/mob/char.png";
    }
	
    public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) {
        super.readEntityFromNBT(par1NBTTagCompound);
        texture = "/mob/char.png";
    }

    protected int getDropItemId() {
        return Item.appleRed.shiftedIndex;
    }

}


ModelMrMinecraft.java[編集]

package net.minecraft.src;

public class ModelMrMinecraft extends ModelBiped {

    public ModelMrMinecraft() {
        this(0.0f);
    }

    public ModelMrMinecraft(float f) {
        this(f, 0.0F);
    }

    public ModelMrMinecraft(float f, float f1) {
        super(f, f1);
    }

}


RenderMrMinecraft.java[編集]

package net.minecraft.src;

public class RenderMrMinecraft extends RenderLiving {

    public RenderMrMinecraft(ModelBase modelbase, float f) {
        super(modelbase, f);
    }

    public void renderMrMinecraft(EntityMrMinecraft entity, double d, double d1, double d2, float f, float f1) {
        super.doRenderLiving(entity, d, d1, d2, f, f1);
    }

    public void doRenderLiving(EntityLiving entityliving, double d, double d1, double d2, float f, float f1) {
        renderMrMinecraft((EntityMrMinecraft)entityliving, d, d1, d2, f, f1);
    }

    public void doRender(Entity entity, double d, double d1, double d2, float f, float f1)
    {
        renderMrMinecraft((EntityMrMinecraft)entity, d, d1, d2, f, f1);
    }

}


解説[編集]

新しくMOBを追加するとき、Entity、Model、Renderの3種類のファイルが必要となります。

EntityはMOBの動作を定義し、クリーパーであれば爆発、ニワトリであれば産卵といった処理を記述します。このサンプルでは、Mr.Minecraft氏は村人(EntityVillager)の動作を継承しているため、村人と同じように建築物を出入りしたりゾンビに追いかけられたりします。またテクスチャをデフォルトスキンに設定しています。

ModelはMOBの形を定義します。形はすべて直方体の組み合わせで表され、Javaのコードで記述されています。一般のゲームのように、外部からモデルファイルを読み込んで描画する方式とは異なります。このサンプルでは人間型モデル(ModelBiped)を継承しています。オリジナルのModelを作成する際はTechneなどのModel作成ツールを用いるとよいでしょう。

Renderは実際にMOBを描画します。歩行、手を振る、座るなどのモデルの動きもこのファイルで定義されています。このサンプルではデフォルトの描画および動きを継承しています。

追加したMOBのテクスチャーは、\McRoot\jars\binに入ってるminecraft.jarの中の「mob」フォルダの中に入れると反映されます。

Minecraft用モデル作成ツール[編集]

FMCModeler - Flash上で動くモデリングツール。Javaコード上のモデルの配列コードを読み込み、書き出しすることも可能。

Techne - Windows専用のモデリングツール。Javaコードエディタを備えているので、ソースを見つつモデリングすることが可能。.NET Framework4.0が必要。