将RGO的java模型换为geo模型

This commit is contained in:
Atsuihsio 2024-07-30 21:32:58 +08:00
parent 824ce66cbf
commit a3549b09db
7 changed files with 556 additions and 128 deletions

View file

@ -1,100 +0,0 @@
package net.mcreator.superbwarfare.client.model.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
@SuppressWarnings("unused")
public class ModelRgoGrenade<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "model_rgo_grenade"), "main");
public final ModelPart group;
public ModelRgoGrenade(ModelPart root) {
this.group = root.getChild("group");
}
public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition group = partdefinition.addOrReplaceChild("group", CubeListBuilder.create(), PartPose.offset(0.0F, -0.0217F, 0.0F));
PartDefinition bone = group.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -3.1416F, 0.0F, 0.0F));
PartDefinition bone5 = bone.addOrReplaceChild("bone5", CubeListBuilder.create().texOffs(24, 25).addBox(-0.5375F, -13.3055F, 17.1856F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 16.0295F, -17.7281F));
PartDefinition bone180_r1 = bone5.addOrReplaceChild("bone180_r1", CubeListBuilder.create().texOffs(25, 25).addBox(-1.2976F, -0.5375F, -0.5375F, 0.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F))
.texOffs(24, 25).addBox(-0.5375F, 0.7024F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0078F, 17.7231F, 0.0F, 0.0F, -0.7854F));
PartDefinition bone179_r1 = bone5.addOrReplaceChild("bone179_r1", CubeListBuilder.create().texOffs(25, 25).addBox(-0.5375F, -0.5375F, -1.2976F, 1.075F, 1.075F, 0.5953F, new CubeDeformation(0.0F))
.texOffs(24, 25).addBox(-0.5375F, 0.7024F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0078F, 17.7231F, 0.7854F, 0.0F, 0.0F));
PartDefinition bone6 = bone.addOrReplaceChild("bone6", CubeListBuilder.create().texOffs(25, 25).addBox(-0.5375F, -15.5554F, 17.1856F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F))
.texOffs(1, 24).addBox(-0.5375F, -15.5554F, 17.1856F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F))
.texOffs(0, 30).addBox(-0.387F, -17.2646F, 17.3361F, 0.774F, 0.4286F, 0.774F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 16.0295F, -17.7281F));
PartDefinition bone181_r1 = bone6.addOrReplaceChild("bone181_r1", CubeListBuilder.create().texOffs(25, 25).addBox(-1.2976F, -0.5375F, -0.5375F, 0.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F))
.texOffs(24, 25).addBox(-0.5375F, -1.2976F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.2578F, 17.7231F, 0.0F, 0.0F, 0.7854F));
PartDefinition bone180_r2 = bone6.addOrReplaceChild("bone180_r2", CubeListBuilder.create().texOffs(25, 25).addBox(-0.5375F, -0.5375F, -1.2976F, 1.075F, 1.075F, 0.5953F, new CubeDeformation(0.0F))
.texOffs(24, 25).addBox(-0.5375F, -1.2976F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.2578F, 17.7231F, -0.7854F, 0.0F, 0.0F));
PartDefinition bone7 = bone.addOrReplaceChild("bone7", CubeListBuilder.create().texOffs(24, 28).addBox(-1.2976F, -14.7953F, 17.1856F, 2.5953F, 1.325F, 1.075F, new CubeDeformation(0.0F))
.texOffs(19, 28).addBox(-0.5375F, -14.7953F, 16.4255F, 1.075F, 1.325F, 2.5953F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 16.0295F, -17.7281F));
PartDefinition bone180_r3 = bone7.addOrReplaceChild("bone180_r3", CubeListBuilder.create().texOffs(19, 24).addBox(-0.5375F, -0.7875F, -1.2976F, 1.075F, 1.325F, 2.5953F, new CubeDeformation(0.0F))
.texOffs(24, 24).addBox(-1.2976F, -0.7875F, -0.5375F, 2.5953F, 1.325F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0078F, 17.7231F, 0.0F, 0.7854F, 0.0F));
PartDefinition group3 = bone.addOrReplaceChild("group3", CubeListBuilder.create().texOffs(0, 30).addBox(-1.337F, -17.1111F, -7.7855F, 0.674F, 1.104F, 0.5686F, new CubeDeformation(0.0F))
.texOffs(0, 30).addBox(-1.337F, -16.0911F, -7.263F, 0.674F, 0.804F, 0.4686F, new CubeDeformation(0.0F))
.texOffs(0, 30).addBox(-1.587F, -15.2871F, -7.463F, 1.174F, 0.5F, 0.6686F, new CubeDeformation(0.0F))
.texOffs(12, 29).addBox(-1.487F, -15.1871F, -6.7944F, 0.974F, 0.3F, 0.0117F, new CubeDeformation(0.0F)), PartPose.offset(1.0F, 15.3733F, 8.1462F));
PartDefinition bone183_r1 = group3.addOrReplaceChild("bone183_r1", CubeListBuilder.create().texOffs(2, 27).addBox(-0.337F, -0.3093F, -0.427F, 0.674F, 0.3186F, 0.254F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -16.4252F, -8.0809F, -0.3927F, 0.0F, 0.0F));
PartDefinition bone182_r1 = group3.addOrReplaceChild("bone182_r1", CubeListBuilder.create().texOffs(0, 30).addBox(-0.337F, -0.427F, -0.3093F, 0.674F, 0.554F, 0.6186F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -16.5982F, -7.9079F, 0.3927F, 0.0F, 0.0F));
PartDefinition bone183_r2 = group3.addOrReplaceChild("bone183_r2", CubeListBuilder.create().texOffs(13, 28).addBox(-0.362F, -0.552F, 0.1843F, 0.724F, 0.1F, 0.1F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -15.5821F, -6.7683F, 0.7854F, 0.0F, 0.0F));
PartDefinition bone182_r2 = group3.addOrReplaceChild("bone182_r2", CubeListBuilder.create().texOffs(0, 30).addBox(-0.337F, -0.617F, 0.3657F, 0.674F, 1.104F, 0.5686F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -16.1835F, -7.844F, 0.3927F, 0.0F, 0.0F));
PartDefinition group4 = bone.addOrReplaceChild("group4", CubeListBuilder.create().texOffs(1, 29).addBox(-0.9343F, -13.817F, -8.392F, 1.8686F, 1.554F, 0.774F, new CubeDeformation(0.0F))
.texOffs(0, 27).addBox(-0.387F, -13.817F, -8.9393F, 0.774F, 1.554F, 1.8686F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 13.1292F, 8.0F));
PartDefinition bone181_r2 = group4.addOrReplaceChild("bone181_r2", CubeListBuilder.create().texOffs(2, 27).addBox(-0.387F, -0.567F, -0.9343F, 0.774F, 1.554F, 1.8686F, new CubeDeformation(0.0F))
.texOffs(0, 29).addBox(-0.9343F, -0.567F, -0.387F, 1.8686F, 1.554F, 0.774F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.25F, -8.005F, 0.0F, 0.7854F, 0.0F));
PartDefinition group5 = bone.addOrReplaceChild("group5", CubeListBuilder.create().texOffs(0, 24).addBox(-0.4218F, -12.5194F, -9.0234F, 0.8437F, 0.2589F, 2.0368F, new CubeDeformation(0.0F))
.texOffs(0, 30).addBox(-1.0184F, -12.5194F, -8.4268F, 2.0368F, 0.2589F, 0.8437F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 13.1292F, 8.0F));
PartDefinition bone184_r1 = group5.addOrReplaceChild("bone184_r1", CubeListBuilder.create().texOffs(0, 30).addBox(-1.0184F, 0.817F, -0.4218F, 2.0368F, 0.2589F, 0.8437F, new CubeDeformation(0.0F))
.texOffs(0, 29).addBox(-0.4218F, 0.817F, -1.0184F, 0.8437F, 0.2589F, 2.0368F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.3364F, -8.005F, 0.0F, 0.7854F, 0.0F));
PartDefinition group6 = bone.addOrReplaceChild("group6", CubeListBuilder.create(), PartPose.offset(0.0F, 12.9492F, 8.0F));
PartDefinition bone179_r2 = group6.addOrReplaceChild("bone179_r2", CubeListBuilder.create().texOffs(0, 30).addBox(-0.387F, -0.9343F, -0.387F, 0.774F, 0.4286F, 0.774F, new CubeDeformation(0.0F))
.texOffs(0, 30).addBox(-0.387F, -0.387F, -0.9343F, 0.774F, 0.774F, 0.4286F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.25F, -8.005F, -0.7854F, 0.0F, 0.0F));
PartDefinition bone180_r4 = group6.addOrReplaceChild("bone180_r4", CubeListBuilder.create().texOffs(0, 30).addBox(-0.387F, -0.9343F, -0.387F, 0.774F, 0.4286F, 0.774F, new CubeDeformation(0.0F))
.texOffs(0, 30).addBox(-0.9343F, -0.387F, -0.387F, 0.4286F, 0.774F, 0.774F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.25F, -8.005F, 0.0F, 0.0F, 0.7854F));
return LayerDefinition.create(meshdefinition, 32, 32);
}
@Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
}
@Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
group.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
}
}

