9999999999999
BLOCKBENCH怎么做动态模型 JAVA 1.12

雾杉
也许你可以看看这个有没有帮助qwqhttps://www.bilibili.com/video/av425510170/

张千秋
康康这个https://www.bilibili.com/video/av472781926/

weibokai
以下是一个简单的示例代码,显示如何在BLOCKBENCH中创建动态模型:

java
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class CustomModel extends ModelBase {
       
        private ModelRenderer head;
        private ModelRenderer body;
        private ModelRenderer armLeft;
        private ModelRenderer armRight;

        public CustomModel() {
                textureWidth = 64;
                textureHeight = 32;
               
                head = new ModelRenderer(this, 0, 0);
                head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F);
                head.setRotationPoint(0.0F, 0.0F, 0.0F);
               
                body = new ModelRenderer(this, 16, 16);
                body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F);
                body.setRotationPoint(0.0F, 0.0F, 0.0F);
               
                armLeft = new ModelRenderer(this, 40, 16);
                armLeft.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F);
                armLeft.setRotationPoint(5.0F, 2.0F, 0.0F);
               
                armRight = new ModelRenderer(this, 40, 16);
                armRight.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F);
                armRight.setRotationPoint(-5.0F, 2.0F, 0.0F);
        }
       
        public void render(Entity entity, float time, float speed, float rotationAngleX, float rotationAngleY, float rotationAngleZ, float scale) {
                super.render(entity, time, speed, rotationAngleX, rotationAngleY, rotationAngleZ, scale);
               
                setRotationAngles(time, speed, rotationAngleX, rotationAngleY, rotationAngleZ, scale, entity);
               
                head.render(scale);
                body.render(scale);
                armLeft.render(scale);
                armRight.render(scale);
        }
       
        private void setRotation(ModelRenderer model, float x, float y, float z) {
                model.rotateAngleX = x;
                model.rotateAngleY = y;
                model.rotateAngleZ = z;
        }
       
        public void setRotationAngles(float time, float speed, float rotationAngleX, float rotationAngleY, float rotationAngleZ, float scale, Entity entity) {
                float swingAmount = 0.6f;
                float swingSpeed = 1.0f;
               
                armLeft.rotateAngleX = (float)Math.sin(time * swingSpeed) * swingAmount * speed;
                armRight.rotateAngleX = (float)Math.cos(time * swingSpeed) * swingAmount * speed;
        }
}

创建了一个CustomModel类来定义的模型。模型包括头、身体和两个胳膊部件。使用ModelRenderer类来创建每个部件,并设置其大小、位置和旋转角度。

在CustomModel类中,定义了一个render()方法和一个setRotationAngles()方法。render()方法负责将模型渲染到屏幕上,并根据给定的参数设置每个部件的位置和角度。setRotationAngles()方法用于更改模型的角度和位置,以使其能够动态地变化

第一页 上一页 下一页 最后一页