Для
Minecraft с
Forge'ем есть
5 способа:
1. С помощью программы
Techne создать модели, но там все шейпы кубической формы создаются,
2. С помощью любого 3D-редакторов, которые могут экспортировать
*.obj файлы, создать модель,
3. С помощью
Tessellator методом
addVertexWithUV или подобной ей есть, создать модель,
4. С помощью
OpenGL, создать модель,
[
add 15.01.2015]
5. С помощью
Json'а или как-то так
[Forge 1.8] [opl's Model Creator] Блок с моделью.
Рендерить с помощью нужных (
точно не знаю как это написать) классов или методов.
1 и
2 нужно имортировать модели,
3 и
4 могут находиться отдельно или внутри рендера.
4 примера у меня нету, да не кто не пользуется.
Как-бы "
GL11.glPushMatrix();" начало рендера для нашего объекта, "
GL11.glPopMatrix();" конец нашего рендера объекта.
Если создаешь блок, то нужно указывать координаты место положения блока, обычно "
GL11.glTranslated(dx, dy, dz);" (
переменные в double значении). У итема не нужно указывать (
они уже указаны в стандартом), но можно добавить для смещения с позиции "
GL11.glTranslatef(fx, fy, fz);" (
переменные в float значении). А так-же повернуть
glRotatef или
glRotated, в случаи
1 и
2 они будут необходимы.
Для импортации *.obj модели нужно подобным образом:
public static final IModelCustom mdl = AdvancedModelLoader.loadModel(new ResourceLocation("mod_id", "obj/model.obj"));
Чтобы отрендерить как блок:
GL11.glPushMatrix();
GL11.glTranslated(dx, dy, dz);
GL11.glRotatef(-90F, 1.0F, 0.0F, 0.0F);
bindTexture(new ResourceLocation("minecraft", "textures/blocks/planks_oak.png"));
mdl.renderAll();
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glRotatef(-90F, 1.0F, 0.0F, 0.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("minecraft", "textures/blocks/planks_oak.png"));
mdl.renderAll();
GL11.glPopMatrix();
Для импортации Techne'ой модели:
private static final ModelClaymoreStick mdl = new ModelClaymoreStick();
ModelClaymoreStick - это класс твоей модели. Рендеришь примерно также, но вместо "
mdl.renderAll();" на это "
model.render();". В классе твоей модели должен быть создан метод
render... Во-общем есть на счёт этого туториал, так как это может быть и создано по своему.
Для
3 и
4, не нужно импортировать, если конечно эта модель у тебя не отдельным классом (про отдельный способ сам должен понять) вставлять
3 или
4 вместо "
mdl.renderAll();" или типа того.
Ну как-то так.