View file

@ -1,40 +1,39 @@
package net.mcreator.superbwarfare.client.renderer.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.superbwarfare.client.model.entity.ModelRgoGrenade;
import net.mcreator.superbwarfare.entity.RgoGrenadeEntity;
import net.mcreator.superbwarfare.entity.model.RgoGrenadeEntityModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class RgoGrenadeRenderer extends EntityRenderer<RgoGrenadeEntity> {
private static final ResourceLocation texture = new ResourceLocation("superbwarfare:textures/entity/rgo_grenade.png");
private final ModelRgoGrenade<RgoGrenadeEntity> model;
public RgoGrenadeRenderer(EntityRendererProvider.Context context) {
super(context);
model = new ModelRgoGrenade<>(context.bakeLayer(ModelRgoGrenade.LAYER_LOCATION));
public class RgoGrenadeRenderer extends GeoEntityRenderer<RgoGrenadeEntity> {
public RgoGrenadeRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new RgoGrenadeEntityModel());
this.shadowRadius = 0.1f;
}
@Override
public void render(RgoGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
public RenderType getRenderType(RgoGrenadeEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@Override
public ResourceLocation getTextureLocation(RgoGrenadeEntity entity) {
return texture;
public void preRender(PoseStack poseStack, RgoGrenadeEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) {
float scale = 1f;
this.scaleHeight = scale;
this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
}
@Override
protected float getDeathMaxRotation(RgoGrenadeEntity entityLivingBaseIn) {
return 0.0F;
}
}

View file

@ -13,6 +13,9 @@ import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent;
@ -31,10 +34,18 @@ import net.minecraft.world.phys.HitResult;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.PlayMessages;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.util.GeckoLibUtil;
public class RgoGrenadeEntity extends ThrowableItemProjectile {
public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEntity, AnimatedEntity{
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING);
private int fuse = 80;
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty";
public RgoGrenadeEntity(EntityType<? extends RgoGrenadeEntity> type, Level world) {
super(type, world);
}
@ -153,4 +164,26 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile {
protected float getGravity() {
return 0.07F;
}
public String getSyncedAnimation() {
return this.entityData.get(ANIMATION);
}
public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation);
}
@Override
public void setAnimationProcedure(String procedure) {
this.animationProcedure = procedure;
}
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
}
@Override
public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache;
}
}

