約 2,202,376 件
https://w.atwiki.jp/akasatanahama/pages/102.html
概要 MOBを追加する。 今回は、匠型のMOBを追加する。 ソースコード AluminiumMod.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EnumCreatureType; import net.minecraft.item.Item; import net.minecraft.world.biome.BiomeGenBase; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @Mod(modid = "AluminiumMod", name = "Aluminium Mod", version = "1.0.0") public class AluminiumMod { //追加するアイテムの宣言 public static Item aluminiumEgg; @EventHandler public void perInit(FMLPreInitializationEvent event) { //Itemのインスタンスを生成し、代入する aluminiumEgg = new ItemAluminiumEgg() //クリエイティブタブの登録 .setCreativeTab(CreativeTabs.tabMaterials) //システム名の登録 .setUnlocalizedName("aluminiumEgg") //テクスチャ名の登録 .setTextureName("aluminiummod aluminiumEgg"); //GameRegistryへの登録 GameRegistry.registerItem(aluminiumEgg, "aluminiumEgg"); } @EventHandler public void init(FMLInitializationEvent event) { //Entityを登録する EntityRegistry.registerModEntity(EntityAluminiumCreeper.class, "AluminiumCreeper", 0, this, 250, 1, false); //Entityの自然スポーンを登録する EntityRegistry.addSpawn(EntityAluminiumCreeper.class, 20, 1, 4, EnumCreatureType.creature, BiomeGenBase.plains); /*EntityのRenderを登録する *Client側でのみ登録するため、今回はif文で処理をする。*/ if(FMLCommonHandler.instance().getSide() == Side.CLIENT) { this.render(); } } @SideOnly(Side.CLIENT) public void render() { RenderingRegistry.registerEntityRenderingHandler(EntityAluminiumCreeper.class, new RenderAluminiumCreeper()); } } EntityAluminiumCreeper.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.block.material.Material; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIAvoidEntity; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.AchievementList; import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityAluminiumCreeper extends EntityMob { public EntityAluminiumCreeper(World world) { super(world); /*EntiyのAIを登録する*/ this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPig.class, 1.0D, false)); this.tasks.addTask(2, new EntityAIAvoidEntity(this, EntityOcelot.class, 6.0F, 1.0D, 1.2D)); this.tasks.addTask(3, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(4, new EntityAIWander(this, 0.8D)); this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(6, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPig.class, 1,false)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 1, true)); this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); } /**MOBの速度やHPを変更するメソッド*/ @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(128D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(100D); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1.5D); } /**MOBの属性を返すメソッド*/ @Override public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.UNDEFINED; } /**MOBのドロップアイテムを返すメソッド*/ @Override public Item getDropItem() { return Item.getItemFromBlock(Blocks.wool) ; } /**MOBのドロップアイテムをドロップさせるメソッド*/ @Override protected void dropFewItems(boolean isCanDropRare, int fortuneLv){ Item item = this.getDropItem(); int amount = 1; if(isCanDropRare this.rand.nextBoolean()) { item = Item.getItemFromBlock(Blocks.stained_glass); } if(fortuneLv 0) { amount += fortuneLv; } int damage = this.rand.nextInt(16); for(int i = 0; i amount; i++) { this.entityDropItem(new ItemStack(item, amount, damage), 0.0F); } } /**Tickごとに呼ばれるメソッド*/ @Override public void onUpdate() { int x = (int) this.posX; int y = (int) this.posY; int z = (int) this.posZ; if(this.worldObj.getBlock(x, y - 1, z).getMaterial() == Material.iron) { this.worldObj.createExplosion(this, x, y, z, 3F, true); } super.onUpdate(); } /**MOB死亡時に呼ばれるメソッド*/ public void onDeath(DamageSource source) { super.onDeath(source); if(source.getSourceOfDamage() != null source.getSourceOfDamage() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) source.getSourceOfDamage(); if(!this.worldObj.isRemote) { player.addChatMessage(new ChatComponentText("You slayed.")); player.triggerAchievement(AchievementList.mineWood); } } } /**ダメージを食らうか否かを判定するメソッド*/ @Override public boolean attackEntityFrom(DamageSource source, float damage) { if(source.isExplosion()) { return false; } else if(source.isFireDamage()) { return super.attackEntityFrom(source, damage * 2); } else { return super.attackEntityFrom(source, damage); } } } RenderAluminiumCreeper.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderAluminiumCreeper extends RenderLiving { public RenderAluminiumCreeper() { super(new ModelAluminiumCreeper() , 0.5F); } /**テクスチャを登録するメソッド*/ @Override protected ResourceLocation getEntityTexture(Entity entity) { return new ResourceLocation("aluminiummod textures/mobs/aluminium_creeper.png"); } } ModelAluminiumCreeper.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class ModelAluminiumCreeper extends ModelBase { public ModelRenderer head; public ModelRenderer head2; public ModelRenderer body; public ModelRenderer leg1; public ModelRenderer leg2; public ModelRenderer leg3; public ModelRenderer leg4; public ModelAluminiumCreeper() { this(0.0F); } /**Modelを登録するメソッド*/ public ModelAluminiumCreeper(float size) { byte b0 = 4; this.head = new ModelRenderer(this, 0, 0); this.head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, size); this.head.setRotationPoint(0.0F, (float)b0, 0.0F); this.head2 = new ModelRenderer(this, 32, 0); this.head2.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, size + 0.5F); this.head2.setRotationPoint(0.0F, (float)b0, 0.0F); this.body = new ModelRenderer(this, 16, 16); this.body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, size); this.body.setRotationPoint(0.0F, (float)b0, 0.0F); this.leg1 = new ModelRenderer(this, 0, 16); this.leg1.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg1.setRotationPoint(-2.0F, (float)(12 + b0), 4.0F); this.leg2 = new ModelRenderer(this, 0, 16); this.leg2.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg2.setRotationPoint(2.0F, (float)(12 + b0), 4.0F); this.leg3 = new ModelRenderer(this, 0, 16); this.leg3.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg3.setRotationPoint(-2.0F, (float)(12 + b0), -4.0F); this.leg4 = new ModelRenderer(this, 0, 16); this.leg4.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg4.setRotationPoint(2.0F, (float)(12 + b0), -4.0F); } /**Modelをレンダリングするメソッド*/ public void render(Entity entity, float f1, float f2, float f3, float yaw, float pitch, float size) { this.setRotationAngles(f1, f2, f3, yaw, pitch, size, entity); this.head.render(size); this.body.render(size); this.leg1.render(size); this.leg2.render(size); this.leg3.render(size); this.leg4.render(size); } /**頭、足、腕などの角度を設定するメソッド*/ public void setRotationAngles(float f1, float f2, float f3, float yaw, float pitch, float size, Entity entity) { this.head.rotateAngleY = yaw / (180F / (float)Math.PI); this.head.rotateAngleX = pitch / (180F / (float)Math.PI); this.leg1.rotateAngleX = MathHelper.cos(f1 * 0.6662F) * 1.4F * f2; this.leg2.rotateAngleX = MathHelper.cos(f1 * 0.6662F + (float)Math.PI) * 1.4F * f2; this.leg3.rotateAngleX = MathHelper.cos(f1 * 0.6662F + (float)Math.PI) * 1.4F * f2; this.leg4.rotateAngleX = MathHelper.cos(f1 * 0.6662F) * 1.4F * f2; } } ItemAluminiumEgg.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.entity.Entity; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Facing; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; /**このクラスは、net.minecraft.Item.ItemMonsterPlacerをもとに作成しています。*/ public class ItemAluminiumEgg extends Item { /**アイテムでブロックを右クリックしたのメソッド。ItemMonsterPlacer参照。*/ @Override public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float posX, float posY, float posZ) { //サーバー側の場合は処理をスキップする if (world.isRemote) { return true; } else { Block block = world.getBlock(x, y, z); x += Facing.offsetsXForSide[side]; y += Facing.offsetsYForSide[side]; z += Facing.offsetsZForSide[side]; double height = 0.0D; if (side == 1 block.getRenderType() == 11) { height = 0.5D; } Entity entity = spawnEntity(world, (double)x + 0.5D, (double)y + height, (double)z + 0.5D); if (entity != null) { if (!player.capabilities.isCreativeMode) { --itemStack.stackSize; } } return true; } } /**アイテムを使ったときのメソッド。ItemMonsterPlacer参照。*/ @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { //サーバー側の場合は処理をスキップする if (world.isRemote) { return itemStack; } else { MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, true); if (movingobjectposition == null) { return itemStack; } else { if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { int x = movingobjectposition.blockX; int y = movingobjectposition.blockY; int z = movingobjectposition.blockZ; if (!world.canMineBlock(player, x, y, z)) { return itemStack; } if (!player.canPlayerEdit(x, y, z, movingobjectposition.sideHit, itemStack)) { return itemStack; } if (world.getBlock(x, y, z) instanceof BlockLiquid) { Entity entity = spawnEntity(world, (double)x, (double)y, (double)z); if (entity != null) { if (!player.capabilities.isCreativeMode) { --itemStack.stackSize; } } } } return itemStack; } } } /**Mobをスポーンさせるメソッド*/ public Entity spawnEntity(World world, double x, double y, double z) { EntityAluminiumCreeper entityliving = new EntityAluminiumCreeper(world); entityliving.setLocationAndAngles(x, y, z, MathHelper.wrapAngleTo180_float(world.rand.nextFloat() * 360.0F), 0.0F); entityliving.rotationYawHead = entityliving.rotationYaw; entityliving.renderYawOffset = entityliving.rotationYaw; entityliving.onSpawnWithEgg((IEntityLivingData)null); world.spawnEntityInWorld(entityliving); entityliving.playLivingSound(); return entityliving; } } 解説 AluminiumMod +長いので囲みます void registerModEntity(Class ? extends Entity entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates) Mod用のMOBを追加するメソッド。 引数は、以下の通り。 引数 内容 entityClass 追加するEntityをClass型で渡す。 entityName 追加するEntityの名称。langファイルで、entity.[MODIDで登録した名称].[entityNameで登録した名称].name=[ローカル名]でローカル名を登録できる。 id 追加するEntityのID。同一MOD内で被るとエラーを吐く。 mod MODを渡す。thisで渡せばOK。 trackingRange MOBの更新範囲。 updateFrequency MOBの更新頻度。何tickごとにMOBを更新するかの値。基本的に2以下の値を渡す。 sendsVelocityUpdates MOBの更新時に加速度の情報を更新させるか否か。MOBや動物の場合は基本的にtrueを渡す。 void addSpawn(Class ? extends EntityLiving entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) Entityの自然スポーンを追加するメソッド。 引数は、以下の通り。 引数 内容 entityClass スポーンを追加させるEntityをClass型で渡す。 weightProb Entityのスポーンがどれくらいの頻度で抽選されるかの値。値が大きいほうがスポーンしやすい。 min Entityがスポーンする際の最低数。 max Entityがスポーンする際の最高数。 typeOfCreature Entityのスポーンタイプ。EnumCreatureType一覧-monster...敵性MOBの属性。夜にスポーンする。-creature...友好MOB(とオオカミ、ヤマネコ)の属性。昼にスポーンする。-ambient...コウモリの属性。-waterCreature...イカの属性。これのみ、スポーン場所が空気中でなく水中になる。 biomes Entityがスポーンするバイオーム。複数バイオームを渡す場合は、先にfinal定数でリストを作ってからそのリストをそのまま引数に渡した方がいい。 void registerEntityRenderingHandler(Class ? extends Entity entityClass, Render renderer) Entityのレンダーを追加するメソッド。 Client限定の処理であり、Serverで処理してしまうとクラッシュの原因になるため、必ずif文とSideOnlyアノテーションを付けたメソッドで処理をする。 もしくは、proxyで分化させる手もある。 第一引数には登録EntityをClass型で、第二引数は登録Renderをインスタンス型で渡す。 EntityAluminiumCreeper +長いので囲みます tasks.addTask(int p_75776_1_, EntityAIBase p_75776_2_) Entityに攻撃、移動AIを追加するメソッド。 ターゲットAIは後述のtargetTasks.addTaskを用いる。 第一引数はAIの順位(小さいほうが先に行動される。)、第二引数がAI。 主なAI EntityAISwimming(EntityLiving p_i1624_1_) 水を泳ぐAI。 第一引数にはthisを渡す。 EntityAIAttackOnCollide(EntityCreature p_i1635_1_, Class p_i1635_2_, double p_i1635_3_, boolean p_i1635_5_) 特定のEntityを襲うAI。 第一引数にはthis、第二引数には襲う対象のEntityをクラス型で、第三引数には自分の通常移動速度に対する倍率、第四引数には追い続けるか否かの判定を渡す。 第三引数が1より大きいと、通常の移動スピードより高速で襲ってくることになる。 EntityAIAvoidEntity(EntityCreature p_i1616_1_, Class p_i1616_2_, float p_i1616_3_, double p_i1616_4_, double p_i1616_6_) 特定のEntityから逃げるAI。 第一引数にはthis、第二引数には逃げる対象のEntityをクラス型で、第三引数には対象からどれだけ逃げるかの距離、第四引数には対象と十分離れたときの逃げる速度の倍率、第五引数には対象と近いときの逃げる速度の倍率を渡す。 第四引数 第五引数となれば、対象と近いときはより急いで逃げるようになる。 EntityAIWander(EntityCreature p_i1648_1_, double p_i1648_2_) うろうろするAI。 第一引数にはthis、第二引数には速度の倍率を渡す。 第二引数は、基本的に1より小さい値を渡す。 EntityAIWatchClosest(EntityLiving p_i1631_1_, Class p_i1631_2_, float p_i1631_3_) 特定のEntityを睨むAI。 第一引数にはthis、第二引数には睨む対象のEntityをクラス型で、第三引数は対象との距離を渡す。 第三引数が大きいと、対象が離れていても視認する。 EntityAILookIdle(EntityLiving p_i1647_1_) きょろきょろするAI。thisを渡す。 targetTasks.addTask(int p_75776_1_, EntityAIBase p_75776_2_) EntityにターゲットAIを追加するメソッド。 第一引数はAIの順位(小さいほうが先に行動される。)、第二引数がAI。 主なAI EntityAINearestAttackableTarget(EntityCreature p_i1663_1_, Class p_i1663_2_, int p_i1663_3_, boolean p_i1663_4_) 特定のEntityをターゲッティングするAI。 第一引数にはthis、第二引数には対象のEntityをクラス型で、第三引数には行動しない確率(0だと攻撃できる場所に入れば必ずターゲッティングされる)、第四引数にはブロックに囲まれていてもターゲッティングするか否かを渡す。 第四引数をtrueにすると、ゾンビのように対象がブロックに囲まれていても、視認できれば攻撃しようとする。 EntityAIHurtByTarget(EntityCreature p_i1660_1_, boolean p_i1660_2_) 攻撃したEntityに反撃するAI。 第一引数にはthis、第二引数には反撃する際周囲の同種のEntityに助けを求めるか否かを渡す。 第二引数をtrueにすると、第一引数のEntityを攻撃したEntityは、第一引数と同種の周囲のEntityにも狙われる。ゾンビやゾンビピッグマンのような行動をする。 EntityLivingBase.getEntityAttribute(IAttribute p_110148_1_).setBaseValue(double p_111128_1_) Entityに対してHPやスピード等の数値を追加するメソッド。 getEntityAttributeに追加する数値の種類、setBaseValueにその値を渡す。 引数一覧 すべてSharedMonsterAttributesのstatic定数である。 定数名 説明 既定値 movementSpeed 移動速度 0.7(ただし、バニラのMOBは基本的に0.25) followRange 追跡距離 32 knockbackResistance ノックバック耐性 0 maxHealth 体力 20 RenderAluminiumCreeper ResourceLocation(String p_i1293_1_) Entityなどでテクスチャを指定する際につかうコンストラクター。 "aluminiummod textures/mobs/aluminium_creeper.png"のように、ファイルと修飾子まで入れる必要がある。 また、テクスチャを実装する場合は、今回のものはモデルをクリーパーのものを流用したため、クリーパーのテクスチャをaluminiummod/mobs/に放り込んでaluminium_creeperと名前を付ければよい。 ItemAluminiumEgg spawnEntityInWorld(Entity p_72838_1_) Entityをワールドにスポーンさせるメソッド。 ただし、setLocationAndAnglesなどで先にスポーン位置を指定する必要がある。 Tips クリーパーに因んでEntityを光らせる方法と爆発を発生させる方法を説明する。 Entityを光らせる 以下のコードを追加する。 @SideOnly(Side.CLIENT) public int getBrightnessForRender(float p_70070_1_) { return 15728880; } public float getBrightness(float p_70013_1_) { return 50.0F; } getBrightnessForRenderが描画側、getBrightnessが計算側に明るさを渡す。数値はこれらが最大値である。 爆発を発生させる 爆発を発生させる方法は二種類ある。どちらもWorldクラスに属する。 createExplosion(Entity entity, double x, double y, double z, float power, boolean destroyBlocks) 引数は発生Entity(このEntityは爆発によるダメージ、処理から除外されることになる)、座標(double三つ)、威力(大体土ブロックでの爆発半径に等しい。威力15以上は何故か正方形状に削れてしまう上範囲がほぼ広がらないため別処理の実装が望ましい。匠CraftのEntityGiantCreeper参照。)、ブロックを破壊するか否か、となっている。 newExplosion(Entity entity, double x, double y, double z, float power, boolean destroyBlocks, boolean spreadFire) 最終引数以外上記と一緒。最終引数は炎を撒き散らすかどうか。ファイアボールのような処理にしか使わない。なお、上のcreateExplosionはこの関数にfalseを渡しているだけである。 また、この二つの関数はExplosion型を返すため、イベントの追加にある爆発のフック処理をこの爆発限定で行うことも出来る。 コメント この項目に関する質問などをどうぞ。 EntityAluminiumCreeperの解説のEntityLivingBase.getEntityAttributeの下にあるmaxHealth|体力|20|がミスってますよ - 名無しさん 2016-02-02 19 49 20 ご指摘ありがとうございます。修正いたしました。 - Tom Kate 2016-02-02 20 28 33 AluminiumModの解説の(Class ? extends Entity entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates)のObject modをthisを使わないで処理しようと思ったら何を入れればいいですか? - west_village 2016-08-08 21 53 19 public static final AluminumMod instance = new AluminumMod();のように、インスタンスを作ってインスタンスを引数に渡してください。 - Tom Kate 2016-08-08 22 37 24 匠Craftの光匠やグロウストーン匠のように、光るMOBを作る方法はありますか?(実際は光っていないのかもしれないのか…?) - あるふぁ 2017-05-30 19 48 05 追記いたします。ご確認ください。 - Tom Kate 2017-06-01 19 39 57 たびたびすみません。プレイヤーなど既存のMOBを光らせる方法はありますか? - あるふぁ 2017-06-01 20 53 42 返信遅くなりまして申し訳ありません。こちらのチュートリアルにTipsとして追記しました。 - Tom Kate 2017-06-07 19 27 42 追記できておりません。Tom氏が多忙のようですので、もうしばらくお時間いただくことになりそうです。申し訳ありません。 - 赤砂蛇凪浜 2017-06-16 18 11 48 名前
https://w.atwiki.jp/pizza_tower/pages/39.html
MODについて Pizza Towerには、有志によって製作された素晴らしきMODがたくさん存在する。その中でも、特に人気でおすすめのMODを紹介していく。なお、すべてのMODにおいて、自己責任・クリア後推奨という前書きが入ることを前提とする。もし起動ができなくなった場合はSteamからファイルの整合性を確認することで元の状態に戻すことができる。 PizzaOvenについて PizzaOvenは、主にGamebananaからのMOD導入に長けたMODマネージャー。サイト上で気になったMODを見つけた時、ワンクリックで導入できるのがウリ。また、このMODマネージャー単体でMODを探すこともできるので、まずはこれをDLすることをおすすめする。リンクはこちら Lap3 MOD 最初期にプレイヤーたちの心をつかんだMOD。タイトル通り、ラップ2だろうともう一度ラップ2ポータルに入ることができる。入ると地獄の3週目、ラップ3が開始してしまう。このラップ3ではピザフェイスタイマーが即座にゼロとなり、全部屋でピザフェイスが追いかけてくるようになる。ただのスピード勝負ではなく、引き付け方やルート取りを徹底しないとクリアするのは困難。 ちなみに有名すぎて、様々なMODに基本機能として搭載されていたりする。参考までに、ここで紹介しているほぼ全てのMODにLap3が同梱されている。 なお、ラップ4やラップ5まで追加してしまいカオスな状態となっているMODもある。PT界隈ではほぼミーム扱い。 Peppina Ramen Over Peppino キャラ変MODでも高い人気を誇る、いわゆる女体化MOD。ペッピーノがかわいい女の子ペッピーナに変化する。 またペッピーノだけでなく、グスタボや全ボスまでもが変化する。SteamのレビュワーにこのMODのためにPTを購入したという人がいたレベルである。...しかしかわいい。ステージ中だけでなく、ランク画面もペッピーナ仕様に変化する。クオリティが段違いである。 様々な挙動で日本人向けのネタが見られるので、じっくりキャラを眺めるのも楽しい。 ちなみにキャラ変MODの一番人気で最古参はイーブイだったりする。 Pizza Tower United ここに来てピザタワーをまさかのオンライン化。全ステージを世界中のプレイヤーと一緒にプレイできる。知らない人が敵を倒してくれたり、アピールでコミュニケーションを取ってみたり、ロビーで遊びまわったり...。 楽しみ方は無限大だが、Discordサーバーに入っていないと使えない機能もいくつかあるので注意。 Community Edition PTUにはCommunity Editionというものが存在する。その名の通り、PTU向けに作られたいくつかのMODを統合してまとめてくれているありがたいMODである。ペッピーナやノイズ、果てはソニックにワリオなど使えるキャラクターが大幅に増え、カスタムレベルもいくつか追加されるので、より遊びやすくなっている。特に理由がないのであればこちらを導入することをお勧めする。 Noise CO-OP PTにローカル2プレイヤーの機能を搭載してくれるMOD。片方がペッピーノ、片方がノイズを操作する。スワップモードと違ってお互いが自由に動けるほか、1Pへのワープ機能やボス戦での二人分のHPなども搭載しているため遊びやすい。が、いくつかの状況ではバグが発生するため、お遊び程度に友達を誘ってやってみるのが吉。開始の仕方がややこしいので説明するとファイルセレクトで下に3回入力すると遊べる。 + ??? Minus8 Toppins 今度はトッピンズが女の子に変貌する。が、ペッピーナよりお色気感が強め。元ネタがアレなので強気に紹介しづらいがこれでもMODランキングでは堂々の首位を獲得していたのである。(厳密には1位がコースエディットMODなのだが) Minus8と検索するのは...おススメしない。 Pizza Tower Repainted Piss Towel 筆者が好きなので個人的に紹介したい。早い話がおふざけMODである。海外の謎ミームでピザタワーを彩った結果がこれである。もちろん下ネタも存分に含んでいる。全体的にステージが見にくいので、初見プレイはまったくもってお勧めできない。そんな人はいないはずだが 走ってようが敵を倒してようがジャンプしようがお構いなしにミーム音が流れ続ける。笑いながらプレイするMODなので、海外ミーム好きにはおススメ。逆に言えば知らないならプレイしなくても全く問題ない。 ちなみにラップ3が付属している。なんでだよ。あといちいちBGMのリミックスがカッコイイのもポイント。
https://w.atwiki.jp/reicrafterserver/pages/15.html
第一回開設時のModについて 前回のはリンク先に残してあるけど、 まぁきっと思い出しながら入れられるよね… と、要望があるまで面倒なので書かないかも
https://w.atwiki.jp/mcmaliael/pages/53.html
最近のバージョンアップによりMOD導入が楽になったZE☆ やり方紹介、ついでにおすすめMODやらも押し付ける 0.とりあえず何も入れない状態で普通に12秒くらい遊ぶ、そして閉じる 1."Forge9.10.0.830" 以降のバージョンをダウンロードし、インストールしてくる 2.新ランチャーから"Forge"を選択し起動、同じく12秒くらい遊ぶ、そして閉(ry 3."Optifine HD なんとか"をダウンロードしてくる 4.おなじみ"./minecraft"フォルダに"mods"フォルダができていると思うのでその中にさっきダウンロードしてきた"Optifine.jar"を突っ込む 5.終わり おすすめMOD一覧、ちなみに全部modsフォルダに突っ込むだけである MinecraftIM おなじみ日本語MOD、会話がしたいのならこれくらい入れてこよう。 Rei's Minimap 地図を表示するMAP、この作者は天才である SpawnChecker 自宅に匠がいた思い出のある方に、モンスターの湧きからスポナーの範囲まで
https://w.atwiki.jp/wotkrs/pages/17.html
パフォーマンス改善系 低スペックパソコンをご使用の貴方に。 Ultra Fog Remove 大気中の浮遊物質を除去してクリーンな視界に。 fps向上が望まれます。PM2.5対策にはなりません。 WOT TWEAKER 戦車の排ガス等が気になる環境意識の高いあなたに。 fpsの向上が望まれます。設定次第では画面も見えやすくなります。 被撃破車両の煙 稼働車両の排気煙 火災発生時の火と煙 木の葉のざわめき 空の雲 などを消し去ることができます。 他のmodとは導入法が違うので、付属のPDFを見ながら導入してください。 Four's FPS and performance modpack FPS改善系modゴチャ混ぜパック。fps向上効果大。 full versionではなく Lite versionがおすすめ。 設置されている物や車両が負担の軽いテクスチャのものに置き換わったりします Lite versionにおけるhellcatの雄姿。ハゲてます。 HELL MINIMAL HANGAR MOD ガレージにも不要なものが多すぎますね、分かります。 ガレージでの諸操作の反応速度が遅すぎる諸兄にこれ。 スポットライトを浴びるのは、一人だけでいい。 上記のリンクが古かった場合は、こちら。
https://w.atwiki.jp/stalker-cop/pages/25.html
mod等の画像
https://w.atwiki.jp/lmpclan/pages/32.html
Garry s Mod とは Half-Life2のサードパーティ(MOD)ゲームです。 普通Modは無料なのですが、Valveの方に評価を与えられ製品化しました。 (Garry s Mod9は無料です) GMOD(Garry sModの省略)はほかのModと違い 特に目標がありません。 基本、"物を出して作る" "Create and Build"です。 初めてという方はまずGMOD9で練習するのがいいでしょう。 そして気に入ればGMOD10を購入! 1月30日現在では 9.95ドル(約1,064円) しかしカードでの購入になります 使用できるカードは MasterCard,Visa,AmericanExpress,Discover,JCB,PayPal,ClickB です。 注意 GMODなどのMOD系は 最低限Half-Life2が必要です GMODだとほかにCounter-strike Source OrangeBoxがあると便利 です。
https://w.atwiki.jp/00ads/pages/13.html
■MOD導入の基本 MODは、World of Tanksをインストールしたフォルダを開くと、いろいろフォルダがあるのですが、 その中の res_mod フォルダ内の最新バージョンと同じ数字のフォルダにMODファイルを格納することで機能します (PC環境によってはMODを適用することによって問題が発生する場合があります。MOD適用は自己責任でお願いします) ■SOUNDとVOICE MOD 通常のMOD適用は格納するだけで適用されるのですが、音声関係のMODの場合、MODファイルだけコピーしても他のサウンドが再生されなくなります。 これを回避するために、インストールしたaudioファイルを、フォルダごとコピーする必要があります。 audioフォルダは、 res フォルダの中にあります。フォルダごとコピーして、res_modフォルダ内の現在のバージョンのフォルダに格納して下さい。 その後、MODファイルを res_mod\audio ファルダに格納すると音声関係MODを適用することができます。
https://w.atwiki.jp/sagyn/pages/35.html
○T10mod3 •仕様 TALONカーネルソースの最新版をSC-02Bで動くようにしたもの KL4用 '12.02.06リリース ext4にも対応していてodinで焼いた後に自動で変換される模様。 superuser,busyboxはマーケットから導入。 zramはsuperuserを導入後から反映 T10を充電周りだけいじったものっぽい? kyapaさんのGalaxy Sフォーラムにアップされています http //galaxy.anddo.net/phpBB3/viewtopic.php?f=2 t=101 sid=14fffd5fcc335a5e24f20c147c296e9c 2種類存在する。 ①ファイルのコメントが「正常に焼けた方専用T10mod3比較用」 TALON標準仕様 1080p再生や720p録画ができないがメモリーが少し増えている(10~20MByte程度?) ②ファイルのコメントが「T10mod3 KL4用」 TALON標準にkyapaさんが手を加えたもの。 1080p再生や720p録画ができるがメモリーが少し減っている •報告など OC MemoryFreakが使えない。 2chでも報告あり。同様にOC反応なし報告あり。 ↑jj1→kl4→t10mod3の順番だと発生する。 jj1→fr→kl4-T10mod1-T10mod3 or JJ1→FR→KL4→KL4rooted→T10mod3の順番に導入で回避可能 もしくは、T10mod1からMemoryFreak,OCを持ってくる ①はメモリーが増えているが、ZRAMなしではデコメは動かない。 「busy box」1.19.3だとMFが動かない事がある? (ここの管理人の端末はは1.19.3でもMF動いてます。) CPU 1.3Ghz ZRAM;160の場合 Quadrant standard(最新版)で2100ぐらい。 ( Quadrantが最近のアップデートで負荷が大きくなっている?CPUベンチに前より時間がかかっています。)
https://w.atwiki.jp/formmate/pages/16.html
ツール解説PPExtractor SB3Utility(中・上級者向けのツールです。) @ふぉーむメイトのセーブデータ編集ツール!!!セーブデータ変更時の注意!!! AHMのあれv3 AHMAssist DatExtract ModMAP追加MOD 情報提供コメント ツール解説 ツールのダウンロードは、ふぉーむメイトうぷろだまで。 パスワードは、「ふぉーむメイト」のくだらない質問はここに書いてね「ふぉーむメイト総合スレッド」などのログをすべて表示して、「パス」や「蓮」で検索の上、周辺の書き込みを調べること。 調べもせずに安易な質問の書き込みは非常に嫌われます。2chと違って、過去ログはすべて読めるので、調べて当然と思っている人が多い板です。特にパスワード関連は、頻出質問なのであなたが質問しなくとも、過去ログに書いてあります。 また、いろいろ質問する前に、圧縮ファイルに含まれているreadme.txtなど、なんとか.txtは読むようにしましょう。それでも解決しない場合は、過去ログを読みましょう。 知らないと恥ずかしい超基本テクニック Ctrl+F:ブラウズしているページ内の検索ツール起動のショートカット動作。IE、FireFox問わず設定されています。別にメニューから起動しても良いんですが。 もちろん、ALL表示してから検索するのを忘れないように。 上記アップローダーの本元のアップローダーのTOPです。 3D(エロ)ゲームうぷろだ PPExtractor @ふぉーむメイト本格的な改造の格となるPPファイルの「展開・同梱」を行うツールです。 ファイル名「upillu2-0267.zip」 ※今回は初めてイリュージョン系列のゲームの改造をする方のために、このPPファイルの概要やPPExtractorの使い方を説明した。 「PPファイルの概要~PPExtractorの使い方」と題しまして、説明したいと思います。 ※「インタラクトプレイVR(IPVR)の中にいる人も大変だよね」の方々にとってはもうお馴染みの@ふぉーむメイト改造初歩の「PPファイルの展開・同梱」という作業ですが、近年3Dエロゲーの最新作が出るにつれて、基本説明が省略されている部分を見かけますので、ここで一つ改造の初歩についてまとめてみました。 ※JS3_Wizzardのようなビジュアルに優しく使いやすいツールなどの登場も待たせていただきましょう。 SB3Utility(中・上級者向けのツールです。) ◆ppファイルから、xxファイルを指定し、テクスチャやオブジェクトを抽出。 ◆改編されたテクスチャやオブジェクトを、xxファイルへ埋め込む。 ◆ファイルのリネームや削除、マテリアルの編集、テクスチャサイズの変更が可能。 ◆xaファイルの編集。 ファイル名「upillu2-0266.rar」 @ふぉーむメイトのセーブデータ編集ツール 作者 312様 @ふぉーむメイトのセーブデータの改変を多岐に編集でき、アイテムなどを含めた 殆どのステータスを編集することが出来ます。お薦めです。 ファイル名「upillu2-0287.zip」 Version履歴 2009年06月06日 各キャラクターのアイテムの使用状況を編集する欄を追加 所持アイテムの個数を変更する欄を追加 2009年06月07日~ver3.0 セーブデータの選択を行いやすくしました。起動時に、インストール先のセーブフォルダを自動で参照するようにしました。フォルダ内のセーブファイルを一覧に表示し、選択しやすくしました。 おぱスラの使用状態がステータス画面にしか反映されないバグを修正しました。ステータス画面と実際の状態を個別に選択できるようにしてあります。312様、報告ありがとうございました。 性癖のチェックを全てOFFにすると強制的に処女になってしまうバグを修正しました。333様、報告ありがとうございました。 !!!セーブデータ変更時の注意!!! 好感度を変更するとゲームが落ちる! @ふぉ~むメイトのゲーム本体は「好感度は深夜の集計時にのみ上下する。それ以外のタイミングでは好感度は変化しない」と言う前提でプログラムされています。 セーブデータにも集計時の好感度に連動したフラグが沢山セーブされています。 その為、セーブデータ改変で好感度を変更した場合、各種の連動フラグと整合性が取れなくなり、好感度を書き変えた女の子が居るマップに移動した瞬間、ゲーム本体がランタイムエラーを発生して強制終了してしまいます。 このランタイムエラーでの強制終了は、全体マップで「休む」を繰り返して深夜の集計の画面を出す事で回避出来ます。 つまり、好感度を変更したら集計画面まで進めなければならないのです。 1日目に好感度と属性を変更するとゲームが落ちる! @ふぉ~むメイトのゲーム本体は「未クリアの場合、1日目は初夜イベントに入る前は全員処女で無属性で好感度は100。2日目以降は全員非処女」と言う前提でプログラムされています(クリアフラグが付いている子は除外します) この前提条件に合わない状態に書き換えると、問答無用でゲーム本体がランタイムエラーを発生して強制終了してしまいます。 好感度と属性を変更したい子にクリアフラグを付ける以外、回避方法はありません。 AHMのあれv3 作者 273様 セーブデータの書き換えを簡易的に簡単に行うことが出来るツールです。「解析・改造」を見てセーブデータのバイナリエディタで直接自分でいじるのが面倒という人や簡単にステータスを操作したい人にもとてもお薦めできます。詳しくは「AHMのあれの使い方」のページを参照してみて下さい。 今後のバージョンアップにも期待せざるを得ませんね。 ファイル名「upillu2-0279.zip」 Version 履歴 2009年06月04日 SとMのパラメータが逆の問題を修正(v2) 2009年06月05日 属性&射精回数の追加(v3) AHMAssist 作者 507様 @ふぉーむメイトのエッチの難易度を「難しすぎる!」という人のためのHの難易度を下げるアシストツールです。 女の子の絶頂ゲージやキャラの感じ度・・・さらにはマウスの速度などが表示されるようになります。 最新版 「upillu2-0336.zip」 Ver.0.9.0.0 「upillu2-0317.zip」Ver.0.8.0.2 ※削除済み 「upillu2-0307.zip」は削除されたようです。 ※削除済み 詳しいAHMAssistの使い方はこちらの「AHMAssistの使い方」のページにて解説させていただきます。 Version 履歴 2009年6月18日:現在の状態の表示 2009年6月17日:オナニー、2人レズでマウスゲージを表示。H時シーンのみゲージ表示。起動時に透過版と安定版と切替可 2009年6月16日:立ちバックでオートピストンしてる時にマウスゲージが反応しないバグを修正、表示スイッチの追加 2009年6月14日 最前面化&フルスクリーン対応版 DatExtract 作者 507様 @ふぉーむメイトのAHM03_00.ppからシナリオスクリプトファイルを抽出するツール。 AHM03_00.ppをPPExtractorで解凍しても、拡張子が.datになった、何か訳の判らないバイナリファイルが抽出されるだけで、ファイルの中を見てガッカリした事もあるだろう。 DatExtractを使えば、ちゃんと普通に読めるテキストファイルになって抽出される。 まだ再梱包が出来ないが、再梱包が可能になればシナリオの改造も可能になるかも知れない。今後に期待。 ※職人様、作成&投稿いただきありがとうございました。 ※提供感謝! Mod Modのダウンロードは上記のうpろだにて、また、Modについての最新情報は「ふぉーむメイト」のくだらない質問はここに書いてねにて、ご覧いただけます。 編集ご協力お願い致します。 MAP追加MOD 編集ご協力お願い致します。 情報提供コメント 「セーブデータ変更時の注意」を追記 -- 名無しさん (2009-06-20 12 23 35) AHMAssist -- 名無しさん (2009-06-21 01 02 38) DatExtractの圧縮と展開が出来るのがアップローダー2に上がってます。シナリオスクリプトの解説書も入ってるらしい -- 名無しさん (2009-06-25 02 27 54) upillu2-0317.zip」Ver.0.8.0.2 -- 名無しさん (2009-09-03 10 39 14) upillu2-0317.zip」Ver.0.8.0.2 -- 名無しさん (2009-09-03 16 49 50) うpろだ、消えてませんか?upillu2-0279.zipが手に入らない・・・ -- 名無しさん (2009-11-30 16 22 18) @ふぉーむメイトのセーブデータ編集ツール -- おいも (2009-12-26 02 07 25) 失敗しました。 -- おいも (2009-12-26 02 08 46) upillu2-0267.zip -- 名無しさん (2010-07-21 00 34 17) うあ -- といも (2010-10-31 10 56 12) 修正 -- 名無しさん (2012-06-24 18 04 11) 情報提供コメント(名前) ツール・Mod情報