Вверх ↑
Ответов: 4557
#1: 2015-01-02 17:36:33 ЛС | профиль | цитата
Все мобы и блоки из Minecraft имеют 3D модель, которая создается в 3D редакторе. Одна из таких программ - Techne.
Techne представляет из себя небольшой 3D редактор для создания объёмных моделей для игры. Это может быть блок, моб, предмет, украшение и т.д.

Сегодня мы научимся создавать 3D модели на примере лестницы.
Открываем программу. Заходим в File -› New project. Указываем название и класс модели, а также размер текстуры.


ModelBase - стандартная модель (обычные кубы).
ModelBiped - конус, сфера, треугольник, пирамида.
После создания файла создаем блок.


Появляется куб


Далее что хотим, то и делаем с ним, однако наша задача - лестница.


Готово. Заходим в File -› Export As -› Java и сохраняем. Готово.
На выходе получаем код

package net.minecraft.src;

public class Modelladder extends ModelBase
{
  //fields
    ModelRenderer Shape1;
    ModelRenderer Shape2;
    ModelRenderer Shape3;
    ModelRenderer Shape4;
    ModelRenderer Shape5;
    ModelRenderer Shape6;
  
  public Modelladder()
  {
    textureWidth = 32;
    textureHeight = 32;
    
      Shape1 = new ModelRenderer(this, 0, 0);
      Shape1.addBox(0F, 0F, 0F, 2, 16, 2);
      Shape1.setRotationPoint(-8F, 8F, 5F);
      Shape1.setTextureSize(32, 32);
      Shape1.mirror = true;
      setRotation(Shape1, 0F, 0F, 0F);
      Shape2 = new ModelRenderer(this, 0, 0);
      Shape2.addBox(0F, 0F, 0F, 2, 16, 2);
      Shape2.setRotationPoint(-8F, 8F, -7F);
      Shape2.setTextureSize(32, 32);
      Shape2.mirror = true;
      setRotation(Shape2, 0F, 0F, 0F);
      Shape3 = new ModelRenderer(this, 0, 0);
      Shape3.addBox(0F, 0F, 0F, 1, 2, 16);
      Shape3.setRotationPoint(-8F, 9F, -8F);
      Shape3.setTextureSize(32, 32);
      Shape3.mirror = true;
      setRotation(Shape3, 0F, 0F, 0F);
      Shape4 = new ModelRenderer(this, 0, 0);
      Shape4.addBox(0F, 0F, 0F, 1, 2, 16);
      Shape4.setRotationPoint(-8F, 13F, -8F);
      Shape4.setTextureSize(32, 32);
      Shape4.mirror = true;
      setRotation(Shape4, 0F, 0F, 0F);
      Shape5 = new ModelRenderer(this, 0, 0);
      Shape5.addBox(0F, 0F, 0F, 1, 2, 16);
      Shape5.setRotationPoint(-8F, 17F, -8F);
      Shape5.setTextureSize(32, 32);
      Shape5.mirror = true;
      setRotation(Shape5, 0F, 0F, 0F);
      Shape6 = new ModelRenderer(this, 0, 0);
      Shape6.addBox(0F, 0F, 0F, 1, 2, 16);
      Shape6.setRotationPoint(-8F, 21F, -8F);
      Shape6.setTextureSize(32, 32);
      Shape6.mirror = true;
      setRotation(Shape6, 0F, 0F, 0F);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5);
    Shape1.render(f5);
    Shape2.render(f5);
    Shape3.render(f5);
    Shape4.render(f5);
    Shape5.render(f5);
    Shape6.render(f5);
  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.setRotationAngles(f, f1, f2, f3, f4, f5);
  }

}



Теперь мы легко можем вставить нашу модель в игру:




Информация о том, как вставить Techne модель в игру будет в одной из будущих статей
карма: 6
7
Голосовали:Bro_DyaGa, HardFarm, OTBETCTBEHHblN, Lykf, Burs, Kiss_Ash, Garrix