View file

@ -0,0 +1,23 @@
package net.mcreator.superbwarfare.entity.model;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.entity.RgoGrenadeEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel;
public class RgoGrenadeEntityModel extends GeoModel<RgoGrenadeEntity> {
@Override
public ResourceLocation getAnimationResource(RgoGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "animations/rgo_grenade.animation.json");
}
@Override
public ResourceLocation getModelResource(RgoGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "geo/rgo_grenade.geo.json");
}
@Override
public ResourceLocation getTextureResource(RgoGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "textures/item/rgo_grenade.png");
}
}

View file

@ -18,6 +18,5 @@ public class ModModels {
event.registerLayerDefinition(ModelBocekArrow.LAYER_LOCATION, ModelBocekArrow::createBodyLayer);
event.registerLayerDefinition(ModelClaymore.LAYER_LOCATION, ModelClaymore::createBodyLayer);
event.registerLayerDefinition(ModelHandGrenade.LAYER_LOCATION, ModelHandGrenade::createBodyLayer);
event.registerLayerDefinition(ModelRgoGrenade.LAYER_LOCATION, ModelRgoGrenade::createBodyLayer);
}
}

View file

@ -0,0 +1,9 @@
{
"format_version": "1.8.0",
"animations": {
"animation.rgo_grenade.idle": {
"loop": true
}
},
"geckolib_format_version": 2
}

