优化激光效果,添加激光长度方法
This commit is contained in:
parent
562f24c3dd
commit
f80a7325b2
9 changed files with 549 additions and 12 deletions
|
@ -0,0 +1,29 @@
|
|||
package com.atsuishio.superbwarfare.client.layer;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.client.ModRenderTypes;
|
||||
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class AnnihilatorGlowLayer extends GeoRenderLayer<AnnihilatorEntity> {
|
||||
|
||||
private static final ResourceLocation LAYER = ModUtils.loc("textures/entity/annihilator_glow_e.png");
|
||||
|
||||
public AnnihilatorGlowLayer(GeoRenderer<AnnihilatorEntity> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, AnnihilatorEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = ModRenderTypes.LASER.apply(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
|
@ -22,7 +22,7 @@ public class AnnihilatorLayer extends GeoRenderLayer<AnnihilatorEntity> {
|
|||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, AnnihilatorEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.energySwirl(LAYER,1,1);
|
||||
RenderType glowRenderType = RenderType.energySwirl(LAYER, 1, 1);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,8 @@ import software.bernie.geckolib.core.animation.AnimationState;
|
|||
import software.bernie.geckolib.model.GeoModel;
|
||||
import software.bernie.geckolib.model.data.EntityModelData;
|
||||
|
||||
import static com.atsuishio.superbwarfare.entity.AnnihilatorEntity.*;
|
||||
|
||||
public class AnnihilatorModel extends GeoModel<AnnihilatorEntity> {
|
||||
|
||||
@Override
|
||||
|
@ -50,12 +52,12 @@ public class AnnihilatorModel extends GeoModel<AnnihilatorEntity> {
|
|||
EntityModelData entityData = animationState.getData(DataTickets.ENTITY_MODEL_DATA);
|
||||
bone.setRotX((entityData.headPitch()) * Mth.DEG_TO_RAD);
|
||||
|
||||
CoreGeoBone laser1 = getAnimationProcessor().getBone("laser1");
|
||||
CoreGeoBone laser2 = getAnimationProcessor().getBone("laser2");
|
||||
CoreGeoBone laser3 = getAnimationProcessor().getBone("laser3");
|
||||
CoreGeoBone laserLeft = getAnimationProcessor().getBone("laser1");
|
||||
CoreGeoBone laserMiddle = getAnimationProcessor().getBone("laser2");
|
||||
CoreGeoBone laserRight = getAnimationProcessor().getBone("laser3");
|
||||
|
||||
laser1.setScaleZ(512);
|
||||
laser2.setScaleZ(512);
|
||||
laser3.setScaleZ(512);
|
||||
laserLeft.setScaleZ(animatable.getEntityData().get(LASER_LEFT_LENGTH) + 0.5f);
|
||||
laserMiddle.setScaleZ(animatable.getEntityData().get(LASER_MIDDLE_LENGTH) + 0.5f);
|
||||
laserRight.setScaleZ(animatable.getEntityData().get(LASER_RIGHT_LENGTH) + 0.5f);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.atsuishio.superbwarfare.client.renderer.entity;
|
||||
|
||||
import com.atsuishio.superbwarfare.client.layer.AnnihilatorGlowLayer;
|
||||
import com.atsuishio.superbwarfare.client.layer.AnnihilatorLayer;
|
||||
import com.atsuishio.superbwarfare.client.model.entity.AnnihilatorModel;
|
||||
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
|
||||
|
@ -18,9 +19,9 @@ public class AnnihilatorRenderer extends GeoEntityRenderer<AnnihilatorEntity> {
|
|||
|
||||
public AnnihilatorRenderer(EntityRendererProvider.Context renderManager) {
|
||||
super(renderManager, new AnnihilatorModel());
|
||||
this.shadowRadius = 2f;
|
||||
this.shadowRadius = 7.5f;
|
||||
this.addRenderLayer(new AnnihilatorLayer(this));
|
||||
// this.addRenderLayer(new Mk42DamageLayer(this));
|
||||
this.addRenderLayer(new AnnihilatorGlowLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.client.screens;
|
|||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.client.RenderHelper;
|
||||
import com.atsuishio.superbwarfare.config.server.CannonConfig;
|
||||
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
|
||||
import com.atsuishio.superbwarfare.entity.ICannonEntity;
|
||||
import com.atsuishio.superbwarfare.entity.Mk42Entity;
|
||||
import com.atsuishio.superbwarfare.entity.Mle1934Entity;
|
||||
|
@ -120,6 +121,11 @@ public class CannonHudOverlay {
|
|||
maxHealth = CannonConfig.MLE1934_HP.get();
|
||||
}
|
||||
|
||||
if (cannon instanceof AnnihilatorEntity) {
|
||||
health = cannon.getEntityData().get(AnnihilatorEntity.HEALTH);
|
||||
maxHealth = CannonConfig.ANNIHILATOR_HP.get();
|
||||
}
|
||||
|
||||
GuiGraphics guiGraphics = event.getGuiGraphics();
|
||||
guiGraphics.pose().pushPose();
|
||||
guiGraphics.blit(ARMOR, w - 96, h - 14, 0, 0, 12, 12, 12, 12);
|
||||
|
|
|
@ -31,6 +31,7 @@ import net.minecraft.world.entity.*;
|
|||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.entity.projectile.ThrownPotion;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.ClipContext;
|
||||
import net.minecraft.world.level.Explosion;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
@ -51,6 +52,9 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
public static final EntityDataAccessor<Integer> COOL_DOWN = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.INT);
|
||||
public static final EntityDataAccessor<Integer> TYPE = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.INT);
|
||||
public static final EntityDataAccessor<Float> HEALTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
public static final EntityDataAccessor<Float> LASER_LEFT_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
public static final EntityDataAccessor<Float> LASER_MIDDLE_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
public static final EntityDataAccessor<Float> LASER_RIGHT_LENGTH= SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public static final float MAX_HEALTH = CannonConfig.ANNIHILATOR_HP.get();
|
||||
|
@ -73,6 +77,9 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
this.entityData.define(COOL_DOWN, 0);
|
||||
this.entityData.define(TYPE, 0);
|
||||
this.entityData.define(HEALTH, MAX_HEALTH);
|
||||
this.entityData.define(LASER_LEFT_LENGTH, 0f);
|
||||
this.entityData.define(LASER_MIDDLE_LENGTH, 0f);
|
||||
this.entityData.define(LASER_RIGHT_LENGTH, 0f);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -80,6 +87,9 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
compound.putInt("CoolDown", this.entityData.get(COOL_DOWN));
|
||||
compound.putInt("Type", this.entityData.get(TYPE));
|
||||
compound.putFloat("Health", this.entityData.get(HEALTH));
|
||||
compound.putFloat("LaserLeftLength", this.entityData.get(LASER_LEFT_LENGTH));
|
||||
compound.putFloat("LaserMiddleLength", this.entityData.get(LASER_MIDDLE_LENGTH));
|
||||
compound.putFloat("LaserRightLength", this.entityData.get(LASER_RIGHT_LENGTH));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -91,6 +101,9 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
} else {
|
||||
this.entityData.set(HEALTH, MAX_HEALTH);
|
||||
}
|
||||
this.entityData.set(LASER_LEFT_LENGTH, compound.getFloat("LaserLeftLength"));
|
||||
this.entityData.set(LASER_MIDDLE_LENGTH, compound.getFloat("LaserMiddleLength"));
|
||||
this.entityData.set(LASER_RIGHT_LENGTH, compound.getFloat("LaserRightLength"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -153,7 +166,7 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
}
|
||||
|
||||
this.level().playSound(null, this.getOnPos(), ModSounds.HIT.get(), SoundSource.PLAYERS, 1, 1);
|
||||
this.entityData.set(HEALTH, this.entityData.get(HEALTH) - 0.5f * Math.max(amount - 150, 0));
|
||||
this.entityData.set(HEALTH, this.entityData.get(HEALTH) - 0.5f * Math.max(amount - 40, 0));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -248,10 +261,49 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
destroy();
|
||||
}
|
||||
|
||||
float yRot = this.getYRot();
|
||||
if (yRot < 0) {
|
||||
yRot += 360;
|
||||
}
|
||||
yRot = yRot + 90 % 360;
|
||||
|
||||
var BarrelRoot = new Vector3d(4.95, 2.25, 0);
|
||||
BarrelRoot.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
Vec3 BarrelRootPos = new Vec3(this.getX() + BarrelRoot.x, this.getY() + BarrelRoot.y, this.getZ() + BarrelRoot.z);
|
||||
|
||||
var leftPos = new Vector3d(16, 0, -2.703125);
|
||||
leftPos.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
leftPos.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
Vec3 BarrelLeftPos = new Vec3(BarrelRootPos.x + leftPos.x, BarrelRootPos.y + leftPos.y, BarrelRootPos.z + leftPos.z);
|
||||
|
||||
var middlePos = new Vector3d(16, 0, 0);
|
||||
middlePos.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
middlePos.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
Vec3 BarrelMiddlePos = new Vec3(BarrelRootPos.x + middlePos.x, BarrelRootPos.y + middlePos.y, BarrelRootPos.z + middlePos.z);
|
||||
|
||||
var rightPos = new Vector3d(16, 0, 2.703125);
|
||||
rightPos.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
rightPos.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
Vec3 BarrelRightPos = new Vec3(BarrelRootPos.x + rightPos.x, BarrelRootPos.y + rightPos.y, BarrelRootPos.z + rightPos.z);
|
||||
|
||||
this.entityData.set(LASER_LEFT_LENGTH, laserLength(BarrelLeftPos ,this));
|
||||
this.entityData.set(LASER_MIDDLE_LENGTH, laserLength(BarrelMiddlePos ,this));
|
||||
this.entityData.set(LASER_RIGHT_LENGTH, laserLength(BarrelRightPos ,this));
|
||||
|
||||
travel();
|
||||
this.refreshDimensions();
|
||||
}
|
||||
|
||||
private float laserLength (Vec3 pos, Entity cannon) {
|
||||
return (float) pos.distanceTo((Vec3.atLowerCornerOf(cannon.level().clip(
|
||||
new ClipContext(pos, pos.add(cannon.getViewVector(1).scale(512)),
|
||||
ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, cannon)).getBlockPos())));
|
||||
}
|
||||
|
||||
private void destroy() {
|
||||
CustomExplosion explosion = new CustomExplosion(this.level(), this,
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this), 140f,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"identifier": "geometry.annihilator",
|
||||
"texture_width": 128,
|
||||
"texture_height": 128,
|
||||
"visible_bounds_width": 43,
|
||||
"visible_bounds_width": 45,
|
||||
"visible_bounds_height": 7.5,
|
||||
"visible_bounds_offset": [0, 3.25, 0]
|
||||
},
|
||||
|
@ -23,7 +23,7 @@
|
|||
{
|
||||
"name": "PaoGuan",
|
||||
"parent": "main",
|
||||
"pivot": [0, 30, -66],
|
||||
"pivot": [0, 36, -79.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-50.4, 34.56, -80.64],
|
||||
|
@ -42,6 +42,453 @@
|
|||
"parent": "PaoGuan",
|
||||
"pivot": [43.25, 36.0004, -275]
|
||||
},
|
||||
{
|
||||
"name": "bone5",
|
||||
"parent": "laser",
|
||||
"pivot": [43.25, 35.2538, -330.9],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [7.25, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [43.25, 35.2538, -330.9],
|
||||
"rotation": [90, 0, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [115.75, 127.5], "uv_size": [-46, -46]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [7.25, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [43.25, 35.2538, -330.9],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [115.75, 127.5], "uv_size": [-46, -46]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [7.25, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [43.25, 35.2538, -330.9],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [115.75, 127.5], "uv_size": [-46, -46]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone7",
|
||||
"parent": "bone5",
|
||||
"pivot": [45.759, 35.33301, -305.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [17.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 37.877, -305.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 32.624, -305.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [19.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [45.759, 35.25051, -305.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [14.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [40.671, 35.2505, -305.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [14.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [40.671, 35.2505, -305.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 37.877, -305.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 32.624, -305.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [19.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [45.759, 35.25051, -305.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [14.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [40.671, 35.2505, -305.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 37.877, -305.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 32.624, -305.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [19.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [45.759, 35.25051, -305.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone8",
|
||||
"parent": "laser",
|
||||
"pivot": [-43.25, 35.2538, -330.9],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-79.25, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [-43.25, 35.2538, -330.9],
|
||||
"rotation": [90, 0, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 127.5], "uv_size": [46, -46]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.25, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [-43.25, 35.2538, -330.9],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 127.5], "uv_size": [46, -46]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.25, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [-43.25, 35.2538, -330.9],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 127.5], "uv_size": [46, -46]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone9",
|
||||
"parent": "bone8",
|
||||
"pivot": [-45.759, 35.33301, -305.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-53.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-55.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-45.759, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-50.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-40.671, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-50.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-40.671, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-55.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-45.759, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-50.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-40.671, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-55.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-45.759, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone10",
|
||||
"parent": "laser",
|
||||
"pivot": [-0.035, 35.2538, -330.9],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-36.035, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [-0.035, 35.2538, -330.9],
|
||||
"rotation": [90, 0, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 127.5], "uv_size": [46, -46]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36.035, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [-0.035, 35.2538, -330.9],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 127.5], "uv_size": [46, -46]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36.035, 35.2538, -366.9],
|
||||
"size": [72, 0, 72],
|
||||
"pivot": [-0.035, 35.2538, -330.9],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 127.5], "uv_size": [46, -46]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone11",
|
||||
"parent": "bone10",
|
||||
"pivot": [-2.544, 35.33301, -305.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-10, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-12.544, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-2.544, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7.456, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [2.544, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7.456, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [2.544, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-12.544, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-2.544, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7.456, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [2.544, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-12.544, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-2.544, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "laser1",
|
||||
"parent": "laser",
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 5.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
Loading…
Add table
Reference in a new issue