View file

@ -0,0 +1,465 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.rgo_grenade_geo - Converted",
"texture_width": 16,
"texture_height": 16,
"visible_bounds_width": 2,
"visible_bounds_height": 1.5,
"visible_bounds_offset": [0, 0.25, 0]
},
"bones": [
{
"name": "bone",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "bone",
"pivot": [0, 1.81719, 0]
},
{
"name": "bone2",
"parent": "body",
"pivot": [0, 1.30938, -25.72809],
"cubes": [
{
"origin": [-0.5375, 0.01955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"pivot": [0, 1.31719, 0],
"rotation": [45, 0, 0],
"uv": {
"east": {"uv": [10, 9], "uv_size": [1, 0.5]},
"west": {"uv": [10, 10], "uv_size": [1, 0.5]},
"up": {"uv": [8, 1], "uv_size": [1, 1]},
"down": {"uv": [2, 9], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, 0.77969, -1.29764],
"size": [1.075, 1.075, 0.59528],
"pivot": [0, 1.31719, 0],
"rotation": [45, 0, 0],
"uv": {
"north": {"uv": [8, 2], "uv_size": [1, 1]},
"east": {"uv": [0, 11], "uv_size": [0.5, 1]},
"south": {"uv": [3, 8], "uv_size": [1, 1]},
"west": {"uv": [11, 0], "uv_size": [0.5, 1]}
}
},
{
"origin": [-0.5375, 0.01955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"uv": {
"up": {"uv": [8, 3], "uv_size": [1, 1]},
"down": {"uv": [8, 5], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, 0.01955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"pivot": [0, 1.31719, 0],
"rotation": [0, 0, -45],
"uv": {
"north": {"uv": [1, 11], "uv_size": [1, 0.5]},
"south": {"uv": [11, 1], "uv_size": [1, 0.5]},
"up": {"uv": [5, 8], "uv_size": [1, 1]},
"down": {"uv": [8, 6], "uv_size": [1, -1]}
}
},
{
"origin": [-1.29764, 0.77969, -0.5375],
"size": [0.59528, 1.075, 1.075],
"pivot": [0, 1.31719, 0],
"rotation": [0, 0, -45],
"uv": {
"north": {"uv": [2, 11], "uv_size": [0.5, 1]},
"east": {"uv": [6, 8], "uv_size": [1, 1]},
"south": {"uv": [11, 2], "uv_size": [0.5, 1]},
"west": {"uv": [8, 6], "uv_size": [1, 1]}
}
}
]
},
{
"name": "bone3",
"parent": "body",
"pivot": [0, 1.30938, -25.72809],
"cubes": [
{
"origin": [-0.5375, 2.26955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"uv": {
"up": {"uv": [7, 8], "uv_size": [1, 1]},
"down": {"uv": [8, 8], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, 2.26955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"pivot": [0, 1.56719, 0],
"rotation": [-45, 0, 0],
"uv": {
"east": {"uv": [3, 11], "uv_size": [1, 0.5]},
"west": {"uv": [11, 3], "uv_size": [1, 0.5]},
"up": {"uv": [8, 8], "uv_size": [1, 1]},
"down": {"uv": [9, 1], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, 1.02969, -1.29764],
"size": [1.075, 1.075, 0.59528],
"pivot": [0, 1.56719, 0],
"rotation": [-45, 0, 0],
"uv": {
"north": {"uv": [1, 9], "uv_size": [1, 1]},
"east": {"uv": [4, 11], "uv_size": [0.5, 1]},
"south": {"uv": [9, 1], "uv_size": [1, 1]},
"west": {"uv": [11, 4], "uv_size": [0.5, 1]}
}
},
{
"origin": [-0.5375, 2.26955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"uv": {
"up": {"uv": [2, 9], "uv_size": [1, 1]},
"down": {"uv": [9, 3], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, 2.26955, -0.5375],
"size": [1.075, 0.59528, 1.075],
"pivot": [0, 1.56719, 0],
"rotation": [0, 0, 45],
"uv": {
"north": {"uv": [5, 11], "uv_size": [1, 0.5]},
"south": {"uv": [11, 5], "uv_size": [1, 0.5]},
"up": {"uv": [3, 9], "uv_size": [1, 1]},
"down": {"uv": [9, 4], "uv_size": [1, -1]}
}
},
{
"origin": [-1.29764, 1.02969, -0.5375],
"size": [0.59528, 1.075, 1.075],
"pivot": [0, 1.56719, 0],
"rotation": [0, 0, 45],
"uv": {
"north": {"uv": [6, 11], "uv_size": [0.5, 1]},
"east": {"uv": [4, 9], "uv_size": [1, 1]},
"south": {"uv": [11, 6], "uv_size": [0.5, 1]},
"west": {"uv": [9, 4], "uv_size": [1, 1]}
}
},
{
"origin": [-0.387, 4.14539, -0.387],
"size": [0.774, 0.4286, 0.774],
"uv": {
"up": {"uv": [10, 0], "uv_size": [0.75, 0.75]},
"down": {"uv": [10, 1.75], "uv_size": [0.75, -0.75]}
}
}
]
},
{
"name": "bone175",
"parent": "body",
"pivot": [0, 1.30938, -25.72809],
"cubes": [
{
"origin": [-1.29764, 0.77969, -0.5375],
"size": [2.59528, 1.325, 1.075],
"uv": {
"east": {"uv": [4, 5], "uv_size": [1, 1.25]},
"west": {"uv": [5, 4], "uv_size": [1, 1.25]}
}
},
{
"origin": [-1.29764, 0.77969, -0.5375],
"size": [2.59528, 1.325, 1.075],
"pivot": [0, 1.31719, 0],
"rotation": [0, 45, 0],
"uv": {
"east": {"uv": [0, 6], "uv_size": [1, 1.25]},
"west": {"uv": [1, 6], "uv_size": [1, 1.25]},
"up": {"uv": [0, 0], "uv_size": [2.5, 1]},
"down": {"uv": [0, 2], "uv_size": [2.5, -1]}
}
},
{
"origin": [-0.5375, 0.77969, -1.29764],
"size": [1.075, 1.325, 2.59528],
"uv": {
"north": {"uv": [2, 6], "uv_size": [1, 1.25]},
"south": {"uv": [6, 2], "uv_size": [1, 1.25]},
"down": {"uv": [0, 4.5], "uv_size": [1, -2.5]}
}
},
{
"origin": [-0.5375, 0.77969, -1.29764],
"size": [1.075, 1.325, 2.59528],
"pivot": [0, 1.31719, 0],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [3, 6], "uv_size": [1, 1.25]},
"south": {"uv": [6, 4], "uv_size": [1, 1.25]},
"up": {"uv": [1, 2], "uv_size": [1, 2.5]},
"down": {"uv": [2, 4.5], "uv_size": [1, -2.5]}
}
}
]
},
{
"name": "group3",
"parent": "body",
"pivot": [1, 1.96562, 0.14623],
"cubes": [
{
"origin": [-0.337, 3.97269, 0.3657],
"size": [0.674, 1.104, 0.5686],
"uv": {
"east": {"uv": [7, 11], "uv_size": [0.5, 1]},
"west": {"uv": [11, 7], "uv_size": [0.5, 1]},
"up": {"uv": [10, 11], "uv_size": [0.75, 0.5]}
}
},
{
"origin": [-0.337, 3.66211, 0.67293],
"size": [0.674, 1.104, 0.56861],
"pivot": [0, 4.14911, 0.30724],
"rotation": [22.5, 0, 0],
"uv": {
"east": {"uv": [8, 11], "uv_size": [0.5, 1]},
"south": {"uv": [9, 6], "uv_size": [0.75, 1]},
"west": {"uv": [11, 8], "uv_size": [0.5, 1]},
"up": {"uv": [11, 10], "uv_size": [0.75, 0.5]}
}
},
{
"origin": [-0.362, 3.99976, 1.56718],
"size": [0.724, 0.1, 0.1],
"pivot": [0, 3.54776, 1.38288],
"rotation": [45, 0, 0],
"uv": {
"north": {"uv": [13, 2], "uv_size": [0.75, 0.25]},
"east": {"uv": [14, 12], "uv_size": [0.25, 0.25]},
"south": {"uv": [3, 13], "uv_size": [0.75, 0.25]},
"west": {"uv": [13, 14], "uv_size": [0.25, 0.25]},
"up": {"uv": [13, 3], "uv_size": [0.75, 0.25]},
"down": {"uv": [4, 13.25], "uv_size": [0.75, -0.25]}
}
},
{
"origin": [-0.337, 3.25273, 0.88818],
"size": [0.674, 0.804, 0.4686],
"uv": {
"east": {"uv": [11, 11], "uv_size": [0.5, 0.75]},
"south": {"uv": [2, 10], "uv_size": [0.75, 0.75]},
"west": {"uv": [0, 12], "uv_size": [0.5, 0.75]},
"up": {"uv": [12, 0], "uv_size": [0.75, 0.5]}
}
},
{
"origin": [-0.587, 2.75273, 0.68818],
"size": [1.174, 0.5, 0.6686],
"uv": {
"east": {"uv": [1, 12], "uv_size": [0.75, 0.5]},
"south": {"uv": [0, 10], "uv_size": [1.25, 0.5]},
"west": {"uv": [12, 1], "uv_size": [0.75, 0.5]},
"up": {"uv": [5, 9], "uv_size": [1.25, 0.75]},
"down": {"uv": [9, 5.75], "uv_size": [1.25, -0.75]}
}
},
{
"origin": [-0.487, 2.85273, 1.35678],
"size": [0.974, 0.3, 0.01172],
"uv": {
"east": {"uv": [9, 15], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 13], "uv_size": [1, 0.25]},
"west": {"uv": [15, 9], "uv_size": [0.25, 0.25]},
"up": {"uv": [13, 0], "uv_size": [1, 0.25]},
"down": {"uv": [1, 13.25], "uv_size": [1, -0.25]}
}
},
{
"origin": [-0.337, 4.43683, -0.06595],
"size": [0.674, 0.554, 0.6186],
"pivot": [0, 4.56383, 0.24335],
"rotation": [22.5, 0, 0],
"uv": {
"north": {"uv": [2, 12], "uv_size": [0.75, 0.5]},
"east": {"uv": [13, 1], "uv_size": [0.5, 0.5]},
"west": {"uv": [2, 13], "uv_size": [0.5, 0.5]},
"up": {"uv": [12, 2], "uv_size": [0.75, 0.5]}
}
},
{
"origin": [-0.337, 4.3815, -0.35668],
"size": [0.674, 0.3186, 0.254],
"pivot": [0, 4.3908, 0.07032],
"rotation": [-22.5, 0, 0],
"uv": {
"north": {"uv": [12, 13], "uv_size": [0.75, 0.25]},
"east": {"uv": [10, 15], "uv_size": [0.25, 0.25]},
"west": {"uv": [15, 10], "uv_size": [0.25, 0.25]},
"down": {"uv": [13, 12.25], "uv_size": [0.75, -0.25]}
}
}
]
},
{
"name": "group4",
"parent": "body",
"pivot": [0, 4.20969, 0],
"cubes": [
{
"origin": [-0.9343, 2.47269, -0.387],
"size": [1.8686, 1.554, 0.774],
"uv": {
"east": {"uv": [5, 6], "uv_size": [0.75, 1.5]},
"west": {"uv": [6, 6], "uv_size": [0.75, 1.5]}
}
},
{
"origin": [-0.9343, 2.47269, -0.387],
"size": [1.8686, 1.554, 0.774],
"pivot": [0, 3.45969, 0],
"rotation": [0, 45, 0],
"uv": {
"east": {"uv": [7, 0], "uv_size": [0.75, 1.5]},
"west": {"uv": [7, 2], "uv_size": [0.75, 1.5]},
"up": {"uv": [2, 5], "uv_size": [1.75, 0.75]}
}
},
{
"origin": [-0.387, 2.47269, -0.9343],
"size": [0.774, 1.554, 1.8686],
"uv": {
"north": {"uv": [4, 7], "uv_size": [0.75, 1.5]},
"south": {"uv": [7, 4], "uv_size": [0.75, 1.5]}
}
},
{
"origin": [-0.387, 2.47269, -0.9343],
"size": [0.774, 1.554, 1.8686],
"pivot": [0, 3.45969, 0],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [7, 6], "uv_size": [0.75, 1.5]},
"south": {"uv": [0, 8], "uv_size": [0.75, 1.5]},
"up": {"uv": [5, 2], "uv_size": [0.75, 1.75]}
}
}
]
},
{
"name": "group5",
"parent": "body",
"pivot": [0, 4.20969, 0],
"cubes": [
{
"origin": [-0.42183, 2.47026, -1.01839],
"size": [0.84366, 0.25886, 2.03678],
"uv": {
"north": {"uv": [13, 13], "uv_size": [0.75, 0.25]},
"south": {"uv": [0, 14], "uv_size": [0.75, 0.25]},
"up": {"uv": [3, 0], "uv_size": [0.75, 2]},
"down": {"uv": [3, 4], "uv_size": [0.75, -2]}
}
},
{
"origin": [-0.42183, 2.47026, -1.01839],
"size": [0.84366, 0.25886, 2.03678],
"pivot": [0, 3.54609, 0],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [14, 0], "uv_size": [0.75, 0.25]},
"south": {"uv": [1, 14], "uv_size": [0.75, 0.25]},
"up": {"uv": [4, 0], "uv_size": [0.75, 2]},
"down": {"uv": [4, 4], "uv_size": [0.75, -2]}
}
},
{
"origin": [-1.01839, 2.47026, -0.42183],
"size": [2.03678, 0.25886, 0.84366],
"uv": {
"east": {"uv": [14, 1], "uv_size": [0.75, 0.25]},
"west": {"uv": [2, 14], "uv_size": [0.75, 0.25]},
"up": {"uv": [3, 4], "uv_size": [2, 0.75]},
"down": {"uv": [0, 5.75], "uv_size": [2, -0.75]}
}
},
{
"origin": [-1.01839, 2.47026, -0.42183],
"size": [2.03678, 0.25886, 0.84366],
"pivot": [0, 3.54609, 0],
"rotation": [0, 45, 0],
"uv": {
"east": {"uv": [14, 2], "uv_size": [0.75, 0.25]},
"west": {"uv": [3, 14], "uv_size": [0.75, 0.25]},
"up": {"uv": [5, 0], "uv_size": [2, 0.75]},
"down": {"uv": [5, 1.75], "uv_size": [2, -0.75]}
}
}
]
},
{
"name": "group",
"parent": "body",
"pivot": [0, 4.38969, 0],
"cubes": [
{
"origin": [-0.9343, 3.25269, -0.387],
"size": [0.4286, 0.774, 0.774],
"pivot": [0, 3.63969, 0],
"rotation": [0, 0, 45],
"uv": {
"north": {"uv": [3, 12], "uv_size": [0.5, 0.75]},
"east": {"uv": [10, 2], "uv_size": [0.75, 0.75]},
"south": {"uv": [12, 3], "uv_size": [0.5, 0.75]},
"west": {"uv": [3, 10], "uv_size": [0.75, 0.75]}
}
},
{
"origin": [-0.387, 4.14539, -0.387],
"size": [0.774, 0.4286, 0.774],
"pivot": [0, 3.63969, 0],
"rotation": [0, 0, 45],
"uv": {
"north": {"uv": [4, 12], "uv_size": [0.75, 0.5]},
"south": {"uv": [12, 4], "uv_size": [0.75, 0.5]},
"up": {"uv": [10, 4], "uv_size": [0.75, 0.75]},
"down": {"uv": [5, 10.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [-0.387, 3.25269, -0.9343],
"size": [0.774, 0.774, 0.4286],
"pivot": [0, 3.63969, 0],
"rotation": [-45, 0, 0],
"uv": {
"north": {"uv": [6, 10], "uv_size": [0.75, 0.75]},
"east": {"uv": [5, 12], "uv_size": [0.5, 0.75]},
"south": {"uv": [10, 6], "uv_size": [0.75, 0.75]},
"west": {"uv": [12, 5], "uv_size": [0.5, 0.75]}
}
},
{
"origin": [-0.387, 4.14539, -0.387],
"size": [0.774, 0.4286, 0.774],
"pivot": [0, 3.63969, 0],
"rotation": [-45, 0, 0],
"uv": {
"east": {"uv": [6, 12], "uv_size": [0.75, 0.5]},
"west": {"uv": [12, 6], "uv_size": [0.75, 0.5]},
"up": {"uv": [10, 7], "uv_size": [0.75, 0.75]},
"down": {"uv": [10, 8.75], "uv_size": [0.75, -0.75]}
}
}
]
}
]
}
]
}