Compare commits

...
Author SHA1 Message Date
Landon Wills a2dc044165 Fix issues with camera bob when FPS is unstable (still WIP, needs cleanup) 2025-04-09 00:34:24 -04:00
Landon fcde1eb171 Merge branch 'hitbox-and-hit' into 'main'
Position hitbox on client to be accurate to the locator and make looking at...

See merge request cable-mc/cobblemon!1589
2025-04-08 03:26:26 +00:00
JPAK a5672a38b9 Switch to using delegates to position riders. 2025-04-07 21:37:42 -05:00
JPAK 3b14ea319b Position hitbox on client to be accurate to the locator and make looking at stuff align to the camera. 2025-04-07 21:12:01 -05:00
Polymeta 3accfa29b7 Merge branch 'josh/joint-transform-command' into 'main'
Changed command "changejointscale" into "transformmodelpart". Allows you to easily add model transformations in-game.

See merge request cable-mc/cobblemon!1587
2025-04-07 17:18:56 +00:00
Josh 1af1569f63 Updated CHANGELOG.md 2025-04-07 11:13:27 -04:00
Polymeta dbd2f5d340 Merge branch 'implement_pokemon' into 'main'
Implemented many pokemon

See merge request cable-mc/cobblemon!1585
2025-04-07 09:35:47 +00:00
Frank The FarmerandPolymeta 86bf413f00 Implemented many pokemon 2025-04-07 09:35:46 +00:00
Landon f13e7d03a1 Merge branch 'camera-changes-third-person' into 'main'
Riding Third Person Camera

See merge request cable-mc/cobblemon!1582
2025-04-07 02:51:07 +00:00
JordanandLandon 4a025ac65e Riding Third Person Camera 2025-04-07 02:51:07 +00:00
Josh 8a0c98c9ab Renamed command to transformmodelpart 2025-04-06 18:58:13 -04:00
Josh 36c5fe2419 Properly display name of model part. 2025-04-06 18:52:15 -04:00
Josh 0c79d102cf Changed changejointscale command into transformpartcommand with can cahnge the position rotation and scale of any joint on a model. 2025-04-06 18:31:39 -04:00
Polymeta b14b25ae19 Merge branch 'SaferSendouts' into 'main'
Safer sendouts

See merge request cable-mc/cobblemon!1458
2025-04-06 20:58:09 +00:00
Josh bd8f644b9a Add scaling as an option when creating transformedParts 2025-04-06 10:56:10 -04:00
Josh 7c84cdb05d transformedParts must add to the model part rather than replacing it with set() 2025-04-06 10:54:00 -04:00
Landon 125975e25f Merge branch 'item-with-components-swap' into 'main'
Fixed not being able to swap held item of the same type, but have different components.

See merge request cable-mc/cobblemon!1580
2025-04-06 05:42:42 +00:00
Landon baf766298a Merge branch 'riding-ground-render-revert' into 'main'
revert broken ground rendering code. Correctly set stale yrot value on return...

See merge request cable-mc/cobblemon!1583
2025-04-06 05:11:30 +00:00
Jackson BowesandLandon 83580e7e8b revert broken ground rendering code. Correctly set stale yrot value on return... 2025-04-06 05:11:30 +00:00
Test 90335ccb2d hide mark scroll when unused 2025-04-05 17:26:09 -04:00
Josh 9679929694 Merge branch 'main' into 'item-with-components-swap'
# Conflicts:
#   common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
2025-04-05 02:01:27 +00:00
Landon fd6fb5db47 Merge branch 'riding-friction-change' into 'main'
Decouple minecraft friction logic for better feeling controllers. Limit speed...

See merge request cable-mc/cobblemon!1581
2025-04-05 00:21:27 +00:00
Jackson BowesandLandon a80ada8590 Decouple minecraft friction logic for better feeling controllers. Limit speed... 2025-04-05 00:21:27 +00:00
Josh 5af96e75eb Fixed message when swapping items.
Used `displayName` rather than `hoverName` for more dynamic text in message.
2025-04-04 13:35:09 -04:00
Josh 023a01befd Can now swap pokemon's held items if the components are different. 2025-04-04 13:03:49 -04:00
JazzMcNade cc2022ed59 Merge branch 'main' into SaferSendouts 2025-04-03 20:30:24 -05:00
JazzMcNade 91864b13d0 Moved GetSendOutPosition into ActiveBattlePokemon.kt 2025-03-06 01:45:58 -06:00
JazzMcNade adc8e9921a Updated Changelog 2025-03-04 21:54:23 -06:00
JazzMcNade 5e5473acae Muted timing console logging 2025-03-04 21:50:28 -06:00
JazzMcNade 3509944f1a Comment, fixed indentation 2025-03-03 20:53:42 -06:00
JazzMcNade 8a5489f805 Merge branch 'main' into SaferSendouts 2025-03-03 20:44:26 -06:00
JazzMcNade 3b7d56ff45 Merge branch 'main' into SaferSendouts 2025-02-16 20:53:08 -06:00
JazzMcNade 50c567d264 Clean up, scale look radius with size 2025-01-04 18:35:14 -06:00
JazzMcNade d4964e41d3 Clean up, fixed fluid handling 2025-01-03 22:04:23 -06:00
JazzMcNade 41b1c169c3 Merge branch 'main' into SaferSendouts 2025-01-03 20:49:13 -06:00
JazzMcNade 49e2001004 clean up 2025-01-03 20:48:28 -06:00
JazzMcNade 66393f9293 Merge branch 'main' into SaferSendouts 2025-01-02 21:11:07 -06:00
JazzMcNade 7b3b6146a1 Single raycast to avoid spawning in walls, setPositionSafely can no longer path into a wall 2024-12-30 20:44:32 -06:00
JazzMcNade e1452244c2 Merge branch 'main' into SaferSendouts 2024-12-30 12:50:24 -06:00
JazzMcNade 5358414a0c Merge branch 'main' into SaferSendouts 2024-12-24 15:27:25 -06:00
JazzMcNade d691373919 Capped collision box size. Added trace to help prevent attempts to send outs going into walls 2024-12-15 20:14:30 -06:00
JazzMcNade 038f13e6fa Merge branch 'main' into SaferSendouts 2024-12-15 00:52:31 -06:00
JazzMcNade dd288a3b0c SetPositionSafely now implements BFS WIP 2024-12-08 21:39:17 -06:00
414 changed files with 54788 additions and 12055 deletions
+79
View File
@@ -13,6 +13,82 @@
- Added `visibility/hidden`, `visibility/hat` and `visibility/face` tags to control where and how certain items are rendered.
- Added Pokémon markings, toggleable within the summary.
- Added `/boxcount` command to change PC boxes amount
- Added cosmetics for Gurdurr, Conkeldurr, Squirtle Line, Sneasler, Sandle line, Treecko line, Braixen, Delphox, and Dragonite.
### Pokémon Added
#### Gen 2
- Dunsparce
#### Gen 3
- Spoink
- Grumpig
- Snorunt
- Glalie
#### Gen 4
- Bronzor
- Bronzong
- Croagunk
- Froslass
#### Gen 5
- Pansage
- Simisage
- Pansear
- Simisear
- Panpour
- Simipour
- Munna
- Musharna
- Blitzle
- Zebstrika
- Trubbish
- Garbodor
#### Gen 6
- Noibat
- Noivern
#### Gen 7
- Drampa
#### Gen 8
- Silicobra
- Sandaconda
#### Gen 9
- Smoliv
- Dolliv
- Arboliva
- Orthworm
- Dudunsparce
### Animation updates for the following Pokémon
- Garchomp
- Torpius
- Nosepass
- Probopass
### Model updates for the following Pokémon
- Gyarados
- Dragonite
- Eevee
- Vaporeon
- Jolteon
- Flareon
- Espeon
- Umbreon
- Leafeon
- Glaceon
- Sylveon
- Honchkrow
- Garchomp
- Pidgeot
- Nosepass
- Probopass
- Added `/transformmodelpart (position|rotation|scale) <modelPart> <transform: x y z>` command that can add transformations to a pokemon's model part.
- The player executing the command must be facing the target pokemon entity. Transformations are not persistent and will revert when resources are reloaded.
### Changes
- Renamed `chargeGainedPerTick` config to `secondsToChargeHealingMachine`.
@@ -21,6 +97,8 @@
- When using the `cobblemon` or `generation_9` capture calculators a critical capture with a single shake will always play for successful captures when you've already registered the Pokémon as caught in your Pokédex.
- Improved the performance of saving Pokédex and player data.
- Pokémon hitbox now scales with entity attribute `generic.scale`.
- Removed Shulker aspect and replaced it with cosmetic_item-shulker_shell.
- Shulker shell Forretress is now a cosmetic rather than a special evo and thus all shulker Forretress will revert back to normal until a shulker shell is put in their cosmetic slot.
### Fixes
- Fixed Particles sometimes facing the wrong direction (looking at you, Swords Dance)
@@ -43,6 +121,7 @@
- Fixed field name in evolution requirements for Spewpa Pokeball.
- Fixed LevelUpCriterion logic to correctly check that the Pokémon is a preEvo.
- Fixed `hide_additional_tooltip` vanilla flag not properly hiding tooltips on pokerod and bait items
- Removed a number of scenarios in which a Pokémon battle may send out a Pokémon into collision geometry.
- Fixed NPCs using Pokémon outside of their pool when a Pokémon name had a typo.
- Fixed an issue with datapacked species features not being applied properly when relogging.
- Fixed Pokémon marked as silent still playing shiny sounds and effects.
@@ -15,10 +15,12 @@ import com.cobblemon.mod.common.api.events.CobblemonEvents;
import com.cobblemon.mod.common.api.events.item.LeftoversCreatedEvent;
import com.cobblemon.mod.common.api.orientation.OrientationController;
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies;
import com.cobblemon.mod.common.api.riding.Rideable;
import com.cobblemon.mod.common.api.riding.Seat;
import com.cobblemon.mod.common.api.storage.party.PartyStore;
import com.cobblemon.mod.common.api.storage.party.PlayerPartyStore;
import com.cobblemon.mod.common.api.tags.CobblemonItemTags;
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate;
import com.cobblemon.mod.common.client.render.MatrixWrapper;
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity;
import com.cobblemon.mod.common.pokedex.scanner.PokedexEntityData;
import com.cobblemon.mod.common.pokedex.scanner.ScannableEntity;
@@ -38,16 +40,18 @@ import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.ClipContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.Nullable;
import org.joml.Matrix3f;
import org.joml.Vector3f;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@@ -82,7 +86,8 @@ public abstract class PlayerMixin extends LivingEntity implements ScannableEntit
@Shadow @Final private static Map<Pose, EntityDimensions> POSES;
@Shadow @Final public static EntityDimensions STANDING_DIMENSIONS;
@Unique private OrientationController cobblemon$orientationController = new OrientationController(this);
@Unique
private final OrientationController cobblemon$orientationController = new OrientationController(this);
protected PlayerMixin(EntityType<? extends LivingEntity> p_20966_, Level p_20967_) {
super(p_20966_, p_20967_);
@@ -120,7 +125,7 @@ public abstract class PlayerMixin extends LivingEntity implements ScannableEntit
if (this.getVehicle() instanceof PokemonEntity) {
return STANDING_DIMENSIONS;
}
return (EntityDimensions)POSES.getOrDefault(pose, STANDING_DIMENSIONS);
return POSES.getOrDefault(pose, STANDING_DIMENSIONS);
}
@Inject(
@@ -279,4 +284,41 @@ public abstract class PlayerMixin extends LivingEntity implements ScannableEntit
public OrientationController getOrientationController() {
return cobblemon$orientationController;
}
@Override
public HitResult pick(double hitDistance, float partialTicks, boolean hitFluids) {
Entity vehicle = this.getVehicle();
if (vehicle instanceof PokemonEntity pokemonEntity) {
int seatIndex = pokemonEntity.getPassengers().indexOf(this);
Seat seat = pokemonEntity.getSeats().get(seatIndex);
PokemonClientDelegate delegate = (PokemonClientDelegate) pokemonEntity.getDelegate();
MatrixWrapper locator = delegate.getLocatorStates().get(seat.getLocator());
if (locator == null) {
super.pick(hitDistance, partialTicks, hitFluids);
}
Vec3 locatorOffset = new Vec3(locator.getMatrix().getTranslation(new Vector3f()));
OrientationController controller = this.getOrientationController();
float currEyeHeight = this.getEyeHeight();
Matrix3f orientation = controller.isActive() && controller.getOrientation() != null ? controller.getOrientation() : new Matrix3f();
Vec3 rotatedEyeHeight = new Vec3(orientation.transform(new Vector3f(0f, currEyeHeight - (this.getBbHeight() / 2), 0f)));
Vec3 eyePosition = locatorOffset.add(pokemonEntity.position()).add(rotatedEyeHeight);
Vec3 viewVector = this.getViewVector(partialTicks);
Vec3 viewDistanceVector = eyePosition.add(viewVector.x * hitDistance, viewVector.y * hitDistance, viewVector.z * hitDistance);
return this.level()
.clip(
new ClipContext(
eyePosition, viewDistanceVector, ClipContext.Block.OUTLINE, hitFluids ? net.minecraft.world.level.ClipContext.Fluid.ANY : net.minecraft.world.level.ClipContext.Fluid.NONE, this
)
);
}
return super.pick(hitDistance, partialTicks, hitFluids);
}
}
@@ -8,19 +8,29 @@
package com.cobblemon.mod.common.mixin.client;
import com.cobblemon.mod.common.Cobblemon;
import com.cobblemon.mod.common.OrientationControllable;
import com.cobblemon.mod.common.api.orientation.OrientationController;
import com.cobblemon.mod.common.api.riding.Rideable;
import com.cobblemon.mod.common.api.riding.Seat;
import com.cobblemon.mod.common.client.Test;
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate;
import com.cobblemon.mod.common.client.render.MatrixWrapper;
import com.cobblemon.mod.common.client.render.models.blockbench.FloatingState;
import com.cobblemon.mod.common.client.render.models.blockbench.PosableModel;
import com.cobblemon.mod.common.client.render.models.blockbench.repository.VaryingModelRepository;
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.llamalad7.mixinextras.sugar.Local;
import net.minecraft.client.Camera;
import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.ClipContext;
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import org.joml.Matrix3f;
import org.joml.Quaternionf;
@@ -32,12 +42,11 @@ import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.Map;
@Mixin(Camera.class)
public abstract class CameraMixin {
@Shadow @Final private static float DEFAULT_CAMERA_DISTANCE;
@Shadow private Entity entity;
@Shadow @Final private Quaternionf rotation;
@Shadow @Final private Vector3f forwards;
@@ -46,12 +55,17 @@ public abstract class CameraMixin {
@Shadow private float xRot;
@Shadow private float yRot;
@Shadow private Vec3 position;
@Shadow private float eyeHeight;
@Shadow private float eyeHeightOld;
@Shadow protected abstract void setPosition(Vec3 pos);
@Shadow
private BlockGetter level;
@Shadow public abstract float getPartialTickTime();
@Shadow private float partialTickTime;
@Unique private float returnTimer = 0;
@Unique private float rollAngleStart = 0;
@Unique Minecraft minecraft = Minecraft.getInstance();
@@ -96,7 +110,7 @@ public abstract class CameraMixin {
//If you want to move this to a delagate you need an AW for position
@WrapOperation(method = "setup", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;setPosition(DDD)V"))
public void positionCamera(Camera instance, double x, double y, double z, Operation<Void> original){
public void positionCamera(Camera instance, double x, double y, double z, Operation<Void> original, @Local(ordinal = 1, argsOnly = true) boolean thirdPersonReverse) {
Entity entity = instance.getEntity();
Entity vehicle = entity.getVehicle();
@@ -107,31 +121,94 @@ public abstract class CameraMixin {
return;
}
int seatIndex = pokemon.getPassengers().indexOf(entity);
Seat seat = pokemon.getSeats().get(seatIndex);
PokemonClientDelegate delegate = (PokemonClientDelegate) pokemon.getDelegate();
MatrixWrapper locator = delegate.getLocatorStates().get(seat.getLocator());
if(locator == null){
original.call(instance, x, y, z);
return;
}
Vec3 locatorOffset = new Vec3(locator.getMatrix().getTranslation(new Vector3f()));
Vec3 entityPos = new Vec3(
Mth.lerp(instance.getPartialTickTime(), pokemon.xOld, pokemon.getX()),
Mth.lerp(instance.getPartialTickTime(), pokemon.yOld, pokemon.getY()),
Mth.lerp(instance.getPartialTickTime(), pokemon.zOld, pokemon.getZ())
);
if (delegate.getCurrentModel() != null) {
float f = Mth.rotLerp(partialTickTime, pokemon.yBodyRotO, pokemon.yBodyRot);
float g = Mth.rotLerp(partialTickTime, pokemon.yHeadRotO, pokemon.yHeadRot);
float h = g - f;
float j = Mth.lerp(partialTickTime, entity.xRotO, entity.getXRot());
h = Mth.wrapDegrees(h);
float l = 0.0F;
float m = 0.0F;
if (!pokemon.isPassenger() && pokemon.isAlive()) {
l = pokemon.walkAnimation.speed(partialTickTime);
m = pokemon.walkAnimation.position(partialTickTime);
if (pokemon.isBaby()) {
m *= 3.0F;
}
if (l > 1.0F) {
l = 1.0F;
}
}
Test.INSTANCE.setLocked(false);
delegate.updatePartialTicks(partialTickTime);
delegate.updateLocatorPosition(entityPos);
delegate.getCurrentModel().applyAnimations(pokemon, delegate, l, m, partialTickTime, j, h);
Test.INSTANCE.setLocked(true);
}
int seatIndex = pokemon.getPassengers().indexOf(entity);
Seat seat = pokemon.getSeats().get(seatIndex);
OrientationControllable rollable = (OrientationControllable) entity;
float currEyeHeight = Mth.lerp(instance.getPartialTickTime(), eyeHeightOld, eyeHeight);
var controller = rollable.getOrientationController();
Matrix3f orientation = controller.isActive() && controller.getOrientation() != null ? controller.getOrientation() : new Matrix3f();
Vec3 rotatedEyeHeight = new Vec3(orientation.transform(new Vector3f(0f, currEyeHeight, 0f)));
OrientationController controller = rollable.getOrientationController();
var position = locatorOffset.add(entityPos).add(rotatedEyeHeight);
setPosition(position);
if (!instance.isDetached() || Cobblemon.config.getThirdPartyViewBobbing()) {
MatrixWrapper locator = delegate.getLocatorStates().get(seat.getLocator());
if (locator == null) {
original.call(instance, x, y, z);
return;
}
Vec3 locatorOffset = new Vec3(locator.getMatrix().getTranslation(new Vector3f()));
float currEyeHeight = Mth.lerp(instance.getPartialTickTime(), eyeHeightOld, eyeHeight);
var rotatedEyeHeight = new Vector3f(0f, currEyeHeight - (entity.getBbHeight() / 2), 0f);
if (controller.isActive()) {
rotatedEyeHeight = controller.getRenderOrientation(partialTickTime).transform(rotatedEyeHeight);
}
Vec3 position = locatorOffset.add(entityPos).add(new Vec3(rotatedEyeHeight));
setPosition(position);
} else {
Vector3f pos = entityPos.add(new Vec3(0, pokemon.getBbHeight() / 2, 0)).toVector3f();
PosableModel model = VaryingModelRepository.INSTANCE.getPoser(pokemon.getPokemon().getSpecies().getResourceIdentifier(), new FloatingState());
Map<String, Vec3> cameraOffsets = model.getSeatToCameraOffset();
Vec3 cameraOffset;
if (thirdPersonReverse && cameraOffsets.containsKey(seat.getLocator() + "_reverse")) {
cameraOffset = cameraOffsets.get(seat.getLocator() + "_reverse");
} else if (cameraOffsets.containsKey(seat.getLocator())) {
cameraOffset = cameraOffsets.get(seat.getLocator());
} else {
cameraOffset = new Vec3(0f, 2f, 4f);
}
Vector3f offset = cameraOffset.toVector3f();
if (thirdPersonReverse) offset.z *= -1;
float xRot = (float) (-1 * Math.toRadians(instance.getXRot()));
Matrix3f orientation = controller.isActive() && controller.getOrientation() != null ? controller.getOrientation() : new Matrix3f().rotateY((float) Math.toRadians(180f - instance.getYRot())).rotateX(xRot);
Vector3f rotatedOffset = orientation.transform(offset);
float offsetDistance = rotatedOffset.length();
Vector3f offsetDirection = rotatedOffset.mul(1 / offsetDistance);
float maxZoom = cobblemon$getMaxZoom(offsetDistance, offsetDirection, pos);
setPosition(new Vec3(offsetDirection.mul(maxZoom).add(pos)));
}
} else {
original.call(instance, x, y, z);
}
@@ -152,4 +229,36 @@ public abstract class CameraMixin {
this.up.set(controller.getUpVector());
this.left.set(controller.getLeftVector());
}
@WrapOperation(method = "setup", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;move(FFF)V", ordinal = 0))
public void stopMoveIfRolling(Camera instance, float zoom, float dy, float dx, Operation<Void> original) {
Entity entity = instance.getEntity();
Entity vehicle = entity.getVehicle();
if (!(vehicle instanceof PokemonEntity) || Cobblemon.config.getThirdPartyViewBobbing()) {
original.call(instance, zoom, dy, dx);
}
}
//Modified vanilla code
@Unique
private float cobblemon$getMaxZoom(float maxZoom, Vector3f directionVector, Vector3f positionVector) {
Vec3 pos = new Vec3(positionVector);
for (int i = 0; i < 8; i++) {
float g = (float) ((i & 1) * 2 - 1);
float h = (float) ((i >> 1 & 1) * 2 - 1);
float j = (float) ((i >> 2 & 1) * 2 - 1);
Vec3 vec3 = pos.add(g * 0.1F, h * 0.1F, j * 0.1F);
Vec3 vec32 = vec3.add(new Vec3(directionVector).scale(maxZoom));
HitResult hitResult = this.level.clip(new ClipContext(vec3, vec32, ClipContext.Block.VISUAL, ClipContext.Fluid.NONE, this.entity));
if (hitResult.getType() != HitResult.Type.MISS) {
float k = (float) hitResult.getLocation().distanceToSqr(pos);
if (k < Mth.square(maxZoom)) {
maxZoom = Mth.sqrt(k);
}
}
}
return maxZoom;
}
}
@@ -563,6 +563,8 @@ object Cobblemon {
this.implementation.registerCommandArgument(cobblemonResource("npc_class"), NPCClassArgumentType::class, SingletonArgumentInfo.contextFree(NPCClassArgumentType::npcClass))
this.implementation.registerCommandArgument(cobblemonResource("wallpaper"), UnlockablePCBoxWallpaperArgumentType::class, SingletonArgumentInfo.contextFree(UnlockablePCBoxWallpaperArgumentType::wallpaper))
this.implementation.registerCommandArgument(cobblemonResource("mark"), MarkArgumentType::class, SingletonArgumentInfo.contextFree(MarkArgumentType::mark))
this.implementation.registerCommandArgument(cobblemonResource("transform_type"), TransformTypeArgumentType::class, SingletonArgumentInfo.contextFree(TransformTypeArgumentType::transformType))
this.implementation.registerCommandArgument(cobblemonResource("model_part"), ModelPartArgumentType::class, SingletonArgumentInfo.contextFree(ModelPartArgumentType::modelPart))
}
}
@@ -23,7 +23,7 @@ object CobblemonCommands {
ChangeEyeHeight.register(dispatcher)
ChangeScaleAndSize.register(dispatcher)
ChangeWalkSpeed.register(dispatcher)
ChangeJointScaleCommand.register(dispatcher)
TransformModelPartCommand.register(dispatcher)
TestCommand.register(dispatcher)
ReloadShowdownCommand.register(dispatcher)
ClickTextCommand.register(dispatcher)
@@ -21,4 +21,5 @@ interface PokemonSideDelegate : EntitySideDelegate<PokemonEntity> {
fun updatePostDeath() {}
fun handleStatus(status: Byte) {}
fun spawnShinyParticle(player: Player) {}
fun positionRider(passenger: Entity, positionUpdater: MoveFunction)
}
@@ -20,7 +20,7 @@ object CobblemonPermissions {
@JvmStatic
val CHANGE_WALK_SPEED = this.create("${COMMAND_PREFIX}changewalkspeed", PermissionLevel.ALL_COMMANDS)
@JvmStatic
val CHANGE_JOINT_SCALE = this.create("${COMMAND_PREFIX}changejointscale", PermissionLevel.ALL_COMMANDS)
val TRANSFORM_MODEL_PART = this.create("${COMMAND_PREFIX}transformmodelpart", PermissionLevel.ALL_COMMANDS)
@JvmStatic
val CHECKSPAWNS = this.create("${COMMAND_PREFIX}checkspawns", PermissionLevel.CHEAT_COMMANDS_AND_COMMAND_BLOCKS)
@JvmStatic
@@ -35,7 +35,7 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
override val key: ResourceLocation = KEY
val poseProvider = PoseProvider<BirdAirSettings, BirdAirState>(PoseType.HOVER)
.with(PoseOption(PoseType.FLY) { _, state, _ -> state.rideVel.get().z > 0.1 })
.with(PoseOption(PoseType.FLY) { _, state, _ -> state.rideVel.get().z > 0.2 })
override fun isActive(settings: BirdAirSettings, state: BirdAirState, vehicle: PokemonEntity): Boolean {
return true
@@ -96,7 +96,7 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
upForce -= 0.3
}
val altitudeLimit = vehicle.runtime.resolveDouble(settings.altitudeExpr)
val altitudeLimit = vehicle.runtime.resolveDouble(settings.jumpExpr)
//Only limit altitude if altitude is not infinite
if (!vehicle.runtime.resolveBoolean(settings.infiniteAltitude)) {
@@ -113,9 +113,9 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
*/
fun calculateRideSpaceVel(settings: BirdAirSettings, state: BirdAirState, vehicle: PokemonEntity, driver: Player) {
//retrieve stats
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val glideTopSpeed = vehicle.runtime.resolveDouble(settings.glideTopSpeedExpr)
val accel = vehicle.runtime.resolveDouble(settings.accelExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
val glideTopSpeed = vehicle.runtime.resolveDouble(settings.glidespeedExpr)
val accel = vehicle.runtime.resolveDouble(settings.accelerationExpr)
val staminaStat = vehicle.runtime.resolveDouble(settings.staminaExpr)
var glideSpeedChange = 0.0
@@ -237,11 +237,9 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
}
//air resistance
newVelocity = Vec3(
newVelocity.x,
newVelocity.y,
lerp( newVelocity.z,0.0, topSpeed / ( 20.0 * 30.0))
)
if( abs(newVelocity.z) > 0) {
newVelocity = newVelocity.subtract(0.0, 0.0, min(0.003 * newVelocity.z.sign, newVelocity.z))
}
state.rideVel.set(newVelocity)
}
@@ -257,8 +255,8 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
//TODO: Tie into handling
val handling = vehicle.runtime.resolveDouble(settings.handlingExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val rotationChangeRate = 10.0
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
val rotationChangeRate = 10.0
var yawForce = rotationChangeRate * sin(Math.toRadians(controller.roll.toDouble()))
//for a bit of correction on the rolls limit it to a quarter the amount
@@ -287,14 +285,16 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
val controller = (driver as OrientationControllable).orientationController
val handling = vehicle.runtime.resolveDouble(settings.handlingExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
//Smooth out mouse input.
val smoothingSpeed = 4
val smoothingSpeed = 4.0
val invertRoll = if (Cobblemon.config.invertRoll) -1 else 1
val invertPitch = if (Cobblemon.config.invertPitch) -1 else 1
val xInput = mouseXSmoother.getNewDeltaValue(mouseX * 0.1 * invertRoll, deltaTime * smoothingSpeed);
val yInput = mouseYSmoother.getNewDeltaValue(mouseY * 0.1 * invertPitch, deltaTime * smoothingSpeed);
val mouseXc = (mouseX).coerceIn(-60.0, 60.0)
val mouseYc = (mouseY).coerceIn(-60.0, 60.0)
val xInput = mouseXSmoother.getNewDeltaValue(mouseXc * 0.1 * invertRoll, deltaTime * smoothingSpeed);
val yInput = mouseYSmoother.getNewDeltaValue(mouseYc * 0.1 * invertPitch, deltaTime * smoothingSpeed);
//limit rolling based on handling and current speed.
//modulated by speed so that when flapping idle in air you are ont wobbling around to look around
@@ -374,8 +374,8 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
vehicle: PokemonEntity,
driver: Player
): Float {
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val glideTopSpeed = vehicle.runtime.resolveDouble(settings.glideTopSpeedExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
val glideTopSpeed = vehicle.runtime.resolveDouble(settings.glidespeedExpr)
//Must I ensure that topspeed is greater than minimum?
val normalizedGlideSpeed = normalizeVal(state.rideVel.get().length(), topSpeed, glideTopSpeed)
@@ -440,52 +440,41 @@ class BirdAirBehaviour : RidingBehaviour<BirdAirSettings, BirdAirState> {
class BirdAirSettings : RidingBehaviourSettings {
override val key = BirdAirBehaviour.KEY
//max y level for the ride
var altitudeExpr: Expression = "q.get_ride_stats('JUMP', 'AIR', 200.0, 128.0)".asExpression()
private set
var infiniteAltitude: Expression = "false".asExpression()
private set
var infiniteStamina: Expression = "false".asExpression()
private set
//max y level for the ride
var jumpExpr: Expression = "q.get_ride_stats('JUMP', 'AIR', 200.0, 128.0)".asExpression()
var handlingExpr: Expression = "q.get_ride_stats('SKILL', 'AIR', 135.0, 45.0)".asExpression()
private set
var topSpeedExpr: Expression = "q.get_ride_stats('SPEED', 'AIR', 1.0, 0.35)".asExpression()
private set
var glideTopSpeedExpr: Expression = "q.get_ride_stats('SPEED', 'AIR', 2.0, 1.0)".asExpression()
private set
// Max accel is a whole 1.0 in 3 seconds. The conversion in the function below is to convert seconds to ticks
var accelExpr: Expression = "q.get_ride_stats('ACCELERATION', 'AIR', (1.0 / (20.0 * 3.0)), (1.0 / (20.0 * 8.0)))".asExpression()
private set
//Seconds self propelled flight (glide is not self propelled in this case)
var speedExpr: Expression = "q.get_ride_stats('SPEED', 'AIR', 1.0, 0.35)".asExpression()
var accelerationExpr: Expression = "q.get_ride_stats('ACCELERATION', 'AIR', (1.0 / (20.0 * 3.0)), (1.0 / (20.0 * 8.0)))".asExpression()
var staminaExpr: Expression = "q.get_ride_stats('STAMINA', 'AIR', 120.0, 20.0)".asExpression()
var glidespeedExpr: Expression = "q.get_ride_stats('SPEED', 'AIR', 2.0, 1.0)".asExpression()
private set
override fun encode(buffer: RegistryFriendlyByteBuf) {
buffer.writeExpression(altitudeExpr)
buffer.writeExpression(infiniteAltitude)
buffer.writeExpression(infiniteStamina)
buffer.writeExpression(glidespeedExpr)
buffer.writeExpression(jumpExpr)
buffer.writeExpression(handlingExpr)
buffer.writeExpression(topSpeedExpr)
buffer.writeExpression(glideTopSpeedExpr)
buffer.writeExpression(accelExpr)
buffer.writeExpression(speedExpr)
buffer.writeExpression(accelerationExpr)
buffer.writeExpression(staminaExpr)
}
override fun decode(buffer: RegistryFriendlyByteBuf) {
altitudeExpr = buffer.readExpression()
infiniteAltitude = buffer.readExpression()
infiniteStamina = buffer.readExpression()
glidespeedExpr = buffer.readExpression()
jumpExpr = buffer.readExpression()
handlingExpr = buffer.readExpression()
topSpeedExpr = buffer.readExpression()
glideTopSpeedExpr = buffer.readExpression()
accelExpr = buffer.readExpression()
speedExpr = buffer.readExpression()
accelerationExpr = buffer.readExpression()
staminaExpr = buffer.readExpression()
}
}
@@ -46,7 +46,7 @@ class JetAirBehaviour : RidingBehaviour<JetAirSettings, JetAirState> {
override fun speed(settings: JetAirSettings, state: JetAirState, vehicle: PokemonEntity, driver: Player): Float {
//retrieve stats
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
val staminaStat = vehicle.runtime.resolveDouble(settings.staminaExpr)
//retrieve minSpeed
@@ -137,8 +137,8 @@ class JetAirBehaviour : RidingBehaviour<JetAirSettings, JetAirState> {
vehicle: PokemonEntity,
driver: Player
) {
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val accel = vehicle.runtime.resolveDouble(settings.accelExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
val accel = vehicle.runtime.resolveDouble(settings.accelerationExpr)
val altitudeLimit = vehicle.runtime.resolveDouble(settings.jumpExpr)
val minSpeed = vehicle.runtime.resolveDouble(settings.minSpeed)
val speed = state.rideVel.get().length()
@@ -281,7 +281,7 @@ class JetAirBehaviour : RidingBehaviour<JetAirSettings, JetAirState> {
vehicle: PokemonEntity,
driver: Player
): Float {
val topSpeed = vehicle.runtime.resolveDouble(settings.topSpeedExpr)
val topSpeed = vehicle.runtime.resolveDouble(settings.speedExpr)
val minSpeed = vehicle.runtime.resolveDouble(settings.minSpeed)
//Must I ensure that topspeed is greater than minimum?
@@ -345,27 +345,9 @@ class JetAirSettings : RidingBehaviourSettings {
var minSpeed: Expression = "1.2".asExpression()
private set
var handlingExpr: Expression = "q.get_ride_stats('SKILL', 'AIR', 140.0, 20.0)".asExpression()
private set
var handlingYawExpr: Expression = "q.get_ride_stats('SKILL', 'AIR', 25.0, 8.0)".asExpression()
private set
var topSpeedExpr: Expression = "q.get_ride_stats('SPEED', 'AIR', 2.5, 1.0)".asExpression()
private set
// Max accel is a whole 1.0 in 1 second. The conversion in the function below is to convert seconds to ticks
var accelExpr: Expression =
"q.get_ride_stats('ACCELERATION', 'AIR', (1.0 / (20.0 * 1.0)), (1.0 / (20.0 * 5.0)))".asExpression()
private set
// Between 60 seconds and 10 seconds at the lowest when at full speed.
var staminaExpr: Expression = "q.get_ride_stats('STAMINA', 'AIR', 60.0, 10.0)".asExpression()
private set
var jumpExpr: Expression = "q.get_ride_stats('JUMP', 'AIR', 300.0, 128.0)".asExpression()
private set
// Make configurable by json
var infiniteStamina: Expression = "false".asExpression()
private set
@@ -373,30 +355,41 @@ class JetAirSettings : RidingBehaviourSettings {
var infiniteAltitude: Expression = "false".asExpression()
private set
var jumpExpr: Expression = "q.get_ride_stats('JUMP', 'AIR', 300.0, 128.0)".asExpression()
private set
var handlingExpr: Expression = "q.get_ride_stats('SKILL', 'AIR', 140.0, 20.0)".asExpression()
private set
var speedExpr: Expression = "q.get_ride_stats('SPEED', 'AIR', 2.5, 1.0)".asExpression()
private set
var accelerationExpr: Expression = "q.get_ride_stats('ACCELERATION', 'AIR', (1.0 / (20.0 * 1.0)), (1.0 / (20.0 * 5.0)))".asExpression()
private set
var staminaExpr: Expression = "q.get_ride_stats('STAMINA', 'AIR', 60.0, 10.0)".asExpression()
private set
override fun encode(buffer: RegistryFriendlyByteBuf) {
buffer.writeExpression(gravity)
buffer.writeExpression(minSpeed)
buffer.writeExpression(handlingExpr)
buffer.writeExpression(handlingYawExpr)
buffer.writeExpression(topSpeedExpr)
buffer.writeExpression(accelExpr)
buffer.writeExpression(staminaExpr)
buffer.writeExpression(jumpExpr)
buffer.writeExpression(infiniteStamina)
buffer.writeExpression(infiniteAltitude)
buffer.writeExpression(jumpExpr)
buffer.writeExpression(handlingExpr)
buffer.writeExpression(speedExpr)
buffer.writeExpression(accelerationExpr)
buffer.writeExpression(staminaExpr)
}
override fun decode(buffer: RegistryFriendlyByteBuf) {
gravity = buffer.readExpression()
minSpeed = buffer.readExpression()
handlingExpr = buffer.readExpression()
handlingYawExpr = buffer.readExpression()
topSpeedExpr = buffer.readExpression()
accelExpr = buffer.readExpression()
staminaExpr = buffer.readExpression()
jumpExpr = buffer.readExpression()
infiniteStamina = buffer.readExpression()
infiniteAltitude = buffer.readExpression()
jumpExpr = buffer.readExpression()
handlingExpr = buffer.readExpression()
speedExpr = buffer.readExpression()
accelerationExpr = buffer.readExpression()
staminaExpr = buffer.readExpression()
}
}
@@ -8,9 +8,13 @@
package com.cobblemon.mod.common.battles
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.api.battles.model.actor.BattleActor
import com.cobblemon.mod.common.api.battles.model.actor.EntityBackedBattleActor
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.level.ClipContext
import net.minecraft.world.phys.HitResult
import net.minecraft.world.phys.Vec3
class ActiveBattlePokemon(val actor: BattleActor, var battlePokemon: BattlePokemon? = null): Targetable {
val battle = actor.battle
@@ -28,4 +32,115 @@ class ActiveBattlePokemon(val actor: BattleActor, var battlePokemon: BattlePokem
override fun hasPokemon() = battlePokemon != null
fun isGone() = battlePokemon?.gone ?: true
fun isAlive() = (battlePokemon?.health ?: 0) > 0
fun getSendOutPosition(): Vec3? {
val pnx = getPNX()
val actorEntityPosList = actor.getSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val actorEntityPos = if (actorEntityPosList.size == 1)
actorEntityPosList[0]
else if (actorEntityPosList.size > 1)
actorEntityPosList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / actorEntityPosList.size)) }
else
null
val opposingActorEntityList = actor.getSide().getOppositeSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val opposingEntityPos = if (opposingActorEntityList.size == 1)
opposingActorEntityList[0]
else if (opposingActorEntityList.size > 1) {
// If multiple actors per side, avg their position
opposingActorEntityList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / opposingActorEntityList.size)) }
}
else null
var actorOffset = actorEntityPos?.let { opposingEntityPos?.subtract(it) }
var result = actorEntityPos
if (actorOffset != null) {
var widthSum = 4.0 // Leave a constant to allow double/triples alignment to be consistent
var pokemonWidth = battlePokemon?.originalPokemon?.form?.hitbox?.width ?: 0F
val pokemonBaseScale = battlePokemon?.originalPokemon?.form?.baseScale ?: 0F
pokemonWidth *= pokemonBaseScale
if (battle.format.battleType.pokemonPerSide == 1) {
battlePokemon?.let { battlePokemon ->
// sum of the hitbox widths of both pokemon
val opposingActivePokemon = (getOppositeOpponent() as ActiveBattlePokemon)
val opposingPokemonWidth = opposingActivePokemon.battlePokemon?.let {
it.originalPokemon.form.hitbox.width * it.originalPokemon.form.baseScale
} ?: pokemonWidth
widthSum = (pokemonWidth + opposingPokemonWidth) / 2.0 // Only care about the front half of each hitbox
}
}
val minDistance = 4.0 + widthSum
val actorDistance = actorOffset.length()
if (actorDistance < minDistance) {
val temp = actorOffset.scale(minDistance / actorDistance) ?: actorOffset
result = actorEntityPos?.subtract(temp.subtract(actorOffset))
actorOffset = temp
}
// orthogonalVector is the sideways displacement from the battle actors
var orthogonalVector = Vec3(actorOffset.x, 0.0, actorOffset.z).normalize()
orthogonalVector = orthogonalVector.cross(Vec3(0.0, 1.0, 0.0))
if (battle.format.battleType.pokemonPerSide == 1) { // Singles
result = result?.add(actorOffset.scale(if (battle.isPvW) 0.4 else 0.3))
battlePokemon?.let { battlePokemon ->
val hitbox = battlePokemon.originalPokemon.form.hitbox
val scale = battlePokemon.originalPokemon.form.baseScale
orthogonalVector = orthogonalVector.scale(-0.3 - hitbox.width * scale )
}
} else if (battle.format.battleType.pokemonPerSide == 2) { // Doubles/Multi
if (battle.actors.first() != battle.actors.last()) {
val offsetB = if (pnx[2] == 'a') orthogonalVector.scale(-1.0) else orthogonalVector
result = result?.add(actorOffset.scale(0.33))
orthogonalVector = offsetB.scale(2.5)
}
} else if (battle.format.battleType.pokemonPerSide == 3) { // Triples
if (battle.actors.first() != battle.actors.last()) {
result = when (pnx[2]) {
'a' -> {
orthogonalVector = orthogonalVector.scale(-3.5)
result?.add(actorOffset.scale(0.15))
}
'b' -> {
orthogonalVector = Vec3.ZERO
result?.add(actorOffset.scale(0.3))
}
'c' -> {
orthogonalVector = orthogonalVector.scale(3.5)
result?.add(actorOffset.scale(0.15))
}
else -> result
}
}
}
val fallbackPos = result
result = result?.add(orthogonalVector)
if (actor is EntityBackedBattleActor<*> && result != null) {
val entity = actor.entity ?: return result
// Do a single raycast to estimate if we're trying to throw a pokemon into a wall.
// If the collision is too close to the actor, try to find a more reasonable position.
// The motivation here is to give setPositionSafely something more reasonable to work with.
val collisionResult = entity.level().clip(
ClipContext(
actorEntityPos!!.add(Vec3(0.0,entity.eyeHeight.toDouble(),0.0)), // start position
Vec3(result.x, entity.y + entity.eyeHeight.toDouble(), result.z), // end position
ClipContext.Block.OUTLINE,
ClipContext.Fluid.NONE,
entity
)
)
if (collisionResult.type == HitResult.Type.BLOCK) {
// Collided with terrain
result = if (collisionResult.location.distanceToSqr(actorEntityPos) < pokemonWidth) {
// Fallback to in between the two actors, dropping the orthogonal vector
// Ideally this keeps a pokemon in between the actors in a narrow tunnel
fallbackPos
} else {
Vec3(collisionResult.location.x, result.y, collisionResult.location.z)
}
}
}
}
return result
}
}
@@ -22,6 +22,8 @@ import com.cobblemon.mod.common.battles.interpreter.instructions.*
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.util.battleLang
import com.cobblemon.mod.common.util.runOnServer
import net.minecraft.world.level.ClipContext
import net.minecraft.world.phys.HitResult
import net.minecraft.world.phys.Vec3
import java.util.UUID
import kotlin.collections.Iterator
@@ -34,6 +36,7 @@ import kotlin.collections.mutableMapOf
import kotlin.collections.set
import kotlin.collections.toMutableList
import kotlin.collections.toTypedArray
import kotlin.time.measureTime
@Suppress("KotlinPlaceholderCountMatchesArgumentCount", "UNUSED_PARAMETER")
object ShowdownInterpreter {
@@ -138,85 +141,6 @@ object ShowdownInterpreter {
// Note '-cureteam' is a legacy thing that is only used in generation 2 and 4 mods for heal bell and aromatherapy respectively as such we can just ignore that
}
/**
*
* Figures out the sendout position for a pokemon in a battle
*
*
*/
fun getSendoutPosition(battle: PokemonBattle, activePokemon: ActiveBattlePokemon, battleActor: BattleActor): Vec3? {
val pnx = activePokemon.getPNX()
val actorEntityPosList = battleActor.getSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val actorEntityPos = if (actorEntityPosList.size == 1)
actorEntityPosList[0]
else if (actorEntityPosList.size > 1)
actorEntityPosList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / actorEntityPosList.size)) }
else
null
val opposingActorEntityList = battleActor.getSide().getOppositeSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val opposingEntityPos = if (opposingActorEntityList.size == 1)
opposingActorEntityList[0]
else if (opposingActorEntityList.size > 1) {
// If multiple actors per side, avg their position
opposingActorEntityList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / opposingActorEntityList.size)) }
}
else null
var actorOffset = actorEntityPos?.let { opposingEntityPos?.subtract(it) }
var result = actorEntityPos
if (actorOffset != null) {
var widthSum = 4.0 // Leave a constant to allow double/triples alignment to be consistent
if (battle.format.battleType.pokemonPerSide == 1) {
activePokemon.battlePokemon?.let { battlePokemon ->
// sum of the hitbox widths of both pokemon
val opposingActivePokemon = (activePokemon.getOppositeOpponent() as ActiveBattlePokemon)
val pokemonWidth = battlePokemon.originalPokemon.form.hitbox.width * battlePokemon.originalPokemon.form.baseScale
val opposingPokemonWidth = opposingActivePokemon.battlePokemon?.let {
it.originalPokemon.form.hitbox.width * it.originalPokemon.form.baseScale
} ?: pokemonWidth
widthSum = (pokemonWidth + opposingPokemonWidth) / 2.0 // Only care about the front half of each hitbox
}
}
val minDistance = 4.0 + widthSum
val actorDistance = actorOffset.length()
if (actorDistance < minDistance) {
val temp = actorOffset.scale(minDistance / actorDistance) ?: actorOffset
result = actorEntityPos?.subtract(temp.subtract(actorOffset))
actorOffset = temp
}
var vector = Vec3(actorOffset.x, 0.0, actorOffset.z).normalize()
vector = vector.cross(Vec3(0.0, 1.0, 0.0))
if (battle.format.battleType.pokemonPerSide == 1) { // Singles
result = result?.add(actorOffset.scale(if (battle.isPvW) 0.4 else 0.3))
activePokemon.battlePokemon?.let { battlePokemon ->
val hitbox = battlePokemon.originalPokemon.form.hitbox
val scale = battlePokemon.originalPokemon.form.baseScale
activePokemon.getAdjacentOpponents()
result = result?.add(vector.scale(-0.3 - hitbox.width * scale ))
}
} else if (battle.format.battleType.pokemonPerSide == 2) { // Doubles/Multi
if (battle.actors.first() !== battle.actors.last()) {
val offsetB = if (pnx[2] == 'a') vector.scale(-1.0) else vector
result = result?.add(actorOffset.scale(0.33))?.add(offsetB.scale(2.5))
}
} else if (battle.format.battleType.pokemonPerSide == 3) { // Triples
if (battle.actors.first() !== battle.actors.last()) {
result = when (pnx[2]) {
'a' -> result?.add(actorOffset.scale(0.15))?.add(vector.scale(-3.5))
'b' -> result?.add(actorOffset.scale(0.3))
'c' -> result?.add(actorOffset.scale(0.15))?.add(vector.scale(3.5))
else -> result
}
}
}
}
return result
}
fun interpretMessage(battleId: UUID, message: String) {
// Check key map and use function if matching
@@ -13,7 +13,6 @@ import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.battles.ShowdownInterpreter
import com.cobblemon.mod.common.battles.dispatch.InstructionSet
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
import com.cobblemon.mod.common.entity.pokemon.effects.IllusionEffect
import com.cobblemon.mod.common.net.messages.client.battle.BattleSwapPokemonPacket
import com.cobblemon.mod.common.util.battleLang
import com.cobblemon.mod.common.util.setPositionSafely
@@ -42,12 +41,12 @@ class SwapInstruction(val message: BattleMessage, val instructionSet: Instructio
// Swap references of the 2 pokemon
actor.activePokemon.swap((pnxA[2] - 'a'), (pnxB[2] - 'a'))
val posA = ShowdownInterpreter.getSendoutPosition(battle, activePokemonA, battlePokemonA.actor) ?: activePokemonA.position?.second
val posA = activePokemonA.getSendOutPosition() ?: activePokemonA.position?.second
if (posA != null && battlePokemonA.entity != null) {
battlePokemonA.entity?.setPositionSafely(battlePokemonA.entity!!.getAjustedSendoutPosition(posA))
}
val posB = ShowdownInterpreter.getSendoutPosition(battle, activePokemonB, battlePokemonA.actor) ?: activePokemonB.position?.second
val posB = activePokemonB.getSendOutPosition() ?: activePokemonB.position?.second
val battlePokemonB = activePokemonB.battlePokemon
if (posB != null && battlePokemonB?.entity != null) {
activePokemonB.battlePokemon?.entity?.setPositionSafely(battlePokemonB.entity!!.getAjustedSendoutPosition(posB))
@@ -70,7 +70,7 @@ class SwitchInstruction(val instructionSet: InstructionSet, val battleActor: Bat
else if (pokemonEntity == null && entity != null) {
activePokemon.battlePokemon = pokemon
activePokemon.illusion = illusion
val targetPos = ShowdownInterpreter.getSendoutPosition(battle, activePokemon, battleActor)
val targetPos = activePokemon.getSendOutPosition()
if (targetPos != null) {
val battleSendoutCount = activePokemon.getActorShowdownId()[1].digitToInt() - 1 + actor.stillSendingOutCount
actor.stillSendingOutCount++
@@ -180,7 +180,7 @@ class SwitchInstruction(val instructionSet: InstructionSet, val battleActor: Bat
}
} else {
// For Singles, we modify the sendout position based on the pokemon's hitbox size
val pos = (if (battle.format.battleType.pokemonPerSide == 1) ShowdownInterpreter.getSendoutPosition(battle, activePokemon, actor)
val pos = (if (battle.format.battleType.pokemonPerSide == 1) activePokemon.getSendOutPosition()
else activePokemon.position?.second) ?: entity.position()
// Send out at previous Pokémon's location if it is known, otherwise actor location
val world = entity.level() as ServerLevel
@@ -0,0 +1,5 @@
package com.cobblemon.mod.common.client
object Test {
var locked: Boolean = true
}
@@ -43,8 +43,10 @@ import net.minecraft.sounds.SoundEvent
import net.minecraft.sounds.SoundSource
import net.minecraft.world.InteractionHand
import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.Entity.MoveFunction
import net.minecraft.world.entity.player.Player
import net.minecraft.world.phys.Vec3
import org.joml.Vector3f
class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
companion object {
@@ -451,4 +453,30 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
}
cryAnimation = animation
}
override fun positionRider(passenger: Entity, positionUpdater: MoveFunction) {
val index =
this.getEntity().passengers.indexOf(passenger).takeIf { it >= 0 && it < this.getEntity().seats.size }
?: return
val seat = this.getEntity().seats[index]
val locator = this.locatorStates[seat.locator]
if (locator == null) return
val offset = locator.matrix.getTranslation(Vector3f())
.sub(
Vector3f(
0f,
passenger.eyeHeight - (passenger.bbHeight / 2),
0f
)
) // This is close but not exact
positionUpdater.accept(
passenger,
this.getEntity().x + offset.x,
this.getEntity().y + offset.y,
this.getEntity().z + offset.z
)
}
}
@@ -36,11 +36,13 @@ class MarksScrollingWidget(val pX: Int, val pY: Int, val setSelectedMark: () ->
fun createEntries(marks: List<Mark?>) {
marks.chunked(6).forEachIndexed { index, listChunk ->
addEntry(ScrollSlotRow(listChunk, setSelectedMark, setHoveredMark))
addEntry(ScrollSlotRow(this, listChunk, setSelectedMark, setHoveredMark))
}
}
override fun getScrollbarPosition(): Int = pX + width - 3
override fun getRowLeft(): Int = if (children().size > 5) (left + 1) else left
override fun getScrollbarPosition(): Int = rowLeft + width - 3
override fun renderScrollbar(context: GuiGraphics, mouseX: Int, mouseY: Int, delta: Float) {
// Do not render scrollbar if all rows are already visible
@@ -57,8 +59,8 @@ class MarksScrollingWidget(val pX: Int, val pY: Int, val setSelectedMark: () ->
yTop = this.y
}
context.fill(xLeft, this.y, xRight, this.bottom, FastColor.ARGB32.color(255, 47, 47, 47)) // background
context.fill(xLeft,yTop, xRight, yTop + yBottom, FastColor.ARGB32.color(255, 198, 198, 198)) // base
context.fill(xLeft, this.y, xRight, this.bottom, FastColor.ARGB32.color(255, 75, 75, 75)) // background
context.fill(xLeft,yTop, xRight, yTop + yBottom, FastColor.ARGB32.color(255, 141, 141, 141)) // base
}
}
@@ -72,7 +74,7 @@ class MarksScrollingWidget(val pX: Int, val pY: Int, val setSelectedMark: () ->
override fun getEntry(index: Int): ScrollSlotRow = children()[index] as ScrollSlotRow
override fun renderListItems(context: GuiGraphics, mouseX: Int, mouseY: Int, delta: Float) {
val rowX = this.rowLeft
val rowX = rowLeft
var anyHovered = false
for (index in 0 until this.itemCount) {
@@ -96,6 +98,7 @@ class MarksScrollingWidget(val pX: Int, val pY: Int, val setSelectedMark: () ->
}
class ScrollSlotRow(
val parent: MarksScrollingWidget,
val markList: List<Mark?>,
val setSelectedMark : () -> Unit,
val setHoveredMark: (Mark?) -> Unit
@@ -109,10 +112,11 @@ class MarksScrollingWidget(val pX: Int, val pY: Int, val setSelectedMark: () ->
fun renderRow(context: GuiGraphics, y: Int, x: Int, mouseX: Int, mouseY: Int): Boolean {
var anyHovered = false
val horizontalSpacing = if (isScrollVisible()) SLOT_SPACING else (SLOT_SPACING + 1)
markList.forEachIndexed { index, mark ->
val matrices = context.pose()
val startPosX = x + ((SLOT_SPACING + SLOT_SIZE) * index)
val startPosX = x + ((horizontalSpacing + SLOT_SIZE) * index)
val startPosY = y + SLOT_SPACING
val slotHovered = mark != null && getHoveredSlotIndex(mouseX, mouseY) == index
@@ -156,9 +160,12 @@ class MarksScrollingWidget(val pX: Int, val pY: Int, val setSelectedMark: () ->
return true
}
private fun isScrollVisible(): Boolean = parent.children().size > 5
private fun getHoveredSlotIndex(mouseX: Int, mouseY: Int): Int {
val horizontalSpacing = if (isScrollVisible()) SLOT_SPACING else (SLOT_SPACING + 1)
markList.forEachIndexed { index, _ ->
val startPosX = x + ((SLOT_SPACING + SLOT_SIZE) * index)
val startPosX = x + ((horizontalSpacing + SLOT_SIZE) * index)
val startPosY = y + SLOT_SPACING + 1
if (mouseX in startPosX..(startPosX + SLOT_SIZE)
@@ -42,7 +42,7 @@ class MarksWidget(
var hoveredMark: Mark? = null
val marksScrollList = MarksScrollingWidget(
pX = pX + 10,
pX = pX + 9,
pY = pY + 45,
setSelectedMark = {
if (hoveredMark != null) {
@@ -78,8 +78,15 @@ class JsonPose(model: PosableModel, json: JsonObject) {
it[2].asDouble
)
} ?: Vec3.ZERO
val scale = it.get("scale")?.asJsonArray?.let {
Vec3(
it[0].asDouble,
it[1].asDouble,
it[2].asDouble
)
} ?: Vec3(1.0,1.0,1.0)
val isVisible = it.get("isVisible")?.asString?.asExpressionLike()
return@map part.withPosition(position.x, position.y, position.z).withRotationDegrees(rotation.x, rotation.y, rotation.z).also { if (isVisible != null) it.withVisibility(isVisible) }
return@map part.withPosition(position.x, position.y, position.z).withRotationDegrees(rotation.x, rotation.y, rotation.z).withScale(scale.x, scale.y, scale.z).also { if (isVisible != null) it.withVisibility(isVisible) }
}?.toTypedArray() ?: arrayOf()
val idleAnimations = (json.get("animations")?.asJsonArray ?: JsonArray()).asJsonArray.mapNotNull {
@@ -17,6 +17,7 @@ import com.cobblemon.mod.common.api.molang.MoLangFunctions.addFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.setup
import com.cobblemon.mod.common.client.ClientMoLangFunctions.animationFunctions
import com.cobblemon.mod.common.client.ClientMoLangFunctions.setupClient
import com.cobblemon.mod.common.client.Test
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.client.render.AnimatedModelTextureSupplier
import com.cobblemon.mod.common.client.render.ModelLayer
@@ -40,7 +41,6 @@ import com.cobblemon.mod.common.entity.npc.NPCEntity
import com.cobblemon.mod.common.entity.pokeball.EmptyPokeBallEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.asExpressionLike
import com.cobblemon.mod.common.util.cobblemonResource
import com.cobblemon.mod.common.util.plus
import com.cobblemon.mod.common.util.toRGBA
import com.mojang.blaze3d.systems.RenderSystem
@@ -51,7 +51,6 @@ import com.mojang.blaze3d.vertex.VertexFormat
import com.mojang.math.Axis
import net.minecraft.client.Minecraft
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.client.player.RemotePlayer
import net.minecraft.client.renderer.MultiBufferSource
import net.minecraft.client.renderer.RenderStateShard
import net.minecraft.client.renderer.RenderType
@@ -59,7 +58,6 @@ import net.minecraft.client.renderer.texture.DynamicTexture
import net.minecraft.resources.ResourceLocation
import net.minecraft.util.Mth
import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.item.ItemDisplayContext
import net.minecraft.world.phys.Vec3
import org.joml.Matrix4f
@@ -96,6 +94,9 @@ open class PosableModel(@Transient override val rootPart: Bone) : ModelFrame {
open var profileScale = 1F
/** Used for third person riding camera */
open var seatToCameraOffset = mutableMapOf<String, Vec3>()
/**
* These are open-ended properties that can be used to store miscellaneous properties about the model.
*
@@ -532,7 +533,7 @@ open class PosableModel(@Transient override val rootPart: Bone) : ModelFrame {
/** Puts the model back to its original location and rotations. */
fun setDefault() {
defaultPositions.forEach { it.set() }
transformedParts.forEach { it.set() }
transformedParts.forEach { it.apply() }
}
/**
@@ -590,6 +591,9 @@ open class PosableModel(@Transient override val rootPart: Bone) : ModelFrame {
headYaw: Float,
headPitch: Float
) {
if (entity is PokemonEntity && entity.passengers.contains(Minecraft.getInstance().player) && Test.locked) {
return
}
context.put(RenderContext.ENTITY, entity)
setupEntityTypeContext(entity)
state.currentModel = this
@@ -8,6 +8,7 @@
package com.cobblemon.mod.common.client.render.models.blockbench
import com.cobblemon.mod.common.client.Test
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext
import com.cobblemon.mod.common.entity.PosableEntity
@@ -17,6 +18,7 @@ import net.minecraft.client.renderer.RenderType
import com.mojang.blaze3d.vertex.VertexConsumer
import net.minecraft.client.renderer.entity.LivingEntityRenderer
import com.mojang.blaze3d.vertex.PoseStack
import net.minecraft.client.Minecraft
import net.minecraft.client.model.EntityModel
import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.LivingEntity
@@ -92,4 +94,4 @@ abstract class PosableEntityModel<T : Entity>(
}
}
}
}
}
@@ -1,98 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation.Companion.X_AXIS
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class EeveeModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("eevee")
val body = getPart("body")
override val head = getPart("head")
override val hindRightLeg = getPart("leg_back_right")
override val hindLeftLeg = getPart("leg_back_left")
override val foreRightLeg = getPart("leg_front_right")
override val foreLeftLeg= getPart("leg_front_left")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.4, -0.54, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
lateinit var stand: Pose
lateinit var walk: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
override val cryAnimation = CryProvider { bedrockStateful("eevee", "cry") }
val shoulderOffset = 4
override fun registerPoses() {
val blink = quirk { bedrockStateful("eevee", "blink") }
stand = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("eevee", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("eevee", "ground_walk")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("eevee", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("eevee", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(X_AXIS, -shoulderOffset)
)
)
}
}
@@ -1,62 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FlareonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("flareon")
override val head = getPart("head")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.6, -0.45, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.36, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("flareon", "cry") }
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("flareon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("flareon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("flareon", "faint") else null
}
@@ -1,62 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class JolteonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("jolteon")
override val head = getPart("head")
override var portraitScale = 2.3F
override var portraitTranslation = Vec3(-0.55, -0.6, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.2, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("jolteon", "cry") }
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("jolteon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("jolteon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("jolteon", "faint") else null
}
@@ -1,129 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PidgeotModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("pidgeot")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override val head = getPart("neck")
private val wingOpenRight = getPart("wing_open_right")
private val wingOpenLeft = getPart("wing_open_left")
private val wingClosedRight = getPart("wing_closed_right")
private val wingClosedLeft = getPart("wing_closed_left")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.6, 0.15, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.4, 0.0)
// lateinit var sleep: CobblemonPose
lateinit var stand: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var hover: CobblemonPose
lateinit var fly: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("pidgeot", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("pidgeot", "blink")}
val flyQuirk1 = quirk { bedrockStateful("pidgeot", "air_fly_quirk") }
val flyQuirk2 = quirk { bedrockStateful("pidgeot", "air_fly_quirk2") }
// sleep = registerPose(
// poseName = "sleeping",
// transformedParts = arrayOf(
// wingClosedLeft.createTransformation().withVisibility(visibility = true),
// wingClosedRight.createTransformation().withVisibility(visibility = true),
// wingOpenLeft.createTransformation().withVisibility(visibility = false),
// wingOpenRight.createTransformation().withVisibility(visibility = false)
// ),
// poseType = PoseType.SLEEP,
// animations = arrayOf(bedrock("pidgeot", "sleep"))
// )
stand = registerPose(
poseName = "stand",
transformedParts = arrayOf(
wingClosedLeft.createTransformation().withVisibility(visibility = true),
wingClosedRight.createTransformation().withVisibility(visibility = true),
wingOpenLeft.createTransformation().withVisibility(visibility = false),
wingOpenRight.createTransformation().withVisibility(visibility = false)
),
poseTypes = PoseType.STATIONARY_POSES - PoseType.HOVER - PoseType.FLOAT + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("pidgeot", "ground_idle_PLACEHOLDER"),
)
)
walk = registerPose(
poseName = "walk",
transformedParts = arrayOf(
wingClosedLeft.createTransformation().withVisibility(visibility = true),
wingClosedRight.createTransformation().withVisibility(visibility = true),
wingOpenLeft.createTransformation().withVisibility(visibility = false),
wingOpenRight.createTransformation().withVisibility(visibility = false)
),
poseTypes = PoseType.MOVING_POSES - PoseType.FLY - PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("pidgeot", "ground_idle_PLACEHOLDER"),
BipedWalkAnimation(this)
)
)
hover = registerPose(
poseName = "floating",
transformedParts = arrayOf(
wingClosedLeft.createTransformation().withVisibility(visibility = false),
wingClosedRight.createTransformation().withVisibility(visibility = false),
wingOpenLeft.createTransformation().withVisibility(visibility = true),
wingOpenRight.createTransformation().withVisibility(visibility = true)
),
poseTypes = setOf(PoseType.FLOAT, PoseType.HOVER),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("pidgeot", "air_idle")
)
)
fly = registerPose(
poseName = "flying",
transformedParts = arrayOf(
wingClosedLeft.createTransformation().withVisibility(visibility = false),
wingClosedRight.createTransformation().withVisibility(visibility = false),
wingOpenLeft.createTransformation().withVisibility(visibility = true),
wingOpenRight.createTransformation().withVisibility(visibility = true)
),
poseTypes = setOf(PoseType.FLY, PoseType.SWIM),
quirks = arrayOf(blink, flyQuirk1, flyQuirk2),
animations = arrayOf(
singleBoneLook(),
bedrock("pidgeot", "air_fly")
)
)
}
}
@@ -1,84 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class VaporeonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("vaporeon")
override val head = getPart("head")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.6, -0.58, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.35, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var swimIdle: Pose
lateinit var swimMove: Pose
override val cryAnimation = CryProvider { bedrockStateful("vaporeon", "cry") }
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES - PoseType.FLOAT,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("vaporeon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = setOf(PoseType.WALK),
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("vaporeon", "ground_run")
)
)
swimIdle = registerPose(
poseName = "float",
poseTypes = setOf(PoseType.FLOAT),
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("vaporeon", "water_idle")
)
)
swimMove = registerPose(
poseName = "swim",
poseTypes = setOf(PoseType.SWIM),
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("vaporeon", "water_swim")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("vaporeon", "faint") else null
}
@@ -1,65 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class EspeonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("espeon")
override val head = getPart("head")
override var portraitScale = 2.15F
override var portraitTranslation = Vec3(-0.55, -0.43, 0.0)
override var profileScale = 0.81F
override var profileTranslation = Vec3(0.07, 0.59, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("espeon", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("espeon", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("espeon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("espeon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("espeon", "faint") else null
}
@@ -1,65 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class UmbreonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("umbreon")
override val head = getPart("head")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.6, -0.45, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.35, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("umbreon", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("umbreon", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("umbreon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("umbreon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("umbreon", "faint") else null
}
@@ -1,62 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class NosepassModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame {
override val rootPart = root.registerChildWithAllChildren("nosepass")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.1, -0.1, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(0.0, 0.65, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override fun registerPoses() {
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("nosepass", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
animations = arrayOf(
bedrock("nosepass", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
animations = arrayOf(
bedrock("nosepass", "ground_walk"),
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isNotPosedIn(sleep)) bedrockStateful("nosepass", "faint") else null
}
@@ -1,66 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TropiusModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("tropius")
override val head = getPart("neck")
override val foreLeftLeg= getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 1.31F
override var portraitTranslation = Vec3(-1.23, 5.01, 0.0)
override var profileScale = 0.28F
override var profileTranslation = Vec3(0.0, 1.26, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("tropius", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("tropius", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tropius", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tropius", "ground_idle"),
QuadrupedWalkAnimation(this, periodMultiplier = 0.7F, amplitudeMultiplier = 0.7F)
)
)
}
}
@@ -1,65 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class GlaceonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("glaceon")
override val head = getPart("head")
override var portraitScale = 2.4F
override var portraitTranslation = Vec3(-0.7, -0.75, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.35, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("glaceon", "cry") }
override fun registerPoses() {
// val blink = quirk { bedrockStateful("glaceon", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
// quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("glaceon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
// quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("glaceon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("glaceon", "faint") else null
}
@@ -1,106 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.WingFlapIdleAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.sineFunction
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.math.geometry.toRadians
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class HonchkrowModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BiWingedFrame {
override val rootPart = root.registerChildWithAllChildren("honchkrow")
override val head = getPart("head")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override val leftWing = getPart("wing_left")
override val rightWing = getPart("wing_right")
override var portraitScale = 3.4F
override var portraitTranslation = Vec3(-0.35, -1.2, 0.0)
override var profileScale = 1.2F
override var profileTranslation = Vec3(0.0, -0.05, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
lateinit var hover: Pose
lateinit var fly: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("honchkrow", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(
bedrock("honchkrow", "sleep")
)
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink), animations = arrayOf(
singleBoneLook(),
bedrock("honchkrow", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink), animations = arrayOf(
singleBoneLook(),
bedrock("honchkrow", "ground_idle"),
BipedWalkAnimation(this, amplitudeMultiplier = 0.8F, periodMultiplier = 0.7F)
// bedrock("honchkrow", "ground_walk")
)
)
hover = registerPose(
poseName = "hover",
poseType = PoseType.HOVER,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("honchkrow", "air_idle"),
WingFlapIdleAnimation(this,
flapFunction = sineFunction(verticalShift = -10F.toRadians(), period = 0.9F, amplitude = 0.6F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
)
)
)
fly = registerPose(
poseName = "fly",
poseType = PoseType.FLY,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("honchkrow", "air_fly"),
WingFlapIdleAnimation(this,
flapFunction = sineFunction(verticalShift = -14F.toRadians(), period = 0.9F, amplitude = 0.9F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
)
)
)
}
}
@@ -1,65 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LeafeonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("leafeon")
override val head = getPart("head")
override var portraitScale = 2.3F
override var portraitTranslation = Vec3(-0.7, -0.7, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.35, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("leafeon", "cry") }
override fun registerPoses() {
// val blink = quirk { bedrockStateful("leafeon", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
// quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("leafeon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
// quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("leafeon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("leafeon", "faint") else null
}
@@ -1,62 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ProbopassModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("probopass")
override var portraitScale = 1F
override var portraitTranslation = Vec3(0.0, 0.425, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(0.0, 0.7, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("probopass", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("probopass", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("probopass", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("probopass", "ground_walk"),
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isNotPosedIn(sleep)) bedrockStateful("probopass", "faint") else null
}
@@ -1,65 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class SylveonModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("sylveon")
override val head = getPart("head")
override var portraitScale = 2.4F
override var portraitTranslation = Vec3(-0.55, -0.45, 0.0)
override var profileScale = 0.85F
override var profileTranslation = Vec3(0.0, 0.43, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("sylveon", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("sylveon", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("sylveon", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("sylveon", "ground_run")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("sylveon", "faint") else null
}
@@ -46,7 +46,7 @@ class ModelPartTransformation(val modelPart: ModelPart) {
var visibility: ExpressionLike? = null
/** Applies the transformation to the model part. */
fun apply(state: PosableState, intensity: Float) {
fun apply(state: PosableState? = null, intensity: Float = 1f) {
modelPart.x += position[0] * intensity
modelPart.y += position[1] * intensity
modelPart.z += position[2] * intensity
@@ -56,7 +56,7 @@ class ModelPartTransformation(val modelPart: ModelPart) {
modelPart.xScale *= ((1 - scale[0]).absoluteValue * intensity) * (scale[0] - 1).sign + 1
modelPart.yScale *= ((1 - scale[1]).absoluteValue * intensity) * (scale[1] - 1).sign + 1
modelPart.zScale *= ((1 - scale[2]).absoluteValue * intensity) * (scale[2] - 1).sign + 1
visibility?.let { modelPart.visible = state.runtime.resolveBoolean(it) }
visibility?.let { modelPart.visible = state?.runtime?.resolveBoolean(it)?: defaultRuntime.resolveBoolean(it) }
}
fun set() {
@@ -229,10 +229,8 @@ object VaryingModelRepository {
inbuilt("raticate", ::RaticateModel)
inbuilt("rattata_alolan", ::RattataAlolanModel)
inbuilt("raticate_alolan", ::RaticateAlolanModel)
inbuilt("eevee", ::EeveeModel)
inbuilt("pidgey", ::PidgeyModel)
inbuilt("pidgeotto", ::PidgeottoModel)
inbuilt("pidgeot", ::PidgeotModel)
inbuilt("diglett", ::DiglettModel)
inbuilt("dugtrio", ::DugtrioModel)
inbuilt("zubat", ::ZubatModel)
@@ -274,7 +272,6 @@ object VaryingModelRepository {
inbuilt("farfetchd", ::FarfetchdModel)
inbuilt("farfetchd_galarian", ::FarfetchdGalarianModel)
inbuilt("fearow", ::FearowModel)
inbuilt("flareon", ::FlareonModel)
inbuilt("gengar", ::GengarModel)
inbuilt("geodude", ::GeodudeModel)
inbuilt("golbat", ::GolbatModel)
@@ -286,7 +283,6 @@ object VaryingModelRepository {
inbuilt("hitmonchan", ::HitmonchanModel)
inbuilt("hitmonlee", ::HitmonleeModel)
inbuilt("hypno", ::HypnoModel)
inbuilt("jolteon", ::JolteonModel)
inbuilt("jynx", ::JynxModel)
inbuilt("kabuto", ::KabutoModel)
inbuilt("kabutops", ::KabutopsModel)
@@ -333,7 +329,6 @@ object VaryingModelRepository {
inbuilt("tangela", ::TangelaModel)
inbuilt("tentacool", ::TentacoolModel)
inbuilt("tentacruel", ::TentacruelModel)
inbuilt("vaporeon", ::VaporeonModel)
inbuilt("venomoth", ::VenomothModel)
inbuilt("venonat", ::VenonatModel)
inbuilt("vulpix", ::VulpixModel)
@@ -344,15 +339,10 @@ object VaryingModelRepository {
inbuilt("smoochum", ::SmoochumModel)
inbuilt("hitmontop", ::HitmontopModel)
inbuilt("electivire", ::ElectivireModel)
inbuilt("glaceon", ::GlaceonModel)
inbuilt("leafeon", ::LeafeonModel)
inbuilt("lickilicky", ::LickilickyModel)
inbuilt("mimejr", ::MimejrModel)
inbuilt("scizor", ::ScizorModel)
inbuilt("tangrowth", ::TangrowthModel)
inbuilt("sylveon", ::SylveonModel)
inbuilt("umbreon", ::UmbreonModel)
inbuilt("espeon", ::EspeonModel)
inbuilt("blissey", ::BlisseyModel)
inbuilt("piloswine", ::PiloswineModel)
inbuilt("quagsire", ::QuagsireModel)
@@ -398,7 +388,6 @@ object VaryingModelRepository {
inbuilt("wailmer", ::WailmerModel)
inbuilt("wailord", ::WailordModel)
inbuilt("murkrow", ::MurkrowModel)
inbuilt("honchkrow", ::HonchkrowModel)
inbuilt("nacli", :: NacliModel)
inbuilt("naclstack", :: NaclstackModel)
inbuilt("garganacl", ::GarganaclModel)
@@ -485,8 +474,6 @@ object VaryingModelRepository {
inbuilt("magcargo", ::MagcargoModel)
inbuilt("slugma_shiny", ::SlugmaShinyModel)
inbuilt("magcargo_shiny", ::MagcargoShinyModel)
inbuilt("nosepass", ::NosepassModel)
inbuilt("probopass", ::ProbopassModel)
inbuilt("chinchou", ::ChinchouModel)
inbuilt("clamperl", ::ClamperlModel)
inbuilt("huntail", ::HuntailModel)
@@ -716,7 +703,6 @@ object VaryingModelRepository {
inbuilt("overqwil", ::OverqwilModel)
inbuilt("sneasel_hisuian", ::SneaselHisuianModel)
inbuilt("sneasler", ::SneaslerModel)
inbuilt("tropius", ::TropiusModel)
inbuilt("petilil", ::PetililModel)
inbuilt("lilligant", ::LilligantModel)
inbuilt("petilil_hisui_bias", ::PetililHisuiBiasModel)
@@ -11,18 +11,17 @@ package com.cobblemon.mod.common.client.render.player
import com.bedrockk.molang.runtime.value.DoubleValue
import com.cobblemon.mod.common.OrientationControllable
import com.cobblemon.mod.common.api.riding.Rideable
import com.cobblemon.mod.common.client.Test
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.client.render.models.blockbench.bedrock.animation.BedrockAnimationRepository
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.cobblemonResource
import com.mojang.blaze3d.vertex.PoseStack
import com.mojang.math.Axis
import net.minecraft.client.Minecraft
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.client.player.AbstractClientPlayer
import net.minecraft.client.player.RemotePlayer
import net.minecraft.util.Mth
import net.minecraft.world.phys.Vec3
import org.joml.Matrix3f
import org.joml.Matrix4f
import org.joml.Vector3f
@@ -47,15 +46,8 @@ object MountedPlayerRenderer {
val center = Vector3f(0f, entity.bbHeight/2, 0f)
val locatorOffsetToCenter = locatorOffset.sub(center, Vector3f())
val transformationMatrix = Matrix4f()
//if (player is Rollable && player.shouldRoll()){
//transformationMatrix.rotate(Axis.YP.rotationDegrees(-yBodyRot))
//transformationMatrix.mulLocal(player.orientation)
//}
val rotatedOffset = transformationMatrix.transformPosition(locatorOffsetToCenter, Vector3f()).add(center).sub(Vector3f(0f, player.bbHeight/2, 0f))
matrix.translate(rotatedOffset)
val offset = locatorOffsetToCenter.add(center, Vector3f()).sub(Vector3f(0f, player.bbHeight / 2, 0f))
matrix.translate(offset)
//Undo seat position
val playerPos = Vec3(
@@ -1,79 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.command
import com.cobblemon.mod.common.api.permission.CobblemonPermissions
import com.cobblemon.mod.common.api.text.red
import com.cobblemon.mod.common.api.text.text
import com.cobblemon.mod.common.client.render.models.blockbench.FloatingState
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.repository.VaryingModelRepository
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.permission
import com.cobblemon.mod.common.util.traceFirstEntityCollision
import com.mojang.brigadier.Command
import com.mojang.brigadier.CommandDispatcher
import com.mojang.brigadier.arguments.FloatArgumentType
import com.mojang.brigadier.arguments.StringArgumentType
import com.mojang.brigadier.context.CommandContext
import net.minecraft.commands.CommandSourceStack
import net.minecraft.commands.Commands
object ChangeJointScaleCommand {
fun register(dispatcher : CommandDispatcher<CommandSourceStack>) {
val command = Commands.literal("changejointscale")
.permission(CobblemonPermissions.CHANGE_JOINT_SCALE)
.then(
Commands.argument("joint", StringArgumentType.string())
.then(
Commands.argument("x", FloatArgumentType.floatArg())
.then(Commands.argument("y", FloatArgumentType.floatArg())
.then(
Commands.argument("z", FloatArgumentType.floatArg())
.executes(::execute)
)
)
)
.executes(::execute))
dispatcher.register(command)
}
private fun execute(context: CommandContext<CommandSourceStack>) : Int {
val jointName = StringArgumentType.getString(context, "joint")
val x = FloatArgumentType.getFloat(context, "x")
val y = FloatArgumentType.getFloat(context, "y")
val z = FloatArgumentType.getFloat(context, "z")
val player = context.source.playerOrException
val targetEntity = player.traceFirstEntityCollision(entityClass = PokemonEntity::class.java)
if (targetEntity == null) {
player.sendSystemMessage("No pokemon".red())
return 0
}
val state = FloatingState()
state.currentAspects = targetEntity.aspects
val model = VaryingModelRepository.getPoser(name = targetEntity.exposedSpecies.resourceIdentifier, state = state)
val part = model.relevantPartsByName[jointName]
?: run {
player.sendSystemMessage("No joint named $jointName".red())
return 0
}
val existing = model.transformedParts.find { it.modelPart == part }
if (existing == null) {
model.transformedParts = model.transformedParts + part.createTransformation().withScale(x, y, z)
} else {
existing.withScale(x, y, z)
}
player.sendSystemMessage("Changed scale of $jointName to $x, $y, $z".text())
return Command.SINGLE_SUCCESS
}
}
@@ -0,0 +1,72 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.command
import com.cobblemon.mod.common.api.permission.CobblemonPermissions
import com.cobblemon.mod.common.api.text.text
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.command.argument.ModelPartArgumentType
import com.cobblemon.mod.common.command.argument.TransformTypeArgumentType
import com.cobblemon.mod.common.command.argument.TransformTypeArgumentType.Companion.TransformType
import com.cobblemon.mod.common.util.permission
import com.mojang.brigadier.Command
import com.mojang.brigadier.CommandDispatcher
import com.mojang.brigadier.arguments.FloatArgumentType
import com.mojang.brigadier.context.CommandContext
import net.minecraft.commands.CommandSourceStack
import net.minecraft.commands.Commands
object TransformModelPartCommand {
fun register(dispatcher : CommandDispatcher<CommandSourceStack>) {
val command = Commands.literal("transformmodelpart")
.permission(CobblemonPermissions.TRANSFORM_MODEL_PART)
.then(Commands.argument("transform", TransformTypeArgumentType.transformType())
.then(Commands.argument("part", ModelPartArgumentType.modelPart())
.then(Commands.argument("x", FloatArgumentType.floatArg())
.then(Commands.argument("y", FloatArgumentType.floatArg())
.then(Commands.argument("z", FloatArgumentType.floatArg())
.executes(::execute)
)
)
)
.executes(::execute))
.executes(::execute))
dispatcher.register(command)
}
private fun execute(context: CommandContext<CommandSourceStack>) : Int {
val transformType = TransformTypeArgumentType.getTransform(context, "transform")
val targetModelPart = ModelPartArgumentType.getModelPart(context, "part")?: return 0
val x = FloatArgumentType.getFloat(context, "x")
val y = FloatArgumentType.getFloat(context, "y")
val z = FloatArgumentType.getFloat(context, "z")
val model = ModelPartArgumentType.getModel(context)?: return 0
val existing = model.transformedParts.find { it.modelPart == targetModelPart }
when (transformType) {
TransformType.POSITION -> {
if (existing != null) existing.withPosition(x, y, z)
else model.transformedParts += targetModelPart.createTransformation().withPosition(x, y, z)
}
TransformType.ROTATION -> {
if (existing != null) existing.withRotation(x, y, z)
else model.transformedParts += targetModelPart.createTransformation().withRotation(x, y, z)
}
TransformType.SCALE -> {
if (existing != null) existing.withScale(x, y, z)
else model.transformedParts += targetModelPart.createTransformation().withScale(x, y, z)
}
}
context.source.playerOrException.sendSystemMessage("Changed ${transformType.name.lowercase()} of ${context.getArgument("part", String::class.java )} to $x, $y, $z".text())
return Command.SINGLE_SUCCESS
}
}
@@ -0,0 +1,75 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.command.argument
import com.cobblemon.mod.common.api.text.red
import com.cobblemon.mod.common.client.render.models.blockbench.FloatingState
import com.cobblemon.mod.common.client.render.models.blockbench.PosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.repository.VaryingModelRepository
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.mojang.brigadier.StringReader
import com.mojang.brigadier.arguments.ArgumentType
import com.mojang.brigadier.context.CommandContext
import com.mojang.brigadier.suggestion.Suggestions
import com.mojang.brigadier.suggestion.SuggestionsBuilder
import net.minecraft.client.Minecraft
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.commands.CommandSourceStack
import net.minecraft.commands.SharedSuggestionProvider
import net.minecraft.world.phys.EntityHitResult
import net.minecraft.world.phys.HitResult.Type
import java.util.concurrent.CompletableFuture
class ModelPartArgumentType(): ArgumentType<String> {
override fun parse(reader: StringReader): String {
return reader.readString()
}
override fun <S : Any> listSuggestions(
context: CommandContext<S>,
builder: SuggestionsBuilder
): CompletableFuture<Suggestions> {
return SharedSuggestionProvider.suggest(getModelParts(context).keys.toList(),builder)
}
companion object {
fun modelPart() = ModelPartArgumentType()
fun <S: Any> getModel(context: CommandContext<S> ): PosableModel? {
if (context.source is SharedSuggestionProvider) {
val targetEntity = (Minecraft.getInstance().hitResult as? EntityHitResult)
?.takeIf { it.type == Type.ENTITY }
?.entity
//Could probably work for NPCs too with some changes
if (targetEntity is PokemonEntity) {
val state = FloatingState()
state.currentAspects = targetEntity.aspects
return VaryingModelRepository.getPoser(name = targetEntity.exposedSpecies.resourceIdentifier, state = state)
}
}
return null
}
private fun <S: Any> getModelParts(context: CommandContext<S>): MutableMap<String, ModelPart> {
val modelParts = getModel(context)?.relevantPartsByName?:mutableMapOf()
return modelParts
}
fun getModelPart(context: CommandContext<CommandSourceStack>, name: String): ModelPart? {
val partName = context.getArgument(name, String::class.java )
val part = getModelParts(context)[partName]
?: run {
context.source.playerOrException.sendSystemMessage("No joint named $partName".red())
return null
}
return part
}
}
}
@@ -0,0 +1,49 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.command.argument
import com.mojang.brigadier.StringReader
import com.mojang.brigadier.arguments.ArgumentType
import com.mojang.brigadier.context.CommandContext
import com.mojang.brigadier.exceptions.CommandSyntaxException
import com.mojang.brigadier.suggestion.SuggestionsBuilder
import net.minecraft.commands.CommandSourceStack
import net.minecraft.commands.SharedSuggestionProvider
class TransformTypeArgumentType: ArgumentType<TransformTypeArgumentType.Companion.TransformType>
{
override fun parse(reader: StringReader): TransformType {
try {
reader.readString()?.let { return TransformType.valueOf(it.uppercase()) }
}
catch (_: Exception) { }
throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherParseException().create(reader)
}
override fun getExamples() = EXAMPLES
override fun <S : Any> listSuggestions(context: CommandContext<S>, builder: SuggestionsBuilder) = SharedSuggestionProvider.suggest(EXAMPLES, builder)
companion object {
enum class TransformType {
POSITION,
ROTATION,
SCALE
}
fun transformType() = TransformTypeArgumentType()
fun getTransform(context: CommandContext<CommandSourceStack>, name: String): TransformType {
return context.getArgument(name, TransformType::class.java )
}
private val EXAMPLES = TransformType.entries.map { it.name.lowercase() }
}
}
@@ -17,9 +17,9 @@ import com.cobblemon.mod.common.pokeball.catching.calculators.CobblemonCaptureCa
import com.cobblemon.mod.common.util.adapters.CaptureCalculatorAdapter
import com.cobblemon.mod.common.util.adapters.IntRangeAdapter
import com.google.gson.GsonBuilder
import com.google.gson.annotations.SerializedName
import kotlin.reflect.full.memberProperties
import kotlin.reflect.jvm.isAccessible
import com.google.gson.annotations.SerializedName
class CobblemonConfig {
companion object {
@@ -259,6 +259,9 @@ class CobblemonConfig {
@CobblemonConfigField(Category.Interface, lang = "party_portrait_animations")
var partyPortraitAnimations = PortraitStyle.NEVER_ANIMATE
@CobblemonConfigField(Category.Riding, lang = "third_person_view_bobbing")
var thirdPartyViewBobbing = false
@CobblemonConfigField(Category.Riding, lang = "invert_roll")
var invertRoll = false
@@ -12,7 +12,6 @@ import com.bedrockk.molang.runtime.MoLangRuntime
import com.bedrockk.molang.runtime.value.DoubleValue
import com.cobblemon.mod.common.*
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.drop.DropTable
import com.cobblemon.mod.common.api.entity.Despawner
import com.cobblemon.mod.common.api.entity.PokemonSender
@@ -40,9 +39,14 @@ import com.cobblemon.mod.common.api.pokemon.feature.StringSpeciesFeature
import com.cobblemon.mod.common.api.pokemon.status.Statuses
import com.cobblemon.mod.common.api.reactive.ObservableSubscription
import com.cobblemon.mod.common.api.reactive.SimpleObservable
import com.cobblemon.mod.common.api.riding.*
import com.cobblemon.mod.common.api.riding.behaviour.*
import com.cobblemon.mod.common.api.riding.behaviour.types.*
import com.cobblemon.mod.common.api.riding.Rideable
import com.cobblemon.mod.common.api.riding.RidingProperties
import com.cobblemon.mod.common.api.riding.RidingStyle
import com.cobblemon.mod.common.api.riding.Seat
import com.cobblemon.mod.common.api.riding.behaviour.RidingBehaviour
import com.cobblemon.mod.common.api.riding.behaviour.RidingBehaviourSettings
import com.cobblemon.mod.common.api.riding.behaviour.RidingBehaviourState
import com.cobblemon.mod.common.api.riding.behaviour.RidingBehaviours
import com.cobblemon.mod.common.api.riding.events.SelectDriverEvent
import com.cobblemon.mod.common.api.riding.stats.RidingStat
import com.cobblemon.mod.common.api.scheduling.Schedulable
@@ -88,14 +92,8 @@ import com.cobblemon.mod.common.pokemon.evolution.variants.ItemInteractionEvolut
import com.cobblemon.mod.common.pokemon.feature.StashHandler
import com.cobblemon.mod.common.pokemon.properties.UncatchableProperty
import com.cobblemon.mod.common.util.*
import com.cobblemon.mod.common.util.math.geometry.toRadians
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
import com.mojang.serialization.Codec
import java.util.EnumSet
import java.util.Optional
import java.util.UUID
import java.util.concurrent.CompletableFuture
import kotlin.math.PI
import net.minecraft.core.BlockPos
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
@@ -146,8 +144,9 @@ import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.pathfinder.PathType
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3
import org.joml.Matrix3f
import org.joml.Vector3f
import java.util.*
import java.util.concurrent.CompletableFuture
import kotlin.math.PI
@Suppress("unused")
open class PokemonEntity(
@@ -252,7 +251,6 @@ open class PokemonEntity(
var enablePoseTypeRecalculation = true
// override var ridingController: RideController? = null
var previousRidingState: RidingBehaviourState? = null
var ridingState: RidingBehaviourState? = null
@@ -408,11 +406,7 @@ open class PokemonEntity(
SPECIES -> refreshDimensions()
POSE_TYPE -> {
val value = entityData.get(data) as PoseType
if ((value == PoseType.FLY || value == PoseType.HOVER) && passengers.isEmpty()) {
setNoGravity(true)
} else {
setNoGravity(false)
}
isNoGravity = (value == PoseType.FLY || value == PoseType.HOVER) && passengers.isEmpty()
}
BATTLE_ID -> {
@@ -485,7 +479,7 @@ open class PokemonEntity(
isPokemonFlying = flyDist - flyDistO > 0.005F
isPokemonWalking = walkDist - walkDistO > 0.005F
val isMoving = entityData.get(MOVING)
entityData.get(MOVING)
super.tick()
flyDistO = flyDist
@@ -1217,7 +1211,7 @@ open class PokemonEntity(
val possibleReturn = if (isCosmetic) this.pokemon.cosmeticItem.copy() else this.pokemon.heldItemNoCopy()
val giving = stack.copy().apply { count = 1 }
if (ItemStack.isSameItem(giving, possibleReturn)) {
if (ItemStack.isSameItemSameComponents(giving, possibleReturn)) {
val message = if (isCosmetic) {
lang("cosmetic_item.already_wearing", this.pokemon.getDisplayName(), stack.hoverName)
} else {
@@ -1234,28 +1228,12 @@ open class PokemonEntity(
}
val text = when {
isCosmetic && giving.isEmpty -> lang(
"cosmetic_item.take",
returned.hoverName,
this.pokemon.getDisplayName()
)
isCosmetic && returned.isEmpty -> lang(
"cosmetic_item.give",
this.pokemon.getDisplayName(),
giving.hoverName
)
!isCosmetic && giving.isEmpty -> lang("held_item.take", returned.hoverName, this.pokemon.getDisplayName())
!isCosmetic && returned.isEmpty -> lang("held_item.give", this.pokemon.getDisplayName(), giving.hoverName)
isCosmetic -> lang(
"cosmetic_item.replace",
returned.hoverName,
this.pokemon.getDisplayName(),
returned.hoverName
)
else -> lang("held_item.replace", returned.hoverName, this.pokemon.getDisplayName(), returned.hoverName)
isCosmetic && giving.isEmpty -> lang("cosmetic_item.take", returned.displayName, this.pokemon.getDisplayName())
isCosmetic && returned.isEmpty -> lang("cosmetic_item.give", this.pokemon.getDisplayName(), giving.displayName)
!isCosmetic && giving.isEmpty -> lang("held_item.take", returned.displayName, this.pokemon.getDisplayName())
!isCosmetic && returned.isEmpty -> lang("held_item.give", this.pokemon.getDisplayName(), giving.displayName)
isCosmetic -> lang("cosmetic_item.replace", returned.displayName, this.pokemon.getDisplayName(), giving.displayName)
else -> lang("held_item.replace", returned.displayName, this.pokemon.getDisplayName(), giving.displayName)
}
player.sendSystemMessage(text)
@@ -1466,7 +1444,7 @@ open class PokemonEntity(
// Copy and paste of how vanilla checks it, unfortunately no util method you can only add then wait for the result
fun hasRoomToMount(player: Player): Boolean {
return (player.shoulderEntityLeft.isEmpty || player.shoulderEntityRight.isEmpty)
&& !player.isPassenger()
&& !player.isPassenger
&& player.onGround()
&& !player.isInWater
&& !player.isInPowderSnow
@@ -1529,13 +1507,14 @@ open class PokemonEntity(
behaviour.velocity(settings, state, this, this.controllingPassenger as Player, deltaMovement)
}
//Handle ridden pokemon differently to allow vector lerp instead of simple addition.
val v = Entity.getInputVector(velocity, 1.0f, this.getYRot());
val v = getInputVector(velocity, 1.0f, this.yRot)
//changing this will give the ride more or less inertia/handling/drift
val inertia = ifRidingAvailableSupply(fallback = 0.5) { behaviour, settings, state ->
behaviour.inertia(settings, state,this)
}
// TODO: jackowes look over this so I don't accidentally break anything
// TODO: Talk to landon about why this was needed
this.deltaMovement = this.deltaMovement.lerp(v, inertia)
var pos = this.deltaMovement.scale(this.speed.toDouble())
if (super.onGround() && this.deltaMovement.y == 0.0) {
@@ -1563,14 +1542,35 @@ open class PokemonEntity(
if (beamMode != 3) { // Don't let Pokémon move during recall
//Prevent current travel logic when riding a pokemon.
/*
val riders = this.passengers.filterIsInstance<LivingEntity>()
if ( riders.isEmpty() ) {
if ( riders.isEmpty() || this.controllingPassenger == null) {
super.travel(movementInput)
}
*/
else {
val inp = ifRidingAvailableSupply(fallback = Vec3.ZERO) { behaviour, settings, state ->
behaviour.velocity(settings, state, this, this.controllingPassenger as Player, deltaMovement)
}
// Rotate velocity vector to face the current y rotation
val f = Mth.sin(this.yRot * 0.017453292f)
val g = Mth.cos(this.yRot * 0.017453292f)
val v = Vec3(
inp.x * g.toDouble() - inp.z * f.toDouble(),
inp.y,
inp.z * g.toDouble() + inp.x * f.toDouble()
)
val diff = v.subtract(this.deltaMovement)
val inertia = ifRidingAvailableSupply(fallback = 0.5) { behaviour, settings, state ->
behaviour.inertia(settings, state,this)
}
this.deltaMovement = this.deltaMovement.add( diff.scale(inertia) )
this.move(MoverType.SELF, this.deltaMovement)
}
super.travel(movementInput)
this.updateBlocksTraveled(prevBlockPos)
}
@@ -1582,7 +1582,7 @@ open class PokemonEntity(
private fun updateBlocksTraveled(fromBp: BlockPos) {
// Riding or falling shouldn't count, other movement sources are fine
if (this.isPassenger() || this.isFalling()) {
if (this.isPassenger || this.isFalling()) {
return
}
val blocksTaken = this.blockPosition().distSqr(fromBp)
@@ -1855,11 +1855,11 @@ open class PokemonEntity(
}
val rotation = behaviour.rotation(settings, state, this, driver)
this.yRotO = this.yRot
setRot(rotation.y, rotation.x)
this.yHeadRot = this.yRot
this.yBodyRot = this.yRot
this.yRotO = this.yRot
val riders = this.passengers.filterIsInstance<LivingEntity>()
this.passengers.filterIsInstance<LivingEntity>()
if (behaviour.isActive(settings, state, this) && behaviour.canJump(settings, state, this, driver)) {
if (this.jumpInputStrength > 0) {
@@ -1900,7 +1900,7 @@ open class PokemonEntity(
fun Entity.isNearGround(): Boolean {
val blockBelow: BlockPos = this.blockPosition().below()
return this.level().getBlockState(blockBelow).isSolid()
return this.level().getBlockState(blockBelow).isSolid
}
// override fun jump() {
@@ -1927,23 +1927,8 @@ open class PokemonEntity(
override fun positionRider(passenger: Entity, positionUpdater: MoveFunction) {
if (this.hasPassenger(passenger)) {
val index = this.passengers.indexOf(passenger).takeIf { it >= 0 && it < this.seats.size } ?: return
val seat = this.seats[index]
val seatOffset = seat.getOffset(this.getCurrentPoseType()).toVector3f()
val center = Vector3f(0f, this.bbHeight / 2, 0f)
this.delegate.positionRider(passenger, positionUpdater)
val seatToCenter = center.sub(seatOffset, Vector3f())
val matrix = (this.passengers.first() as? OrientationControllable)?.orientationController?.orientation
?: Matrix3f().rotate((180f - passenger.yRot).toRadians(), Vector3f(0f, 1f, 0f))
val rotatedOffset =
matrix.transform(seatToCenter, Vector3f()).add(center).sub(Vector3f(0f, passenger.bbHeight / 2, 0f))
positionUpdater.accept(
passenger,
this.x + rotatedOffset.x,
this.y + rotatedOffset.y,
this.z + rotatedOffset.z
)
if (passenger is LivingEntity) {
ifRidingAvailable { behaviour, settings, state ->
behaviour.updatePassengerRotation(settings, state,this, passenger)
@@ -2115,4 +2100,4 @@ open class PokemonEntity(
override fun resolveEntityScan(): LivingEntity {
return this
}
}
}
@@ -8,8 +8,8 @@
package com.cobblemon.mod.common.entity.pokemon
import com.cobblemon.mod.common.CobblemonNetwork
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.OrientationControllable
import com.cobblemon.mod.common.api.entity.PokemonSender
import com.cobblemon.mod.common.api.entity.PokemonSideDelegate
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
@@ -17,17 +17,15 @@ import com.cobblemon.mod.common.api.pokemon.stats.Stats
import com.cobblemon.mod.common.api.pokemon.status.Statuses
import com.cobblemon.mod.common.api.tags.CobblemonItemTags
import com.cobblemon.mod.common.battles.BattleRegistry
import com.cobblemon.mod.common.entity.PlatformType
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.net.messages.server.pokemon.update.ServerboundUpdateRidingStatePacket
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.pokemon.activestate.ActivePokemonState
import com.cobblemon.mod.common.pokemon.activestate.SentOutState
import com.cobblemon.mod.common.util.getIsSubmerged
import com.cobblemon.mod.common.util.math.geometry.toRadians
import com.cobblemon.mod.common.util.playSoundServer
import com.cobblemon.mod.common.util.update
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
import net.minecraft.client.Minecraft
import net.minecraft.network.chat.Component
import net.minecraft.network.syncher.EntityDataAccessor
import net.minecraft.server.level.ServerLevel
@@ -37,6 +35,8 @@ import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.ai.attributes.Attributes
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.pathfinder.PathType
import org.joml.Matrix3f
import org.joml.Vector3f
import java.util.*
/** Handles purely server logic for a Pokémon */
@@ -231,7 +231,7 @@ class PokemonServerDelegate : PokemonSideDelegate {
val isSleeping = entity.pokemon.status?.status == Statuses.SLEEP && entity.behaviour.resting.canSleep
val isMoving = entity.entityData.get(PokemonEntity.MOVING)
val isPassenger = entity.isPassenger()
val isPassenger = entity.isPassenger
val isUnderwater = entity.getIsSubmerged()
val isFlying = entity.getBehaviourFlag(PokemonBehaviourFlag.FLYING)
@@ -297,4 +297,28 @@ class PokemonServerDelegate : PokemonSideDelegate {
entity.remove(Entity.RemovalReason.KILLED)
}
}
override fun positionRider(
passenger: Entity,
positionUpdater: Entity.MoveFunction
) {
val index =
this.entity.passengers.indexOf(passenger).takeIf { it >= 0 && it < this.entity.seats.size } ?: return
val seat = this.entity.seats[index]
val seatOffset = seat.getOffset(this.entity.getCurrentPoseType()).toVector3f()
val center = Vector3f(0f, this.entity.bbHeight / 2, 0f)
val seatToCenter = center.sub(seatOffset, Vector3f())
val matrix = (this.entity.passengers.first() as? OrientationControllable)?.orientationController?.orientation
?: Matrix3f().rotate((180f - passenger.yRot).toRadians(), Vector3f(0f, 1f, 0f))
val offset =
matrix.transform(seatToCenter, Vector3f()).add(center).sub(Vector3f(0f, passenger.bbHeight / 2, 0f))
positionUpdater.accept(
passenger,
this.entity.x + offset.x,
this.entity.y + offset.y,
this.entity.z + offset.z
)
}
}
@@ -639,11 +639,7 @@ open class Pokemon : ShowdownIdentifiable {
val entity = PokemonEntity(level, this)
illusion?.start(entity)
val adjustedPosition = entity.getAjustedSendoutPosition(position)
val sentOut = entity.setPositionSafely(adjustedPosition)
//If sendout failed, fall back
if (!sentOut) {
entity.setPos(adjustedPosition.x, adjustedPosition.y, adjustedPosition.z)
}
entity.setPositionSafely(adjustedPosition)
mutation(entity)
level.addFreshEntity(entity)
state = SentOutState(entity)
@@ -694,7 +690,7 @@ open class Pokemon : ShowdownIdentifiable {
battleActor is EntityBackedBattleActor<*> && battleActor.entity != null && battleActor.entity?.uuid !== owner.uuid
} as EntityBackedBattleActor<*>
if (activeBattlePokemon != null) {
opposingEntityPos = ShowdownInterpreter.getSendoutPosition(battle, activeBattlePokemon, opposingEntityBattleActor as BattleActor)
opposingEntityPos = activeBattlePokemon.getSendOutPosition()
}
if (opposingEntityPos == null) {
// Sendout calculation failed, fallback to using the opposing actor's position
@@ -8,6 +8,8 @@
package com.cobblemon.mod.common.util
import com.cobblemon.mod.common.api.text.yellow
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.google.common.collect.ImmutableMap
import com.mojang.serialization.Dynamic
import net.minecraft.core.BlockPos
@@ -17,12 +19,20 @@ import net.minecraft.nbt.Tag
import net.minecraft.network.syncher.EntityDataAccessor
import net.minecraft.network.syncher.SynchedEntityData
import net.minecraft.world.entity.Entity
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.Blocks
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3
import net.minecraft.world.phys.shapes.BooleanOp
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.Shapes
import java.util.*
import kotlin.math.ceil
import kotlin.math.floor
import kotlin.math.min
import kotlin.time.measureTime
fun Entity.makeEmptyBrainDynamic() = Dynamic(
NbtOps.INSTANCE,
@@ -31,9 +41,76 @@ fun Entity.makeEmptyBrainDynamic() = Dynamic(
fun Entity.effectiveName() = this.displayName ?: this.name
private fun getPosScore(level: Level, entity: Entity, box: AABB, pos: BlockPos): Int {
// position the hitbox in the xz center of the block
val movedBox = box.move(Vec3(pos.x + 0.5, pos.y.toDouble(), pos.z + 0.5).subtract(box.bottomCenter))
return level.getBlockCollisions(entity, movedBox).count()
}
private fun findBestBlockPosBFS(
entity: Entity,
pos: Vec3,
level: Level,
maxRadius: Int = 4
): BlockPos {
val directions = listOf(
BlockPos(0, 1, 0), BlockPos(0, -1, 0), // Up and down
BlockPos(1, 0, 0), BlockPos(-1, 0, 0), // East and west
BlockPos(0, 0, 1), BlockPos(0, 0, -1) // North and south
)
val queue = ArrayDeque<BlockPos>()
val visited = mutableSetOf<BlockPos>()
val centerPos = BlockPos(if (pos.x > 0) pos.x.toInt() else floor(pos.x).toInt(), if (pos.y > 0) pos.y.toInt() else floor(pos.y).toInt(), if (pos.z > 0) pos.z.toInt() else floor(pos.z).toInt())
queue.add(centerPos)
var bestScore = Int.MAX_VALUE
var bestPos = centerPos
var deflatedBox = entity.boundingBox
val maxHeight = 3
val maxWidth = 3
// We deflate the box to make collision checks cheaper for large pokemon.
if(entity.bbWidth > maxWidth) {
deflatedBox = deflatedBox.deflate((entity.bbWidth - maxWidth) / 2.0, 0.0, (entity.bbWidth - maxWidth) / 2.0)
}
if(entity.bbHeight > maxHeight) {
deflatedBox = deflatedBox.deflate(0.0, (entity.bbWidth - maxHeight) / 2.0, 0.0)
}
while (queue.isNotEmpty()) {
val currentPos = queue.removeFirst()
if (currentPos in visited) continue
visited.add(currentPos)
val blockPosHasCollision = !level.getBlockState(currentPos).getCollisionShape(level, currentPos, CollisionContext.empty()).isEmpty
// Ignore blockPositions that have collision
val score = if (blockPosHasCollision) Int.MAX_VALUE else getPosScore(level, entity, deflatedBox, currentPos)
if (score == 0) {
// Position found with zero collisions, return immediately.
return currentPos
} else if (bestScore > score) {
// Only take better scores and ignore ties, ensures that positions closer to the original position win ties.
bestPos = currentPos
bestScore = score
}
// Add neighbors (up to maxRadius)
for (dir in directions) {
val neighbor = currentPos.offset(dir)
// stay within the max radius and do not path find into a wall
if (neighbor.distManhattan(centerPos) <= maxRadius && (blockPosHasCollision || level.getBlockState(neighbor).getCollisionShape(level, neighbor, CollisionContext.empty()).isEmpty)) {
queue.add(neighbor)
}
}
}
return bestPos
}
fun Entity.setPositionSafely(pos: Vec3): Boolean {
// TODO: Rework this function. Best way to do it would be to define a vertical and horizontal min/max shift based on the Pokemon's hitbox.
// Then loop through horizontal/vertical shifts, and detect collisions in three categories: suffocation, damaging blocks, and general collision
// Unmute to view how long the BFS algorithm takes to run
// val mute = false
// TODO: Rework this function. Detect collisions in three categories: suffocation, damaging blocks, and general collision
// The closest position with the least severe collision types will be selected to move the Pokemon to
// The throw could be cancelled if there are no viable locations without severe problems
@@ -52,117 +129,34 @@ fun Entity.setPositionSafely(pos: Vec3): Boolean {
// return true
// }
var result = pos
val eyes = pos.with(Direction.Axis.Y, pos.y + this.eyeHeight)
val box = boundingBox.move(pos.subtract(boundingBox.bottomCenter))
var box = boundingBox.move(pos)
val conflicts = mutableSetOf<Direction>()
if (!level().getBlockCollisions(this, box).iterator().hasNext()) {
if (level().noBlockCollision(this, box)) {
// Given position is valid so no need to do extra work
setPos(pos)
return true
}
for (target in BlockPos.betweenClosedStream(box)) {
val blockState = this.level().getBlockState(target)
val collides = !blockState.isAir &&
blockState.isSuffocating(this.level(), target) &&
Shapes.joinIsNotEmpty(blockState.getCollisionShape(this.level(), target)
.move(target.x.toDouble(), target.y.toDouble(), target.z.toDouble()),
Shapes.create(box),
BooleanOp.AND
)
if (collides) {
val x = eyes.toBlockPos()
for (direction in Direction.entries) {
if (conflicts.contains(direction)) continue
val bestBlockPosition: BlockPos
val result: Vec3
// val elapsedTime = measureTime {
val searchRadius = min(ceil((this.bbWidth * 2)).toInt(), 4)
bestBlockPosition = findBestBlockPosBFS(this, pos, level(), searchRadius)
result = Vec3(bestBlockPosition.x + 0.5, bestBlockPosition.y.toDouble(), bestBlockPosition.z + 0.5)
setPos(result)
// }
// if (!mute) {
// // Displays the time taken to calculate the best position
// server()?.playerList?.players?.forEach {
// it.sendSystemMessage("Send out for ${(this as PokemonEntity).pokemon.species.name} completed in $elapsedTime".yellow())
// }
// }
val conflict = target.toVec3d()
if (x.offset(direction.normal) == target) {
conflicts.add(direction)
when (direction) {
Direction.UP -> return false
Direction.NORTH -> {
result = result.add(Vec3(0.0, 0.0, 1 + (conflict.z - box.minZ + (1.0 / 8.0))))
}
Direction.SOUTH -> {
result = result.add(Vec3(0.0, 0.0, (conflict.z - box.maxZ) - (1.0 / 8.0)))
}
Direction.WEST -> {
result = result.add(Vec3(1 + (conflict.x - box.minX + (1.0 / 8.0)), 0.0, 0.0))
}
Direction.EAST -> {
result = result.add(Vec3((conflict.x - box.maxX) - (1.0 / 8.0), 0.0, 0.0))
}
else -> {}
}
}
}
}
}
box = boundingBox.move(result)
if (!level().getBlockCollisions(this, box).iterator().hasNext()) {
this.setPos(result)
return true
} else {
val yChanges = listOf(1.0, -1.0, 2.0, -2.0)
var previousChange = 0.0
// If the Pokemon still collides with blocks after horizontal shifting, try vertical shifting from the shifted position
for (yChange in yChanges) {
box = box.move(0.0, yChange - previousChange, 0.0)
previousChange = yChange
if (level().getBlockCollisions(this, box).iterator().hasNext()) {
continue
} else {
val roundedY = (result.y + yChange).toInt()
box = box.move(0.0, roundedY - result.y, 0.0)
// If the rounded position actually collides again, then don't round at all.
if (level().getBlockCollisions(this, box).iterator().hasNext()) {
result = result.add(0.0, yChange, 0.0)
this.setPos(result)
return true
} else {
result = Vec3(result.x, roundedY.toDouble(), result.z)
this.setPos(result)
return true
}
}
}
// If vertical shifting from the new position still collides, try vertical shifting from the original pos
previousChange = 0.0
box = boundingBox.move(pos)
for (yChange in yChanges) {
box = box.move(0.0, yChange - previousChange, 0.0)
previousChange = yChange
if (level().getBlockCollisions(this, box).iterator().hasNext()) {
continue
} else {
val roundedY = (result.y + yChange).toInt()
box = box.move(0.0, roundedY - result.y, 0.0)
// If the rounded position actually collides again, then don't round at all.
if (level().getBlockCollisions(this, box).iterator().hasNext()) {
result = result.add(0.0, yChange, 0.0)
this.setPos(result)
return true
} else {
result = Vec3(result.x, roundedY.toDouble(), result.z)
this.setPos(result)
return true
}
}
}
}
if (conflicts.size >= 3) {
this.setPos(pos)
}
// This final check guarantees that the sendout will return to the original position if the Pokemon will suffocate in the new one
// This will only happen if the horizontal shift moved the Pokemon into a suffocating position, and there was no valid vertical shift
// I don't see the point of returning to the original position here, as the new position is guaranteed to have equal or fewer
// block collisions are the original given position
// We will return whether the new position causes suffocation, and the caller can decide what to do with that info,
// but we will not revert the position here.
// Battle has too many use cases in which using the new position is the preferred outcome, even if it is dangerous.
val resultEyes = result.with(Direction.Axis.Y, result.y + this.eyeHeight)
val resultEyeBox = AABB.ofSize(resultEyes, bbWidth.toDouble(), 1.0E-6, bbWidth.toDouble())
var collides = false
@@ -174,18 +168,13 @@ fun Entity.setPositionSafely(pos: Vec3): Boolean {
Shapes.joinIsNotEmpty(
blockState.getCollisionShape(this.level(), target)
.move(target.x.toDouble(), target.y.toDouble(), target.z.toDouble()),
Shapes.create(box),
Shapes.create(resultEyeBox),
BooleanOp.AND
)
if (collides) break
}
if (collides) {
this.setPos(pos)
return true
} else {
this.setPos(result)
return true
}
this.setPos(result)
return !collides
}
fun Entity.isDusk(): Boolean {
@@ -43,7 +43,14 @@ object ModelPartTransformationAdapter : JsonDeserializer<ModelPartTransformation
it[2].asDouble
)
} ?: Vec3.ZERO
val scale = json.get("scale")?.asJsonArray?.let {
Vec3(
it[0].asDouble,
it[1].asDouble,
it[2].asDouble
)
} ?: Vec3(1.0,1.0,1.0)
val isVisible = json.get("isVisible")?.asString?.asExpressionLike()
return part.withPosition(position.x, position.y, position.z).withRotationDegrees(rotation.x, rotation.y, rotation.z).also { if (isVisible != null) it.withVisibility(isVisible) }
return part.withPosition(position.x, position.y, position.z).withRotationDegrees(rotation.x, rotation.y, rotation.z).withScale(scale.x, scale.y, scale.z).also { if (isVisible != null) it.withVisibility(isVisible) }
}
}
@@ -2741,14 +2741,6 @@
}
}
}
},
"animation.pidgeot.cry": {
"animation_length": 1.33333,
"sound_effects": {
"0.04": {
"effect": "pokemon.pidgeot.cry"
}
}
}
}
}
@@ -888,7 +888,7 @@
},
"sound_effects": {
"0.0": {
"effect": "pokemon.ponyta_galar.cry"
"effect": "pokemon.ponyta_galarian.cry"
}
}
},
@@ -1867,7 +1867,7 @@
},
"sound_effects": {
"0.1667": {
"effect": "pokemon.rapidash_galar.cry"
"effect": "pokemon.rapidash_galarian.cry"
}
}
},
@@ -2,522 +2,184 @@
"format_version": "1.8.0",
"animations": {
"animation.eevee.ground_idle": {
"loop": true,
"bones": {
"head": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0]
},
"ear_right": {
"rotation": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"]
},
"ear_left": {
"rotation": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"]
},
"tail": {
"rotation": ["math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0]
},
"leg_front_right": {
"rotation": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
},
"leg_front_left": {
"rotation": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
},
"leg_back_right": {
"rotation": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
},
"leg_back_left": {
"rotation": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*2)*0.2", 0, 0],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0]
}
}
},
"animation.eevee.ground_walk": {
"loop": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0]
},
"tail": {
"rotation": ["-5-math.sin(q.anim_time*90*4*2+60)*10", 0, 0],
"position": [0, 0, -0.5]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
-0.1,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0.1,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
"position": [0, -0.3, 0]
},
"ear_right": {
"rotation": [
"-30-5*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-2,2)",
5,
"-30+5*math.sin(q.anim_time*90*4*2-135)+math.clamp(4*math.sin(q.anim_time*90*4*2-90),-2,2)"
]
"rotation": [10, 0, 10]
},
"ear2_right": {
"rotation": [0, -10, 0]
},
"ear_left": {
"rotation": [
"-30-5*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-2,2)",
-5,
"30-5*math.sin(q.anim_time*90*4*2-135)-math.clamp(4*math.sin(q.anim_time*90*4*2-90),-2,2)"
]
"rotation": [10, 0, -10]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
"ear2_left": {
"rotation": [0, 10, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
"tail1": {
"rotation": [20, 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
"tail2": {
"rotation": [10, 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
"tail3": {
"rotation": [10, 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*20,0,10)-math.clamp(math.sin(-q.anim_time*90*8-90)*20,0,50)", 0, 0]
"tail4": {
"rotation": [10, 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
"front_leg_left": {
"rotation": [15, 0, 0],
"position": [0, -0.2, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
"elbow_left": {
"rotation": [-20, 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
}
}
},
"animation.eevee.special_attack": {
"loop": true,
"animation_length": 3,
"bones": {
"head": {
"rotation": {
"0.0": [0, 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"0.2083": [0, 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"1.0": [-17.5, 0, "0+math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"2.5": [-17.5, 0, "0+math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"2.6667": [2.5, 0, "0+math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"2.875": [-2.5, 0, "0+math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"],
"3.0": [0, 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
},
"position": {
"0.0": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"0.2083": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"0.9583": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"1.125": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", -0.1],
"1.3333": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"2.5": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"2.6667": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"2.875": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0],
"3.0": [0, "math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180-20)*0.01,-0.5,0.5)", 0]
}
"frontpaw_left": {
"rotation": [5, 0, 0]
},
"ear_right": {
"rotation": {
"0.0": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"0.2083": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"0.5833": [7.76316, 0, "0+(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"1.0": [-10, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"1.1667": [2.5, 0, "0+(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"1.4167": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"2.5": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"2.6667": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"2.875": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"3.0": [0, 0, "(math.sin(q.anim_time*90*4+90)*1-1)*1"]
}
"front_leg_right": {
"rotation": [15, 0, 0],
"position": [0, -0.2, 0]
},
"ear_left": {
"rotation": {
"0.0": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"0.2083": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"0.5833": [7.76316, 0, 1.86603],
"1.0": [-10, 0, "0-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"1.1667": [2.5, 0, "0-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"1.4167": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"2.5": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"2.6667": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"2.875": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"],
"3.0": [0, 0, "-(math.sin(q.anim_time*90*4+90)*1-1)*1"]
}
"elbow_right": {
"rotation": [-20, 0, 0]
},
"tail": {
"rotation": {
"0.0": ["math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"0.2083": ["math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"0.625": ["-20+math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"0.9167": ["12.5+math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"1.0833": ["22.5+math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"1.5417": ["12.5+math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"2.5": ["12.5+math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"2.875": ["math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0],
"3.0": ["math.clamp(3*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)*3", 0, 0]
}
"frontpaw_right": {
"rotation": [5, 0, 0]
},
"leg_front_right": {
"rotation": {
"0.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.2083": ["17.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.625": ["7.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.0": ["-12.4907-math.sin(q.anim_time*90*2)*0.2", 0.43399, 2.46207],
"2.5": ["-12.4907-math.sin(q.anim_time*90*2)*0.2", 0.43399, 2.46207],
"2.6667": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.875": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"3.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
}
"back_leg_left": {
"rotation": [7.5, 0, 0]
},
"leg_front_left": {
"rotation": {
"0.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.2083": ["17.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.625": ["7.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.0": ["-12.4907-math.sin(q.anim_time*90*2)*0.2", -0.43399, -2.46207],
"2.5": ["-12.4907-math.sin(q.anim_time*90*2)*0.2", -0.43399, -2.46207],
"2.6667": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.875": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"3.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
}
"ankle_left": {
"rotation": [-7.5, 0, 0]
},
"leg_back_right": {
"rotation": {
"0.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.2083": ["12.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.625": ["17.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.0": ["-14.9813-math.sin(q.anim_time*90*2)*0.2", 0.44221, 4.98047],
"2.5": ["-14.9813-math.sin(q.anim_time*90*2)*0.2", 0.44221, 4.98047],
"2.6667": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.875": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"3.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
}
"back_leg_right": {
"rotation": [7.5, 0, 0]
},
"leg_back_left": {
"rotation": {
"0.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.2083": ["12.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.625": ["17.5-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.0": ["-14.9813-math.sin(q.anim_time*90*2)*0.2", -0.44221, -4.98047],
"2.5": ["-14.9813-math.sin(q.anim_time*90*2)*0.2", -0.44221, -4.98047],
"2.6667": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.875": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0],
"3.0": ["-math.sin(q.anim_time*90*2)*0.2", 0, 0]
}
},
"torso": {
"rotation": {
"0.0": ["math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.2083": ["5+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"0.625": ["math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.0": ["5+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.125": ["7.5+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"1.4167": ["5+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.5": ["5+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.6667": ["10+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"2.875": ["-2.5+math.sin(q.anim_time*90*2)*0.2", 0, 0],
"3.0": ["math.sin(q.anim_time*90*2)*0.2", 0, 0]
},
"position": {
"0.0": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"0.2083": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"0.9583": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"1.0833": [0, "-0.2+math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", -0.2],
"1.25": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"2.5": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"2.6667": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"2.875": [0, "0.1+math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0],
"3.0": [0, "math.clamp(math.sin(q.anim_time*90*4+180)*0.02,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*4+180)*0.03,-0.5,0.5)", 0]
}
},
"body": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [0, 0, 0],
"0.625": [-12.5, 0, 0],
"1.0": [15, 0, 0],
"2.5": [15, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
},
"position": {
"0.0": [0, 0, 0],
"0.2083": [0, -0.6, -1.4],
"0.625": [0, 0, -0.9],
"1.0": [0, 0, 0],
"2.5": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"mouth_closed": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [0, 0, 0],
"1.0": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"0.9583": [0, 0, 0],
"1.0": [0, 0, -0.1],
"2.4583": [0, 0, -0.1],
"2.5": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"eyelid_right": {
"rotation": {
"0.0": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
},
"position": {
"0.0": [0, 0, 0],
"0.1667": [0, 0, 0],
"0.2083": [0, 0, -0.1],
"0.6667": [0, 0, -0.1],
"0.7083": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"eyelid_left": {
"rotation": {
"0.0": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
},
"position": {
"0.0": [0, 0, 0],
"0.1667": [0, 0, 0],
"0.2083": [0, 0, -0.1],
"0.6667": [0, 0, -0.1],
"0.7083": [0, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_front_right2": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [-10, 0, 0],
"0.625": [20, 0, 0],
"1.0": [-20, 0, 0],
"2.5": [-20, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_front_right3": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [0, 0, 0],
"0.625": [10, 0, 0],
"1.0": [19.97314, 1.60667, -1.91561],
"2.5": [19.97314, 1.60667, -1.91561],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_front_left2": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [-10, 0, 0],
"0.625": [20, 0, 0],
"1.0": [-20, 0, 0],
"2.5": [-20, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_front_left3": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [0, 0, 0],
"1.0": [19.97314, -1.60667, 1.91561],
"2.5": [19.97314, -1.60667, 1.91561],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_back_right2": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [-12.5, 0, 0],
"0.625": [-17.5, 0, 0],
"1.0": [20, 0, 0],
"2.5": [20, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_back_right3": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [0, 0, 0],
"0.625": [10, 0, 0],
"1.0": [15, 0, 0],
"2.5": [15, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_back_left2": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [-12.5, 0, 0],
"0.625": [-17.5, 0, 0],
"1.0": [20, 0, 0],
"2.5": [20, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
},
"leg_back_left3": {
"rotation": {
"0.0": [0, 0, 0],
"0.2083": [0, 0, 0],
"0.625": [10, 0, 0],
"1.0": [15, 0, 0],
"2.5": [15, 0, 0],
"2.6667": [0, 0, 0],
"2.875": [0, 0, 0],
"3.0": [0, 0, 0]
}
"ankle_right": {
"rotation": [-7.5, 0, 0]
}
}
},
"animation.eevee.blink": {
"animation_length": 0.16667,
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.1667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
}
}
},
"animation.eevee.cry": {
"animation_length": 1.25,
"animation.eevee.pose": {
"loop": true,
"bones": {
"body": {
"position": [0, 1, 0]
},
"torso": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [-17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [10, 0, 0]
},
"waist": {
"rotation": [-7.5, 0, 0]
},
"tail1": {
"rotation": [27.5, 0, 0]
},
"tail2": {
"rotation": [-17.5, 0, 0]
},
"tail3": {
"rotation": [25, 0, 0]
},
"tail4": {
"rotation": [27.5, 0, 0]
},
"neck": {
"rotation": [2.5, 0, 0]
},
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [-20, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [-5, 0, 0]
},
"mouth_open": {
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.0833": {
"effect": "pokemon.eevee.cry"
"hair_left": {
"rotation": [-62.5, 0, 0]
},
"ear_left": {
"rotation": [30, -22.5, 0]
},
"ear2_left": {
"rotation": [0, -22.5, 0]
},
"ear_right": {
"rotation": [43.09472, 22.29711, 8.11003]
},
"ear2_right": {
"rotation": [0, 22.5, 0]
},
"back_leg_right": {
"rotation": [34.89743, -2.86544, 4.09918]
},
"knee_right": {
"rotation": [15, 0, 0]
},
"ankle_right": {
"rotation": [2.5, 0, 0]
},
"backpaw_right": {
"rotation": [25, 0, 0]
},
"back_leg_left": {
"rotation": [59.90532, 4.32875, -2.50477]
},
"knee_left": {
"rotation": [-15, 0, 0]
},
"ankle_left": {
"rotation": [20, 0, 0]
},
"backpaw_left": {
"rotation": [50, 0, 0]
},
"front_leg_right": {
"rotation": [2.5, 0, 0]
},
"elbow_right": {
"rotation": [-14.89445, 3.9649, 3.04868]
},
"frontpaw_right": {
"rotation": [7.5, 0, 0]
},
"front_leg_left": {
"rotation": [-5, 0, 0]
},
"elbow_left": {
"rotation": [-4.79887, -3.45533, -6.66067]
},
"frontpaw_left": {
"rotation": [-15, 0, 0]
},
"mouth_open_happy": {
"position": [0, -0.38, -0.1]
},
"head_angle": {
"rotation": [0, 0, 0]
}
}
}
@@ -3,732 +3,151 @@
"animations": {
"animation.jolteon.ground_idle": {
"loop": true,
"override_previous_animation": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
},
"ear_right": {
"rotation": [0, 0, "-math.sin(q.anim_time*90*2+90)+0.5*math.clamp(math.sin(q.anim_time*90*2-90),-0.5,0.5)"]
},
"ear_left": {
"rotation": [0, 0, "math.sin(q.anim_time*90*2+90)-0.5*math.clamp(math.sin(q.anim_time*90*2-90),-0.5,0.5)"]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
},
"ruff": {
"rotation": [0, "-2*math.sin(q.anim_time*90*4)+math.clamp(3*math.sin(q.anim_time*90*4),-3,3)", 0]
},
"spikes": {
"rotation": [0, "-2*math.sin(q.anim_time*90*4+90)+math.clamp(3*math.sin(q.anim_time*90*4+90),-3,3)", 0]
}
}
},
"animation.jolteon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"ear_right": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
"position": [0, -0.8, 0]
},
"ear_left": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"-0.5*math.sin(q.anim_time*90*8+45)-0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
},
"ruff": {
"rotation": [0, "-2*math.sin(q.anim_time*90*4)+math.clamp(2*math.sin(q.anim_time*90*4),-2,2)", 0]
},
"spikes": {
"rotation": [0, "-2*math.sin(q.anim_time*90*4+90)+math.clamp(3*math.sin(q.anim_time*90*4+90),-3,3)", 0]
}
}
},
"animation.jolteon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
"rotation": [20, -30, 0]
},
"ear_right": {
"rotation": [
"-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
"5+math.sin(q.anim_time*90*4*2+45)+math.clamp(math.sin(q.anim_time*90*4*2+90),-1,1)",
0
]
"rotation": [20, 30, 0]
},
"ear_left": {
"rotation": [
"-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
"-5-math.sin(q.anim_time*90*4*2+45)-math.clamp(math.sin(q.anim_time*90*4*2+90),-1,1)",
0
]
"front_leg_left": {
"rotation": [7.5, -2.5, -5]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-70)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*10,5,70)+5", 0, 0]
"elbow_left": {
"rotation": [-22.5, 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8+15),1,1)", 0, 0]
"frontpaw_left": {
"rotation": [15, 0, 5]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-70+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8-30+180+30)*10,5,70)+5", 0, 0]
"front_leg_right": {
"rotation": [7.5, 2.5, 5]
},
"leg_front_left3": {
"rotation": ["12*math.sin(q.anim_time*90*8-15+30)-math.clamp(math.sin(q.anim_time*90*8-30+30),1,1)", 0, 0]
"elbow_right": {
"rotation": [-22.5, 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*20,0,10)-math.clamp(math.sin(-q.anim_time*90*8-90)*20,0,50)", 0, 0]
"frontpaw_right": {
"rotation": [15, 0, -5]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
"backleg_left": {
"rotation": [7.5, -5, -7.5]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
"ankle_left": {
"rotation": [-12.5, 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
"foot_left": {
"rotation": [5, 0, 7.5]
},
"ruff": {
"rotation": ["-2.5-math.sin(q.anim_time*90*4*2+30)*7", 0, 0]
"backleg_right": {
"rotation": [7.5, 5, 7.5]
},
"spikes": {
"rotation": ["-math.sin(q.anim_time*90*4*2+45)*9", 0, 0]
"ankle_right": {
"rotation": [-12.5, 0, 0]
},
"foot_right": {
"rotation": [5, 0, -7.5]
}
}
},
"animation.jolteon.blink": {
"animation_length": 0.1667,
"bones": {
"eye_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.jolteon.render": {
"animation.jolteon.hold_item": {
"loop": true,
"bones": {
"torso": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right": {
"rotation": [0, 0, -5]
},
"leg_front_right2": {
"rotation": [0, 0, 5]
},
"leg_front_left": {
"rotation": [0, 0, 7.5]
},
"leg_front_left2": {
"rotation": [0, 0, -7.5]
"jaw": {
"rotation": [32.5, 0, 0]
}
}
},
"animation.jolteon.cry": {
"animation_length": 1.45833,
"animation.jolteon.pose": {
"loop": true,
"bones": {
"body": {
"rotation": [0, 47.5, 0]
},
"torso": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [20, 0, 0]
},
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-12.94747, 4.87543, -0.82759],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-12.37673, 4.88568, -1.06437],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-6.31372, -6.71183, -0.23449],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"torso2": {
"rotation": [-2.5, 0, 0]
},
"mouth": {
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"torso3": {
"rotation": [-22.5, 0, 0]
},
"leg_back_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32729, -0.18404],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"head_angle": {
"rotation": [12.5, -32.5, 27.5]
},
"leg_back_right2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32189, -0.47184],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
}
}
"front_leg_left": {
"rotation": [40, 0, 0]
},
"leg_back_right3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"elbow_left": {
"rotation": [-45, 0, 0]
},
"leg_back_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32729, -0.18404],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"frontpaw_left": {
"rotation": [85, 0, 0]
},
"leg_back_left2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32189, -0.47184],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
}
}
"front_leg_right": {
"rotation": [-17.5, -5, -7.5],
"position": [0, -1, 0]
},
"leg_back_left3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"elbow_right": {
"rotation": [7.5, 0, 0]
},
"tail": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"frontpaw_right": {
"rotation": [10, 0, 10]
},
"leg_front_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, 0.75, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"backleg_left": {
"rotation": [25, -10, -7.5]
},
"leg_front_right2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"ankle_left": {
"rotation": [52.5, 0, 0]
},
"leg_front_right3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"foot_left": {
"rotation": [47.5, 0, 0]
},
"leg_front_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, 0.75, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"backleg_right": {
"rotation": [50, 7.5, 7.5]
},
"leg_front_left2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"ankle_right": {
"rotation": [40, 0, 0]
},
"leg_front_left3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -7.5, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [0, 10, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"foot_right": {
"rotation": [22.5, 0, 0]
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -12.5, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [0, 7.5, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [37.5, -37.5, 0]
},
"jaw": {
"rotation": {
"0.0": [0, 0, 0],
"0.1667": [35, 0, 0],
"1.3333": [0, 0, 0]
}
},
"ruff": {
"scale": 1
},
"spikes": {
"scale": 1
}
},
"sound_effects": {
"0.125": {
"effect": "pokemon.jolteon.cry"
"ear_right": {
"rotation": [37.5, 37.5, 0]
}
}
}
@@ -3,744 +3,267 @@
"animations": {
"animation.flareon.ground_idle": {
"loop": true,
"override_previous_animation": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
},
"ear_right": {
"rotation": [0, 0, "-math.sin(q.anim_time*90*2+90)+math.clamp(math.sin(q.anim_time*90*2-90),-1,1)"]
},
"ear_left": {
"rotation": [0, 0, "math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-1,1)"]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
},
"tail": {
"rotation": [
"math.clamp(1*(math.sin(q.anim_time*90*2+90)*1-1),0,7)-(math.sin(q.anim_time*90*2+90)*1)",
"(math.sin(q.anim_time*90*2)*1)+(math.sin(q.anim_time*90*2/2)*1)",
0
]
},
"ruff": {
"rotation": [0, "-2*math.sin(q.anim_time*90*2)+math.clamp(3*math.sin(q.anim_time*90*2),-3,3)", 0]
}
}
},
"animation.flareon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"ear_right": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
"position": [0, -0.3, 0]
},
"ear_left": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"-0.5*math.sin(q.anim_time*90*8+45)-0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
},
"ruff": {
"rotation": [0, "-2*math.sin(q.anim_time*90*4)+math.clamp(2*math.sin(q.anim_time*90*4),-2,2)", 0]
}
}
},
"animation.flareon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
"rotation": [25, -30, 0]
},
"ear_right": {
"rotation": [
"-5-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
"5+2*math.sin(q.anim_time*90*4*2+45)+math.clamp(2*math.sin(q.anim_time*90*4*2+90),-2,2)",
0
]
},
"ear_left": {
"rotation": [
"-5-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
"-5-2*math.sin(q.anim_time*90*4*2+45)-math.clamp(2*math.sin(q.anim_time*90*4*2+90),-2,2)",
0
]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,50)", 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
"rotation": [25, 30, 0]
},
"tail": {
"rotation": ["-15-math.sin(q.anim_time*90*4*2+45)*4", 0, 0]
"rotation": [25, 0, 0]
},
"ruff": {
"rotation": ["-math.sin(q.anim_time*90*4*2+30)*2", 0, 0]
"tail4": {
"rotation": [5, 0, 0]
},
"tail5": {
"rotation": [10, 0, 0]
},
"tail6": {
"rotation": [5, 0, 0]
},
"front_leg_left": {
"rotation": [5, 0, -5]
},
"elbow_left": {
"rotation": [-10, 0, 0]
},
"frontpaw_left": {
"rotation": [5, 0, 5]
},
"front_leg_right": {
"rotation": [5, 0, 5]
},
"elbow_right": {
"rotation": [-10, 0, 0]
},
"frontpaw_right": {
"rotation": [5, 0, -5]
},
"back_leg_left": {
"rotation": [5, -2.5, -5]
},
"ankle_left": {
"rotation": [-5, 0, 0]
},
"foot_left": {
"rotation": [0, 0, 5]
},
"back_leg_right": {
"rotation": [5, 2.5, 5]
},
"ankle_right": {
"rotation": [-5, 0, 0]
},
"foot_right": {
"rotation": [0, 0, -5]
}
}
},
"animation.flareon.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"eye_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": [0, 0, 0]
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.flareon.render": {
"animation.flareon.pose": {
"loop": true,
"bones": {
"torso": {
"rotation": [20, 0, 0],
"position": [0, -1, 0]
"headfur1": {
"rotation": [-2.32648, -2.86313, -6.93488]
},
"tail": {
"rotation": [-27.5, 0, 0]
"ear1_left": {
"rotation": [-4.29907, -5.86145, 44.84339]
},
"tail1": {
"rotation": [64.62786, 7.28488, -7.16943]
},
"tail2": {
"rotation": [7.5, 0, 0]
"rotation": [0, 15, 0]
},
"leg_front_right": {
"rotation": [-23, 0, 0]
"tail4": {
"rotation": [17.5, 17.5, 0]
},
"leg_front_right2": {
"rotation": [19, 0, 0]
"tail5": {
"rotation": [17.5, 10, 0]
},
"leg_front_left": {
"rotation": [20.5, 0, 0],
"position": [0, -1.3, 0]
"tail6": {
"rotation": [0, 27.5, 0]
},
"leg_front_left2": {
"rotation": [-27.5, 0, 0]
"body": {
"rotation": [0, 35, 0],
"position": [0, -0.75, 0]
},
"leg_front_left3": {
"rotation": [10, 0, 0]
},
"leg_back_right": {
"rotation": [-12.5, 0, 0]
},
"leg_back_left": {
"rotation": [17.5, 0, 0]
},
"leg_back_left2": {
"rotation": [-12.5, 0, 0]
}
}
},
"animation.flareon.cry": {
"animation_length": 1.45833,
"bones": {
"torso": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [2.5, 0, 0],
"position": [0, 1, 0]
},
"mane_main": {
"rotation": [-1.68086, -6.89591, 4.97567]
},
"manefur1_left": {
"rotation": [0, 0, 45]
},
"manefur2_left": {
"rotation": [0, 0, 67.5]
},
"manefur3_left": {
"rotation": [0, 0, 90]
},
"manefur1_right": {
"rotation": [0, 0, -45]
},
"manefur2_right": {
"rotation": [0, 0, -67.5]
},
"manefur3_right": {
"rotation": [0, 0, -90]
},
"manefur1": {
"rotation": [-22.5, 0, 0]
},
"manefur2": {
"rotation": [-67.5, 0, 0]
},
"manefur3": {
"rotation": [-90, 0, 0]
},
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-12.94747, 4.87543, -0.82759],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-12.37673, 4.88568, -1.06437],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-6.31372, -6.71183, -0.23449],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [1.44098, -29.18067, 33.5351]
},
"mouth": {
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"ear3_left": {
"rotation": [-45, 0, 0]
},
"leg_back_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32729, -0.18404],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"waist": {
"rotation": [7.5, 0, 0]
},
"leg_back_right2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32189, -0.47184],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
}
}
"torso2": {
"rotation": [0.99736, 4.89966, 6.88728]
},
"leg_back_right3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"shoulder_left": {
"rotation": [-22.5, 0, 0],
"position": [-1, 0, -1]
},
"leg_back_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32729, -0.18404],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"elbow_left": {
"rotation": [-60, 0, 0]
},
"leg_back_left2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.32189, -0.47184],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, -0.03502, -0.03301],
"lerp_mode": "catmullrom"
}
}
"frontpaw_left": {
"rotation": [117.5, 0, 0]
},
"leg_back_left3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"thigh_left": {
"rotation": [27.78445, 24.4963, -1.02058],
"position": [0, 0, -1]
},
"ankle_left": {
"rotation": [-15, 0, 0]
},
"foot_left": {
"rotation": [-5, 0, 0],
"position": [0, 0, 0]
},
"eyes_closed": {
"position": [0, 0, -1]
},
"mouth_o": {
"position": [0, 0, 0]
},
"eyes_open": {
"position": [0, 0, 0]
},
"eyes_halfclosed": {
"position": [0, 0, 0]
},
"eyelid_halfclosed_right": {
"position": [0, 0, 0]
},
"eyelid_halfclosed_left": {
"position": [0, 0, 0]
},
"fur_tail_right2": {
"rotation": [0, 22.5, 0]
},
"thigh_right": {
"rotation": [-15, 0, 0]
},
"shoulder_right": {
"rotation": [-10, 0, 0],
"position": [-1, -1, 0]
},
"elbow_right": {
"rotation": [-35, 0, 0]
},
"frontpaw_right": {
"rotation": [27.5, 0, 0]
},
"knee_right": {
"rotation": [-27.5, 0, 0]
},
"ankle_right": {
"rotation": [42.5, 0, 0]
},
"torso1": {
"rotation": [10, 0, 0]
},
"ear1_right": {
"rotation": [-19.71092, 2.99333, -7.87628]
},
"ear3_right": {
"rotation": [-45, 0, 0]
},
"torso3": {
"rotation": [-17.5, 0, 0]
},
"front_leg_left": {
"rotation": [10, -20, -12.5],
"position": [0, 0, 1]
},
"back_leg_left": {
"rotation": [20, -7.5, 0]
},
"foot_right": {
"rotation": [-62.5, 0, -7.5],
"position": [0, 1, -1]
},
"tail": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [25, -12.5, 0]
},
"leg_front_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, 0.75, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"back_leg_right": {
"rotation": [50.435, 12.7313, 6.61102]
},
"leg_front_right2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"leg_front_right3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"leg_front_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, 0.75, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"leg_front_left2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"leg_front_left3": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -7.5, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [0, 10, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"tail3": {
"rotation": [0, 17.5, 0]
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -12.5, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [0, 7.5, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [37.5, -27.5, 0]
},
"jaw": {
"rotation": {
"0.0": [0, 0, 0],
"0.1667": [35, 0, 0],
"1.3333": [0, 0, 0]
}
},
"ruff": {
"scale": 1
},
"spikes": {
"scale": 1
}
},
"sound_effects": {
"0.125": {
"effect": "pokemon.flareon.cry"
"ear_right": {
"rotation": [37.5, 27.5, 0]
}
}
}
@@ -3,480 +3,191 @@
"animations": {
"animation.espeon.ground_idle": {
"loop": true,
"override_previous_animation": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
},
"ear_right": {
"rotation": [0, "5-2*math.sin(q.anim_time*90*2+90)+math.clamp(math.sin(q.anim_time*90*2-90),-2,2)", 0]
},
"ear_left": {
"rotation": [0, "-5+2*math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-2,2)", 0]
},
"tail": {
"rotation": [25, "6*(math.sin(q.anim_time*90*2)*1)+6*(math.sin(q.anim_time*90*2/2)*1)", 0]
},
"tail2": {
"rotation": [25, "6*(math.sin(q.anim_time*90*2-30)*1)+6*(math.sin(q.anim_time*90*2/2-30)*1)", 0]
},
"tail4": {
"rotation": [-10, "8*(math.sin(q.anim_time*90*2-90)*1)+6*(math.sin(q.anim_time*90*2/2-90)*1)", 0]
},
"fur_left": {
"rotation": [0, "-2.5+2*math.sin(q.anim_time*90*2+45)", "1.5*math.sin(q.anim_time*90*2-180)"]
},
"fur_right": {
"rotation": [0, "2.5-2*math.sin(q.anim_time*90*2+45)", "-1.5*math.sin(q.anim_time*90*2+180)"]
},
"tail5": {
"rotation": [-15, "12*(math.sin(q.anim_time*90*2-120)*1)+6*(math.sin(q.anim_time*90*2/2-120)*1)", 0]
},
"tail7": {
"rotation": ["4*(math.sin(q.anim_time*90*2-180)*1)+3*(math.sin(q.anim_time*90*2/2-180)*1)", 0, 0]
},
"tail3": {
"rotation": [20, "6*(math.sin(q.anim_time*90*2-60)*1)+6*(math.sin(q.anim_time*90*2/2-60)*1)", 0]
},
"tail6": {
"rotation": [
"-20+4*(math.sin(q.anim_time*90*2)*1)+3*(math.sin(q.anim_time*90*2/2)*1)",
"10*(math.sin(q.anim_time*90*2-150)*1)+6*(math.sin(q.anim_time*90*2/2-150)*1)",
0
]
},
"tail8": {
"rotation": [
"-10+4*(math.sin(q.anim_time*90*2)*1)+3*(math.sin(q.anim_time*90*2/2)*1)",
"10*(math.sin(q.anim_time*90*2-150)*1)+6*(math.sin(q.anim_time*90*2/2-150)*1)",
0
]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
}
}
},
"animation.espeon.cry": {
"animation_length": 1.54167,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [-8, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [-8, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-14.40833, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": [0, 0, 0]
}
},
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, 0, 0],
"0.0833": [0, 0, -0.1],
"0.3333": [0, 0, -0.1],
"0.375": [0, 0, 0],
"0.5": [0, 0, -0.1],
"0.5417": [0, 0, -0.1],
"1.0833": [0, 0, -0.1],
"1.125": [0, 0, 0]
}
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [0, 0, 10],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [0, 0, -10],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"fur_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [0.09882, -9.99016, 2.04498],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0.73184, -7.36624, -0.42175],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [0.066, -7.49269, 2.16229],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": [0, 0, 0]
}
}
},
"sound_effects": {
"0.0833": {
"effect": "pokemon.espeon.cry"
}
}
},
"animation.espeon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"ear_right": {
"rotation": [0, "5+math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-2,2)", 0]
},
"ear_left": {
"rotation": [0, "-5-math.sin(q.anim_time*90*8+45)-math.clamp(math.sin(q.anim_time*90*8+90),-2,2)", 0]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
},
"fur_left": {
"rotation": [0, -5, "-math.sin(q.anim_time*90*8+90)-math.clamp(math.sin(q.anim_time*90*8+90),-2,2)"]
},
"fur_right": {
"rotation": [0, 5, "math.sin(q.anim_time*90*8+90)+math.clamp(math.sin(q.anim_time*90*8+90),-2,2)"]
}
}
},
"animation.espeon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
"position": [0, -0.1, 0]
},
"tail": {
"rotation": ["5-math.sin(q.anim_time*90*4*2+30)*4", 0, 0]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"ear_right": {
"rotation": [
0,
"15+5*math.sin(q.anim_time*90*4*2+45)+math.clamp(4*math.sin(q.anim_time*90*4*2+90),-2,2)",
"math.sin(q.anim_time*90*4*2-135)+math.clamp(4*math.sin(q.anim_time*90*4*2-90),-2,2)"
]
},
"ear_left": {
"rotation": [
0,
"-15-5*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-2,2)",
"-math.sin(q.anim_time*90*4*2-135)-math.clamp(4*math.sin(q.anim_time*90*4*2-90),-2,2)"
]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
"rotation": [25, -12.5, 0]
},
"tail2": {
"rotation": ["2.5-math.sin(q.anim_time*90*4*2)*4", 0, 0]
},
"tail4": {
"rotation": ["-2.5-math.sin(q.anim_time*90*4*2-30)*4", 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,50)", 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
},
"fur_left": {
"rotation": [
0,
"-10-5*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-2,2)",
"-2*math.sin(q.anim_time*90*4*2-135)-math.clamp(4*math.sin(q.anim_time*90*4*2-90),-2,2)"
]
},
"fur_right": {
"rotation": [
0,
"10+5*math.sin(q.anim_time*90*4*2+45)+math.clamp(4*math.sin(q.anim_time*90*4*2+90),-2,2)",
"2*math.sin(q.anim_time*90*4*2-135)+math.clamp(4*math.sin(q.anim_time*90*4*2-90),-2,2)"
]
},
"tail5": {
"rotation": ["-math.sin(q.anim_time*90*4*2-30)*4", 0, 0]
},
"tail7": {
"rotation": ["15-math.sin(q.anim_time*90*4*2-90)*4", 0, 0]
"rotation": [37.5, 12.5, 0]
},
"tail3": {
"rotation": ["2.5-math.sin(q.anim_time*90*4*2-30)*4", 0, 0]
"rotation": [30, 15, 0]
},
"tail6": {
"rotation": ["-5-math.sin(q.anim_time*90*4*2-60)*6", 0, 0]
"tail4": {
"rotation": [-17.5, -15, 0]
},
"tail8": {
"rotation": ["-5-math.sin(q.anim_time*90*4*2-60)*6", 0, 0]
"tail5": {
"rotation": [-17.5, -25, 0]
},
"tail_left": {
"rotation": [0, 7.5, 0]
},
"tail_left2": {
"rotation": [0, 17.5, 0]
},
"tail_right": {
"rotation": [0, -10, 0]
},
"tail_right2": {
"rotation": [0, 17.5, 0]
},
"front_leg_left": {
"rotation": [-2, 0, 0]
},
"elbow_left": {
"rotation": [-5, 0, 0]
},
"frontpaw_left": {
"rotation": [6.5, 0, 0]
},
"front_leg_right": {
"rotation": [-2, 0, 0]
},
"elbow_right": {
"rotation": [-5, 0, 0]
},
"frontpaw_right": {
"rotation": [6.5, 0, 0]
},
"back_legs": {
"position": [0, -0.1, 0]
},
"back_leg_left": {
"rotation": [4, 0, -2.5]
},
"ankle_left": {
"rotation": [-5, 0, 0]
},
"foot_left": {
"rotation": [1, 0, 2.5]
},
"back_leg_right": {
"rotation": [4, 0, 2.5]
},
"ankle_right": {
"rotation": [-5, 0, 0]
},
"foot_right": {
"rotation": [1, 0, -2.5]
}
}
},
"animation.espeon.blink": {
"animation_length": 0.1667,
"bones": {
"eye_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.espeon.glow": {
"loop": true,
"bones": {
"head_gem": {
"scale": 1.035
}
}
},
"animation.espeon.pose": {
"loop": true,
"bones": {
"body": {
"rotation": [0, 22.5, 0]
},
"torso": {
"rotation": [-2.5, 0, 0]
},
"torso2": {
"rotation": [-12.5, 0, 0]
},
"torso3": {
"rotation": [-2.5, 0, 0]
},
"neck": {
"rotation": [0, 0, 0]
},
"head_angle": {
"rotation": [20.3, -15, -1.5],
"position": [0, 0, 0.5]
},
"tail": {
"rotation": [-6.6945, 22.92358, 33.3055]
},
"tail2": {
"rotation": [25, 0, 0]
},
"tail3": {
"rotation": [30, 0, 0]
},
"tail4": {
"rotation": [25, 0, 0]
},
"tail5": {
"rotation": [30, 0, 0]
},
"front_leg_left": {
"rotation": [-5, 0, 2.5],
"position": [0, 1, 0]
},
"elbow_left": {
"rotation": [0, 0, 5]
},
"frontpaw_left": {
"rotation": [15, 0, 0]
},
"front_leg_right": {
"rotation": [5, 0, -7.5],
"position": [0, 1, 0]
},
"elbow_right": {
"rotation": [-7.5, 0, 0]
},
"frontpaw_right": {
"rotation": [22.5, 0, 0]
},
"back_leg_left": {
"rotation": [12.41834, -7.61516, -11.90917]
},
"ankle_left": {
"rotation": [12.5, 0, 0]
},
"foot_left": {
"rotation": [2.41492, -0.64686, 14.98637]
},
"back_leg_right": {
"rotation": [7.5, 0, 10]
},
"ankle_right": {
"rotation": [20, 0, 0]
},
"foot_right": {
"rotation": [12.5, 0, 0]
}
}
}
}
}
@@ -3,407 +3,234 @@
"animations": {
"animation.umbreon.ground_idle": {
"loop": true,
"override_previous_animation": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
},
"ear_right": {
"rotation": [0, 0, "-2*math.sin(q.anim_time*90*2+90)+math.clamp(math.sin(q.anim_time*90*2-90),-1,1)"]
},
"ear_left": {
"rotation": [0, 0, "2*math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-1,1)"]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
},
"tail": {
"rotation": ["4*(math.sin(q.anim_time*90*2)*1)+4*(math.sin(q.anim_time*90*2/2)*1)", 0, 0]
},
"tail2": {
"rotation": ["4*(math.sin(q.anim_time*90*2-90)*1)+4*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
},
"tail3": {
"rotation": ["4*(math.sin(q.anim_time*90*2-90)*1)+4*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
}
}
},
"animation.umbreon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"ear_right": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
"position": [0, -0.2, 0]
},
"ear_left": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"-0.5*math.sin(q.anim_time*90*8+45)-0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
"rotation": [-20, 0, 0]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
}
}
},
"animation.umbreon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
"ear_left2": {
"rotation": [-2.5, 0, 0]
},
"ear_right": {
"rotation": [
"-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
"10+4*math.sin(q.anim_time*90*4*2+45)+math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
0
]
"rotation": [-20, 0, 0]
},
"ear_left": {
"rotation": [
"-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
"-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)",
0
]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,50)", 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
"ear_right2": {
"rotation": [-2.5, 0, 0]
},
"tail": {
"rotation": ["-20-math.sin(q.anim_time*90*4*2+60)*12", 0, 0]
"rotation": [35, 0, 0]
},
"tail2": {
"rotation": ["-math.sin(q.anim_time*90*4*2-30)*12", 0, 0]
"rotation": [2.5, 0, 0]
},
"tail3": {
"rotation": ["-math.sin(q.anim_time*90*4*2)*6", 0, 0]
"rotation": [2.5, 0, 0]
},
"front_leg_left": {
"rotation": [2.5, 0, -2]
},
"elbow_left": {
"rotation": [-10, 0, 0]
},
"frontpaw_left": {
"rotation": [7.5, 0, 2]
},
"front_leg_right": {
"rotation": [2.5, 0, 2]
},
"elbow_right": {
"rotation": [-10, 0, 0]
},
"frontpaw_right": {
"rotation": [7.5, 0, -2]
},
"back_leg_left": {
"rotation": [3, 0, -4]
},
"ankle_left": {
"rotation": [-5, 0, 0]
},
"foot_left": {
"rotation": [2, 0, 4]
},
"back_leg_right": {
"rotation": [3, 0, 4]
},
"ankle_right": {
"rotation": [-5, 0, 0]
},
"foot_right": {
"rotation": [2, 0, -4]
}
}
},
"animation.umbreon.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.umbreon.cry": {
"animation_length": 1.25,
"animation.umbreon.glow": {
"loop": true,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [1.25, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": [0, 0, 0]
}
"ear_ring_left": {
"scale": [1.01, 1, 1.01]
},
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.0833": [0, 0, 0],
"0.125": [0, 0, -0.1],
"0.2917": [0, 0, -0.1],
"0.3333": [0, 0, 0],
"0.5417": [0, 0, 0],
"0.5833": [0, 0, -0.1],
"0.75": [0, 0, -0.1],
"0.7917": [0, 0, 0]
}
"ear_ring_right": {
"scale": [1.01, 1, 1.01]
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-0.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": [0, 0, 0]
}
"tail_ring": {
"scale": [1.01, 1.01, 1]
},
"frontleg_ring_left": {
"position": [0.025, 0, 0]
},
"frontleg_ring_right": {
"position": [-0.025, 0, 0]
},
"backleg_ring_left": {
"position": [0.025, 0, 0]
},
"backleg_ring_right": {
"position": [-0.025, 0, 0]
},
"head_ring": {
"scale": 1.02
}
}
},
"animation.umbreon.pose": {
"loop": true,
"bones": {
"body": {
"rotation": [0, -45, 0]
},
"torso": {
"rotation": [10, 0, 0]
},
"torso2": {
"rotation": [-2.5, 0, 0]
},
"torso3": {
"rotation": [-10, 0, 0]
},
"head_angle": {
"rotation": [-35, 70, -55]
},
"tail": {
"rotation": [5, 5, 0]
},
"front_leg_left": {
"rotation": [10, 0, -5]
},
"elbow_left": {
"rotation": [-10, 0, 0]
},
"frontpaw_left": {
"rotation": [0, 0, 5]
},
"back_leg_left": {
"rotation": [5, 0, -5]
},
"ankle_left": {
"rotation": [-5, 0, 0]
},
"foot_left": {
"rotation": [0, 0, 5]
},
"tail2": {
"rotation": [7.5, 5, 0]
},
"tail3": {
"rotation": [12.5, 0, 0]
},
"tail4": {
"rotation": [7.5, 0, 0]
},
"front_leg_right": {
"rotation": [0, 7.5, 7.5]
},
"elbow_right": {
"rotation": [-7.5, 0, 0]
},
"frontpaw_right": {
"rotation": [7.5, 0, -7.5]
},
"ear_left2": {
"rotation": [0, 0, 5]
},
"ear_ring_left": {
"scale": 1.02
},
"ear_left3": {
"rotation": [0, 0, 7.5]
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-0.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": [0, 0, 0]
}
}
},
"sound_effects": {
"0.125": {
"effect": "pokemon.umbreon.cry"
"rotation": [-30, 0, 5]
},
"ear_right2": {
"rotation": [0, 0, 5]
},
"ear_ring_right": {
"scale": 1.02
},
"ear_right3": {
"rotation": [0, 0, 7.5]
},
"back_leg_right": {
"rotation": [17.5, 0, 12.5]
},
"frontleg_ring_left": {
"scale": 1.02
},
"frontleg_ring_right": {
"scale": 1.02
},
"backleg_ring_left": {
"scale": 1.02
},
"backleg_ring_right": {
"scale": 1.02
},
"knee_right": {
"rotation": [-12.5, 0, 0]
},
"ankle_right": {
"rotation": [15, 0, 0]
},
"foot_right": {
"rotation": [-20, 0, -12.5]
},
"tail_ring": {
"scale": 1.02
},
"ear_left": {
"rotation": [-20, 0, 0]
}
}
}
@@ -0,0 +1,178 @@
{
"format_version": "1.8.0",
"animations": {
"animation.dunsparce.pose": {
"loop": true,
"bones": {
"body": {
"position": [0, 10, 0]
},
"torso": {
"rotation": [-29.14743, 7.43547, 13.06431]
},
"wing_left": {
"rotation": [0, 0, 30]
},
"tail": {
"rotation": [-25, 0, 0]
},
"drill": {
"rotation": [37.5, 0, 0]
},
"neck": {
"rotation": [15, 0, 0]
},
"head": {
"rotation": [11.76782, 4.2453, -19.5623]
},
"mouth_spikes_bottom": {
"rotation": [-55, 0, 0],
"position": [0, -2, 0]
},
"mouth_spikes_front": {
"position": [0, 0, 2]
},
"wing_right": {
"rotation": [0, 0, -30]
},
"mouth_open_wide_right": {
"position": [-0.1, -0.1, -0.1]
},
"mouth_open_wide_left": {
"position": [0.1, -0.1, -0.1]
}
}
},
"animation.dunsparce.mouths_test": {
"loop": "hold_on_last_frame",
"animation_length": 0.75,
"bones": {
"head": {
"rotation": [-10, 0, 0]
},
"mouth_open_right": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-0.1, -0.1, -0.1]},
"0.5": {"pre": [-0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_spikes_bottom": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, -2, 0]},
"0.5": {"pre": [0, -2, 0], "post": [0, -2, -2]},
"0.75": {"pre": [0, -2, -2], "post": [0, 0, 0]}
}
},
"mouth_spike_bottom_left": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-35, 0, 0]},
"0.75": {"pre": [-35, 0, 0], "post": [0, 0, 0]}
}
},
"mouth_spike_bottom_right": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-35, 0, 0]},
"0.75": {"pre": [-35, 0, 0], "post": [0, 0, 0]}
}
},
"mouth_spikes_front": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 2]},
"0.75": {"pre": [0, 0, 2], "post": [0, 0, 0]}
}
},
"mouth_open_small_right": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [-0.1, -0.1, -0.1]},
"0.75": {"pre": [-0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_left": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0.1, -0.1, -0.1]},
"0.5": {"pre": [0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_small_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0.1, -0.1, -0.1]},
"0.75": {"pre": [0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.dunsparce.ground_idle": {
"loop": true,
"bones": {
"tail": {
"rotation": [35, 0, 0]
},
"head": {
"rotation": [-5, 0, 0]
},
"wing_left": {
"rotation": [0, -15, 35]
},
"drill": {
"rotation": [30, 0, 0]
},
"mouth_spike_front_right": {
"rotation": [12.5, 0, 0]
},
"mouth_spike_front_left": {
"rotation": [12.5, 0, 0]
},
"wing_right": {
"rotation": [0, 15, -35]
}
}
},
"animation.dunsparce.hiding": {
"loop": true,
"bones": {
"torso": {
"rotation": [-67.5, 0, 0],
"position": [0, -4, 2]
},
"wing_left": {
"rotation": [-37.5, 0, 20]
},
"tail": {
"rotation": [-22.5, 0, 0]
},
"tail2": {
"rotation": [-30, 0, 0]
},
"drill": {
"rotation": [-32.5, 0, 0]
},
"head": {
"rotation": [25, 0, 0]
},
"mouth_spikes_front": {
"rotation": [35, 0, 0]
},
"neck": {
"rotation": [25, 0, 0]
},
"wing_right": {
"rotation": [-37.5, 0, -20]
}
}
},
"animation.dunsparce.blink": {
"animation_length": 0.1667
},
"animation.dunsparce.recoil": {
"animation_length": 0.0417
}
}
}
@@ -0,0 +1,191 @@
{
"format_version": "1.8.0",
"animations": {
"animation.spoink.ground_idle": {
"loop": true,
"animation_length": 1,
"bones": {
"arm_left": {
"rotation": [0, 0, "10+math.sin(query.anim_time*90*4+10)*30"]
},
"tail": {
"rotation": {
"0.0": [45, 0, "-87.5+((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*0.6)*2"],
"0.5": [45, 0, "-87.5+((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*0.7)*1"]
}
},
"tail2": {
"rotation": {
"0.0": ["2.5+((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*0.7)*2", 90, -2.5],
"0.5": ["2.5+((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*1.1)*1", 90, -2.5]
}
},
"tail3": {
"rotation": {
"0.0": [-2.5, 90, "-2.5-((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*0.8)*2"],
"0.5": [-2.5, 90, "-2.5-((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*1.4)*1"]
}
},
"tail4": {
"rotation": {
"0.0": ["-2.5-((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*0.9)*2", 90, 2.5],
"0.5": ["-2.5-((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*1.7)*1", 90, 2.5]
}
},
"tail5": {
"rotation": {
"0.0": [2.5, 90, "2.5+((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*1.0)*2"],
"0.5": [2.5, 90, "2.5+((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*2.0)*1"]
}
},
"tail6": {
"rotation": {
"0.0": ["2.5+((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*1.1)*2", 90, -2.5],
"0.5": ["2.5+((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*2.3)*1", 90, -2.5]
}
},
"tail7": {
"rotation": {
"0.0": [-2.5, 90, "-2.5-((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*1.2)*2"],
"0.5": [-2.5, 90, "-2.5-((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*2.6)*1"]
}
},
"tail8": {
"rotation": {
"0.0": ["-2.5-((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*1.3)*2", 90, 2.5],
"0.5": ["-2.5-((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*2.9)*1", 90, 2.5]
}
},
"tail9": {
"rotation": {
"0.0": [2.5, 90, "2.5+((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10))*1.4)*2"],
"0.5": [2.5, 90, "2.5+((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*3.2)*1"]
}
},
"tail10": {
"rotation": {
"0.0": [
"2.5+((math.clamp(math.sin(query.anim_time*90*4-0)*10,0,10)*0.6+math.clamp((math.sin(query.anim_time*90*1.5+25)-0.5)*1.5,0,1.5))*1.5)*2",
90,
-2.5
],
"0.5": ["2.5+((math.clamp(math.sin(query.anim_time*90*8)*0.6,0,2)+math.clamp(math.sin(query.anim_time*90*4.35+160)*6,0,2))*3.5)*1", 90, -2.5]
}
},
"tailbase": {
"rotation": [0, -90, 0]
},
"arm_right": {
"rotation": [0, 0, "-10-math.sin(query.anim_time*90*4+10)*30"]
},
"nose": {
"rotation": ["math.cos(q.anim_time*90*4-45)*10", 0, 0]
},
"body": {
"position": [
0,
"14.5-((math.sin(q.anim_time*90*4+140)*4+math.exp(math.clamp(math.sin(query.anim_time*90*4+90)*10,0,10)*0.28)-math.clamp(math.sin(query.anim_time*90*4-90)*2,0,2)+math.clamp(math.sin(query.anim_time*90*4-230)*1,0,1)*2.9)*0.8)",
0
]
},
"tail0": {
"position": [0, 0, 0]
},
"chest": {
"position": [0, "math.cos(q.anim_time*90*2-90)*0.5", 0]
},
"torso": {
"rotation": ["math.cos(query.anim_time*90*4)", 0, 0],
"position": [0, "math.clamp((math.sin(query.anim_time*90*1.5+25)-0.5)*1.5,0,1.5)", 0]
},
"orb": {
"rotation": ["math.cos(q.anim_time*90*4-40)*2", 0, 0],
"position": [0, "-math.cos(query.anim_time*90*4-45)*0.3", 0]
},
"spoink": {
"scale": 1
}
}
},
"animation.spoink.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.spoink.shock": {
"loop": true,
"bones": {
"eye_left": {
"scale": [0.7, 0.7, 1]
},
"eye_shine_left": {
"position": [0, 0, 0.1]
},
"eye_right": {
"scale": [0.7, 0.7, 1]
},
"eye_shine_right": {
"position": [0, 0, 0.1]
}
}
},
"animation.spoink.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0, 0, -0.1]
},
"eye_angry_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.spoink.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0, 0, -0.1]
},
"eye_sad_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.spoink.happy": {
"loop": true,
"bones": {
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.spoink.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,192 @@
{
"format_version": "1.8.0",
"animations": {
"animation.grumpig.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [2.5, 0, 0]
},
"chest": {
"rotation": [-2.5, 0, 0]
},
"arm_left": {
"rotation": [-0.9381, 22.42171, 12.17945]
},
"arm_left2": {
"rotation": [0, 32.5, 0]
},
"hand_left": {
"rotation": [0, 0, 15]
},
"finger_front_left": {
"rotation": [0, 7.5, 12.5]
},
"finger_back_left": {
"rotation": [0, -7.5, 17.5]
},
"arm_right": {
"rotation": [-0.9381, -22.42171, -12.17945]
},
"arm_right2": {
"rotation": [0, -32.5, 0]
},
"hand_right": {
"rotation": [0, 0, -15]
},
"finger_front_right": {
"rotation": [0, -7.5, -12.5]
},
"finger_back_right": {
"rotation": [0, 7.5, -17.5]
},
"neck": {
"rotation": [5, 0, 0]
},
"leg_left": {
"rotation": [5.98448, -7.43547, -7.56398]
},
"leg_left2": {
"rotation": [2.5, 0, 0]
},
"foot_left": {
"rotation": [-8.15586, -14.65945, 10.06205]
},
"leg_right": {
"rotation": [5.98448, 7.43547, 7.56398]
},
"leg_right2": {
"rotation": [2.5, 0, 0]
},
"foot_right": {
"rotation": [-8.15586, 14.65945, -10.06205]
},
"tail3": {
"rotation": [2.5, 0, 0]
},
"tail4": {
"rotation": [0, 17.5, 0]
},
"tail5": {
"rotation": [-15, -15, 0]
},
"tail2": {
"rotation": [7.5, -5, 0]
},
"tail6": {
"rotation": [0.55404, -12.48791, -2.56062]
},
"tail7": {
"rotation": [12.5, 15, 0]
},
"tail8": {
"rotation": [0, 0, 45]
}
}
},
"animation.grumpig.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.grumpig.shock": {
"loop": true,
"bones": {
"pupil_left": {
"scale": [0.7, 0.7, 1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, -0.1, -0.1]
},
"pupil_right": {
"scale": [0.7, 0.7, 1]
}
}
},
"animation.grumpig.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, -0.1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_grunt": {
"position": [0, 0, -0.1]
},
"eye_angry_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.grumpig.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, 0]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_sad": {
"position": [0, 0, -0.1]
},
"eye_sad_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.grumpig.happy": {
"loop": true,
"bones": {
"eyelid_happy_left": {
"position": [0.1, 0, -0.1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_smile": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.grumpig.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0.1, 0, -0.1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_grunt": {
"position": [0, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,113 @@
{
"format_version": "1.8.0",
"animations": {
"animation.snorunt.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [2.5, 0, 0]
},
"hand_left": {
"rotation": [0, -12.5, 0]
},
"hand_right": {
"rotation": [0, 5, 0]
},
"leg_left": {
"rotation": [0, -27.5, 0]
},
"leg_right": {
"rotation": [0, 27.5, 0]
}
}
},
"animation.snorunt.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.snorunt.shock": {
"loop": true,
"bones": {
"eye_left": {
"rotation": [0, 0, -5],
"scale": [0.7, 0.7, 1]
},
"eye_right": {
"rotation": [0, 0, 5],
"scale": [0.7, 0.7, 1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_big": {
"position": [0, 0.25, -0.1]
}
}
},
"animation.snorunt.angry": {
"loop": true,
"bones": {
"eye_expression_left": {
"position": [-0.5, 0, -0.1]
},
"eye_expression_right": {
"position": [0.5, 0, -0.1]
}
}
},
"animation.snorunt.sad": {
"loop": true,
"bones": {
"eye_expression_left": {
"position": [0.5, 0.25, -0.1]
},
"eye_expression_right": {
"position": [-0.5, 0.25, -0.1]
}
}
},
"animation.snorunt.happy": {
"loop": true,
"bones": {
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_happy": {
"position": [0, 0.25, -0.1]
}
}
},
"animation.snorunt.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,114 @@
{
"format_version": "1.8.0",
"animations": {
"animation.glalie.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [10, 0, 0],
"position": [0, 5, 0]
}
}
},
"animation.glalie.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.glalie.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.5, 0],
"scale": [0.6, 0.6, 1]
},
"pupil_right": {
"position": [0, -0.5, 0],
"scale": [0.6, 0.6, 1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
}
}
},
"animation.glalie.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0, 0, -0.1]
},
"eye_angry_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.glalie.sad": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.5, 0]
},
"pupil_right": {
"position": [0, -0.5, 0]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_small": {
"position": [0, 0, -0.1]
},
"eye_sad_left": {
"position": [0, 0, -0.1]
},
"eye_sad_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.glalie.happy": {
"loop": true,
"bones": {
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_smile": {
"position": [0, 0, -0.1]
}
}
},
"animation.glalie.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -4,301 +4,351 @@
"animation.honchkrow.ground_idle": {
"loop": true,
"bones": {
"wing_right": {
"rotation": [90, 85, 0],
"position": [-0.01, -4.2, 0.5]
"body": {
"position": [0, -0.6, 0]
},
"wing_right2": {
"rotation": [-0.1, -45, 0]
"wings_open": {
"scale": 0
},
"wing_right3": {
"rotation": [0.1, 60, 0]
"tail2": {
"rotation": [15, 0, 0]
},
"wing_left": {
"rotation": [90, -85, 0],
"position": [0.01, -4.2, 0.5]
"leg_right": {
"rotation": [10, 10, 0]
},
"wing_left2": {
"rotation": [-0.1, 45, 0]
"leg_right2": {
"rotation": [-25, 0, 0]
},
"wing_left3": {
"rotation": [0.1, -60, 0]
"foot_right": {
"rotation": [15, 0, 0]
},
"tail": {
"rotation": [25, 0, 0]
"plumage3": {
"rotation": [5, 0, 0]
},
"wing_left4": {
"rotation": [-0.1, 40, 0]
},
"wing_right4": {
"rotation": [-0.1, -40, 0]
"plumage4": {
"rotation": [-25, 0, 0]
}
}
},
"animation.honchkrow.air_idle": {
"loop": true,
"bones": {
"wing_left": {
"rotation": [0, -5, -15]
"body": {
"rotation": [5, 0, 0]
},
"wing_left3": {
"rotation": [0.1, -8, 0]
"tail2": {
"rotation": [37.5, 0, 0]
},
"tail": {
"rotation": [20, 0, 0]
"head_angle": {
"rotation": [-5, 0, 0]
},
"wing_left2": {
"rotation": [0.1, 10, 0]
"plumage": {
"rotation": [-5, 0, 0]
},
"leg_right": {
"rotation": [22.5, 0, 0]
"rotation": [32.5, 0, 0]
},
"leg_right2": {
"rotation": [-45, 0, 0]
},
"foot_right": {
"rotation": [13, 0, 0]
},
"claw_back_right": {
"rotation": [-45, 0, 0]
},
"toe_inner_right": {
"rotation": [30, 0, 0]
},
"toe_outer_right": {
"rotation": [30, 0, 0]
},
"claw_outer_right": {
"rotation": [45, 0, 0]
},
"leg_left": {
"rotation": [22.5, 0, 0]
},
"leg_left2": {
"rotation": [-45, 0, 0]
},
"foot_left": {
"rotation": [13, 0, 0]
},
"toe_back_left": {
"rotation": [-45, 0, 0]
},
"toe_inner_left": {
"rotation": [30, 0, 0]
},
"toe_outer_left": {
"rotation": [30, 0, 0]
},
"body": {
"rotation": [-10, 0, 0]
},
"wing_right": {
"rotation": [0, 5, 15]
},
"wing_right3": {
"rotation": [0.1, 8, 0]
"rotation": [-60, 0, 0]
},
"toe_back_right": {
"rotation": [-45, 0, 0]
},
"claw_inner_right": {
"rotation": [45, 0, 0]
},
"claw_back_left": {
"rotation": [-45, 0, 0]
},
"claw_inner_left": {
"rotation": [45, 0, 0]
},
"claw_outer_left": {
"rotation": [45, 0, 0]
},
"wing_right2": {
"rotation": [0.1, -10, 0]
},
"headai": {
"rotation": [10, 0, 0]
},
"toe_middle_left": {
"rotation": [30, 0, 0]
},
"claw_middle_left": {
"rotation": [45, 0, 0]
"rotation": [-50, 0, 0]
},
"toe_middle_right": {
"rotation": [30, 0, 0]
"rotation": [40, 0, 0]
},
"claw_middle_right": {
"toe_outer_right": {
"rotation": [45, 0, 0]
},
"claw_back_right": {
"rotation": [-30, 0, 0]
},
"toe_outer_right2": {
"rotation": [55, 0, 0]
},
"toe_middle_right2": {
"rotation": [55, 0, 0]
},
"toe_inner_right": {
"rotation": [45, 0, 0]
},
"toe_inner_right2": {
"rotation": [55, 0, 0]
},
"leg_left": {
"rotation": [32.5, 0, 0]
},
"leg_left2": {
"rotation": [-60, 0, 0]
},
"toe_back_left": {
"rotation": [-50, 0, 0]
},
"claw_back_left": {
"rotation": [-30, 0, 0]
},
"toe_inner_left": {
"rotation": [45, 0, 0]
},
"toe_inner_left2": {
"rotation": [55, 0, 0]
},
"toe_middle_left": {
"rotation": [40, 0, 0]
},
"toe_middle_left2": {
"rotation": [55, 0, 0]
},
"toe_outer_left": {
"rotation": [45, 0, 0]
},
"toe_outer_left2": {
"rotation": [55, 0, 0]
},
"wings_closed": {
"rotation": [10, 0, 0]
},
"wing_closed_right": {
"rotation": [0, 47.5, 90]
},
"wing_closed_right2": {
"rotation": [-20, 0, 0]
},
"wing_closed_left": {
"rotation": [0, -47.5, -90]
},
"wing_closed_left2": {
"rotation": [-20, 0, 0]
},
"wings_open": {
"rotation": [10, 0, 0]
}
}
},
"animation.honchkrow.air_fly": {
"loop": true,
"bones": {
"wing_left": {
"rotation": [0.5, 0, -5]
},
"wing_left3": {
"rotation": [0.01, -10, 0]
},
"torso": {
"rotation": [2.5, 0, 0]
},
"tail": {
"rotation": [5, 0, 0]
},
"wing_left2": {
"rotation": [0, 0, 0]
},
"leg_right": {
"rotation": [30, 0, 0],
"position": [0, -0.5, 0]
},
"leg_right2": {
"rotation": [-70, 0, 0]
},
"foot_right": {
"rotation": [25, 0, 0]
},
"claw_back_right": {
"rotation": [-45, 0, 0]
},
"toe_inner_right": {
"rotation": [30, 0, 0]
},
"toe_outer_right": {
"rotation": [30, 0, 0]
},
"claw_outer_right": {
"rotation": [45, 0, 0]
},
"leg_left": {
"rotation": [30, 0, 0],
"position": [0, -0.5, 0]
},
"leg_left2": {
"rotation": [-70, 0, 0]
},
"foot_left": {
"rotation": [25, 0, 0]
},
"toe_back_left": {
"rotation": [-45, 0, 0]
},
"toe_inner_left": {
"rotation": [30, 0, 0]
},
"toe_outer_left": {
"rotation": [30, 0, 0]
},
"body": {
"rotation": [12.5, 0, 0]
"rotation": [35, 0, 0]
},
"toe_back_right": {
"rotation": [-45, 0, 0]
"tail2": {
"rotation": [37.5, 0, 0]
},
"claw_inner_right": {
"rotation": [45, 0, 0]
"head_angle": {
"rotation": [-20, 0, 0]
},
"claw_back_left": {
"rotation": [-45, 0, 0]
},
"claw_inner_left": {
"rotation": [45, 0, 0]
},
"claw_outer_left": {
"rotation": [45, 0, 0]
},
"wing_right": {
"rotation": [0.5, 0, 5]
},
"wing_right3": {
"rotation": [0.01, 10, 0]
},
"headai": {
"rotation": [-10, 0, 0],
"position": [0, -0.5, -1]
},
"hat": {
"rotation": [0, 0, 0]
},
"toe_middle_left": {
"rotation": [30, 0, 0]
},
"claw_middle_left": {
"rotation": [45, 0, 0]
},
"toe_middle_right": {
"rotation": [30, 0, 0]
},
"claw_middle_right": {
"rotation": [45, 0, 0]
}
}
},
"animation.honchkrow.sleep": {
"loop": true,
"bones": {
"torso": {
"rotation": [12.5, 0, 0],
"position": [0, -3, 0]
},
"wing_right": {
"rotation": [90, 85, 0],
"position": [-0.01, -3, 0.5]
},
"wing_right2": {
"rotation": [-0.1, -45, 0]
},
"wing_right3": {
"rotation": [0.1, 55, 0]
},
"wing_left": {
"rotation": [90, -85, 0],
"position": [0.01, -3, 0.5]
},
"wing_left2": {
"rotation": [-0.1, 45, 0]
},
"wing_left3": {
"rotation": [0.1, -55, 0]
},
"tail": {
"plumage": {
"rotation": [-5, 0, 0]
},
"eyelid_right": {
"position": [0, 0, -0.1]
"leg_right": {
"rotation": [32.5, 0, 0]
},
"eyelid_left": {
"position": [0, 0, -0.1]
"leg_right2": {
"rotation": [-60, 0, 0]
},
"wing_left4": {
"rotation": [0.1, 30, 0]
"toe_back_right": {
"rotation": [-50, 0, 0]
},
"wing_right4": {
"rotation": [0.1, -30, 0]
"toe_middle_right": {
"rotation": [40, 0, 0]
},
"toe_outer_right": {
"rotation": [45, 0, 0]
},
"claw_back_right": {
"rotation": [-30, 0, 0]
},
"toe_outer_right2": {
"rotation": [55, 0, 0]
},
"toe_middle_right2": {
"rotation": [55, 0, 0]
},
"toe_inner_right": {
"rotation": [45, 0, 0]
},
"toe_inner_right2": {
"rotation": [55, 0, 0]
},
"leg_left": {
"rotation": [32.5, 0, 0]
},
"leg_left2": {
"rotation": [-60, 0, 0]
},
"toe_back_left": {
"rotation": [-50, 0, 0]
},
"claw_back_left": {
"rotation": [-30, 0, 0]
},
"toe_inner_left": {
"rotation": [45, 0, 0]
},
"toe_inner_left2": {
"rotation": [55, 0, 0]
},
"toe_middle_left": {
"rotation": [40, 0, 0]
},
"toe_middle_left2": {
"rotation": [55, 0, 0]
},
"toe_outer_left": {
"rotation": [45, 0, 0]
},
"toe_outer_left2": {
"rotation": [55, 0, 0]
},
"wing_closed_right": {
"rotation": [0, 47.5, 90]
},
"wing_closed_right2": {
"rotation": [-20, 0, 0]
},
"wing_closed_left": {
"rotation": [0, -47.5, -90]
},
"wing_closed_left2": {
"rotation": [-20, 0, 0]
}
}
},
"animation.honchkrow.blink": {
"animation_length": 0.16667,
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"0.0": [-0.1, 0, -0.1],
"0.125": {"pre": [-0.1, 0, -0.1], "post": [-0.1, 0, -0.1]},
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"0.0": [0.1, 0, -0.1],
"0.125": {"pre": [0.1, 0, -0.1], "post": [0.1, 0, -0.1]},
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.honchkrow.wangs": {
"loop": true,
"bones": {
"wing_open_right": {
"rotation": [0, -15, 0]
},
"wing_open_right2": {
"rotation": [0, 10, 0]
},
"wing_open_left": {
"rotation": [0, 15, 0]
},
"wing_open_left2": {
"rotation": [0, -10, 0]
},
"feathers_inner_right": {
"rotation": [0, 5, 0]
},
"feathers_inner_left": {
"rotation": [0, -5, 0]
}
}
},
"animation.honchkrow.angry": {
"loop": true,
"bones": {
"jaw": {
"rotation": [32.5, 0, 0]
},
"eye_emote_right": {
"scale": [1, 1.5, 1]
},
"eye_emote_left": {
"scale": [1, 1.5, 1]
}
}
},
"animation.honchkrow.sad": {
"loop": true,
"bones": {
"eye_emote_right": {
"position": [1, 0, 0]
},
"eye_emote_left": {
"position": [-1, 0, 0]
}
}
},
"animation.honchkrow.surprised": {
"loop": true,
"bones": {
"jaw": {
"rotation": [32.5, 0, 0]
},
"pupil_right": {
"scale": [0.8, 0.8, 1]
},
"pupil_left": {
"scale": [0.8, 0.8, 1]
},
"eye_emote_right": {
"position": [0.5, 0.5, 0],
"scale": [2, 1, 1]
},
"eye_emote_left": {
"position": [-0.5, 0.5, 0],
"scale": [2, 1, 1]
}
}
},
"animation.honchkrow.disintrested": {
"loop": true,
"bones": {
"pupil_right": {
"position": [0, -0.25, 0],
"scale": [1, 0.5, 1]
},
"pupil_left": {
"position": [0, -0.25, 0],
"scale": [1, 0.5, 1]
},
"eye_emote_right": {
"position": [0.1, 0, 0.1]
},
"eye_emote_left": {
"position": [-0.1, 0, 0.1]
}
}
},
"animation.honchkrow.happy": {
"loop": true,
"bones": {
"jaw": {
"rotation": [30, 0, 0]
},
"eyelid_happy_right": {
"position": [-0.1, 0, -0.1]
},
"eyelid_happy_left": {
"position": [0.1, 0, -0.1]
}
}
},
"animation.honchkrow.hurt": {
"loop": true,
"bones": {
"jaw": {
"rotation": [30, 0, 0]
},
"eyelid_hurt_right": {
"position": [-0.1, 0, -0.1]
},
"eyelid_hurt_left": {
"position": [0.1, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,224 @@
{
"format_version": "1.8.0",
"animations": {
"animation.bronzor.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": ["10+math.sin(q.anim_time*90*1-60)*3", 0, "math.sin(q.anim_time*90*0.5)*5+math.sin(q.anim_time*90*3)"],
"position": ["math.sin(q.anim_time*90*0.5)", "4+math.sin(q.anim_time*90*1+230)", 0]
}
}
},
"animation.bronzor.ground_walk": {
"loop": true,
"bones": {
"body": {
"rotation": ["22+math.sin(q.anim_time*90*1.5-60)*5", 0, "math.sin(q.anim_time*90*1 )*3+math.sin(q.anim_time*90*5 )*0.5"],
"position": ["math.sin(q.anim_time*90*0.5)*0.5", "3.8+math.sin(q.anim_time*90*0.6+230)*0.5", "math.sin(q.anim_time*90*2)*0.5"]
}
}
},
"animation.bronzor.idle_quirk": {
"animation_length": 3.5,
"bones": {
"body": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": [304, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [364, 9, 0],
"lerp_mode": "catmullrom"
},
"2.0417": {
"post": [364, 345, 0],
"lerp_mode": "catmullrom"
},
"2.4167": {
"post": [360.5182, 405.98642, -1.75324],
"lerp_mode": "catmullrom"
},
"3.0": {
"post": [360, 360, 0],
"lerp_mode": "catmullrom"
},
"3.5": {
"post": [360, 360, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, -0.2, 0],
"post": [0, -0.2, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [0, 1.8, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 1.8, 0],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [0, -0.3, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.7083": {
"post": [0, 1.8, 0],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, 1.8, 0],
"lerp_mode": "catmullrom"
},
"2.4583": {
"post": [0, -0.3, 0],
"lerp_mode": "catmullrom"
},
"3.0": {
"post": [0, -0.2, 0],
"lerp_mode": "catmullrom"
},
"3.2917": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"3.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"pupil_left": {
"position": {
"0.2083": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.125": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"1.375": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.4167": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"3.0833": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"3.125": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"pupil_closed_left": {
"position": {
"0.2083": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.125": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"1.375": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.4167": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"3.0833": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"3.125": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"pupil_right": {
"position": {
"0.2083": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.125": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"1.375": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.4167": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"3.0833": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"3.125": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"pupil_closed_right": {
"position": {
"0.2083": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.125": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"1.375": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.4167": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"3.0833": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"3.125": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.bronzor.blink": {
"animation_length": 0.1667,
"bones": {
"pupil_left": {
"position": {
"0.0": [0, 0, 0.1],
"0.125": [0, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"pupil_closed_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"pupil_right": {
"position": {
"0.0": [0, 0, 0.1],
"0.125": [0, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"pupil_closed_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.bronzor.sleep": {
"animation_length": 22.5833,
"bones": {
"body": {
"rotation": [
"64.6585+math.sin(q.anim_time*90*0.5+180)*5+math.sin(q.anim_time*90*2.5)*0.5",
"18.2688+math.sin(q.anim_time*90*0.2+60)*2",
"13.3647+math.sin(q.anim_time*90*0.5)*3"
],
"position": [0, "2.2+math.sin(q.anim_time*90*0.3+180)", 0]
},
"pupil_left": {
"position": [0, 0, 0.1]
},
"pupil_closed_left": {
"position": [0, 0, -0.1]
},
"pupil_right": {
"position": [0, 0, 0.1]
},
"pupil_closed_right": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,86 @@
{
"format_version": "1.8.0",
"animations": {
"animation.bronzong.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [
"5.5+math.sin(q.anim_time*90*0.4+90)*3",
"math.sin(q.anim_time*90*2+180)*0.3",
"math.sin(q.anim_time*90*0.7+180)*1.5 +math.sin(q.anim_time*90*2.5+180)*0.25"
],
"position": ["math.sin(q.anim_time*90*0.5+165)*0.8", "4+math.sin(q.anim_time*90*0.7)*1.2", 0]
},
"arm_left": {
"rotation": [0, 0, 55]
},
"arm_left2": {
"rotation": [0, "1+math.sin(q.anim_time*90*0.8)*3.3", "-12.5+math.sin(q.anim_time*90*0.7)*1.3"]
},
"arm_left3": {
"rotation": [0, "math.sin(q.anim_time*90*0.7+56)*4.6", "-7.5+math.sin(q.anim_time*90*0.7+45)*2.5"]
},
"arm_left4": {
"rotation": [0, "math.sin(q.anim_time*90*0.7+90)*5.6", "-10+math.sin(q.anim_time*90*0.7+130)*3"]
},
"arm_right": {
"rotation": [0, 0, -55]
},
"arm_right2": {
"rotation": [0, "-1+math.sin(q.anim_time*90*0.8)*3.3", "12.5-math.sin(q.anim_time*90*0.7)*1.3"]
},
"arm_right3": {
"rotation": [0, "-(math.sin(q.anim_time*90*0.7+56)*4.6)", "7.5-math.sin(q.anim_time*90*0.7+45)*2.5"]
},
"arm_right4": {
"rotation": [0, "-(math.sin(q.anim_time*90*0.7+90)*5.6)", "10-math.sin(q.anim_time*90*0.7+130)*3"]
}
}
},
"animation.bronzong.ground_walk": {
"loop": true,
"bones": {
"body": {
"rotation": [32.5, 0, 0],
"position": [0, 5, 0]
},
"arm_left": {
"rotation": [0, -10, 50]
},
"arm_left2": {
"rotation": [1.31845, -9.91358, -7.61435]
},
"arm_left3": {
"rotation": [0.88045, -9.96156, -5.07673]
},
"arm_left4": {
"rotation": [1.75378, -9.84655, -10.15108]
},
"arm_right": {
"rotation": [0, 10, -50]
},
"arm_right2": {
"rotation": [1.31845, 9.91358, 7.61435]
},
"arm_right3": {
"rotation": [0.88045, 9.96156, 5.07673]
},
"arm_right4": {
"rotation": [1.75378, 9.84655, 10.15108]
}
}
},
"animation.bronzong.light_eyes": {
"loop": true,
"bones": {
"eye_light_left": {
"position": [0, 0, -1]
},
"eye_light_right": {
"position": [0, 0, -1]
}
}
}
}
}
@@ -3,565 +3,160 @@
"animations": {
"animation.leafeon.ground_idle": {
"loop": true,
"override_previous_animation": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
"ear_left": {
"rotation": [35, -30, 0]
},
"ear2_right": {
"rotation": [0, -5, 0]
},
"ear_right": {
"rotation": ["math.sin(q.anim_time*90*2+90)-0.5*math.clamp(math.sin(q.anim_time*90*2-90),-1,1)", 0, 0]
"rotation": [35, 30, 0]
},
"ear_left": {
"rotation": ["math.sin(q.anim_time*90*2+90)-0.5*math.clamp(math.sin(q.anim_time*90*2-90),-1,1)", 0, 0]
"ear2_left": {
"rotation": [0, 5, 0]
},
"forehead_leaf": {
"rotation": [10, 0, 0]
},
"forehead_leaf2": {
"rotation": [-20, 0, 0]
},
"neck_leaf": {
"rotation": [-10, 0, 0]
},
"neck_leaf2": {
"rotation": [30, 0, 0]
},
"neck_leaf3": {
"rotation": [25, 0, 0]
},
"tail": {
"rotation": ["60+6*(math.sin(q.anim_time*90*2)*1)+6*(math.sin(q.anim_time*90*2/2)*1)", 0, 0]
"rotation": [20, 0, 0]
},
"tail2": {
"rotation": ["5+6*(math.sin(q.anim_time*90*2-90)*1)+6*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
"rotation": [40, 0, 0]
},
"tail3": {
"rotation": ["5+6*(math.sin(q.anim_time*90*2-90)*1)+6*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
},
"ear_left2": {
"rotation": ["2*math.sin(q.anim_time*90*2+60)-math.clamp(math.sin(q.anim_time*90*2-120),-1,1)", 0, 0]
},
"ear_right2": {
"rotation": ["2*math.sin(q.anim_time*90*2+60)-math.clamp(math.sin(q.anim_time*90*2-120),-1,1)", 0, 0]
"rotation": [45, 0, 0]
},
"tail4": {
"rotation": ["5+6*(math.sin(q.anim_time*90*2-90)*1)+6*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
"rotation": [-45, 0, 0]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
"front_leg_left": {
"rotation": [-2, 0, -1]
},
"leaf_top": {
"rotation": ["math.sin(q.anim_time*90*2+120)-0.5*math.clamp(math.sin(q.anim_time*90*2-60),-2,2)", 0, 0]
}
}
},
"animation.leafeon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
"elbow_left": {
"rotation": [-2, 0, 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
"frontpaw_left": {
"rotation": [4, 0, 1]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
"front_leg_right": {
"rotation": [-2, 0, 1]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
"elbow_right": {
"rotation": [-2, 0, 0]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
"frontpaw_right": {
"rotation": [4, 0, -1]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
"back_leg_right": {
"rotation": [0, 2.5, 5]
},
"ear_right": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
"foot_right": {
"rotation": [0, 0, -5]
},
"ear_left": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"-0.5*math.sin(q.anim_time*90*8+45)-0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
"back_leg_left": {
"rotation": [0, -2.5, -5]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
},
"leaf_top": {
"rotation": ["0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-1,1)", 0, 0]
}
}
},
"animation.leafeon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"ear_right": {
"rotation": ["-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
},
"ear_left": {
"rotation": ["-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,50)", 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
},
"tail": {
"rotation": ["20-math.sin(q.anim_time*90*4*2+60)*12", 0, 0]
},
"tail2": {
"rotation": ["-math.sin(q.anim_time*90*4*2-30)*12", 0, 0]
},
"tail3": {
"rotation": ["-math.sin(q.anim_time*90*4*2)*12", 0, 0]
},
"ear_left2": {
"rotation": ["-5-4*math.sin(q.anim_time*90*4*2+15)-math.clamp(4*math.sin(q.anim_time*90*4*2+60),-4,4)", 0, 0]
},
"ear_right2": {
"rotation": ["-5-4*math.sin(q.anim_time*90*4*2+15)-math.clamp(4*math.sin(q.anim_time*90*4*2+60),-4,4)", 0, 0]
},
"tail4": {
"rotation": ["-math.sin(q.anim_time*90*4*2-60)*12", 0, 0]
},
"leaf_top": {
"rotation": ["-4*math.sin(q.anim_time*90*4*2+15)-math.clamp(4*math.sin(q.anim_time*90*4*2+60),-4,4)", 0, 0]
"foot_left": {
"rotation": [0, 0, 5]
}
}
},
"animation.leafeon.blink": {
"animation_length": 0.1667,
"bones": {
"eye_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.leafeon.cry": {
"animation_length": 2,
"animation.leafeon.pose": {
"loop": true,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": [0, 0, 0],
"2.0": [0, 0, 0]
}
"body": {
"rotation": [0, 42.5, 0]
},
"leaf_top": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [3.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [-2.2637, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0833": {
"post": [-3.44058, 0, 0],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.1667": [0, 0, 0],
"0.2083": [0, 0, "-0.1"],
"1.0": [0, 0, "-0.1"],
"1.0417": [0, 0, 0]
}
"head_angle": {
"rotation": [4.70412, -28.02432, 11.17023]
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-6.2637, 2.13879, 4.91341],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-9.44058, 2.38503, 4.804],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [20, -30, 10]
},
"ear_left2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-6.2637, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-9.44058, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"ear2_right": {
"rotation": [0, -10, 0]
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-6.2637, -2.13879, -4.91341],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-9.44058, -2.38503, -4.804],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [27, 27.5, 20.5]
},
"ear_right2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-6.2637, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-9.44058, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.0417": {
"effect": "pokemon.leafeon.cry"
"ear2_left": {
"rotation": [0, 20, 0]
},
"forehead_leaf": {
"rotation": [0, 0, 5]
},
"tail": {
"rotation": [12.5, 0, 0]
},
"tail2": {
"rotation": [37.5, 0, 0]
},
"tail3": {
"rotation": [57.5, 0, 0]
},
"tail4": {
"rotation": [-45, 0, 0]
},
"front_leg_left": {
"rotation": [-15, 0, 0]
},
"frontpaw_left": {
"rotation": [17.5, 0, 0]
},
"front_leg_right": {
"rotation": [15, 0, 0]
},
"elbow_right": {
"rotation": [-15, 0, 0]
},
"back_leg_left": {
"rotation": [10, 0, -10]
},
"foot_left": {
"rotation": [-9.99762, -0.10901, 10.00238]
}
}
}
@@ -3,530 +3,178 @@
"animations": {
"animation.glaceon.ground_idle": {
"loop": true,
"override_previous_animation": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
},
"ear_right": {
"rotation": ["2*math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-1,1)", 0, 0]
},
"ear_left": {
"rotation": ["2*math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-1,1)", 0, 0]
},
"tail": {
"rotation": ["30+8*(math.sin(q.anim_time*90*2)*1)+8*(math.sin(q.anim_time*90*2/2)*1)", 0, 0]
},
"tail2": {
"rotation": ["15+8*(math.sin(q.anim_time*90*2-90)*1)+8*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
},
"tail3": {
"rotation": ["15+8*(math.sin(q.anim_time*90*2-90)*1)+8*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
},
"hair_left": {
"rotation": ["-math.sin(q.anim_time*90*2+30)+0.5*math.clamp(math.sin(q.anim_time*90*2-150),-1,1)", 0, 0]
},
"hair_left2": {
"rotation": ["2*math.sin(q.anim_time*90*2+150)-math.clamp(math.sin(q.anim_time*90*2-30),-1,1)", 0, 0]
},
"hair_right": {
"rotation": ["-math.sin(q.anim_time*90*2+30)+0.5*math.clamp(math.sin(q.anim_time*90*2-150),-1,1)", 0, 0]
},
"hair_right2": {
"rotation": ["2*math.sin(q.anim_time*90*2+150)-math.clamp(math.sin(q.anim_time*90*2-30),-1,1)", 0, 0]
}
}
},
"animation.glaceon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"ear_right": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
},
"ear_left": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"-0.5*math.sin(q.anim_time*90*8+45)-0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
},
"hair_left": {
"rotation": ["-math.sin(q.anim_time*90*8+45)-math.clamp(math.sin(q.anim_time*90*8+90),-1,1)", 0, 0]
},
"hair_left2": {
"rotation": [0, 0, "math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)"]
},
"hair_right": {
"rotation": ["-math.sin(q.anim_time*90*8+45)-math.clamp(math.sin(q.anim_time*90*8+90),-1,1)", 0, 0]
},
"hair_right2": {
"rotation": [0, 0, "-math.sin(q.anim_time*90*8+45)-math.clamp(math.sin(q.anim_time*90*8+90),-1,1)"]
}
}
},
"animation.glaceon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"ear_right": {
"rotation": ["-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
},
"ear_left": {
"rotation": ["-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,50)", 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
"position": [0, -0.2, 0]
},
"tail": {
"rotation": ["10-math.sin(q.anim_time*90*4*2+60)*12", 0, 0]
"rotation": [20, 0, 0]
},
"tail2": {
"rotation": ["-math.sin(q.anim_time*90*4*2-30)*14", 0, 0]
"rotation": [15, 0, 0]
},
"tail3": {
"rotation": ["-math.sin(q.anim_time*90*4*2)*16", 0, 0]
"rotation": [10, 0, 0]
},
"hair_left": {
"rotation": ["-5+2*math.sin(q.anim_time*90*4*2+45)+2*math.clamp(math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
"tail4": {
"rotation": [12.5, 0, 0]
},
"hair_left2": {
"rotation": ["2*math.sin(q.anim_time*90*4*2+15)+2*math.clamp(math.sin(q.anim_time*90*4*2+60),-4,4)", 0, 0]
"front_leg_left": {
"rotation": [8, -2.5, -3]
},
"hair_right": {
"rotation": ["-5+2*math.sin(q.anim_time*90*4*2+45)+2*math.clamp(math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
"elbow_left": {
"rotation": [-13.5, 0, 0]
},
"hair_right2": {
"rotation": ["2*math.sin(q.anim_time*90*4*2+15)+2*math.clamp(math.sin(q.anim_time*90*4*2+60),-4,4)", 0, 0]
"frontpaw_left": {
"rotation": [6, 0, 3]
},
"front_leg_right": {
"rotation": [8, 2.5, 3]
},
"elbow_right": {
"rotation": [-13.5, 0, 0]
},
"frontpaw_right": {
"rotation": [6, 0, -3]
},
"back_leg_left": {
"rotation": [8, -2.5, -5]
},
"knee_left": {
"rotation": [-5, 0, 0]
},
"ankle_left": {
"rotation": [-3, 0, 0]
},
"foot_left": {
"rotation": [0, 0, 5]
},
"back_leg_right": {
"rotation": [8, 2.5, 5]
},
"knee_right": {
"rotation": [-5, 0, 0]
},
"ankle_right": {
"rotation": [-3, 0, 0]
},
"foot_right": {
"rotation": [0, 0, -5]
}
}
},
"animation.glaceon.blink": {
"animation_length": 0.1667,
"bones": {
"eye_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.glaceon.cry": {
"animation_length": 1.75,
"animation.glaceon.pose": {
"loop": true,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": [0, 0, 0]
}
"glaceon": {
"rotation": [0, -55, 0]
},
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, 0, -0.1],
"1.4167": [0, 0, -0.1],
"1.4583": [0, 0, 0]
}
"torso": {
"rotation": [5, 0, 0]
},
"torso2": {
"rotation": [-5, 0, 0]
},
"torso3": {
"rotation": [-5, 0, 0]
},
"head_angle": {
"rotation": [-7.5, 31, -12]
},
"hair_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [-23.99144, -1.17962, -26.96951]
},
"hair_left2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, 10]
},
"hair_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"hair_left3": {
"rotation": [0, 0, 12.5]
},
"hair_right2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-1.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"hair_left4": {
"rotation": [0, 0, 12.5]
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [0, 0, 7.4],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [0, 0, 0.3],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": [0, 0, 0]
}
"rotation": [24, -37.5, -38.5]
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [0, 0, -7.4],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [0, 0, -0.3],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": [0, 0, 0]
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.glaceon.cry"
"rotation": [27.5, 37.5, -12.5]
},
"tail": {
"rotation": [-11.1003, -13.75392, -4.78274]
},
"front_leg_left": {
"rotation": [-12.589, -8.403, -3.25155]
},
"frontpaw_left": {
"rotation": [12.48848, -0.54094, 2.44081]
},
"front_leg_right": {
"rotation": [7.5, 0, 0]
},
"elbow_right": {
"rotation": [-10, 0, 0]
},
"back_leg_left": {
"rotation": [15, 0, -15]
},
"foot_left": {
"rotation": [-14.83045, 1.29256, 14.94548]
},
"back_leg_right": {
"rotation": [7.5, 0, 20]
},
"foot_right": {
"rotation": [-7.50238, -0.10901, -20.00238]
},
"tail2": {
"rotation": [22.5, 0, 0]
},
"tail3": {
"rotation": [30, 0, 0]
},
"tail4": {
"rotation": [20, 0, 0]
},
"hair_right": {
"rotation": [-15.54836, 12.65737, 8.61486]
},
"hair_right2": {
"rotation": [0, 0, -10]
},
"hair_right3": {
"rotation": [0, 0, -17.5]
},
"hair_right4": {
"rotation": [0, 0, -7.5]
}
}
}
@@ -0,0 +1,287 @@
{
"format_version": "1.8.0",
"animations": {
"animation.froslass.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [5, 0, 0],
"position": [0, 1, 0]
},
"torso2": {
"rotation": [-5, 0, 0]
},
"ribbon_left": {
"rotation": [10.23772, 12.3071, 2.20462]
},
"torso3": {
"rotation": [-2.5, 0, 0]
},
"neck": {
"rotation": [5, 0, 0]
},
"head": {
"rotation": [5, 0, 0]
},
"arm_left": {
"rotation": [5, 0, -10]
},
"arm_left2": {
"rotation": [-5, 0, -10]
},
"arm_left3": {
"rotation": [-7.5, 0, 0]
},
"arm_left_back": {
"rotation": [0, 7.5, 0]
},
"skirt": {
"rotation": [5, 0, 0]
},
"skirt_front": {
"rotation": [2.5, 0, 0]
},
"skirt_back": {
"rotation": [5, 0, 0]
},
"skirt_left": {
"rotation": [0, 0, -2.5]
},
"skirt_right": {
"rotation": [0, 0, 2.5]
},
"finger1_left": {
"rotation": [-9.25249, 3.81024, 22.19157]
},
"finger2_left": {
"rotation": [0, 0, 17.5]
},
"finger3_left": {
"rotation": [14.89149, -9.29798, 31.28223]
},
"arm_right": {
"rotation": [5, 0, 10]
},
"arm_right2": {
"rotation": [-5, 0, 10]
},
"arm_right3": {
"rotation": [-7.5, 0, 0]
},
"arm_right_back": {
"rotation": [0, 5, 0]
},
"fingers_right": {
"rotation": [-5, 0, 0]
},
"finger1_right": {
"rotation": [-13.90319, -7.98133, -15.62489]
},
"finger2_right": {
"rotation": [0, 0, -15]
},
"finger3_right": {
"rotation": [9.25249, 3.81024, -22.19157]
},
"ribbon_right": {
"rotation": [10.23772, -12.3071, -2.20462]
}
}
},
"animation.froslass.battle_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [5, 0, 0],
"position": [0, 1, 0]
},
"torso2": {
"rotation": [-5, 0, 0]
},
"ribbon_left": {
"rotation": [10.23772, 12.3071, 2.20462]
},
"torso3": {
"rotation": [-2.5, 0, 0]
},
"neck": {
"rotation": [5, 0, 0]
},
"head": {
"rotation": [5, 0, 0]
},
"arm_left": {
"rotation": [5, 0, -10]
},
"arm_left2": {
"rotation": [-5, 0, -10]
},
"arm_left3": {
"rotation": [-7.5, 0, 0]
},
"arm_left_back": {
"rotation": [0, 7.5, 0]
},
"skirt": {
"rotation": [5, 0, 0]
},
"skirt_front": {
"rotation": [2.5, 0, 0]
},
"skirt_back": {
"rotation": [5, 0, 0]
},
"skirt_left": {
"rotation": [0, 0, -2.5]
},
"skirt_right": {
"rotation": [0, 0, 2.5]
},
"finger1_left": {
"rotation": [-9.25249, 3.81024, 22.19157]
},
"finger2_left": {
"rotation": [0, 0, 17.5]
},
"finger3_left": {
"rotation": [14.89149, -9.29798, 31.28223]
},
"arm_right": {
"rotation": [-43.34873, 14.90631, 5.31747]
},
"arm_right2": {
"rotation": [-40.144, -22.32924, -24.25045]
},
"arm_right3": {
"rotation": [-14.94452, 1.1229, -57.97513]
},
"arm_right_back": {
"rotation": [0, 5, 0]
},
"fingers_right": {
"rotation": [-5, 0, 0]
},
"finger1_right": {
"rotation": [-13.90319, -7.98133, -15.62489]
},
"finger2_right": {
"rotation": [0, 0, -15]
},
"finger3_right": {
"rotation": [9.25249, 3.81024, -22.19157]
},
"ribbon_right": {
"rotation": [10.23772, -12.3071, -2.20462]
}
}
},
"animation.froslass.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_open_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.125": [-0.1, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_closed_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_open_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.125": [0.1, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_closed_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.froslass.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.2, 0],
"scale": [0.7, 0.6, 1]
},
"eyelid_open_left": {
"position": [-0.1, 0, 0.1]
},
"pupil_right": {
"position": [0, -0.2, 0],
"scale": [0.7, 0.6, 1]
},
"eyelid_open_right": {
"position": [0.1, 0, 0.1]
}
}
},
"animation.froslass.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0, 0, -0.1]
},
"eye_angry_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.froslass.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, -0.1]
},
"eye_sad_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.froslass.happy": {
"loop": true,
"bones": {
"eyelid_open_left": {
"position": [-0.1, 0, 0.1]
},
"eyelid_open_right": {
"position": [0.1, 0, 0.1]
},
"eyelid_happy_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_happy_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.froslass.hurt": {
"loop": true,
"bones": {
"eyelid_open_left": {
"position": [-0.1, 0, 0.1]
},
"eyelid_open_right": {
"position": [0.1, 0, 0.1]
},
"eyelid_recoil_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,213 @@
{
"format_version": "1.8.0",
"animations": {
"animation.munna.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [-4.98043, 0.29177, 0.31964],
"position": [0, 3, 0]
},
"leg_front_left": {
"rotation": [9.97359, 0.72047, 7.4455]
},
"leg_back_left": {
"rotation": [-7.5, 0, 12.5]
},
"leg_front_right": {
"rotation": [9.97359, -0.72047, -7.4455]
},
"cloud": {
"scale": 0
}
}
},
"animation.munna.blink": {
"animation_length": 0.1667,
"bones": {
"eyelash_left": {
"position": {
"0.0": [0, -3.75, 0],
"0.125": [0, -3.75, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"eyelash_left2": {
"position": {
"0.0": [0, -3.75, 0],
"0.125": [0, -3.75, 0],
"0.1667": [0, 0, 0]
}
},
"eyelash_right": {
"position": {
"0.0": [0, -3.75, 0],
"0.125": [0, -3.75, 0],
"0.1667": [0, 0, 0]
}
},
"eyelash_right2": {
"position": {
"0.0": [0, -3.75, 0],
"0.125": [0, -3.75, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.munna.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.75, 0],
"scale": [1, 0.7, 0.7]
},
"muzzle": {
"rotation": [-27.5, 0, 0]
},
"pupil_right": {
"position": [0, -0.75, 0],
"scale": [1, 0.7, 0.7]
},
"jaw": {
"rotation": [7.5, 0, 0]
}
}
},
"animation.munna.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, 0]
},
"eyelash_left": {
"position": [0, -0.25, 0]
},
"eyelash_left2": {
"position": [0, 0.25, 0]
},
"pupil_left": {
"position": [0, -0.25, 0]
},
"eye_angry_right": {
"position": [-0.1, 0, 0]
},
"eyelash_right": {
"position": [0, -0.25, 0]
},
"eyelash_right2": {
"position": [0, 0.25, 0]
}
}
},
"animation.munna.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0.5, 0]
},
"eyelash_left2": {
"position": [0, -0.5, 0]
},
"eye_sad_right": {
"position": [-0.1, 0.5, 0]
},
"eyelash_right2": {
"position": [0, -0.5, 0]
}
}
},
"animation.munna.happy": {
"loop": true,
"bones": {
"eyelash_left": {
"position": [-0.1, 0, 0]
},
"eyelash_left2": {
"position": [-0.1, 0, 0]
},
"eyelid_happy_left": {
"position": [0.1, 0, 0]
},
"muzzle": {
"rotation": [-27.5, 0, 0]
},
"eyelash_right": {
"position": [0.1, 0, 0]
},
"eyelash_right2": {
"position": [0.1, 0, 0]
},
"eyelid_happy_right": {
"position": [-0.1, 0, 0]
},
"jaw": {
"rotation": [7.5, 0, 0]
}
}
},
"animation.munna.hurt": {
"loop": true,
"bones": {
"eyelash_left": {
"position": [0, -2, 0]
},
"eyelash_left2": {
"position": [0, -1, 0]
},
"eyelid_recoil_left": {
"position": [0.1, 0, 0]
},
"eyelash_right": {
"position": [0, -2, 0]
},
"eyelash_right2": {
"position": [0, -1, 0]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.munna.render": {
"loop": true,
"bones": {
"body": {
"rotation": [-15, 45, 0]
},
"jaw": {
"rotation": [10, 0, 0]
},
"muzzle": {
"rotation": [-22.5, 0, 0]
},
"leg_front_left": {
"rotation": [12.5, 0, 0]
},
"leg_back_left": {
"rotation": [15, 0, 0]
},
"leg_front_right": {
"rotation": [-15, 0, 0]
},
"leg_back_right": {
"rotation": [10, 0, -10]
}
}
}
}
}
@@ -0,0 +1,233 @@
{
"format_version": "1.8.0",
"animations": {
"animation.musharna.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [55.86272, 35.37604, 6.30048],
"position": [0, 9, 0]
},
"head2": {
"rotation": [0, 0, 0]
},
"muzzle": {
"rotation": [7.5, 0, 0]
},
"leg_left": {
"rotation": [-32.66492, 9.68323, -2.62049]
},
"leg_left2": {
"rotation": [0, 7.5, 0]
},
"leg_right": {
"rotation": [-32.66492, -9.68323, 2.62049]
},
"leg_right2": {
"rotation": [0, -7.5, 0]
},
"arm_right": {
"rotation": [10.88852, -16.41371, -6.15491]
},
"arm_left": {
"rotation": [10.88852, 16.41371, 6.15491]
},
"arm_left2": {
"rotation": [0, 10, 0]
},
"arm_right2": {
"rotation": [0, -10, 0]
},
"cloud": {
"rotation": [-7.5, 0, 0]
},
"cloud3": {
"rotation": [-5, 0, 0]
},
"cloud4": {
"rotation": [0, -12.5, 0]
},
"cloud6": {
"rotation": [-2.5, 0, 0]
},
"cloud8": {
"rotation": [10, 0, 0]
},
"cloud9": {
"rotation": [-15, 0, 0]
},
"cloud10": {
"rotation": [22.5, 0, 0]
},
"cloud2": {
"rotation": [-2.5, 0, 0]
}
}
},
"animation.musharna.open_eyes": {
"loop": true,
"bones": {
"eye_closed_left": {
"position": [-0.1, 0, 0]
},
"eye_open_left": {
"position": [0.1, 0, 0]
},
"eyelash_left": {
"position": [0, 3.7, 0]
},
"eye_closed_right": {
"position": [0.1, 0, 0]
},
"eye_open_right": {
"position": [-0.1, 0, 0]
},
"eyelash_right": {
"position": [0, 3.7, 0]
}
}
},
"animation.musharna.sad": {
"loop": true,
"bones": {
"eye_closed_left": {
"position": [-0.1, 0, 0]
},
"eye_sad_left": {
"position": [0.1, 0, 0]
},
"eye_closed_right": {
"position": [0.1, 0, 0]
},
"eye_sad_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.musharna.happy": {
"loop": true,
"bones": {
"eye_closed_left": {
"position": [-0.1, 0, 0]
},
"eye_happy_left": {
"position": [0.1, 0, 0]
},
"jaw": {
"rotation": [50, 0, 0]
},
"eye_closed_right": {
"position": [0.1, 0, 0]
},
"eye_happy_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.musharna.hurt": {
"loop": true,
"bones": {
"eye_closed_left": {
"position": [-0.1, 0, 0]
},
"eye_recoil_left": {
"position": [0.1, 0, 0]
},
"eye_closed_right": {
"position": [0.1, 0, 0]
},
"eye_recoil_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.musharna.render": {
"loop": true,
"bones": {
"body": {
"rotation": [41.93206, 54.77621, -11.63655],
"position": [0, 9, 0]
},
"head2": {
"rotation": [0, 0, 0]
},
"muzzle": {
"rotation": [7.5, 0, 0]
},
"leg_left": {
"rotation": [-35.16492, 9.68323, -2.62049]
},
"leg_left2": {
"rotation": [0, 7.5, 0]
},
"leg_right": {
"rotation": [-20.16492, -9.68323, 2.62049]
},
"leg_right2": {
"rotation": [0, -7.5, 0]
},
"arm_right": {
"rotation": [30.88852, -16.41371, -6.15491]
},
"arm_left": {
"rotation": [23.38852, 16.41371, 6.15491]
},
"arm_left2": {
"rotation": [0, 10, 0]
},
"arm_right2": {
"rotation": [0, -10, 0]
},
"cloud": {
"rotation": [-7.5, 0, 0]
},
"cloud3": {
"rotation": [-5, 0, 0]
},
"cloud4": {
"rotation": [1.71343, -13.36898, -7.6438]
},
"cloud6": {
"rotation": [-2.15993, -3.21132, -12.08681]
},
"cloud8": {
"rotation": [11.65589, -11.31335, -16.60179]
},
"cloud9": {
"rotation": [-15.10257, -2.86544, 4.09918]
},
"cloud10": {
"rotation": [21.55613, -6.60796, 16.24074]
},
"cloud2": {
"rotation": [-2.9377, 4.2453, -11.76782]
},
"chest": {
"rotation": [2.5, 0, 0]
},
"cloud5": {
"rotation": [-2.42287, 1.91134, 4.62111]
},
"cloud7": {
"rotation": [0, 0, 0]
}
}
},
"animation.musharna.portrait": {
"loop": true,
"bones": {
"body": {
"rotation": [54.46871, -24.19344, 6.49763]
}
}
},
"animation.musharna.profile": {
"loop": true,
"bones": {
"body": {
"rotation": [55, 0, 0]
}
}
}
}
}
@@ -0,0 +1,189 @@
{
"format_version": "1.8.0",
"animations": {
"animation.zebstrika.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [7.5, 0, 0]
},
"torso2": {
"rotation": [-12.5, 0, 0]
},
"leg_front_left": {
"rotation": [0, -2.5, 0]
},
"leg_front_right": {
"rotation": [0, 2.5, 0]
},
"leg_back_left": {
"rotation": [0, -2.5, -1]
},
"leg_back_right": {
"rotation": [0, 2.5, 1]
},
"tail": {
"rotation": [-10, 0, 0]
},
"tail4": {
"rotation": [-10, 0, 0]
},
"head": {
"rotation": [-5, 0, 0]
}
}
},
"animation.zebstrika.blink": {
"animation_length": 0.1667,
"bones": {
"right_eyelid": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"left_eyelid": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_unamused_left": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"undefined": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_unamused_right": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.zebstrika.unamused": {
"loop": true
},
"animation.zebstrika.sad": {
"loop": true,
"bones": {
"mouth_closed_smile": {
"scale": 0
},
"mouth_closed_neutral": {
"scale": 0
},
"mouth_closed_frown": {
"position": [0, -0.1, 0]
},
"eyelid_unamused_left": {
"position": [-0.1, 0, 0]
},
"eyelid_sad_left": {
"position": [0.1, 0, 0]
},
"undefined": {
"position": [0.1, 0, 0]
},
"eyelid_unamused_right": {
"position": [0.1, 0, 0]
},
"eyelid_sad_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.zebstrika.angry": {
"loop": true,
"bones": {
"mouth_closed_smile": {
"scale": 0
},
"mouth_closed_neutral": {
"scale": 0
},
"mouth_closed_frown": {
"position": [0, -0.1, 0]
},
"eyelid_angry_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_unamused_left": {
"position": [-0.1, 0, 0]
},
"undefined": {
"position": [0.1, 0, 0]
},
"eyelid_unamused_right": {
"position": [0.1, 0, 0]
},
"eyelid_angry_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.zebstrika.happy": {
"loop": true,
"bones": {
"eyelid_unamused_left": {
"position": [-0.1, 0, 0]
},
"eyelid_happy_left": {
"position": [0.1, 0, 0]
},
"undefined": {
"position": [0.1, 0, 0]
},
"eyelid_unamused_right": {
"position": [0.1, 0, 0]
},
"eyelid_happy_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.zebstrika.surpised": {
"loop": true,
"bones": {
"jaw": {
"rotation": [55, 0, 0]
},
"eyelid_unamused_left": {
"position": [-0.1, 0, 0]
},
"undefined": {
"position": [-0.1, 0, 0]
},
"eyelid_unamused_right": {
"position": [0.1, 0, 0]
}
}
}
}
}
@@ -0,0 +1,144 @@
{
"format_version": "1.8.0",
"animations": {
"animation.trubbish.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [-7.5, 0, 0]
},
"arm_left": {
"rotation": [-1.3378, -14.94159, 15.17544]
},
"arm_left2": {
"rotation": [0, -22.5, 0]
},
"hand_left": {
"rotation": [3.48303, -24.77164, -8.26511]
},
"hand_left2": {
"rotation": [0, -10, 0]
},
"arm_right": {
"rotation": [-1.3378, 14.94159, -15.17544]
},
"arm_right2": {
"rotation": [0, 22.5, 0]
},
"hand_right": {
"rotation": [3.48303, 24.77164, 8.26511]
},
"hand_right2": {
"rotation": [0, 10, 0]
},
"ear_left": {
"rotation": [-9.91615, 1.29876, 34.88733]
},
"ear_left2": {
"rotation": [-15, 0, 0]
},
"ear_right": {
"rotation": [-2.5, 0, -10]
},
"ear_right2": {
"rotation": [-7.5, 0, 0]
},
"legs": {
"rotation": [-5, 0, 0]
},
"leg_left": {
"rotation": [0, -25, 0]
},
"leg_right": {
"rotation": [0, 25, 0]
},
"body": {
"rotation": [5, 0, 0]
}
}
},
"animation.trubbish.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.trubbish.shock": {
"loop": true,
"bones": {
"pupil_left": {
"scale": [0.7, 0.7, 1]
},
"pupil_right": {
"scale": [0.7, 0.7, 1]
},
"mouth_open": {
"position": [0, 0, -0.1]
}
}
},
"animation.trubbish.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0, 0, -0.1]
},
"pupil_left": {
"position": [0, -0.5, 0]
},
"eye_angry_right": {
"position": [0, 0, -0.1]
},
"pupil_right": {
"position": [0, -0.5, 0]
}
}
},
"animation.trubbish.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0, 0, -0.1]
},
"eye_sad_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.trubbish.happy": {
"loop": true,
"bones": {
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.trubbish.recoil": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -0,0 +1,183 @@
{
"format_version": "1.8.0",
"animations": {
"animation.garbodor.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [-2.5, 0, 0]
},
"torso2": {
"rotation": [2.5, 0, 2.5]
},
"chest": {
"rotation": [2.5, 0, -2.5]
},
"arm_left": {
"rotation": [0.44621, -11.3875, 35.38426]
},
"arm_left2": {
"rotation": [0, 35, 0]
},
"arm_left3": {
"rotation": [-12.5, 47.5, 0]
},
"arm_left4": {
"rotation": [0, 20, 0]
},
"arm_left5": {
"rotation": [-22.5, 20, 0]
},
"hand_left": {
"rotation": [0, -12.5, 0]
},
"hand_left2": {
"rotation": [0, -5, 0]
},
"head": {
"rotation": [-2.50238, 0.10901, 5.00238]
},
"leg_left": {
"rotation": [0, -10, 0]
},
"leg_right": {
"rotation": [0, 10, 0]
},
"ear_right": {
"rotation": [0, 0, -7.5]
},
"arm_right": {
"rotation": [3.28396, -12.06754, 2.15279]
},
"arm_right2": {
"rotation": [-18.5482, -26.74387, 38.05687]
},
"arm_right3": {
"rotation": [-11.93851, 3.67352, 49.53414]
},
"arm_right4": {
"rotation": [-4.95744, -0.65182, -7.47178]
},
"arm_right5": {
"rotation": [-11.79777, -16.25509, -27.7149]
},
"hand_right": {
"rotation": [0, 0, -5]
},
"finger_back_right": {
"rotation": [-2.06754, 22.40972, -5.40961]
},
"finger_front_right": {
"rotation": [0, -15, 0]
},
"thumb_right": {
"rotation": [0, 0, 15]
},
"cape_left": {
"rotation": [-0.6353, 7.46602, -4.71385]
},
"cape_left2": {
"rotation": [2.5, 0, 5]
},
"cape_right": {
"rotation": [-0.6353, -7.46602, 4.71385]
},
"cape_right2": {
"rotation": [2.5, 0, -5]
}
}
},
"animation.garbodor.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.garbodor.shock": {
"loop": true,
"bones": {
"pupil_left": {
"scale": [0.7, 0.7, 1]
},
"pupil_right": {
"scale": [0.7, 0.7, 1]
},
"mouth_closed": {
"position": [0, 0, 1]
},
"mouth_open": {
"position": [0, 0, -1]
}
}
},
"animation.garbodor.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0, 0, -0.1]
},
"pupil_left": {
"position": [0, -0.5, 0]
},
"pupil_right": {
"position": [0, -0.5, 0]
},
"eye_angry_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.garbodor.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0, 0, -0.1]
},
"eye_sad_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.garbodor.happy": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 1]
},
"mouth_open": {
"position": [0, 0, -1]
},
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.garbodor.recoil": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -4,489 +4,280 @@
"animation.sylveon.ground_idle": {
"loop": true,
"bones": {
"head": {
"rotation": ["-math.sin(q.anim_time*90*4)*0.2", 0, "math.clamp(math.sin(q.anim_time*90*4+45)*0.2,-1.2,1.2)"]
"body": {
"position": [0, -0.2, 0]
},
"ear_right": {
"rotation": ["2*math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-1,1)", 0, 0]
"ribbon_neck_left": {
"rotation": [-15, -15, 0]
},
"ribbon_neck_left2": {
"rotation": [-5, -47, 7.5]
},
"ribbon_neck_left3": {
"rotation": [8.5, -60, -10]
},
"ribbon_neck_left4": {
"rotation": [10.5, -46.5, -14.5]
},
"ribbon_neck_left5": {
"rotation": [0, 22.5, 19.5]
},
"ribbon_neck_left6": {
"rotation": [7, 18.5, 21]
},
"ribbon_neck_right": {
"rotation": [-22.5, 7.5, -35]
},
"ribbon_neck_right2": {
"rotation": [-56, 20, -21.5]
},
"ribbon_neck_right3": {
"rotation": [-35, 50, 0]
},
"ribbon_neck_right4": {
"rotation": [-13.5, 55.5, 10]
},
"ribbon_neck_right5": {
"rotation": [-20, 85, 0]
},
"ribbon_neck_right6": {
"rotation": [-18.5, 50, -23.5]
},
"ear_left": {
"rotation": ["2*math.sin(q.anim_time*90*2+90)-math.clamp(math.sin(q.anim_time*90*2-90),-1,1)", 0, 0]
"rotation": [-2, -5, 15]
},
"ear_left2": {
"rotation": [-2, 0, 0]
},
"ear_left3": {
"rotation": [-2, 0, 0]
},
"ribbon_ear_right": {
"rotation": [0, 52.5, -25]
},
"ribbon_ear_right2": {
"rotation": [0, -35, 5]
},
"ribbon_ear_right3": {
"rotation": [-135, -37.5, 120]
},
"ribbon_ear_right4": {
"rotation": [-25, -60, 30]
},
"ribbon_ear_left": {
"rotation": [0, -25, 17.5]
},
"ribbon_ear_left2": {
"rotation": [0, -35, -12.5]
},
"ribbon_ear_left3": {
"rotation": [0, -25, -10]
},
"ribbon_ear_left4": {
"rotation": [0, 20, -12.5]
},
"ear_right": {
"rotation": [-2, 5, -15]
},
"ear_right2": {
"rotation": [-2, 0, 0]
},
"ear_right3": {
"rotation": [-2, 0, 0]
},
"tail": {
"rotation": ["20+6*(math.sin(q.anim_time*90*2)*1)+6*(math.sin(q.anim_time*90*2/2)*1)", 0, 0]
"rotation": [25, 0, 0]
},
"tail2": {
"rotation": ["5+6*(math.sin(q.anim_time*90*2-90)*1)+6*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
"rotation": [20, 0, 0]
},
"tail3": {
"rotation": ["5+6*(math.sin(q.anim_time*90*2-90)*1)+6*(math.sin(q.anim_time*90*2/2-90)*1)", 0, 0]
"rotation": [10, 0, 0]
},
"ear_ribbon_right": {
"rotation": [0, "22.5-math.sin(q.anim_time*90*3-45)*3", 0]
"front_leg_left": {
"rotation": [2.5, 0, 0]
},
"ear_ribbon_right2": {
"rotation": [0, "-7.5-math.sin(q.anim_time*90*3+90)*3", 0]
"elbow_left": {
"rotation": [-5, 0, 0]
},
"ear_ribbon_right3": {
"rotation": [0, "-65-math.sin(q.anim_time*90*3+45)*5", 0]
"frontpaw_left": {
"rotation": [2.5, 0, 0]
},
"ear_ribbon_right4": {
"rotation": [0, "-90-math.sin(q.anim_time*90*3-90)*10", 0]
"front_leg_right": {
"rotation": [2.5, 0, 0]
},
"ear_ribbon_left": {
"rotation": [15, "-25+math.sin(q.anim_time*90*3-90)*4", -10]
"elbow_right": {
"rotation": [-5, 0, 0]
},
"ear_ribbon_left2": {
"rotation": [0, "-45+math.sin(q.anim_time*90*3-180)*6", 0]
"frontpaw_right": {
"rotation": [2.5, 0, 0]
},
"ear_ribbon_left3": {
"rotation": [0, "-42.5+math.sin(q.anim_time*90*3-60-180)*6", 0]
"back_leg_left": {
"rotation": [5, -2.5, -2.5]
},
"ear_ribbon_left4": {
"rotation": [0, "-35+math.sin(q.anim_time*90*3-120-180)*8", 0]
"ankle_left": {
"rotation": [-2.5, 0, 0]
},
"ribbon_right": {
"rotation": [-15, "15-math.sin(q.anim_time*90*3-120)*2", -15]
"foot_left": {
"rotation": [-2.5, 0, 3]
},
"ribbon_right2": {
"rotation": [0, "45-math.sin(q.anim_time*90*3-120)*2", 0]
"back_leg_right": {
"rotation": [5, 2.5, 2.5]
},
"ribbon_right3": {
"rotation": [0, "25-math.sin(q.anim_time*90*3+150)*6", 0]
"ankle_right": {
"rotation": [-2.5, 0, 0]
},
"ribbon_right4": {
"rotation": [0, "10-math.sin(q.anim_time*90*3+90)*8", 0]
},
"ribbon_left": {
"rotation": [0, "-17.5+math.sin(q.anim_time*90*3+60)*1", -15]
},
"ribbon_left2": {
"rotation": [0, "-40+math.sin(q.anim_time*90*3-30)*4", 0]
},
"ribbon_left3": {
"rotation": [0, "-25+math.sin(q.anim_time*90*3-120)*6", 0]
},
"ribbon_left4": {
"rotation": [0, "-15+math.sin(q.anim_time*90*3-180)*8", 0]
},
"torso": {
"rotation": ["math.sin(q.anim_time*90*4)*0.2", 0, 0],
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4+180)*0.1,-0.03,0.03)+math.clamp(math.sin(q.anim_time*90*2+180)*0.15,-0.5,0.5))*0.5", 0]
}
}
},
"animation.sylveon.ground_walk": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
"position": [0, "-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
},
"head": {
"rotation": [0, 0, "-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"],
"position": [
"math.sin(q.anim_time*90*4-45)*0.1",
"math.clamp(math.sin(q.anim_time*90*4+30)*0.05,0.5,1)+math.clamp(math.sin(-q.anim_time*90*4+30)*0.05,0.5,1)+math.sin(-q.anim_time*90*8+30)*0.2-1",
0
]
},
"leg_front_right": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)",
0
]
},
"leg_front_left": {
"rotation": [
"30-math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-0.5+0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)",
0
]
},
"leg_back_right": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
0,
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180+180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90+180)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"leg_back_left": {
"rotation": [
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
0,
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
],
"position": [
0,
"-math.clamp(-math.sin(q.anim_time*90*4+90)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.4,0.6)-0.3",
-0.1
]
},
"ear_right": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"0.5*math.sin(q.anim_time*90*8+45)+0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
},
"ear_left": {
"rotation": [
"math.sin(q.anim_time*90*8+45)+math.clamp(math.sin(q.anim_time*90*8+90),-1,1)",
"-0.5*math.sin(q.anim_time*90*8+45)-0.5*math.clamp(math.sin(q.anim_time*90*8+90),-2,2)",
0
]
},
"leg_front_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+25",
0,
0
]
},
"leg_front_right3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10+180)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10+180)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40+180)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+180)*1.3,0.9,1)-0.9", 0]
},
"leg_front_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)+math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)-math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+25",
0,
0
]
},
"leg_front_left3": {
"rotation": [
"-45+math.clamp(20*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,0,10)-math.clamp(math.sin(q.anim_time*90*4-180+10)*20,-50,50)+math.clamp(math.sin(q.anim_time*90*4+10)*70,50,60)+math.clamp(math.sin(q.anim_time*90*4+40)*80,50,80)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
},
"leg_back_right2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_right3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100+180)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110)*1,0.8,1)-0.8", 0]
},
"leg_back_left2": {
"rotation": [
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1.5,0.5,0.8)-0.5", 0]
},
"leg_back_left3": {
"rotation": [
"-math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*25,0,45)+math.clamp(math.sin(q.anim_time*90*4+180)*15,0,45)-(-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-100)*100,60,100)-60",
0,
0
],
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.8,1)-0.8", 0]
}
}
},
"animation.sylveon.ground_run": {
"loop": true,
"override_previous_animation": true,
"bones": {
"body": {
"rotation": ["5*(math.sin(q.anim_time*90*4*2-90)*1+1)-math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)+15", 0, 0],
"position": [
0,
"math.clamp(math.sin(q.anim_time*90*4*2+45)*1,0.5,2)-0.5+math.clamp(math.sin(q.anim_time*90*4*2)*1,0,2)",
"-math.clamp(math.sin(q.anim_time*90*4*2-30)*2,0,2)+math.clamp(math.sin(-q.anim_time*90*4*2-30)*1,0,2)"
]
},
"head": {
"rotation": ["-5*(math.sin(q.anim_time*90*4*2-90)*1+1)+math.clamp(10*(math.sin(q.anim_time*90*4*2+45)*1+1),15,20)-15", 0, 0],
"position": [0, -1, -1]
},
"leg_front_right": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180)*20,5,70)+5",
0,
0
]
},
"leg_front_left": {
"rotation": [
"5+math.clamp(math.sin(-q.anim_time*90*4*1-20+30)*30,-40,0)+math.clamp(math.sin(q.anim_time*90*4*1+20-30)*30,-40,0)+math.clamp(math.sin(-q.anim_time*90*4*2-40+30)*50,0,70)-math.clamp(math.sin(-q.anim_time*90*4*2-30+180+30)*20,5,70)+5",
0,
0
]
},
"leg_back_right": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,-1,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"leg_back_left": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*4*2+20)*40,0,50)-math.clamp(math.sin(-q.anim_time*90*4*2-20)*40,0,50)", 0, 0],
"position": [
0,
"-math.clamp(math.sin(q.anim_time*90*4*2)*0.3,-1,2)-math.clamp(math.sin(-q.anim_time*90*4*2)*0.8,0,2)",
"-0.3+math.clamp(math.sin(q.anim_time*90*4*2-30)*0.5,0,2)-math.clamp(math.sin(q.anim_time*90*4*2-30+180)*0.5,0,2)"
]
},
"ear_right": {
"rotation": ["-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
},
"ear_left": {
"rotation": ["-10-4*math.sin(q.anim_time*90*4*2+45)-math.clamp(4*math.sin(q.anim_time*90*4*2+90),-4,4)", 0, 0]
},
"leg_front_right2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*4*2-90)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*4*2+180)*10,5,70)+5", 0, 0]
},
"leg_front_right3": {
"rotation": ["12*math.sin(q.anim_time*90*8+30)-math.clamp(math.sin(q.anim_time*90*8),1,1)", 0, 0]
},
"leg_front_left2": {
"rotation": ["-math.clamp(math.sin(-q.anim_time*90*8-90+30)*20,5,70)+5-math.clamp(math.sin(-q.anim_time*90*8+180+30)*10,5,70)+5", 0, 0]
},
"leg_front_left3": {
"rotation": ["8*math.sin(q.anim_time*90*8+30-90)-math.clamp(math.sin(q.anim_time*90*8-90),1,1)", 0, 0]
},
"leg_back_right2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-180-30)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,50)", 0, 0]
},
"leg_back_right3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+45-30)-math.clamp(math.sin(q.anim_time*90*8+90-30),1,1)", 0, 0]
},
"leg_back_left2": {
"rotation": ["math.clamp(math.sin(q.anim_time*90*8-90)*5,0,5)-math.clamp(math.sin(-q.anim_time*90*8-90)*10,0,10)", 0, 0]
},
"leg_back_left3": {
"rotation": ["20+20*math.sin(q.anim_time*90*8+15)-math.clamp(math.sin(q.anim_time*90*8+90),1,1)", 0, 0]
},
"tail": {
"rotation": ["10-math.sin(q.anim_time*90*4*2+60)*12", 0, 0]
},
"tail2": {
"rotation": ["-math.sin(q.anim_time*90*4*2-30)*14", 0, 0]
},
"tail3": {
"rotation": ["-math.sin(q.anim_time*90*4*2)*16", 0, 0]
},
"ear_ribbon_right": {
"rotation": [0, "25-math.sin(q.anim_time*90*4-60-90)*4", -5]
},
"ear_ribbon_right2": {
"rotation": [0, "52.5-math.sin(q.anim_time*90*4-60-180)*6", 0]
},
"ear_ribbon_right3": {
"rotation": [0, "20-math.sin(q.anim_time*90*4-120-180)*6", 0]
},
"ear_ribbon_right4": {
"rotation": [0, "-math.sin(q.anim_time*90*4+180-180)*8", 0]
},
"ear_ribbon_left": {
"rotation": [15, "-27.5+math.sin(q.anim_time*90*4-90)*4", -10]
},
"ear_ribbon_left2": {
"rotation": [0, "-50+math.sin(q.anim_time*90*4-180)*6", 0]
},
"ear_ribbon_left3": {
"rotation": [0, "-10+math.sin(q.anim_time*90*4-60-180)*6", 0]
},
"ear_ribbon_left4": {
"rotation": [0, "math.sin(q.anim_time*90*4-120-180)*8", 0]
},
"ribbon_right": {
"rotation": [-10, "17.5-math.sin(q.anim_time*90*4-120)*2", -5]
},
"ribbon_right2": {
"rotation": [0, "55-math.sin(q.anim_time*90*4-120)*2", 0]
},
"ribbon_right3": {
"rotation": [0, "17.5-math.sin(q.anim_time*90*4+150)*6", 0]
},
"ribbon_right4": {
"rotation": [0, "-math.sin(q.anim_time*90*4+90)*8", 0]
},
"ribbon_left": {
"rotation": [0, "-20+math.sin(q.anim_time*90*4+60)*1", -5]
},
"ribbon_left2": {
"rotation": [0, "-50+math.sin(q.anim_time*90*4-30)*4", 0]
},
"ribbon_left3": {
"rotation": [0, "-20+math.sin(q.anim_time*90*4-120)*6", 0]
},
"ribbon_left4": {
"rotation": [0, "math.sin(q.anim_time*90*4-180)*8", 0]
"foot_right": {
"rotation": [-2.5, 0, -3]
}
}
},
"animation.sylveon.blink": {
"animation_length": 0.1667,
"bones": {
"eye_right": {
"position": {
"0.0": [0.1, 0, 0.1],
"0.1667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.1667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.sylveon.cry": {
"animation_length": 2,
"animation.sylveon.pose": {
"loop": true,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"ribbon_ear_right": {
"rotation": [-8.16447, 59.46579, -11.54138]
},
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, 0, -0.1],
"1.25": [0, 0, -0.1],
"1.2917": [0, 0, 0]
}
"ribbon_ear_right2": {
"rotation": [3.36603, -27.20977, -11.0864]
},
"ear_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2917": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.9583": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"ribbon_ear_right3": {
"rotation": [-151.47661, -45.48137, 148.46033]
},
"ribbon_ear_right4": {
"rotation": [-47, -40.5, 37.5]
},
"ribbon_ear_left": {
"rotation": [-2.87277, 4.09405, 9.8973]
},
"ribbon_ear_left2": {
"rotation": [7.49332, -1.34767, -36.19577]
},
"ribbon_ear_left3": {
"rotation": [-1.50701, 4.76804, -47.56274]
},
"ribbon_ear_left4": {
"rotation": [-19.62313, -26.80494, 43.62387]
},
"body": {
"rotation": [0, 42.5, 0]
},
"head_angle": {
"rotation": [-13, -36, 23]
},
"ear_left": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2917": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7083": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.9583": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.0417": {
"effect": "pokemon.sylveon.cry"
"rotation": [-5, -10, 20]
},
"bow_ear": {
"rotation": [0, 0, -15]
},
"tail": {
"rotation": [7.5, 32.5, 0]
},
"tail2": {
"rotation": [17.5, 0, 0]
},
"tail3": {
"rotation": [17.5, 0, 0]
},
"front_leg_left": {
"rotation": [-20, 0, 0]
},
"frontpaw_left": {
"rotation": [22.5, 0, 0]
},
"front_leg_right": {
"rotation": [17.5, 0, 0]
},
"elbow_right": {
"rotation": [-5, 0, 0]
},
"frontpaw_right": {
"rotation": [-12.5, 0, 0]
},
"back_leg_left": {
"rotation": [15, 0, 0]
},
"foot_left": {
"rotation": [-15, 0, 0]
},
"ankle_right": {
"rotation": [-10, 0, 0]
},
"foot_right": {
"rotation": [12.5, 0, 0]
},
"bow_neck": {
"rotation": [-17.5, 0, 0]
},
"ribbon_neck_left": {
"rotation": [8.5, -22, 15],
"position": [0, 0, -0.2]
},
"ribbon_neck_left2": {
"rotation": [-39.80911, -60.39937, 25.5634]
},
"ribbon_neck_left3": {
"rotation": [-0.93737, -31.7447, -23.743]
},
"ribbon_neck_left4": {
"rotation": [-29.07442, -21.64613, 10.26355]
},
"ribbon_neck_left5": {
"rotation": [-0.57587, 20.05826, 34.79096]
},
"ribbon_neck_left6": {
"rotation": [-31.01357, -8.21219, 67.36018]
},
"ribbon_neck_right": {
"rotation": [20, 0, -50]
},
"ribbon_neck_right2": {
"rotation": [-30, 32.5, 0]
},
"ribbon_neck_right3": {
"rotation": [-76.71018, 46.03805, -71.83277]
},
"ribbon_neck_right4": {
"rotation": [-47.10792, 58.70409, -27.40784]
},
"ribbon_neck_right5": {
"rotation": [-78.30408, 64.53645, -79.41322]
},
"ribbon_neck_right6": {
"rotation": [0, 60, 0]
},
"ear_right": {
"rotation": [-5, 10, -7.5]
}
}
}
@@ -0,0 +1,594 @@
{
"format_version": "1.8.0",
"animations": {
"animation.hawlucha.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [7.5, 0, 0]
},
"arm_left": {
"rotation": [9.7, -10.3, 38.5],
"position": [-1.4, 1.4, -0.4]
},
"arm_left2": {
"rotation": [25.7, 42.6, 30],
"position": [-1.2, -0.3, 0.74]
},
"feather_inner_left": {
"rotation": [15, 0, 0],
"position": [0, 0, -1]
},
"feather_middle_inner_left": {
"rotation": [12.5, 0, 0],
"position": [-0.95, -0.75, -1]
},
"wing_left2": {
"rotation": [38.75, 45.95, 40.25],
"position": [-2.5, -1.5, -1.4]
},
"pupil_right": {
"position": [0, -0.25, 0]
},
"pupil_left": {
"position": [0, -0.25, 0]
},
"hand_left": {
"rotation": [-0.26, 7.36, 22.89],
"position": [0.19476, 0.4605, 0.00226]
},
"finger_front_left": {
"rotation": [121.97401, 19.44675, 49.22434],
"position": [-0.91298, -0.98715, -0.38512]
},
"finger_back_left": {
"rotation": [-120.30974, -14.31429, 42.9406],
"position": [-0.91296, -0.98713, 0.38508]
},
"finger_mid_left": {
"rotation": [0, 0, 7.5],
"position": [-0.25, 0.43301, 0]
},
"wing_left": {
"rotation": [10, 0, -20],
"position": [0.93969, 1.34202, 0]
},
"feather_middle_left": {
"rotation": [0, 0, -22.5],
"position": [0.1, -0.3, 0]
},
"feather_outer_left": {
"rotation": [0, 0, -35],
"position": [-0.8, -0.55, 0]
},
"torso2": {
"rotation": [-12.5, 0, 0],
"position": [0, -0.98, -0.22]
},
"torso_feather_middle_front_right": {
"rotation": [-1.36836, -4.98206, -26.32683]
},
"torso_feather_middle_back_right": {
"rotation": [0, 0, -25]
},
"torso_feather_side_left": {
"rotation": [12.5, 0, 0]
},
"torso_feather_middle_front_left": {
"rotation": [-1.36836, 4.98206, 26.32683]
},
"torso_feather_middle_back_left": {
"rotation": [0, 0, 25]
},
"torso_feather_side_right": {
"rotation": [12.5, 0, 0]
},
"wing_back": {
"rotation": [22.5, 0, 0]
},
"wing_back_left2": {
"rotation": [-2.5, 0, 0]
},
"wing_back_right2": {
"rotation": [-2.5, 0, 0]
},
"wing_back2": {
"rotation": [-10, 0, 0]
},
"feather_inner_left2": {
"rotation": [-15, 0, 0]
},
"feather_middle_inner_left2": {
"rotation": [-15, 0, 0]
},
"feather_middle_left2": {
"rotation": [-10, 0, 0]
},
"feather_middle_outer_left": {
"rotation": [2.38443, 0.75155, -24.98436],
"position": [0, -0.2, 0]
},
"feather_middle_outer_left2": {
"rotation": [-12.5, 0, 0]
},
"feather_outer_left2": {
"rotation": [-20, 0, 0]
},
"arm_right": {
"rotation": [9.7, 10.3, -38.5],
"position": [1.4, 1.4, -0.4]
},
"arm_right2": {
"rotation": [25.7, -42.6, -30],
"position": [1.2, -0.3, 0.74]
},
"hand_right": {
"rotation": [-0.26, -7.36, -22.89],
"position": [-0.19476, 0.4605, 0.00226]
},
"finger_front_right": {
"rotation": [121.97401, -19.44675, -49.22434],
"position": [0.91298, -0.98715, -0.38512]
},
"finger_back_right": {
"rotation": [-120.30974, 14.31429, -42.9406],
"position": [0.91296, -0.98713, 0.38508]
},
"finger_mid_right": {
"rotation": [0, 0, -7.5],
"position": [0.25, 0.43301, 0]
},
"wing_right": {
"rotation": [10, 0, 20],
"position": [-0.93969, 1.34202, 0]
},
"feather_inner_right": {
"rotation": [15, 0, 0],
"position": [0, 0, -1]
},
"feather_inner_right2": {
"rotation": [-15, 0, 0]
},
"feather_middle_inner_right": {
"rotation": [12.5, 0, 0],
"position": [0.95, -0.75, -1]
},
"feather_middle_inner_right2": {
"rotation": [-15, 0, 0]
},
"wing_right2": {
"rotation": [38.75, -45.95, -40.25],
"position": [2.5, -1.5, -1.4]
},
"feather_middle_right": {
"rotation": [0, 0, 22.5],
"position": [-0.1, -0.3, 0]
},
"feather_middle_right2": {
"rotation": [-10, 0, 0]
},
"feather_middle_outer_right": {
"rotation": [2.38443, -0.75155, 24.98436],
"position": [0, -0.2, 0]
},
"feather_middle_outer_right2": {
"rotation": [-12.5, 0, 0]
},
"feather_outer_right": {
"rotation": [0, 0, 35],
"position": [0.8, -0.55, 0]
},
"feather_outer_right2": {
"rotation": [-20, 0, 0]
},
"body": {
"position": [0, -0.2, 0]
},
"head": {
"rotation": [8, 0, 0]
},
"leg_right": {
"rotation": [-2.5, 0, 15]
},
"leg_right2": {
"rotation": [5, 0, -10]
},
"foot_right": {
"rotation": [-2.5, 0, -5]
},
"leg_left": {
"rotation": [-2.5, 0, -15]
},
"leg_left2": {
"rotation": [5, 0, 10]
},
"foot_left": {
"rotation": [-2.5, 0, 5]
},
"claw_front_left": {
"rotation": [0, 0, 45],
"position": [0.07071, -0.07071, 0]
},
"claw_back_left": {
"rotation": [0, 0, 45],
"position": [0.07071, -0.07071, 0]
},
"claw_mid_left": {
"rotation": [0, 0, 45],
"position": [0.07071, -0.07071, 0]
},
"claw_front_right": {
"rotation": [0, 0, -45],
"position": [-0.07071, -0.07071, 0]
},
"claw_back_right": {
"rotation": [0, 0, -45],
"position": [-0.07071, -0.07071, 0]
},
"claw_mid_right": {
"rotation": [0, 0, -45],
"position": [-0.07071, -0.07071, 0]
}
}
},
"animation.hawlucha.cry": {
"animation_length": 1.25,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"mouth_closed": {
"position": {
"0.2083": [0, 0, 0],
"0.25": [0, 0, 0.1],
"1.0": [0, 0, 0.1],
"1.0417": [0, 0, 0]
}
},
"mouth_open": {
"position": {
"0.2083": [0, 0, 0],
"0.25": [0, 0, -0.1],
"1.0": [0, 0, -0.1],
"1.0417": [0, 0, 0]
}
}
}
},
"animation.hawlucha.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 1],
"0.1667": {"pre": [-0.1, 0, 1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, 1],
"0.1667": {"pre": [0.1, 0, 1], "post": [0, 0, 0]}
}
},
"iris_left": {
"position": {
"0.0": [-0.1, 0, 0],
"0.1667": {"pre": [-0.1, 0, 0], "post": [0, 0, 0]}
}
},
"iris_right": {
"position": {
"0.0": [0.1, 0, 0],
"0.1667": {"pre": [0.1, 0, 0], "post": [0, 0, 0]}
}
}
}
},
"animation.hawlucha.pose": {
"loop": true,
"bones": {
"torso2": {
"rotation": [-7.5, 0, 0],
"position": [0, -0.9763, -0.21644]
},
"head": {
"position": [0, -0.13053, -0.99144]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"head2": {
"rotation": [-2.5, 0, 0]
},
"pupil_right": {
"position": [0, -1.00071, -0.03271]
},
"pupil_left": {
"position": [0, -1.00071, 0.16729]
},
"arm_left": {
"rotation": [-25.18583, -31.43411, 6.55855]
},
"arm_left2": {
"rotation": [-36.85403, 32.26529, -7.56803],
"position": [-0.78522, 0.09747, 0.66063]
},
"hand_left": {
"rotation": [0, 0, 27.5]
},
"finger_front_left": {
"rotation": [76.87284, 31.93932, 76.4579],
"position": [-0.57056, 0.10689, -0.19503]
},
"finger_back_left": {
"rotation": [-64.7707, -26.78539, 51.10587],
"position": [-0.57056, 0.10689, 0.195]
},
"finger_mid_left": {
"rotation": [0, 0, 5],
"position": [-0.19134, 0.46194, 0]
},
"feather_inner_left": {
"rotation": [54.33829, 7.57131, -22.47528],
"position": [-0.17171, 0.77455, -0.60876]
},
"feather_middle_inner_left": {
"rotation": [56.54514, 9.06524, -24.5012],
"position": [-0.17171, 0.77455, -0.60876]
},
"feather_middle_left": {
"rotation": [53.53285, 31.83543, -8.31006],
"position": [-0.60405, 0.95166, -0.63008]
},
"feather_middle_outer_left": {
"rotation": [62.31334, 33.45674, -10.5703],
"position": [-1.80069, 2.3234, -3.34545]
},
"feather_outer_left": {
"rotation": [88.8579, 54.50631, 28.70066],
"position": [-3.00915, 2.06454, -4.08515]
},
"leg_right": {
"rotation": [-15.84411, 11.31335, 16.60179],
"position": [0.29, -1.3, -0.47]
},
"leg_right2": {
"rotation": [97.5, 0, 0],
"position": [-0.29523, 1.67431, 2.17847]
},
"foot_right": {
"rotation": [40, 0, 0]
},
"leg_left": {
"rotation": [-21.8569, -7.13136, -10.29284],
"position": [-0.89714, -0.42394, -0.12414]
},
"leg_left2": {
"rotation": [115, 0, 0],
"position": [0.06339, 1.7992, 1.89463]
},
"foot_left": {
"rotation": [30, 0, 0]
},
"feather_inner_left2": {
"rotation": [22.5, 0, 0]
},
"feather_middle_inner_left2": {
"rotation": [10, 0, 0]
},
"feather_middle_left2": {
"rotation": [30, 0, 0]
},
"feather_middle_outer_left2": {
"rotation": [17.5, 0, 0]
},
"feather_outer_left2": {
"rotation": [17.5, 0, 0]
},
"wing_back": {
"rotation": [25, 0, 0]
},
"wing_back_left2": {
"rotation": [15, 0, 0]
},
"wing_back2": {
"rotation": [15, 0, 0]
},
"wing_back_right2": {
"rotation": [15, 0, 0]
},
"arm_right": {
"rotation": [-22.10002, 9.31411, -8.43817]
},
"arm_right2": {
"rotation": [-36.85403, -32.26529, 7.56803],
"position": [0.78522, 0.09747, 0.66063]
},
"hand_right": {
"rotation": [0, 0, -27.5]
},
"finger_front_right": {
"rotation": [76.87284, -31.93932, -76.4579],
"position": [0.57056, 0.10689, -0.19503]
},
"finger_back_right": {
"rotation": [-64.7707, 26.78539, -51.10587],
"position": [0.57056, 0.10689, 0.195]
},
"finger_mid_right": {
"rotation": [0, 0, -5],
"position": [0.19134, 0.46194, 0]
},
"feather_inner_right": {
"rotation": [54.33829, -7.57131, 22.47528],
"position": [0.17171, 0.77455, -0.60876]
},
"feather_inner_right2": {
"rotation": [22.5, 0, 0]
},
"feather_middle_inner_right": {
"rotation": [56.54514, -9.06524, 24.5012],
"position": [0.17171, 0.77455, -0.60876]
},
"feather_middle_inner_right2": {
"rotation": [10, 0, 0]
},
"feather_middle_right": {
"rotation": [53.53285, -31.83543, 8.31006],
"position": [0.60405, 0.95166, -0.63008]
},
"feather_middle_right2": {
"rotation": [30, 0, 0]
},
"feather_middle_outer_right": {
"rotation": [62.31334, -33.45674, 10.5703],
"position": [1.80069, 2.3234, -3.34545]
},
"feather_middle_outer_right2": {
"rotation": [17.5, 0, 0]
},
"feather_outer_right": {
"rotation": [88.8579, -54.50631, -28.70066],
"position": [3.00915, 2.06454, -4.08515]
},
"feather_outer_right2": {
"rotation": [17.5, 0, 0]
},
"claw_front_left": {
"rotation": [0, 0, 45],
"position": [0.07071, -0.07071, 0]
},
"claw_back_left": {
"rotation": [0, 0, 45],
"position": [0.07071, -0.07071, 0]
},
"claw_mid_left": {
"rotation": [0, 0, 45],
"position": [0.07071, -0.07071, 0]
},
"claw_front_right": {
"rotation": [0, 0, -45],
"position": [-0.07071, -0.07071, 0]
},
"claw_back_right": {
"rotation": [0, 0, -45],
"position": [-0.07071, -0.07071, 0]
},
"claw_mid_right": {
"rotation": [0, 0, -45],
"position": [-0.07071, -0.07071, 0]
}
}
},
"animation.hawlucha.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, 0]
},
"pupil_right": {
"position": [0, -0.75, 0.25]
},
"pupil_left": {
"position": [0, -0.75, 0.25]
},
"eye_angry_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hawlucha.sad": {
"loop": true,
"bones": {
"pupil_right": {
"position": [0, -0.75, 0.25]
},
"pupil_left": {
"position": [0, -0.75, 0.25]
},
"eye_sad_left": {
"position": [0.1, -0.5, 0]
},
"eye_sad_right": {
"position": [-0.1, -0.5, 0]
}
}
},
"animation.hawlucha.shock": {
"loop": true,
"bones": {
"pupil_right": {
"position": [0, -0.5, 0.5]
},
"pupil_left": {
"position": [0, -0.5, 0.5]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"iris_left": {
"position": [0, 0, -0.3],
"scale": [1, 0.6, 0.6]
},
"iris_right": {
"position": [0, 0, -0.3],
"scale": [1, 0.6, 0.6]
}
}
},
"animation.hawlucha.happy": {
"loop": true,
"bones": {
"eye_happy_left": {
"position": [0.02, 0, 0]
},
"eye_happy_right": {
"position": [-0.02, 0, 0]
},
"mouth_closed_curve": {
"position": [0, 1, 0]
},
"mouth_closed": {
"position": [0, -0.5, 0]
}
}
},
"animation.hawlucha.hurt": {
"loop": true,
"bones": {
"head": {
"rotation": [-7.5, 0, 0]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"eye_recoil_right": {
"position": [-0.1, 0, 0]
},
"eye_recoil_left": {
"position": [0.1, 0, 0]
}
}
}
}
}
@@ -0,0 +1,251 @@
{
"format_version": "1.8.0",
"animations": {
"animation.noibat.ground_idle": {
"loop": true,
"bones": {
"wing_right": {
"rotation": [100, -11, -25]
},
"wing_right2": {
"rotation": [0, 0, -22.5]
},
"wing_left": {
"rotation": [100, 11, 25]
},
"wing_left2": {
"rotation": [0, 0, 22.5]
},
"leg_left": {
"rotation": [0, 5, 0]
},
"leg_left2": {
"rotation": [0, 17.5, 0]
},
"leg_right": {
"rotation": [0, -5, 0]
},
"leg_right2": {
"rotation": [0, -17.5, 0]
}
}
},
"animation.noibat.air_idle": {
"loop": true,
"bones": {
"body": {
"rotation": ["30+5*Math.cos((query.anim_time-0) * 90 * 12) * 0.5", 0, "5*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5"],
"position": [
"1.5*Math.cos((query.anim_time-0.5) * 90 * 3) * 0.5",
"2+1.5*Math.cos((query.anim_time-0) * 90 * 12) * 0.5",
"1.5*Math.cos((query.anim_time-0.75) * 90 * 3) * 0.5"
]
},
"head": {
"rotation": ["-25+3*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 0, 0]
},
"wing_right": {
"rotation": [
"75-25*Math.cos((query.anim_time-0) * 90 * 12) * 0.5",
"60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5",
"60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"
]
},
"wing_right2": {
"rotation": [0, "-30+80*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 0]
},
"wing_left": {
"rotation": [
"75-25*Math.cos((query.anim_time-0) * 90 * 12) * 0.5",
"-60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5",
"-60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"
]
},
"wing_left2": {
"rotation": [0, "30-80*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 0]
},
"leg_left": {
"rotation": ["-3*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 15, 10]
},
"leg_left2": {
"rotation": ["20+5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5", 0, "-15-5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"]
},
"foot_left": {
"rotation": ["22.5-3*Math.cos((query.anim_time-0.75) * 90 * 12) * 0.5", 0, 0]
},
"leg_right": {
"rotation": ["-3*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", -15, -10]
},
"leg_right2": {
"rotation": ["20+5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5", 0, "15+5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"]
},
"foot_right": {
"rotation": ["22.5-3*Math.cos((query.anim_time-0.75) * 90 * 12) * 0.5", 0, 0]
},
"torso": {
"rotation": [-15, 0, 0]
}
}
},
"animation.noibat.air_fly": {
"loop": true,
"bones": {
"body": {
"rotation": ["30+5*Math.cos((query.anim_time-0) * 90 * 12) * 0.5", 0, "5*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5"],
"position": [
"1.5*Math.cos((query.anim_time-0.5) * 90 * 3) * 0.5",
"2+1.5*Math.cos((query.anim_time-0) * 90 * 12) * 0.5",
"1.5*Math.cos((query.anim_time-0.75) * 90 * 3) * 0.5"
]
},
"head": {
"rotation": ["-25+3*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 0, 0]
},
"wing_right": {
"rotation": [
"75-25*Math.cos((query.anim_time-0) * 90 * 12) * 0.5",
"60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5",
"60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"
]
},
"wing_right2": {
"rotation": [0, "-30+80*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 0]
},
"wing_left": {
"rotation": [
"75-25*Math.cos((query.anim_time-0) * 90 * 12) * 0.5",
"-60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5",
"-60*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"
]
},
"wing_left2": {
"rotation": [0, "30-80*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 0]
},
"leg_left": {
"rotation": ["-3*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", 15, 10]
},
"leg_left2": {
"rotation": ["20+5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5", 0, "-15-5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"]
},
"foot_left": {
"rotation": ["22.5-3*Math.cos((query.anim_time-0.75) * 90 * 12) * 0.5", 0, 0]
},
"leg_right": {
"rotation": ["-3*Math.cos((query.anim_time-0.25) * 90 * 12) * 0.5", -15, -10]
},
"leg_right2": {
"rotation": ["20+5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5", 0, "15+5*Math.cos((query.anim_time-0.5) * 90 * 12) * 0.5"]
},
"foot_right": {
"rotation": ["22.5-3*Math.cos((query.anim_time-0.75) * 90 * 12) * 0.5", 0, 0]
},
"torso": {
"rotation": [-15, 0, 0]
}
}
},
"animation.noibat.cry": {
"animation_length": 1,
"bones": {
"head": {
"rotation": {
"0.0": [0, 0, 0],
"0.125": {
"pre": [-17.5, 0, 0],
"post": [-17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [-17.78, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 0, 0]
}
},
"jaw": {
"rotation": {
"0.0": [0, 0, 0],
"0.125": {
"pre": [17.5, 0, 0],
"post": [17.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [17.78, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 0, 0]
}
}
}
},
"animation.noibat.blink": {
"animation_length": 0.2083,
"bones": {
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.2083": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.2083": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.noibat.render": {
"loop": true,
"bones": {
"noibat": {
"rotation": [30, 0, 0],
"position": [0, 3, 0]
},
"body": {
"rotation": [0.21502, -11.04857, -13.79522]
},
"head_angle": {
"rotation": [-20, 0, 0]
},
"head": {
"rotation": [-25, 10, 0]
},
"torso": {
"rotation": [7.5, 0, 0]
},
"leg_left": {
"rotation": [5.38152, 19.291, 15.91527]
},
"leg_left2": {
"rotation": [22.99008, 11.53486, 4.8493]
},
"wing_left": {
"rotation": [40.24258, 5.73853, 4.83711]
},
"wing_right": {
"rotation": [38.49432, 32.86407, 7.42379]
},
"wing_right2": {
"rotation": [0, -40, 0]
},
"foot_left": {
"rotation": [35, 0, 0]
},
"leg_right": {
"rotation": [2.74715, -12.19908, -12.79362]
},
"leg_right2": {
"rotation": [20, -12.5, 12.5]
},
"foot_right": {
"rotation": [35, 0, 0]
},
"wing_left2": {
"rotation": [0, 32.5, 0]
}
}
}
}
}
@@ -0,0 +1,521 @@
{
"format_version": "1.8.0",
"animations": {
"animation.noivern.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [45, 0, 0],
"position": [0, -10, 0]
},
"torso": {
"rotation": [27.5, 0, 0]
},
"torso2": {
"rotation": [-15, 0, 0]
},
"torso3": {
"rotation": [-10, 0, 0]
},
"fluff_back": {
"rotation": [5, 0, 0]
},
"neck": {
"rotation": [-10, 0, 0]
},
"neck2": {
"rotation": [-10, 0, 0]
},
"head": {
"rotation": [-20, 0, 0]
},
"shoulder_left": {
"rotation": [95, 55, 17.5]
},
"shoulder_membrane_left": {
"rotation": [-77.5, 0, 47.5]
},
"arm_left": {
"rotation": [0, 7.5, 17.5]
},
"arm_membrane_left": {
"rotation": [-72.5, 0, 0],
"position": [0, 0.1, 0]
},
"arm_membrane_hidden_left": {
"scale": 0
},
"elbow_left": {
"rotation": [0, 0, 12.5]
},
"wing_trim_inner_left": {
"rotation": [0, 0, 17.5]
},
"wing_trim_inner_left2": {
"rotation": [0, 0, 7.5]
},
"elbow_membrane_left": {
"rotation": [2.5, 0, 3.8],
"position": [0, 0, -0.3]
},
"elbow_membrane_hidden_left": {
"scale": 0
},
"hand_left": {
"rotation": [-0.5, -10, 27.5]
},
"hand_membrane_left": {
"rotation": [0, 0, -3.5]
},
"finger_outer_left2": {
"rotation": [15, 0, 0]
},
"finger_inner_left2": {
"rotation": [15, 0, 0]
},
"finger_middle_left2": {
"rotation": [15, 0, 0]
},
"wing_end_left": {
"rotation": [0, 0, -16]
},
"wing_trim_outer_left": {
"rotation": [0, 0, 0]
},
"wing_trim_outer_left2": {
"rotation": [0, 0, 0]
},
"shoulder_right": {
"rotation": [95, -55, -17.5]
},
"shoulder_membrane_right": {
"rotation": [-77.5, 0, -47.5]
},
"arm_right": {
"rotation": [0, -7.5, -17.5]
},
"arm_membrane_right": {
"rotation": [-72.5, 0, 0],
"position": [0, 0.1, 0]
},
"arm_membrane_hidden_right": {
"scale": 0
},
"elbow_right": {
"rotation": [0, 0, -12.5]
},
"wing_trim_inner_right": {
"rotation": [0, 0, -17.5]
},
"wing_trim_inner_right2": {
"rotation": [0, 0, -7.5]
},
"elbow_membrane_right": {
"rotation": [2.5, 0, -3.8],
"position": [0, 0, -0.3]
},
"elbow_membrane_hidden_right": {
"scale": 0
},
"hand_right": {
"rotation": [-0.5, 10, -27.5]
},
"hand_membrane_right": {
"rotation": [0, 0, 3.5]
},
"finger_outer_right2": {
"rotation": [15, 0, 0]
},
"finger_inner_right2": {
"rotation": [15, 0, 0]
},
"finger_middle_right2": {
"rotation": [15, 0, 0]
},
"wing_end_right": {
"rotation": [0, 0, 16]
},
"wing_trim_outer_right": {
"rotation": [0, 0, 0]
},
"wing_trim_outer_right2": {
"rotation": [0, 0, 0]
},
"tail": {
"rotation": [-12.5, 0, 0],
"position": [0, -3, -1]
},
"tail2": {
"rotation": [7.5, 0, 0]
},
"tail3": {
"rotation": [5, 0, 0]
},
"tail4": {
"rotation": [10, 0, 0]
},
"tail5": {
"rotation": [10, 0, 0]
},
"tail6": {
"rotation": [-7.5, 0, 0]
},
"tail7": {
"rotation": [-12.5, 0, 0]
},
"tail8": {
"rotation": [-20, 0, 0]
},
"leg_left": {
"rotation": [-27.5, 0, 0]
},
"knee_left": {
"rotation": [12.5, 12.5, 7.5]
},
"foot_left": {
"rotation": [-52.5, 10, 12.5]
},
"foot_left2": {
"rotation": [-2.5, 0, 0]
},
"foot_left3": {
"rotation": [0, 0, 2.5]
},
"leg_right": {
"rotation": [-27.5, 0, 0]
},
"knee_right": {
"rotation": [12.5, -12.5, -7.5]
},
"foot_right": {
"rotation": [-52.5, -10, -12.5]
},
"foot_right2": {
"rotation": [-2.5, 0, 0]
},
"foot_right3": {
"rotation": [0, 0, -2.5]
},
"fingers_left": {
"rotation": [-60, 0, 0]
},
"fingers_right": {
"rotation": [-60, 0, 0]
},
"head_angle": {
"rotation": [-5, 0, 0]
}
}
},
"animation.noivern.air_fly": {
"loop": true,
"bones": {
"body": {
"rotation": [50, 0, 0],
"position": [0, -6, 0]
},
"torso2": {
"rotation": [-5, 0, 0]
},
"torso3": {
"rotation": [10, 0, 0]
},
"neck": {
"rotation": [2.5, 0, 0]
},
"neck2": {
"rotation": [-10, 0, 0]
},
"head": {
"rotation": [-42.5, 0, 0]
},
"leg_left": {
"rotation": [7.4708, -10.39173, -7.09888]
},
"knee_left": {
"rotation": [0, 0, 0]
},
"foot_left": {
"rotation": [12.5, 0, 0]
},
"foot_left3": {
"rotation": [5, 0, 0]
},
"toe_inner_left": {
"rotation": [37.5, 0, 0]
},
"toe_inner_left2": {
"rotation": [17.5, 0, 0]
},
"toe_outer_left": {
"rotation": [47.5, 0, 0]
},
"toe_outer_left2": {
"rotation": [17.5, 0, 0]
},
"leg_right": {
"rotation": [-22.03377, 9.74287, 3.43184]
},
"knee_right": {
"rotation": [22.5, 0, 0]
},
"foot_right": {
"rotation": [17.5, 0, 0]
},
"foot_right3": {
"rotation": [27.5, 0, 0]
},
"toe_inner_right": {
"rotation": [40, 0, 0]
},
"toe_outer_right": {
"rotation": [37.5, 0, 0]
},
"toe_outer_right2": {
"rotation": [17.5, 0, 0]
},
"tail": {
"rotation": [11.84886, -7.30898, 10.16816]
},
"tail2": {
"rotation": [15.22074, -9.65594, -2.61298]
},
"tail3": {
"rotation": [-15.22074, -9.65594, 2.61298]
},
"tail4": {
"rotation": [-20.6469, 14.0761, -5.23619]
},
"tail5": {
"rotation": [-10.34527, 14.76689, -2.66399]
},
"tail6": {
"rotation": [15.69284, 16.88547, 4.6653]
},
"tail7": {
"rotation": [31.32977, 35.63104, 19.52546]
},
"tail8": {
"rotation": [29.65098, 31.3213, 16.48457]
},
"undefined": {
"rotation": [0, -25, 0]
},
"shoulder_left": {
"rotation": [0, -15, 0]
},
"arm_left": {
"rotation": [0, -7.5, 0]
},
"elbow_left": {
"rotation": [0, 0, 5]
},
"hand_left": {
"rotation": [0, 0, -10]
},
"wing_end_left": {
"rotation": [0, 0, -10]
},
"shoulder_right": {
"rotation": [0, 15, 0]
},
"arm_right": {
"rotation": [0, 7.5, 0]
},
"elbow_right": {
"rotation": [0, 0, -5]
},
"hand_right": {
"rotation": [0, 0, 10]
},
"wing_end_right": {
"rotation": [0, 0, 10]
},
"head_angle": {
"rotation": [-2.5, 0, 0]
}
}
},
"animation.noivern.air_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [25, 0, 0],
"position": [0, -6, 0]
},
"torso2": {
"rotation": [-5, 0, 0]
},
"torso3": {
"rotation": [10, 0, 0]
},
"neck": {
"rotation": [2.5, 0, 0]
},
"neck2": {
"rotation": [-10, 0, 0]
},
"head": {
"rotation": [-42.5, 0, 0]
},
"leg_left": {
"rotation": [7.4708, -10.39173, -7.09888]
},
"knee_left": {
"rotation": [0, 0, 0]
},
"foot_left": {
"rotation": [12.5, 0, 0]
},
"foot_left3": {
"rotation": [5, 0, 0]
},
"toe_inner_left": {
"rotation": [37.5, 0, 0]
},
"toe_inner_left2": {
"rotation": [17.5, 0, 0]
},
"toe_outer_left": {
"rotation": [47.5, 0, 0]
},
"toe_outer_left2": {
"rotation": [17.5, 0, 0]
},
"leg_right": {
"rotation": [-22.03377, 9.74287, 3.43184]
},
"knee_right": {
"rotation": [22.5, 0, 0]
},
"foot_right": {
"rotation": [17.5, 0, 0]
},
"foot_right3": {
"rotation": [27.5, 0, 0]
},
"toe_inner_right": {
"rotation": [40, 0, 0]
},
"toe_outer_right": {
"rotation": [37.5, 0, 0]
},
"toe_outer_right2": {
"rotation": [17.5, 0, 0]
},
"tail": {
"rotation": [11.84886, -7.30898, 10.16816]
},
"tail2": {
"rotation": [15.22074, -9.65594, -2.61298]
},
"tail3": {
"rotation": [-15.22074, -9.65594, 2.61298]
},
"tail4": {
"rotation": [-20.6469, 14.0761, -5.23619]
},
"tail5": {
"rotation": [-10.34527, 14.76689, -2.66399]
},
"tail6": {
"rotation": [15.69284, 16.88547, 4.6653]
},
"tail7": {
"rotation": [31.32977, 35.63104, 19.52546]
},
"tail8": {
"rotation": [29.65098, 31.3213, 16.48457]
},
"undefined": {
"rotation": [0, -25, 0]
},
"shoulder_left": {
"rotation": [0, -15, 0]
},
"arm_left": {
"rotation": [0, -7.5, 0]
},
"elbow_left": {
"rotation": [0, 0, 5]
},
"hand_left": {
"rotation": [0, 0, -10]
},
"wing_end_left": {
"rotation": [0, 0, -10]
},
"shoulder_right": {
"rotation": [0, 15, 0]
},
"arm_right": {
"rotation": [0, 7.5, 0]
},
"elbow_right": {
"rotation": [0, 0, -5]
},
"hand_right": {
"rotation": [0, 0, 10]
},
"wing_end_right": {
"rotation": [0, 0, 10]
},
"head_angle": {
"rotation": [25, 0, 0]
}
}
},
"animation.noivern.blink": {
"animation_length": 0.1667,
"bones": {
"pupil_left": {
"rotation": {
"0.0": [0, 0, -90],
"0.1667": {"pre": [0, 0, -90], "post": [0, 0, 0]}
}
},
"pupil_right": {
"rotation": {
"0.0": [0, 0, 90],
"0.1667": {"pre": [0, 0, 90], "post": [0, 0, 0]}
}
}
}
},
"animation.noivern.cry": {
"animation_length": 1,
"bones": {
"head": {
"rotation": {
"0.0": [0, 0, 0],
"0.125": {
"pre": [-15, 0, 0],
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [-17.78, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 0, 0]
}
},
"jaw": {
"rotation": {
"0.0": [0, 0, 0],
"0.125": {
"pre": [50, 0, 0],
"post": [50, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [50, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 0, 0]
}
}
}
}
}
}
@@ -0,0 +1,510 @@
{
"format_version": "1.8.0",
"animations": {
"animation.drampa.ground_idle": {
"loop": true,
"bones": {
"neck": {
"rotation": [-15, 0, 0]
},
"neck2": {
"rotation": [-4.96207, -0.27077, 0.34484]
},
"neck3": {
"rotation": [22.5, 0, 0]
},
"neck4": {
"rotation": [40, 0, 0]
},
"neck5": {
"rotation": [45, 0, 0]
},
"neck6": {
"rotation": [42.5, 0, 0]
},
"neck7": {
"rotation": [10, 0, 0]
},
"neck8": {
"rotation": [-12.5, 0, 0]
},
"head_rotation": {
"rotation": [-47.5, 0, 0]
},
"nose_left": {
"rotation": [-5.89248, -34.91212, 12.08322]
},
"nose_left2": {
"rotation": [0.43607, -8.07504, -45.00712]
},
"nose_left3": {
"rotation": [0, 0, -50]
},
"nose_left4": {
"rotation": [0, 0, -65]
},
"nose_right": {
"rotation": [-5.89248, 34.91212, -12.08322]
},
"nose_right2": {
"rotation": [0.43607, 8.07504, 45.00712]
},
"nose_right3": {
"rotation": [0, 0, 50]
},
"nose_right4": {
"rotation": [0, 0, 65]
},
"hair_front_left": {
"rotation": [0, 7.5, 0]
},
"hair_front_left2": {
"rotation": [0, 0, 37.5]
},
"hair_front_left3": {
"rotation": [-0.65426, 4.95712, 32.47168]
},
"hair_front_left4": {
"rotation": [0, 0, 10]
},
"hair_back_left": {
"rotation": [-1.10693, -7.45167, 5.12076]
},
"hair_back_left2": {
"rotation": [0, 0, 27.5]
},
"hair_back_left3": {
"rotation": [0, 0, 37.5]
},
"hair_back_left4": {
"rotation": [0, 0, 15]
},
"hair_back_right": {
"rotation": [-1.10693, 7.45167, -5.12076]
},
"hair_back_right2": {
"rotation": [0, 0, -27.5]
},
"hair_back_right3": {
"rotation": [0, 0, -37.5]
},
"hair_back_right4": {
"rotation": [0, 0, -15]
},
"hair_front_right": {
"rotation": [0, -7.5, 0]
},
"hair_front_right2": {
"rotation": [0, 0, -37.5]
},
"hair_front_right3": {
"rotation": [-0.65426, -4.95712, -32.47168]
},
"hair_front_right4": {
"rotation": [0, 0, -10]
},
"ear_left": {
"rotation": [0, 0, 40]
},
"ear_left2": {
"rotation": [0, 0, 30]
},
"ear_left3": {
"rotation": [0, 0, 12.5]
},
"jaw_hair": {
"rotation": [-7.5, 0, 0]
},
"ear_right": {
"rotation": [0, 0, -40]
},
"ear_right2": {
"rotation": [0, 0, -30]
},
"ear_right3": {
"rotation": [0, 0, -12.5]
},
"arm_left": {
"rotation": [10.65119, 15.16099, -1.90415],
"position": [0, 0, 4]
},
"arm_left2_rotation": {
"rotation": [19.70927, 33.70509, 21.14599]
},
"arm_left3_rotation": {
"rotation": [10.67146, 21.00552, 12.98596]
},
"arm_left4": {
"rotation": [-7.27905, 7.85993, 0.83067]
},
"arm_fur1_left": {
"rotation": [-6.29006, -3.43099, -30.08269]
},
"arm_fur1_left2": {
"rotation": [0, 0, -45]
},
"arm_fur2_left": {
"rotation": [-6.38485, -8.87601, -59.36417]
},
"arm_fur2_left2": {
"rotation": [0, 0, -30]
},
"arm_fur3_left_rotation": {
"rotation": [-20.69471, 55.16364, -1.79096]
},
"arm_fur3_left2": {
"rotation": [0, 37.5, 0]
},
"arm_right": {
"rotation": [10.65119, -15.16099, 1.90415],
"position": [0, 0, 4]
},
"arm_fur1_right": {
"rotation": [-6.29006, 3.43099, 30.08269]
},
"arm_fur1_right2": {
"rotation": [0, 0, 45]
},
"arm_right2_rotation": {
"rotation": [19.70927, -33.70509, -21.14599]
},
"arm_fur2_right": {
"rotation": [-6.38485, 8.87601, 59.36417]
},
"arm_fur2_right2": {
"rotation": [0, 0, 30]
},
"arm_right3_rotation": {
"rotation": [10.67146, -21.00552, -12.98596]
},
"arm_fur3_right_rotation": {
"rotation": [-20.69471, -55.16364, 1.79096]
},
"arm_fur3_right2": {
"rotation": [0, -37.5, 0]
},
"arm_right4": {
"rotation": [-7.27905, -7.85993, -0.83067]
},
"eyebrow_left": {
"rotation": [6.79286, -10.51794, -33.12598]
},
"eyebrow_left2": {
"rotation": [0, 0, 35]
},
"eyebrow_left3": {
"rotation": [0, 0, 42.5]
},
"eyebrow_right": {
"rotation": [6.79286, 10.51794, 33.12598]
},
"eyebrow_right2": {
"rotation": [0, 0, -35]
},
"eyebrow_right3": {
"rotation": [0, 0, -42.5]
},
"chest_fluff_left1_rotation": {
"rotation": [0, 2.5, 0]
},
"chest_fluff_left1_2": {
"rotation": [0, -12.5, 0]
},
"chest_fluff_right1_rotation": {
"rotation": [0, -2.5, 0]
},
"chest_fluff_right1_2": {
"rotation": [0, 12.5, 0]
},
"chest_fluff_left2_rotation": {
"rotation": [0, 0, -2.5]
},
"chest_fluff_left2_2": {
"rotation": [0, -20, 0]
},
"chest_fluff_right2_rotation": {
"rotation": [0, 0, 2.5]
},
"chest_fluff_right2_2": {
"rotation": [0, 20, 0]
}
}
},
"animation.drampa.active_pose": {
"loop": true,
"bones": {
"neck": {
"rotation": [-20, 0, 0]
},
"neck2": {
"rotation": [-4.96207, -0.27077, 0.34484]
},
"neck3": {
"rotation": [22.5, 0, 0]
},
"neck4": {
"rotation": [40, 0, 0]
},
"neck5": {
"rotation": [42.5, 0, 0]
},
"neck6": {
"rotation": [42.5, 0, 0]
},
"neck7": {
"rotation": [7.5, 0, 0]
},
"neck8": {
"rotation": [-20, 0, 0]
},
"head_rotation": {
"rotation": [-30, 0, 0]
},
"nose_left": {
"rotation": [-12.59726, -33.29883, 24.00994]
},
"nose_left2": {
"rotation": [-3.31914, -14.63639, -7.07362]
},
"nose_left3": {
"rotation": [0, 0, -22.5]
},
"nose_left4": {
"rotation": [0, 0, -35]
},
"nose_right": {
"rotation": [-12.59726, 33.29883, -24.00994]
},
"nose_right2": {
"rotation": [-3.31914, 14.63639, 7.07362]
},
"nose_right3": {
"rotation": [0, 0, 22.5]
},
"nose_right4": {
"rotation": [0, 0, 35]
},
"hair_front_left": {
"rotation": [-3.76613, 6.49053, -30.21362]
},
"hair_front_left2": {
"rotation": [0, 0, 27.5]
},
"hair_front_left3": {
"rotation": [-2.30973, -3.06006, 12.71274]
},
"hair_front_left4": {
"rotation": [0, 0, 30]
},
"hair_back_left": {
"rotation": [2.74715, -7.19908, -12.79362]
},
"hair_back_left2": {
"rotation": [0, 0, 10]
},
"hair_back_left3": {
"rotation": [0, 0, 25]
},
"hair_back_left4": {
"rotation": [0, 0, 35]
},
"hair_back_right": {
"rotation": [2.74715, 7.19908, 12.79362]
},
"hair_back_right2": {
"rotation": [0, 0, -10]
},
"hair_back_right3": {
"rotation": [0, 0, -25]
},
"hair_back_right4": {
"rotation": [0, 0, -35]
},
"hair_front_right": {
"rotation": [-3.76613, -6.49053, 30.21362]
},
"hair_front_right2": {
"rotation": [0, 0, -27.5]
},
"hair_front_right3": {
"rotation": [-2.30973, 3.06006, -12.71274]
},
"hair_front_right4": {
"rotation": [0, 0, -30]
},
"ear_left": {
"rotation": [0, -7.5, 5]
},
"ear_left2": {
"rotation": [0, 0, 7.5]
},
"ear_left3": {
"rotation": [0, 0, 12.5]
},
"jaw_hair": {
"rotation": [-7.5, 0, 0]
},
"ear_right": {
"rotation": [0, 7.5, -5]
},
"ear_right2": {
"rotation": [0, 0, -7.5]
},
"ear_right3": {
"rotation": [0, 0, -12.5]
},
"arm_left": {
"rotation": [-4.14501, -22.4654, 2.06932],
"position": [0, 0, 4]
},
"arm_left2_rotation": {
"rotation": [4.7972, 5.19485, -2.06381]
},
"arm_left3_rotation": {
"rotation": [2.28888, 5.0999, -2.28888]
},
"arm_left4": {
"rotation": [-7.5, 0, 0]
},
"arm_fur1_left": {
"rotation": [-6.96027, -1.69054, -15.16845]
},
"arm_fur1_left2": {
"rotation": [0, 0, -22.5]
},
"arm_fur2_left": {
"rotation": [1.77004, 3.84775, -20.55548]
},
"arm_fur2_left2": {
"rotation": [0, 0, -25]
},
"arm_fur3_left_rotation": {
"rotation": [-12.94507, 12.34955, -0.33783]
},
"arm_fur3_left2": {
"rotation": [0, 27.5, 0]
},
"arm_right": {
"rotation": [-4.14501, 22.4654, -2.06932],
"position": [0, 0, 4]
},
"arm_fur1_right": {
"rotation": [-6.96027, 1.69054, 15.16845]
},
"arm_fur1_right2": {
"rotation": [0, 0, 22.5]
},
"arm_right2_rotation": {
"rotation": [4.7972, -5.19485, 2.06381]
},
"arm_fur2_right": {
"rotation": [1.77004, -3.84775, 20.55548]
},
"arm_fur2_right2": {
"rotation": [0, 0, 25]
},
"arm_right3_rotation": {
"rotation": [2.28888, -5.0999, 2.28888]
},
"arm_fur3_right_rotation": {
"rotation": [-12.94507, -12.34955, 0.33783]
},
"arm_fur3_right2": {
"rotation": [0, -27.5, 0]
},
"arm_right4": {
"rotation": [-7.5, 0, 0]
},
"eyebrow_left": {
"rotation": [6.32526, -10.80355, -30.59871]
},
"eyebrow_left2": {
"rotation": [0, 0, -10]
},
"eyebrow_left3": {
"rotation": [0, 0, -10]
},
"eyebrow_right": {
"rotation": [6.32526, 10.80355, 30.59871]
},
"eyebrow_right2": {
"rotation": [0, 0, 10]
},
"eyebrow_right3": {
"rotation": [0, 0, 10]
},
"body2": {
"rotation": [-2.5, 0, 0]
},
"jaw_rotation": {
"rotation": [35, 0, 0]
},
"jaw2": {
"rotation": [-2.5, 0, 0]
},
"claw_inner_left": {
"rotation": [0, -10, 17.5]
},
"claw_outer_left": {
"rotation": [0, -12.5, -15]
},
"claw_inner_right": {
"rotation": [0, 10, -17.5]
},
"claw_outer_right": {
"rotation": [0, 12.5, 15]
},
"tail_rotation": {
"rotation": [10, 0, 0]
},
"tail_top": {
"rotation": [2.5, 0, 0]
},
"tongue": {
"rotation": [-5, 0, 0]
},
"tongue2": {
"rotation": [-2.5, 0, 0]
}
}
},
"animation.drampa.blink": {
"animation_length": 0.1667,
"bones": {
"eyebrow_left": {
"scale": {
"0.0": [0, 0, 0],
"0.125": [0, 0, 0],
"0.1667": [1, 1, 1]
}
},
"eyebrow_right": {
"scale": {
"0.0": [0, 0, 0],
"0.125": [0, 0, 0],
"0.1667": [1, 1, 1]
}
},
"eyebrow_closed_left": {
"position": {
"0.0": [1, 0, -1],
"0.125": [1, 0, -1],
"0.1667": [0, 0, 0]
}
},
"eyebrow_closed_right": {
"position": {
"0.0": [-1, 0, -1],
"0.125": [-1, 0, -1],
"0.1667": [0, 0, 0]
},
"scale": {
"0.0": [1, 1, 1],
"0.125": [1, 1, 1],
"0.1667": [0, 0, 0]
}
}
}
}
}
}
@@ -0,0 +1,165 @@
{
"format_version": "1.8.0",
"animations": {
"animation.silicobra.ground_idle": {
"loop": true,
"bones": {
"body": {
"position": [0, -20, -3]
},
"segment2": {
"rotation": [20.10362, -1.61889, -7.32417]
},
"segment3": {
"rotation": [51.85307, -18.66843, -21.02439]
},
"segment4": {
"rotation": [0, 57.5, 0]
},
"segment5": {
"rotation": [-2.07266, 47.23368, 5.72717]
},
"segment6": {
"rotation": [0, -55, 0]
},
"segment7": {
"rotation": [14.3899, -47.7721, 3.86348]
},
"segment8": {
"rotation": [53.18965, -6.87991, 11.11634]
},
"neck": {
"rotation": [-7.5, 0, 0]
},
"head": {
"rotation": [12.5, 0, 0]
},
"segment1_rotation": {
"rotation": [20, 0, -10]
},
"tail_end": {
"rotation": [59.96208, -3.01428, 10.97272]
},
"tail_end2": {
"rotation": [55.14892, 1.72794, 9.85108]
},
"tail_end3": {
"rotation": [61.43699, 2.70385, 12.67857]
},
"tail_end4": {
"rotation": [65, 0, 0]
}
}
},
"animation.silicobra.blink": {
"animation_length": 0.1667,
"bones": {
"pupil_left": {
"position": {
"0.0": [-0.1, 0, 0.1],
"0.125": [-0.1, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"pupil_closed_left": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0.1]
}
}
}
},
"animation.silicobra.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.25, 0.75],
"scale": [1, 0.7, 0.7]
},
"jaw": {
"rotation": [35, 0, 0]
},
"tongue": {
"position": [0, 0, 1]
},
"tongue3": {
"rotation": [-12.5, 0, 0],
"position": [0, -2, 0]
}
}
},
"animation.silicobra.angry": {
"loop": true,
"bones": {
"eye_expression_left": {
"position": [0.1, 0.1, -0.35]
},
"eye_expression_right": {
"position": [-0.1, 0.1, -0.35]
}
}
},
"animation.silicobra.sad": {
"loop": true,
"bones": {
"eye_expression_left": {
"position": [0.1, 0.1, 0.3]
},
"eye_expression_right": {
"position": [-0.1, 0.1, 0.3]
}
}
},
"animation.silicobra.happy": {
"loop": true,
"bones": {
"pupil_left": {
"position": [-0.1, 0, 0]
},
"jaw": {
"rotation": [35, 0, 0]
},
"tongue": {
"rotation": [-7.5, 0, 0]
},
"tongue2": {
"rotation": [-30, 0, 0],
"position": [0, -3, 0]
},
"tongue3": {
"rotation": [35, 0, 0],
"position": [0, -2, 0]
},
"pupil_happy_left": {
"position": [0.1, -0.25, 0]
},
"pupil_right": {
"position": [0.1, 0, 0]
},
"pupil_happy_right": {
"position": [-0.1, -0.25, 0]
}
}
},
"animation.silicobra.hurt": {
"loop": true,
"bones": {
"pupil_left": {
"position": [-0.1, 0, 0]
},
"pupil_closed_left": {
"rotation": [15, 0, 0],
"position": [0.1, -0.25, 0.25]
},
"pupil_right": {
"position": [0.1, 0, 0]
},
"pupil_closed_right": {
"rotation": [15, 0, 0],
"position": [-0.1, -0.25, 0.25]
}
}
}
}
}
@@ -0,0 +1,218 @@
{
"format_version": "1.8.0",
"animations": {
"animation.sandaconda.ground_idle": {
"loop": true,
"bones": {
"front_ring": {
"rotation": [2.51725, 1.53476, 1.99762]
},
"middle_ring": {
"rotation": [-0.18508, -0.12645, 1.20532]
},
"back_ring": {
"rotation": [0.1102, 2.51648, 0.15246]
},
"neck_connector": {
"rotation": [2.5, 0, 0]
},
"back_ring_connector": {
"rotation": [32.47777, -4.99753, -0.15477]
},
"tail": {
"rotation": [-44.73715, -1.78818, -2.45027]
},
"tail2": {
"rotation": [5.2908, -1.92536, -3.31687]
},
"tail3": {
"rotation": [7.73772, 12.3071, 2.20462]
},
"tail4": {
"rotation": [0, -2.5, 0]
},
"body": {
"rotation": [-7.5, 0, 0],
"position": [0, 0, -11]
},
"head": {
"rotation": [7.5, 0, 0]
},
"middle_ring_connector": {
"rotation": [0, -2.5, 0]
}
}
},
"animation.sandaconda.blink": {
"animation_length": 0.1667,
"bones": {
"pupil_left": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"pupil_closed_left": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.sandaconda.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.5, 0.75],
"scale": [1, 0.6, 0.6]
},
"jaw": {
"rotation": [30, 0, 0]
},
"tongue": {
"rotation": [12.5, 0, 0]
},
"pupil_right": {
"position": [0, -0.5, 0.75],
"scale": [1, 0.6, 0.6]
}
}
},
"animation.sandaconda.angry": {
"loop": true,
"bones": {
"eyebrow_left": {
"rotation": [14, 0, 0],
"position": [0, 0.25, 0]
},
"jaw": {
"rotation": [30, 0, 0]
},
"tongue": {
"rotation": [7.5, 0, 0],
"position": [0, 0, 3]
},
"tongue2": {
"rotation": [-15, 0, 0],
"position": [0, -4, 0]
},
"tongue3": {
"rotation": [-32.5, 0, 0],
"position": [0, -4, 0]
},
"tongue4": {
"rotation": [25, 0, 0],
"position": [0, -4, 0]
},
"tongue5": {
"rotation": [37.5, 0, 0],
"position": [0, -2, 0]
},
"eyebrow_right": {
"rotation": [14, 0, 0],
"position": [0, 0.25, 0]
}
}
},
"animation.sandaconda.sad": {
"loop": true,
"bones": {
"eyebrow_left": {
"rotation": [-12.5, 0, 0],
"position": [0, -0.25, 0]
},
"eyebrow_right": {
"rotation": [-12.5, 0, 0],
"position": [0, -0.25, 0]
}
}
},
"animation.sandaconda.happy": {
"loop": true,
"bones": {
"pupil_left": {
"position": [-0.1, 0, 0]
},
"jaw": {
"rotation": [27.5, 0, 0]
},
"tongue": {
"rotation": [7.5, 0, 0],
"position": [0, 0, 3]
},
"tongue2": {
"rotation": [-15, 0, 0],
"position": [0, -4, 0]
},
"tongue3": {
"rotation": [-32.5, 0, 0],
"position": [0, -4, 0]
},
"tongue4": {
"rotation": [25, 0, 0],
"position": [0, -4, 0]
},
"tongue5": {
"rotation": [37.5, 0, 0],
"position": [0, -2, 0]
},
"pupil_happy_left": {
"position": [0.1, 0.15, 0],
"scale": [1, 0.8, 0.8]
},
"pupil_right": {
"position": [0.1, 0, 0]
},
"pupil_happy_right": {
"position": [-0.1, 0.15, 0],
"scale": [1, 0.8, 0.8]
}
}
},
"animation.sandaconda.hurt": {
"loop": true,
"bones": {
"pupil_left": {
"position": [-0.1, 0, 0]
},
"pupil_closed_left": {
"rotation": [17.5, 0, 0],
"position": [0.1, 0, 0]
},
"pupil_right": {
"position": [0.1, 0, 0]
},
"pupil_closed_right": {
"rotation": [17.5, 0, 0],
"position": [-0.1, 0, 0]
}
}
},
"animation.sandaconda.uncoiled": {
"loop": true,
"bones": {
"neck_connector": {
"rotation": [22.5, 0, 0]
},
"front_ring": {
"rotation": [-20, 0, 0]
},
"front_ring_connector": {
"rotation": [0, -25, 0]
},
"middle_ring": {
"rotation": [0, 27.5, 0]
},
"middle_ring_connector": {
"rotation": [0, -32.5, 0]
},
"back_ring": {
"rotation": [0, 35, 0]
}
}
}
}
}
@@ -0,0 +1,68 @@
{
"format_version": "1.8.0",
"animations": {
"animation.smoliv.ground_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [-2.5, 0, 0]
},
"olive": {
"rotation": [15, 0, 0]
},
"stem": {
"rotation": [12.5, 0, 0]
},
"stem3": {
"rotation": [35, 0, 0]
},
"leaf_front_right": {
"rotation": [-25, 0, 0]
},
"leaf_front_right_tip": {
"rotation": [-15, 0, 0]
},
"leaf_back_right": {
"rotation": [25, 0, 0]
},
"leaf_back_right_tip": {
"rotation": [10, 0, 0]
},
"leaf_front_left": {
"rotation": [-25, 0, 0]
},
"leaf_front_left_tip": {
"rotation": [-15, 0, 0]
},
"leaf_back_left": {
"rotation": [25, 0, 0]
},
"leaf_back_left_tip": {
"rotation": [10, 0, 0]
},
"stem2": {
"rotation": [45, 0, 0]
}
}
},
"animation.smoliv.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
}
}
}
@@ -0,0 +1,143 @@
{
"format_version": "1.8.0",
"animations": {
"animation.dolliv.ground_idle": {
"loop": true,
"bones": {
"dress_front_left": {
"rotation": [-2.5, 0, 5]
},
"collar_back_middle": {
"rotation": [6, 0, 0]
},
"arm_left": {
"rotation": [60, 25, 42]
},
"arm_left2": {
"rotation": [-32, 67, -33]
},
"head": {
"rotation": [5, 0, 0]
},
"leaf_left": {
"rotation": [0, 0, 12.5]
},
"dolliv": {
"scale": 1
},
"hand_left": {
"rotation": [0, 22.5, 15]
},
"leaves": {
"rotation": [12.5, 0, 0]
},
"hair_right": {
"rotation": [0, 5, 0]
},
"hair_left": {
"rotation": [0, -5, 0]
},
"stem": {
"rotation": [-45, 0, 0]
},
"stem2": {
"rotation": [-32.5, 0, 0]
},
"stem3": {
"rotation": [0, 40, 0]
},
"leaf_right": {
"rotation": [0, 0, -12.5]
},
"olive_left": {
"rotation": [0, 0, -5]
},
"arm_right": {
"rotation": [60, -25, -42]
},
"arm_right2": {
"rotation": [-32, -65, 35]
},
"hand_right": {
"rotation": [0, -22.5, -25]
},
"olive_right": {
"rotation": [0, 0, 5]
},
"dress_front_left3": {
"rotation": [-12.5, 0, 0]
},
"dress_front_right": {
"rotation": [-2.5, 0, -5]
},
"dress_front_right2": {
"rotation": [-12.5, 0, 0]
},
"dress_right": {
"rotation": [0, 10, -75]
},
"dress_right2": {
"rotation": [-12.5, 0, 15]
},
"dress_right3": {
"rotation": [0, 0, 37.5]
},
"dress_back": {
"rotation": [-65, 0, 0]
},
"dress_back2": {
"rotation": [15, 0, 0]
},
"dress_back3": {
"rotation": [40, 0, 0]
},
"collar_back_left": {
"rotation": [0, 0, -10]
},
"collar_back_right": {
"rotation": [0, 0, 10]
},
"collar_front_left": {
"rotation": [0, 0, 0]
},
"collar_front_right": {
"rotation": [0, 0, 0]
},
"collar_front": {
"rotation": [-5, 0, 0]
},
"dress_right4": {
"rotation": [0, 0, 7.5]
},
"dress_left": {
"rotation": [0, -10, 75]
},
"dress_left2": {
"rotation": [-12.5, 0, -15]
},
"dress_left3": {
"rotation": [0, 0, -37.5]
}
}
},
"animation.dolliv.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
}
}
}
@@ -0,0 +1,483 @@
{
"format_version": "1.8.0",
"animations": {
"animation.arboliva.ground_idle": {
"loop": true,
"bones": {
"arm_left8": {
"rotation": [0, 0, -25]
},
"olive2": {
"rotation": [-1, 0, 107.5]
},
"olive3": {
"rotation": [-1, 0, 45]
},
"olive4": {
"rotation": [-1, 0, -45]
},
"olive5": {
"rotation": [-1, 0, -105]
},
"arm_right8": {
"rotation": [0, 0, 25]
},
"olive6": {
"rotation": [-1, 0, -150]
},
"undefined": {
"rotation": [0, 0, 25]
},
"centrebend": {
"rotation": [-22.5, 0, 0]
},
"centretip": {
"rotation": [17.5, 0, 0]
},
"tip_left": {
"rotation": [0, 2.5, 7.5]
},
"tip_right": {
"rotation": [0, -2.5, -7.5]
},
"arm_right": {
"rotation": [0, 0, -45]
},
"arm_right2": {
"rotation": [0, 0, 5]
},
"arm_right3": {
"rotation": [0, 0, 10]
},
"arm_right4": {
"rotation": [0, 0, 20]
},
"arm_right5": {
"rotation": [0, 0, 30]
},
"arm_right6": {
"rotation": [0, 0, 20]
},
"arm_right7": {
"rotation": [0, 0, 30]
},
"olive_inner_right": {
"rotation": [50, 30, 30]
},
"olive_middle_right": {
"rotation": [40, 0, 0]
},
"olive_outer_right": {
"rotation": [45, 0, 35],
"position": [0, 0, -0.5]
},
"leaves_top": {
"rotation": [-10, 0, 0]
},
"leaf_top_left": {
"rotation": [-20, 0, 0]
},
"leaf_top_left2": {
"rotation": [20, 0, 0]
},
"leaf_top_right": {
"rotation": [-20, 0, 0]
},
"leaf_top_right2": {
"rotation": [20, 0, 0]
},
"leaf_left": {
"rotation": [0, 0, -25]
},
"leaf_left2": {
"rotation": [0, -45, 0]
},
"leaf_right": {
"rotation": [0, 0, 25]
},
"leaf_right2": {
"rotation": [0, 45, 0]
},
"leaves_front_right": {
"rotation": [0, 0, 5]
},
"leaves_front_left": {
"rotation": [0, 0, -5]
},
"leaves_front": {
"rotation": [-5, 0, 0]
},
"leaves_back": {
"rotation": [5, 0, 0]
},
"leaves_back_right": {
"rotation": [0, 0, 5]
},
"leaves_back_left": {
"rotation": [0, 0, -5]
},
"coat_front": {
"rotation": [-5, 0, 0]
},
"coat_front_left": {
"rotation": [0, 0, -5]
},
"coat_front_right": {
"rotation": [0, 0, 5]
},
"coat_left": {
"rotation": [7.5, 0, -5]
},
"coat_left2": {
"rotation": [0, 0, -10]
},
"coat_right": {
"rotation": [5, 0, 5]
},
"coat_right2": {
"rotation": [0, 0, 10]
},
"coat_back": {
"rotation": [10, 0, 0]
},
"coat_back2": {
"rotation": [10, 0, 0]
},
"collar_front_right": {
"rotation": [0, 0, -5]
},
"collar_front": {
"rotation": [5, 0, 0]
},
"collar_front_left": {
"rotation": [0, 0, 5]
},
"collar_right": {
"rotation": [0, 0, -5]
},
"collar_right2": {
"rotation": [0, 0, -10]
},
"collar_left": {
"rotation": [0, 0, 5]
},
"collar_left2": {
"rotation": [0, 0, 10]
},
"collar_back": {
"rotation": [-20, 0, 0]
},
"collar_back_right": {
"rotation": [0, 0, -7.5]
},
"collar_back_middle": {
"rotation": [-5, 0, 0]
},
"collar_back_left": {
"rotation": [0, 0, 7.5]
},
"collar_back_middle3": {
"rotation": [-15, 0, 0]
},
"leg_right": {
"rotation": [5, 0, -10],
"position": [0, -0.25, 0]
},
"leg_left": {
"rotation": [-5, 0, 10],
"position": [0, -0.25, 0]
},
"arm_left": {
"rotation": [0, 0, 45]
},
"olive_inner_left": {
"rotation": [50, -30, -30]
},
"arm_left2": {
"rotation": [0, 0, -5]
},
"arm_left3": {
"rotation": [0, 0, -10]
},
"arm_left4": {
"rotation": [0, 0, -20]
},
"olive_middle_left": {
"rotation": [40, 0, 0]
},
"arm_left5": {
"rotation": [0, 0, -30]
},
"arm_left6": {
"rotation": [0, 0, -20]
},
"olive_outer_left": {
"rotation": [45, 0, -35],
"position": [0, 0, -0.5]
},
"arm_left7": {
"rotation": [0, 0, -30]
},
"olive_stem_middle_right": {
"rotation": [0, 0, 10]
},
"olive_stem_outer_right": {
"rotation": [0, 0, -55]
},
"olive_stem_middle_left": {
"rotation": [0, 0, -10]
},
"olive_stem_outer_left": {
"rotation": [0, 0, 55]
}
}
},
"animation.arboliva.battle_idle": {
"loop": true,
"bones": {
"arm_left8": {
"rotation": [0, 12.5, 0]
},
"olive2": {
"rotation": [-1, 0, 107.5]
},
"olive3": {
"rotation": [-1, 0, 45]
},
"olive4": {
"rotation": [-1, 0, -45]
},
"olive5": {
"rotation": [-1, 0, -105]
},
"arm_right8": {
"rotation": [0, 12.5, 0]
},
"olive6": {
"rotation": [-1, 0, -150]
},
"undefined": {
"rotation": [0, 0, 25]
},
"centrebend": {
"rotation": [-22.5, 0, 0]
},
"centretip": {
"rotation": [17.5, 0, 0]
},
"tip_left": {
"rotation": [0, 2.5, 7.5]
},
"tip_right": {
"rotation": [0, -2.5, -7.5]
},
"arm_right": {
"rotation": [0, 5, 25]
},
"arm_right2": {
"rotation": [0, 0, 25]
},
"arm_right3": {
"rotation": [0, 0, 25]
},
"arm_right4": {
"rotation": [0, 0, 25]
},
"arm_right5": {
"rotation": [0, 0, 25]
},
"arm_right6": {
"rotation": [0, 0, 25]
},
"arm_right7": {
"rotation": [0, 0, 5]
},
"olive_inner_right": {
"rotation": [50, 0, 0]
},
"olive_middle_right": {
"rotation": [0, -45, 0]
},
"olive_outer_right": {
"rotation": [-45, -5, 10],
"position": [0, 0, -0.65]
},
"leaves_top": {
"rotation": [-10, 0, 0]
},
"leaf_top_left": {
"rotation": [-20, 0, 0]
},
"leaf_top_left2": {
"rotation": [20, 0, 0]
},
"leaf_top_right": {
"rotation": [-20, 0, 0]
},
"leaf_top_right2": {
"rotation": [20, 0, 0]
},
"leaf_left": {
"rotation": [0, 0, -25]
},
"leaf_left2": {
"rotation": [0, -45, 0]
},
"leaf_right": {
"rotation": [0, 0, 25]
},
"leaf_right2": {
"rotation": [0, 45, 0]
},
"leaves_front_right": {
"rotation": [0, 0, 5]
},
"leaves_front_left": {
"rotation": [0, 0, -5]
},
"leaves_front": {
"rotation": [-5, 0, 0]
},
"leaves_back": {
"rotation": [5, 0, 0]
},
"leaves_back_right": {
"rotation": [0, 0, 5]
},
"leaves_back_left": {
"rotation": [0, 0, -5]
},
"coat_front": {
"rotation": [-5, 0, 0]
},
"coat_front_left": {
"rotation": [0, 0, -5]
},
"coat_front_right": {
"rotation": [0, 0, 5]
},
"coat_left": {
"rotation": [7.5, 0, -5]
},
"coat_left2": {
"rotation": [0, 0, -10]
},
"coat_right": {
"rotation": [5, 0, 5]
},
"coat_right2": {
"rotation": [0, 0, 10]
},
"coat_back": {
"rotation": [10, 0, 0]
},
"coat_back2": {
"rotation": [10, 0, 0]
},
"collar_front_right": {
"rotation": [0, 0, -5]
},
"collar_front": {
"rotation": [5, 0, 0]
},
"collar_front_left": {
"rotation": [0, 0, 5]
},
"collar_right": {
"rotation": [0, 0, -5]
},
"collar_right2": {
"rotation": [0, 0, -10]
},
"collar_left": {
"rotation": [0, 0, 5]
},
"collar_left2": {
"rotation": [0, 0, 10]
},
"collar_back": {
"rotation": [-20, 0, 0]
},
"collar_back_right": {
"rotation": [0, 0, -7.5]
},
"collar_back_middle": {
"rotation": [-5, 0, 0]
},
"collar_back_left": {
"rotation": [0, 0, 7.5]
},
"collar_back_middle3": {
"rotation": [-15, 0, 0]
},
"leg_right": {
"rotation": [5, 0, -10],
"position": [0, -0.25, 0]
},
"leg_left": {
"rotation": [-5, 0, 10],
"position": [0, -0.25, 0]
},
"arm_left": {
"rotation": [0, 5, -25]
},
"olive_inner_left": {
"rotation": [50, 0, 0]
},
"arm_left2": {
"rotation": [0, 0, -25]
},
"arm_left3": {
"rotation": [0, 0, -25]
},
"arm_left4": {
"rotation": [0, 0, -25]
},
"olive_middle_left": {
"rotation": [0, 45, 0]
},
"arm_left5": {
"rotation": [0, 0, -25]
},
"arm_left6": {
"rotation": [0, 0, -25]
},
"olive_outer_left": {
"rotation": [-45, 5, -10],
"position": [0, 0, -0.65]
},
"arm_right9": {
"rotation": [0, 10, 0]
},
"arm_left9": {
"rotation": [0, 10, 0]
},
"olive_stem_outer_right": {
"rotation": [0, 0, 35]
},
"olive_stem_outer_left": {
"rotation": [0, 0, -35]
}
}
},
"animation.arboliva.blink": {
"animation_length": 0.125,
"bones": {
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.0833": {"pre": [-0.1, 0, -0.1], "post": [-0.1, 0, -0.1]},
"0.125": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.0833": {"pre": [0.1, 0, -0.1], "post": [0.1, 0, -0.1]},
"0.125": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
}
}
}
@@ -0,0 +1,334 @@
{
"format_version": "1.8.0",
"animations": {
"animation.orthworm.ground_idle": {
"loop": true,
"bones": {
"body": {
"position": [0, -0.5, 0]
},
"top_body2": {
"rotation": [0, 0, 0]
},
"chest": {
"rotation": [-2.5, 0, 0]
},
"head": {
"rotation": [2.5, 0, 0]
},
"segment1": {
"rotation": [5, 0, 0]
},
"segment2": {
"rotation": [-5, 0, 0]
},
"segment3": {
"rotation": [-2.5, 0, 0]
},
"segment4": {
"rotation": [-2.5, 0, 0]
},
"segment5": {
"rotation": [2.5, 0, 0]
},
"arm_front_left": {
"scale": 0
},
"arm_middle_left": {
"scale": 0
},
"arm_back_left": {
"scale": 0
},
"arm_front_right": {
"scale": 0
},
"arm_middle_right": {
"scale": 0
},
"arm_back_right": {
"scale": 0
}
}
},
"animation.orthworm.battle_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [-40, 0, 0],
"position": [0, 9, 0]
},
"top_body": {
"rotation": [-40, 0, 0]
},
"top_body2": {
"rotation": [-20, 0, 0]
},
"top_body3": {
"rotation": [27.5, 0, 0]
},
"chest": {
"rotation": [35, 0, 0]
},
"head": {
"rotation": [45, 0, 0]
},
"segment1": {
"rotation": [-12.5, 0, 0]
},
"segment2": {
"rotation": [22.5, 0, 0]
},
"segment3": {
"rotation": [25, 0, 0]
},
"segment4": {
"rotation": [5, 0, 0]
},
"arm_front_left": {
"rotation": [20, 22.5, 0]
},
"arm_front_left2": {
"rotation": [2.71994, 19.82169, 7.97532]
},
"arm_front_left3": {
"rotation": [0, 15, 0]
},
"arm_middle_left": {
"rotation": [0, 5, 2.5]
},
"arm_middle_left2": {
"rotation": [0, -10, 12.5]
},
"arm_back_left": {
"rotation": [-3.61644, -19.6835, 10.62758]
},
"arm_back_left2": {
"rotation": [-2.20462, -12.3071, 10.23772]
},
"arm_back_left3": {
"rotation": [0, -5, 0]
},
"arm_front_right": {
"rotation": [20, -22.5, 0]
},
"arm_front_right2": {
"rotation": [2.71994, -19.82169, -7.97532]
},
"arm_front_right3": {
"rotation": [0, -15, 0]
},
"arm_middle_right": {
"rotation": [0, -5, -2.5]
},
"arm_middle_right2": {
"rotation": [0, 10, -12.5]
},
"arm_back_right": {
"rotation": [-3.61644, 19.6835, -10.62758]
},
"arm_back_right2": {
"rotation": [-2.20462, 12.3071, -10.23772]
},
"arm_back_right3": {
"rotation": [0, 5, 0]
}
}
},
"animation.orthworm.blink": {
"animation_length": 0.1667,
"bones": {
"pupil_left": {
"position": {
"0.0": [0, 0, 0.1],
"0.125": [0, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"pupil_right": {
"position": {
"0.0": [0, 0, 0.1],
"0.125": [0, 0, 0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.orthworm.shock": {
"loop": true,
"bones": {
"jaw": {
"rotation": [30, 0, 0]
},
"pupil_left": {
"scale": [0.7, 0.7, 1]
},
"pupil_right": {
"scale": [0.7, 0.7, 1]
}
}
},
"animation.orthworm.angry": {
"loop": true,
"bones": {
"eye_expression_left": {
"position": [-0.5, -0.25, -1]
},
"eye_expression_right": {
"position": [0.5, -0.25, -1]
}
}
},
"animation.orthworm.sad": {
"loop": true,
"bones": {
"eye_expression_left": {
"position": [0.5, 0, -1]
},
"eye_expression_right": {
"position": [-0.5, 0, -1]
}
}
},
"animation.orthworm.happy": {
"loop": true,
"bones": {
"jaw": {
"rotation": [30, 0, 0]
},
"pupil_left": {
"position": [0, 0, 0.1]
},
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"pupil_right": {
"position": [0, 0, 0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.orthworm.hurt": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, 0, 0.1]
},
"eyelid_left": {
"rotation": [0, 0, -20],
"position": [0, 0, -0.1]
},
"pupil_right": {
"position": [0, 0, 0.1]
},
"eyelid_right": {
"rotation": [0, 0, 20],
"position": [0, 0, -0.1]
}
}
},
"animation.orthworm.render": {
"loop": true,
"bones": {
"body": {
"rotation": [-40, 0, 0],
"position": [0, 9, 0]
},
"top_body": {
"rotation": [-39.74266, -7.03835, -0.6325]
},
"top_body2": {
"rotation": [-2.50954, -4.99523, 0.21865]
},
"top_body3": {
"rotation": [27.5, 0, 0]
},
"chest": {
"rotation": [35, 0, 0]
},
"head": {
"rotation": [35.90729, -10.20212, -10.98503]
},
"segment1": {
"rotation": [-12.5, 0, 0]
},
"segment2": {
"rotation": [22.5, 0, 0]
},
"segment3": {
"rotation": [25, 0, 0]
},
"segment4": {
"rotation": [5, 0, 0]
},
"arm_front_left": {
"rotation": [-4.14078, 26.83527, -15.81685]
},
"arm_front_left2": {
"rotation": [2.71994, 19.82169, 7.97532]
},
"arm_front_left3": {
"rotation": [0, 15, 0]
},
"arm_middle_left": {
"rotation": [-1.29717, 4.82922, -12.5547]
},
"arm_middle_left2": {
"rotation": [0, -10, 12.5]
},
"arm_back_left": {
"rotation": [-3.61644, -19.6835, 10.62758]
},
"arm_back_left2": {
"rotation": [-2.20462, -12.3071, 10.23772]
},
"arm_back_left3": {
"rotation": [0, -5, 0]
},
"arm_front_right": {
"rotation": [20, -22.5, 0]
},
"arm_front_right2": {
"rotation": [2.71994, -19.82169, -7.97532]
},
"arm_front_right3": {
"rotation": [0, -15, 0]
},
"arm_middle_right": {
"rotation": [0, -5, -2.5]
},
"arm_middle_right2": {
"rotation": [0, 10, -12.5]
},
"arm_back_right": {
"rotation": [-3.61644, 19.6835, -10.62758]
},
"arm_back_right2": {
"rotation": [-2.20462, 12.3071, -10.23772]
},
"arm_back_right3": {
"rotation": [0, 5, 0]
},
"jaw": {
"rotation": [30, 0, 0]
}
}
}
}
}
@@ -0,0 +1,262 @@
{
"format_version": "1.8.0",
"animations": {
"animation.dudunsparce_three_segment.pose": {
"loop": true,
"bones": {
"neck": {
"rotation": [15, 0, 0]
},
"head": {
"rotation": [-5, 0, 10]
},
"wing_left2": {
"rotation": [-10, 0, 30]
},
"torso_connection": {
"rotation": [0, 0, -7.5]
},
"torso_connection2": {
"rotation": [0, 0, -10]
},
"torso3": {
"rotation": [25, -15, 0]
},
"tail2": {
"rotation": [30, 0, 0]
},
"drill_1": {
"rotation": [22.99008, -11.53486, -4.8493]
},
"wing_right2": {
"rotation": [-10, 0, -30]
},
"torso2": {
"rotation": [-25, 0, 0]
},
"mouth_spikes_front": {
"position": [0, 0, 3]
},
"mouth_open_right": {
"position": [-0.1, -0.1, -0.1]
},
"mouth_spikes_bottom": {
"rotation": [-40, 0, 0],
"position": [0, -3, 0]
},
"tail": {
"rotation": [15, 0, 0]
},
"wing_right": {
"rotation": [-25, 0, -25]
},
"wing_left": {
"rotation": [-25, 0, 25]
},
"wing_left3": {
"rotation": [-25, 0, 45]
},
"wing_right3": {
"rotation": [-25, 0, -25]
},
"mouth_open_left": {
"position": [0.1, -0.1, -0.1]
}
}
},
"animation.dudunsparce_three_segment.ground_idle": {
"loop": true,
"bones": {
"wing_right2": {
"rotation": [-10, 0, -30]
},
"wing_left2": {
"rotation": [-10, 0, 30]
},
"head": {
"rotation": [-5, 0, 0]
},
"mouth_spikes_front": {
"rotation": [30, 0, 0]
},
"tail2": {
"rotation": [20, 0, 0]
},
"drill_1": {
"rotation": [25, 0, 0]
},
"tail": {
"rotation": [15, 0, 0]
},
"wing_right": {
"rotation": [-15, 0, -35]
},
"wing_left": {
"rotation": [-15, 0, 35]
},
"wing_left3": {
"rotation": [-20, 0, 30]
},
"wing_right3": {
"rotation": [-20, 0, -30]
}
}
},
"animation.dudunsparce_three_segment.sleep": {
"loop": true,
"bones": {
"body": {
"rotation": [0, 102.5, 0],
"position": [5, 0, 8]
},
"wing_left": {
"rotation": [-45, 0, 67.5]
},
"wing_right": {
"rotation": [-45, 0, -67.5]
},
"torso2": {
"rotation": [0, -45, 0]
},
"wing_left2": {
"rotation": [-45, 0, 67.5]
},
"wing_right2": {
"rotation": [-45, 0, -67.5]
},
"mouth_spikes_front": {
"rotation": [30, 0, 0]
},
"pupil_left": {
"position": [-0.1, 0, 0]
},
"pupil_right": {
"position": [0.1, 0, 0]
},
"pupil_right_closed": {
"position": [-0.1, 0, 0]
},
"pupil_left_closed": {
"position": [0.1, 0, 0]
},
"torso3": {
"rotation": [0, 45, 0]
},
"wing_left3": {
"rotation": [-45, 0, 60]
},
"wing_right3": {
"rotation": [-45, 0, -60]
},
"tail": {
"rotation": [0, 15, 0]
},
"tail2": {
"rotation": [-7.5, 0, 0]
},
"drill_1": {
"rotation": [0, 45, 0]
},
"locator_target": {
"rotation": [0, -102.5, 0],
"position": [25, 0, 42]
}
}
},
"animation.dudunsparce_three_segment.blink": {
"animation_length": 0.6667,
"bones": {
"pupil_left": {
"position": {
"0.0": [-0.1, 0, 0],
"0.625": [-0.1, 0, 0],
"0.6667": [0, 0, 0]
}
},
"pupil_right": {
"position": {
"0.0": [0.1, 0, 0],
"0.625": [0.1, 0, 0],
"0.6667": [0, 0, 0]
}
},
"pupil_right_closed": {
"position": {
"0.0": [-0.1, 0, 0],
"0.625": [-0.1, 0, 0],
"0.6667": [0, 0, 0]
}
},
"pupil_left_closed": {
"position": {
"0.0": [0.1, 0, 0],
"0.625": [0.1, 0, 0],
"0.6667": [0, 0, 0]
}
}
}
},
"animation.dudunsparce_three_segment.mouths_test": {
"loop": "hold_on_last_frame",
"animation_length": 1,
"bones": {
"head": {
"rotation": [-10, 0, 0]
},
"mouth_spikes_bottom": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-27.5, 0, 0]},
"0.5": {"pre": [-27.5, 0, 0], "post": [-35, 0, 0]}
},
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, -3, 0]},
"0.5": {"pre": [0, -3, 0], "post": [0, -3, -4]},
"0.75": {"pre": [0, -3, -4], "post": [0, 0, 0]}
}
},
"mouth_open_right": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-0.1, -0.1, -0.1]},
"0.5": {"pre": [-0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_small_right": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [-0.1, -0.1, -0.1]},
"0.75": {"pre": [-0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_spikes_front": {
"rotation": {
"0.0": [35, 0, 0],
"0.25": {"pre": [35, 0, 0], "post": [0, 0, 0]},
"0.75": {"pre": [0, 0, 0], "post": [35, 0, 0]}
},
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 3]},
"0.75": {"pre": [0, 0, 3], "post": [0, 0, 0]}
}
},
"mouth_open_left": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0.1, -0.1, -0.1]},
"0.5": {"pre": [0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_small_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0.1, -0.1, -0.1]},
"0.75": {"pre": [0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
}
}
}
}
}
@@ -0,0 +1,248 @@
{
"format_version": "1.8.0",
"animations": {
"animation.dudunsparce_two_segment.pose": {
"loop": true,
"bones": {
"neck": {
"rotation": [15, 0, 0]
},
"torso_connection": {
"rotation": [0, 0, -7.5]
},
"tail2": {
"rotation": [30, 0, 0]
},
"drill_1": {
"rotation": [22.99008, -11.53486, -4.8493]
},
"torso2": {
"rotation": [-25, 0, 0]
},
"tail": {
"rotation": [15, 0, 0]
},
"wing_right2": {
"rotation": [-25, 15, -25]
},
"wing_left2": {
"rotation": [-25, -15, 25]
},
"wing_left": {
"rotation": [-25, -15, 45]
},
"wing_right": {
"rotation": [-25, 15, -45]
},
"torso_connection2": {
"rotation": [0, 0, -10]
},
"torso3": {
"rotation": [25, -15, 0]
},
"head": {
"rotation": [-5, 0, 10]
},
"mouth_spikes_front": {
"position": [0, 0, 3]
},
"mouth_spikes_bottom": {
"rotation": [-40, 0, 0],
"position": [0, -3, 0]
},
"mouth_open_left": {
"position": [0.1, -0.1, -0.1]
},
"mouth_open_right": {
"position": [-0.1, -0.1, -0.1]
}
}
},
"animation.dudunsparce_two_segment.ground_idle": {
"loop": true,
"bones": {
"tail2": {
"rotation": [20, 0, 0]
},
"drill_1": {
"rotation": [25, 0, 0]
},
"tail": {
"rotation": [15, 0, 0]
},
"wing_right2": {
"rotation": [-15, 0, -35]
},
"wing_left2": {
"rotation": [-15, 0, 35]
},
"wing_left": {
"rotation": [-20, 0, 30]
},
"wing_right": {
"rotation": [-20, 0, -30]
},
"head": {
"rotation": [-5, 0, 0]
},
"mouth_spikes_front": {
"rotation": [30, 0, 0]
}
}
},
"animation.dudunsparce_two_segment.sleep": {
"loop": true,
"bones": {
"body": {
"rotation": [0, 102.5, 0],
"position": [5, 0, 1]
},
"wing_left2": {
"rotation": [-45, 0, 67.5]
},
"wing_right2": {
"rotation": [-45, 0, -67.5]
},
"torso2": {
"rotation": [0, -45, 0]
},
"neck": {
"rotation": [0, -22.5, 0]
},
"wing_left": {
"rotation": [-45, 0, 60]
},
"wing_right": {
"rotation": [-45, 0, -60]
},
"tail": {
"rotation": [0, 15, 0]
},
"tail2": {
"rotation": [0, 22.5, 0]
},
"drill_1": {
"rotation": [0, 22.5, 0]
},
"torso3": {
"rotation": [0, 45, 0]
},
"mouth_spikes_front": {
"rotation": [30, 0, 0]
},
"pupil_left": {
"position": [-0.1, 0, 0]
},
"pupil_right": {
"position": [0.1, 0, 0]
},
"pupil_right_closed": {
"position": [-0.1, 0, 0]
},
"pupil_left_closed": {
"position": [0.1, 0, 0]
},
"locator_target": {
"rotation": [0, -102.5, 0],
"position": [24, 0, 41]
}
}
},
"animation.dudunsparce_two_segment.blink": {
"animation_length": 0.6667,
"bones": {
"pupil_left": {
"position": {
"0.0": [-0.1, 0, 0],
"0.625": [-0.1, 0, 0],
"0.6667": [0, 0, 0]
}
},
"pupil_right": {
"position": {
"0.0": [0.1, 0, 0],
"0.625": [0.1, 0, 0],
"0.6667": [0, 0, 0]
}
},
"pupil_right_closed": {
"position": {
"0.0": [-0.1, 0, 0],
"0.625": [-0.1, 0, 0],
"0.6667": [0, 0, 0]
}
},
"pupil_left_closed": {
"position": {
"0.0": [0.1, 0, 0],
"0.625": [0.1, 0, 0],
"0.6667": [0, 0, 0]
}
}
}
},
"animation.dudunsparce_two_segment.mouths_test": {
"loop": "hold_on_last_frame",
"animation_length": 1,
"bones": {
"head": {
"rotation": [-10, 0, 0]
},
"mouth_spikes_bottom": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-27.5, 0, 0]},
"0.5": {"pre": [-27.5, 0, 0], "post": [-35, 0, 0]}
},
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, -3, 0]},
"0.5": {"pre": [0, -3, 0], "post": [0, -3, -4]},
"0.75": {"pre": [0, -3, -4], "post": [0, 0, 0]}
}
},
"mouth_spikes_front": {
"rotation": {
"0.0": [35, 0, 0],
"0.25": {"pre": [35, 0, 0], "post": [0, 0, 0]},
"0.75": {"pre": [0, 0, 0], "post": [35, 0, 0]}
},
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 3]},
"0.75": {"pre": [0, 0, 3], "post": [0, 0, 0]}
}
},
"mouth_open_small_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0.1, -0.1, -0.1]},
"0.75": {"pre": [0.1, -0.1, -0.1], "post": [0, 0, 0]}
},
"scale": 1
},
"mouth_open_left": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0.1, -0.1, -0.1]},
"0.5": {"pre": [0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_right": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [-0.1, -0.1, -0.1]},
"0.5": {"pre": [-0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_small_right": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [-0.1, -0.1, -0.1]},
"0.75": {"pre": [-0.1, -0.1, -0.1], "post": [0, 0, 0]}
}
}
}
}
}
}
@@ -33,6 +33,30 @@
{"origin": [-4.5, 3, -4], "size": [9, 9, 8], "uv": [0, 0]}
]
},
{
"name": "locator_physical",
"parent": "torso",
"pivot": [0, 8, 0],
"locators": {
"physical": [0, 8, 0]
}
},
{
"name": "locator_target",
"parent": "torso",
"pivot": [0, 8.5, -5],
"locators": {
"target": [0, 8.5, -5]
}
},
{
"name": "locator_middle",
"parent": "torso",
"pivot": [0, 9.25, 0],
"locators": {
"middle": [0, 9.25, 0]
}
},
{
"name": "neck",
"parent": "torso",
@@ -56,6 +80,54 @@
{"origin": [-4, 12, -5.5], "size": [8, 7, 7], "uv": [0, 17]}
]
},
{
"name": "glasses",
"parent": "head_rotation",
"pivot": [0, 16, -5.6],
"cubes": [
{"origin": [-6, 14, -5.6], "size": [12, 5, 0], "uv": [39, 58]}
]
},
{
"name": "locator_item_hat",
"parent": "head_rotation",
"pivot": [0, 19, -2],
"locators": {
"item_hat": [0, 19, -2]
}
},
{
"name": "locator_head",
"parent": "head_rotation",
"pivot": [0, 19, -2.75],
"locators": {
"head": [0, 19, -2.75]
}
},
{
"name": "locator_item_face",
"parent": "head_rotation",
"pivot": [0, 15.5, -5.5],
"locators": {
"item_face": [0, 15.5, -5.5]
}
},
{
"name": "locator_face",
"parent": "head_rotation",
"pivot": [0, 15.5, -5.5],
"locators": {
"face": [0, 15.5, -5.5]
}
},
{
"name": "locator_mouth",
"parent": "head_rotation",
"pivot": [0, 12.1, -5.5],
"locators": {
"mouth": [0, 12.1, -5.5]
}
},
{
"name": "lips",
"parent": "head_rotation",
@@ -65,6 +137,14 @@
{"origin": [-4, 12.75, -5.5], "size": [8, 2, 7], "inflate": 0.02, "uv": [23, 24]}
]
},
{
"name": "locator_special",
"parent": "lips",
"pivot": [0, 12.5, -5.5],
"locators": {
"special": [0, 12.5, -5.5]
}
},
{
"name": "eyes",
"parent": "head_rotation",
@@ -80,6 +160,14 @@
{"origin": [-3.01, 14.5, -5.52], "size": [1, 2, 0], "uv": [43, 43], "mirror": true}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-2.5, 15.5, -5.5],
"locators": {
"eye1": [-2.5, 15.5, -5.5]
}
},
{
"name": "eyelid_right",
"parent": "eye_right",
@@ -99,6 +187,14 @@
{"origin": [2.01, 14.5, -5.52], "size": [1, 2, 0], "uv": [41, 43]}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [2.5, 15.5, -5.5],
"locators": {
"eye2": [2.5, 15.5, -5.5]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
@@ -132,6 +228,24 @@
{"origin": [0, 1.25, 4.5], "size": [0, 7, 6], "uv": [23, 11]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail_bend",
"pivot": [0, 7.75, 10],
"rotation": [-52.5, 180, 0],
"locators": {
"tail_tip": [0, 7.75, 10]
}
},
{
"name": "locator_tail",
"parent": "tail_bend",
"pivot": [0, 4.75, 7.5],
"rotation": [-27.5, 180, 0],
"locators": {
"tail": [0, 4.75, 7.5]
}
},
{
"name": "arm_left",
"parent": "torso",
@@ -148,6 +262,15 @@
{"origin": [7, 8.5, -2.5], "size": [3, 3, 3], "inflate": 0.01, "uv": [35, 14]}
]
},
{
"name": "locator_hand_secondary",
"parent": "elbow_left",
"pivot": [9, 10, -1],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [9, 10, -1]
}
},
{
"name": "fingers_left",
"parent": "elbow_left",
@@ -174,6 +297,23 @@
{"origin": [-10, 8.5, -2.5], "size": [3, 3, 3], "inflate": 0.01, "uv": [34, 8]}
]
},
{
"name": "locator_item",
"parent": "elbow_right",
"pivot": [-10, 10, -1],
"locators": {
"item": [-10, 10, -1]
}
},
{
"name": "locator_hand_primary",
"parent": "elbow_right",
"pivot": [-9, 10, -1],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-9, 10, -1]
}
},
{
"name": "fingers_right",
"parent": "elbow_right",
@@ -203,6 +343,15 @@
{"origin": [5.25, 0, -4], "size": [0, 1, 1], "pivot": [5.25, 0, -3], "rotation": [0, 5, 0], "uv": [0, 16]}
]
},
{
"name": "locator_foot_secondary",
"parent": "knee_left",
"pivot": [4, 1, -1.5],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [4, 1, -1.5]
}
},
{
"name": "leg_right",
"parent": "body2",
@@ -221,6 +370,31 @@
{"origin": [-4, 0, -4], "size": [0, 1, 1], "uv": [6, 2], "mirror": true},
{"origin": [-5.25, 0, -4], "size": [0, 1, 1], "pivot": [-5.25, 0, -3], "rotation": [0, -5, 0], "uv": [0, 16], "mirror": true}
]
},
{
"name": "locator_foot_primary",
"parent": "knee_right",
"pivot": [-4, 1, -1.6],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-4, 1, -1.6]
}
},
{
"name": "locator_root",
"parent": "squirtle",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "squirtle",
"pivot": [0, 18.5, 0],
"locators": {
"top": [0, 18.5, 0]
}
}
]
}
@@ -5,7 +5,7 @@
"description": {
"identifier": "geometry.wartortle",
"texture_width": 128,
"texture_height": 128,
"texture_height": 64,
"visible_bounds_width": 4,
"visible_bounds_height": 4,
"visible_bounds_offset": [0, 1, 0]
@@ -31,7 +31,7 @@
"pivot": [0, 5.5, 2],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [-0.5, 3.5, -3], "size": [1, 11, 2], "inflate": 0.01, "uv": [50, 65]}
{"origin": [-0.5, 3.5, -3], "size": [1, 11, 2], "inflate": 0.01, "uv": [48, 39]}
]
},
{
@@ -40,10 +40,26 @@
"pivot": [0, 9.5, 3.5],
"cubes": [
{"origin": [-6, 3.5, 3], "size": [12, 13, 5], "inflate": 0.01, "uv": [38, 0]},
{"origin": [-0.5, 3.5, 3], "size": [1, 13, 5], "inflate": 0.02, "uv": [0, 38]},
{"origin": [-6, 3.5, -3], "size": [12, 13, 7], "uv": [31, 31]}
{"origin": [-0.5, 3.5, 3], "size": [1, 13, 5], "inflate": 0.02, "uv": [36, 39]},
{"origin": [-6, 3.5, -3], "size": [12, 13, 7], "uv": [0, 19]}
]
},
{
"name": "locator_middle",
"parent": "shell",
"pivot": [0, 12.25, 2],
"locators": {
"middle": [0, 12.25, 2]
}
},
{
"name": "locator_target",
"parent": "shell",
"pivot": [0, 12.25, -5],
"locators": {
"target": [0, 12.25, -5]
}
},
{
"name": "head",
"parent": "torso",
@@ -69,13 +85,69 @@
{"origin": [-1.5, 18.5, -5], "size": [3, 1, 0], "inflate": 0.01, "uv": [24, 18]}
]
},
{
"name": "glasses",
"parent": "head_angle",
"pivot": [0, 20.7, -5.2],
"cubes": [
{"origin": [-6.5, 18.7, -5.2], "size": [13, 5, 0], "uv": [101, 58]}
]
},
{
"name": "locator_physical",
"parent": "head_angle",
"pivot": [0, 25, -4],
"locators": {
"physical": [0, 25, -4]
}
},
{
"name": "locator_face",
"parent": "head_angle",
"pivot": [0, 19.75, -5],
"locators": {
"face": [0, 19.75, -5]
}
},
{
"name": "locator_item_face",
"parent": "head_angle",
"pivot": [0, 19.75, -5],
"locators": {
"item_face": [0, 19.75, -5]
}
},
{
"name": "locator_head",
"parent": "head_angle",
"pivot": [0, 25, -2],
"locators": {
"head": [0, 25, -2]
}
},
{
"name": "locator_item_hat",
"parent": "head_angle",
"pivot": [0, 25, -0.5],
"locators": {
"item_hat": [0, 25, -0.5]
}
},
{
"name": "locator_mouth",
"parent": "head_angle",
"pivot": [0, 16.5, -5.05],
"locators": {
"mouth": [0, 16.5, -5.05]
}
},
{
"name": "mouth_closed",
"parent": "head_angle",
"pivot": [-3.5, 17.25, -1],
"cubes": [
{"origin": [-1, 16.75, -5], "size": [2, 1, 0], "inflate": 0.03, "uv": [30, 18]},
{"origin": [-5, 16.25, -5], "size": [10, 3, 9], "inflate": 0.04, "uv": [38, 18]},
{"origin": [-5, 16.25, -5], "size": [10, 3, 9], "inflate": 0.04, "uv": [89, 31]},
{"origin": [3, 16.75, -5], "size": [1, 1, 0], "inflate": 0.03, "pivot": [3.5, 17.25, -1], "rotation": [0, 0, 45], "uv": [37, 2]},
{"origin": [-4, 16.75, -5], "size": [1, 1, 0], "inflate": 0.03, "pivot": [-3.5, 17.25, -1], "rotation": [0, 0, -45], "uv": [37, 1]}
]
@@ -89,6 +161,14 @@
{"origin": [-3.5, 16.52, -4.91], "size": [7, 1, 0], "inflate": 0.01, "uv": [0, 18]}
]
},
{
"name": "locator_special",
"parent": "mouth_open",
"pivot": [0, 16.75, -5],
"locators": {
"special": [0, 16.75, -5]
}
},
{
"name": "eyes",
"parent": "head_angle",
@@ -98,12 +178,19 @@
"name": "eye_right",
"parent": "eyes",
"pivot": [-3.25, 20.75, -5.01],
"rotation": [0, 0, 2.5],
"cubes": [
{"origin": [-4.75, 18.75, -5.01], "size": [3, 4, 0], "uv": [29, 5]},
{"origin": [-3.25, 19.25, -5.02], "size": [1, 2, 0], "uv": [74, 2]}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-2.75, 20.25, -5],
"locators": {
"eye2": [-2.75, 20.25, -5]
}
},
{
"name": "eyelid_right",
"parent": "eye_right",
@@ -116,12 +203,19 @@
"name": "eye_left",
"parent": "eyes",
"pivot": [3.25, 20.75, -5.01],
"rotation": [0, 0, -2.5],
"cubes": [
{"origin": [1.75, 18.75, -5.01], "size": [3, 4, 0], "uv": [0, 5]},
{"origin": [2.25, 19.25, -5.02], "size": [1, 2, 0], "uv": [74, 5], "mirror": true}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [2.75, 20.25, -5],
"locators": {
"eye1": [2.75, 20.25, -5]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
@@ -142,7 +236,7 @@
"pivot": [-4.475, 22.175, -1.725],
"rotation": [-12.5, -45, -5],
"cubes": [
{"origin": [-4.5, 21.25, -2.5], "size": [0, 10, 5], "uv": [10, 53]}
{"origin": [-4.5, 21.25, -2.5], "size": [0, 10, 5], "uv": [117, 15]}
]
},
{
@@ -151,7 +245,7 @@
"pivot": [4.475, 22.175, -1.725],
"rotation": [-12.5, 45, 5],
"cubes": [
{"origin": [4.5, 21.25, -2.5], "size": [0, 10, 5], "uv": [0, 51]}
{"origin": [4.5, 21.25, -2.5], "size": [0, 10, 5], "uv": [106, 15]}
]
},
{
@@ -159,7 +253,7 @@
"parent": "torso",
"pivot": [-6, 15.5, 0],
"cubes": [
{"origin": [-9, 11.5, -2], "size": [5, 4, 4], "uv": [48, 51]}
{"origin": [-9, 11.5, -2], "size": [5, 4, 4], "uv": [0, 39]}
]
},
{
@@ -167,9 +261,26 @@
"parent": "arm_right",
"pivot": [-9, 11.5, 2],
"cubes": [
{"origin": [-13, 11.5, -2], "size": [4, 4, 4], "inflate": 0.01, "uv": [36, 59]}
{"origin": [-13, 11.5, -2], "size": [4, 4, 4], "inflate": 0.01, "uv": [0, 47]}
]
},
{
"name": "locator_hand_primary",
"parent": "elbow_right",
"pivot": [-12, 13.5, 0],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-12, 13.5, 0]
}
},
{
"name": "locator_item",
"parent": "elbow_right",
"pivot": [-13, 13.5, 0],
"locators": {
"item": [-13, 13.5, 0]
}
},
{
"name": "fingers_right",
"parent": "elbow_right",
@@ -185,7 +296,7 @@
"parent": "torso",
"pivot": [6, 15.5, 0],
"cubes": [
{"origin": [4, 11.5, -2], "size": [5, 4, 4], "uv": [30, 51]}
{"origin": [4, 11.5, -2], "size": [5, 4, 4], "uv": [18, 39]}
]
},
{
@@ -193,9 +304,18 @@
"parent": "arm_left",
"pivot": [9, 11.5, 2],
"cubes": [
{"origin": [9, 11.5, -2], "size": [4, 4, 4], "inflate": 0.01, "uv": [20, 59]}
{"origin": [9, 11.5, -2], "size": [4, 4, 4], "inflate": 0.01, "uv": [16, 47]}
]
},
{
"name": "locator_hand_secondary",
"parent": "elbow_left",
"pivot": [12, 13.5, 0],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [12, 13.5, 0]
}
},
{
"name": "fingers_left",
"parent": "elbow_left",
@@ -211,7 +331,7 @@
"parent": "torso",
"pivot": [0, 3.5, 1.5],
"cubes": [
{"origin": [0, -1, 1.5], "size": [0, 19, 9], "uv": [20, 10]}
{"origin": [0, 0, 1.5], "size": [0, 18, 9], "uv": [109, -8]}
]
},
{
@@ -219,15 +339,35 @@
"parent": "tail",
"pivot": [0, 1, 10.5],
"cubes": [
{"origin": [0, -1, 10.5], "size": [0, 19, 10], "uv": [0, 9]}
{"origin": [0, 1, 10.5], "size": [0, 17, 10], "uv": [88, -8]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail_bend",
"pivot": [0, 17, 19.5],
"locators": {
"tail_tip": {
"offset": [0, 17, 19.5],
"rotation": [-52.5, 180, 0]
}
}
},
{
"name": "locator_tail",
"parent": "tail_bend",
"pivot": [0, 9.75, 15.5],
"rotation": [-42.5, 180, 0],
"locators": {
"tail": [0, 9.75, 15.5]
}
},
{
"name": "leg_right",
"parent": "body2",
"pivot": [-6, 6, 0.5],
"cubes": [
{"origin": [-8, 3, -2], "size": [4, 5, 5], "inflate": 0.01, "uv": [12, 48]}
{"origin": [-8, 3, -2], "size": [4, 5, 5], "inflate": 0.01, "uv": [38, 29]}
]
},
{
@@ -235,7 +375,7 @@
"parent": "leg_right",
"pivot": [-6, 3, -2],
"cubes": [
{"origin": [-8, 1, -2], "size": [4, 2, 4], "uv": [62, 30]}
{"origin": [-8, 1, -2], "size": [4, 2, 4], "uv": [52, 25]}
]
},
{
@@ -243,18 +383,27 @@
"parent": "knee_right",
"pivot": [-6, 1, -2],
"cubes": [
{"origin": [-8, 0, -2], "size": [4, 1, 4], "inflate": 0.02, "uv": [64, 61]},
{"origin": [-8, 0, -2], "size": [4, 1, 4], "inflate": 0.02, "uv": [52, 36]},
{"origin": [-4.75, 0, -3], "size": [0, 1, 1], "pivot": [-4.75, 0, -2], "rotation": [0, 5, 0], "uv": [35, 5]},
{"origin": [-7.25, 0, -3], "size": [0, 1, 1], "pivot": [-7.25, 0, -2], "rotation": [0, -5, 0], "uv": [35, 4]},
{"origin": [-6, 0, -3], "size": [0, 1, 1], "uv": [34, 17]}
]
},
{
"name": "locator_foot_primary",
"parent": "knee_right2",
"pivot": [-6, 1, 0],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-6, 1, 0]
}
},
{
"name": "leg_left",
"parent": "body2",
"pivot": [6, 6, 0.5],
"cubes": [
{"origin": [4, 3, -2], "size": [4, 5, 5], "inflate": 0.01, "uv": [12, 38]}
{"origin": [4, 3, -2], "size": [4, 5, 5], "inflate": 0.01, "uv": [38, 19]}
]
},
{
@@ -262,7 +411,7 @@
"parent": "leg_left",
"pivot": [6, 3, -2],
"cubes": [
{"origin": [4, 1, -2], "size": [4, 2, 4], "uv": [52, 59]}
{"origin": [4, 1, -2], "size": [4, 2, 4], "uv": [51, 18]}
]
},
{
@@ -270,11 +419,36 @@
"parent": "knee_left",
"pivot": [6, 1, -2],
"cubes": [
{"origin": [4, 0, -2], "size": [4, 1, 4], "inflate": 0.02, "uv": [64, 55]},
{"origin": [4, 0, -2], "size": [4, 1, 4], "inflate": 0.02, "uv": [56, 31]},
{"origin": [4.75, 0, -3], "size": [0, 1, 1], "pivot": [4.75, 0, -2], "rotation": [0, -5, 0], "uv": [6, 7]},
{"origin": [7.25, 0, -3], "size": [0, 1, 1], "pivot": [7.25, 0, -2], "rotation": [0, 5, 0], "uv": [6, 6]},
{"origin": [6, 0, -3], "size": [0, 1, 1], "uv": [6, 5]}
]
},
{
"name": "locator_foot_secondary",
"parent": "knee_left2",
"pivot": [6, 1, 0],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [6, 1, 0]
}
},
{
"name": "locator_root",
"parent": "wartortle",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "wartortle",
"pivot": [0, 24.75, 0],
"locators": {
"top": [0, 24.75, 0]
}
}
]
}
@@ -15,6 +15,22 @@
"name": "blastoise",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "blastoise",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "blastoise",
"pivot": [0, 47, 0],
"locators": {
"top": [0, 47, 0]
}
},
{
"name": "body",
"parent": "blastoise",
@@ -25,210 +41,30 @@
"parent": "body",
"pivot": [0, 24, 2]
},
{
"name": "locator_middle",
"parent": "body2",
"pivot": [0, 25, 0],
"locators": {
"middle": [0, 25, 0]
}
},
{
"name": "locator_target",
"parent": "body2",
"pivot": [0, 25, -16],
"locators": {
"target": [0, 25, -16]
}
},
{
"name": "torso",
"parent": "body2",
"pivot": [0, 14, 0],
"cubes": [
{"origin": [-15.5, 14, -8.5], "size": [31, 24, 11], "uv": [0, 37]},
{"origin": [-13.5, 6, -5.5], "size": [27, 8, 11], "inflate": 0.02, "uv": [84, 37]},
{"origin": [-9, 38, -3], "size": [18, 2, 1], "uv": [88, 78]}
]
},
{
"name": "shell",
"parent": "torso",
"pivot": [-4, 21, 10],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-17.5, 16, 1.5], "size": [35, 21, 16], "inflate": 0.01, "uv": [0, 0]},
{"origin": [-14.5, 8.03038, 1.6527], "size": [29, 8, 16], "inflate": 0.01, "uv": [72, 83]},
{"origin": [-9.5, 37, 3.5], "size": [19, 8, 14], "inflate": 0.01, "uv": [88, 56]}
]
},
{
"name": "shell_lip",
"parent": "shell",
"pivot": [-4, 21, 10],
"cubes": [
{"origin": [-9.5, 42, 0.5], "size": [19, 4, 5], "uv": [116, 122]},
{"origin": [-19.5, 14, 0.5], "size": [39, 22, 5], "uv": [0, 72]},
{"origin": [6.5, 6.03038, 0.4027], "size": [10, 8, 5], "uv": [127, 153]},
{"origin": [-16.5, 6.03038, 0.4027], "size": [10, 8, 5], "uv": [97, 149]},
{"origin": [-10.5, 6.03038, 5.1527], "size": [21, 4, 5], "uv": [102, 20]},
{"origin": [-7.5, 42, 5.5], "size": [15, 4, 2], "uv": [157, 140]}
]
},
{
"name": "shell_lip_fold_left",
"parent": "shell_lip",
"pivot": [9.5, 46, 10],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [9.5, 42, 0.5], "size": [14, 4, 5], "inflate": 0.01, "uv": [146, 87]},
{"origin": [12.5, 42, -2.5], "size": [11, 4, 3], "inflate": 0.01, "uv": [28, 160]}
]
},
{
"name": "arm_hole_left",
"parent": "shell_lip_fold_left",
"pivot": [16, 46, -2.5],
"rotation": [45, 0, 0],
"cubes": [
{"origin": [12.5, 42, -13.5], "size": [11, 4, 11], "uv": [83, 122]}
]
},
{
"name": "arm_rotate_left",
"parent": "arm_hole_left",
"pivot": [18.5, 46, -8]
},
{
"name": "arm_left",
"parent": "arm_rotate_left",
"pivot": [18.5, 46, -4.5],
"cubes": [
{"origin": [14.5, 44, -12], "size": [8, 8, 8], "uv": [146, 21]}
]
},
{
"name": "elbow_left",
"parent": "arm_left",
"pivot": [18.5, 51, -8],
"cubes": [
{"origin": [15, 50, -11.5], "size": [7, 7, 7], "uv": [0, 154]}
]
},
{
"name": "hand_left",
"parent": "elbow_left",
"pivot": [18.5, 56, -8],
"cubes": [
{"origin": [15.5, 55, -11], "size": [6, 5, 6], "uv": [50, 161]}
]
},
{
"name": "fingers_left",
"parent": "hand_left",
"pivot": [18.5, 60, -7],
"cubes": [
{"origin": [17.25, 59.5, -8], "size": [0, 3, 2], "pivot": [17, 59.5, -7], "rotation": [0, -27.5, 0], "uv": [56, 97]},
{"origin": [19.75, 59.5, -8], "size": [0, 3, 2], "pivot": [19.75, 59.5, -7], "rotation": [0, 42.5, 0], "uv": [39, 97]},
{"origin": [6.5, 59.5, 15.25], "size": [0, 3, 2], "pivot": [-19.5, 59.5, -9], "rotation": [0, 45, 0], "uv": [86, 0]}
]
},
{
"name": "shell_lip_fold_right",
"parent": "shell_lip",
"pivot": [-9.5, 46, 10],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-23.5, 42, -2.5], "size": [11, 4, 3], "inflate": 0.01, "uv": [159, 120]},
{"origin": [-23.5, 42, 0.5], "size": [14, 4, 5], "inflate": 0.01, "uv": [146, 78]}
]
},
{
"name": "arm_hole_right",
"parent": "shell_lip_fold_right",
"pivot": [-16, 46, -2.5],
"rotation": [45, 0, 0],
"cubes": [
{"origin": [-23.5, 42, -13.5], "size": [11, 4, 11], "uv": [94, 107]}
]
},
{
"name": "arm_rotate_right",
"parent": "arm_hole_right",
"pivot": [-18.5, 46, -8]
},
{
"name": "arm_right",
"parent": "arm_rotate_right",
"pivot": [-18.5, 46, -4.5],
"cubes": [
{"origin": [-22.5, 44, -12], "size": [8, 8, 8], "uv": [36, 144]}
]
},
{
"name": "elbow_right",
"parent": "arm_right",
"pivot": [-18.5, 51, -8],
"cubes": [
{"origin": [-22, 50, -11.5], "size": [7, 7, 7], "uv": [68, 150]}
]
},
{
"name": "hand_right",
"parent": "elbow_right",
"pivot": [-18.5, 56, -8],
"cubes": [
{"origin": [-21.5, 55, -11], "size": [6, 5, 6], "uv": [160, 44]}
]
},
{
"name": "fingers_right",
"parent": "hand_right",
"pivot": [-18.5, 60, -7],
"cubes": [
{"origin": [-17.25, 59.5, -8], "size": [0, 3, 2], "pivot": [-17, 59.5, -7], "rotation": [0, 27.5, 0], "uv": [84, 56]},
{"origin": [-19.75, 59.5, -8], "size": [0, 3, 2], "pivot": [-19.75, 59.5, -7], "rotation": [0, -42.5, 0], "uv": [83, 70]},
{"origin": [-6.5, 59.5, 15.25], "size": [0, 3, 2], "pivot": [19.5, 59.5, -9], "rotation": [0, -45, 0], "uv": [0, 70]}
]
},
{
"name": "shell_fold_right",
"parent": "shell",
"pivot": [-9.5, 45, 17.5],
"rotation": [0, 0, -45]
},
{
"name": "shell_cannon_right",
"parent": "shell_fold_right",
"pivot": [-9.5, 36, 17.5],
"cubes": [
{"origin": [-20.5, 36, 9.5], "size": [11, 9, 8], "uv": [38, 127]},
{"origin": [-20.5, 36, 3.5], "size": [11, 1, 6], "inflate": 0.01, "uv": [154, 69]},
{"origin": [-20.5, 36, 3.5], "size": [1, 8, 6], "uv": [90, 162]},
{"origin": [-10.5, 36, 3.5], "size": [1, 8, 6], "uv": [135, 131]},
{"origin": [-20.5, 44, 3.5], "size": [11, 1, 6], "uv": [149, 37]}
]
},
{
"name": "cannon_right",
"parent": "shell_cannon_right",
"pivot": [-15, 41, 8.5],
"cubes": [
{"origin": [-17, 39, -4], "size": [4, 4, 14], "uv": [135, 135]},
{"origin": [-16.5, 39.5, -5], "size": [3, 3, 1], "uv": [92, 56]},
{"origin": [-17.5, 38.5, -12], "size": [5, 5, 7], "uv": [157, 153]}
]
},
{
"name": "shell_fold_left",
"parent": "shell",
"pivot": [9.5, 45, 17.5],
"rotation": [0, 0, 45]
},
{
"name": "shell_cannon_left",
"parent": "shell_fold_left",
"pivot": [9.5, 36, 17.5],
"cubes": [
{"origin": [9.5, 36, 9.5], "size": [11, 9, 8], "uv": [0, 124]},
{"origin": [9.5, 36, 3.5], "size": [11, 1, 6], "inflate": 0.01, "uv": [92, 137]},
{"origin": [19.5, 36, 3.5], "size": [1, 8, 6], "uv": [84, 56]},
{"origin": [9.5, 36, 3.5], "size": [1, 8, 6], "uv": [0, 0]},
{"origin": [9.5, 44, 3.5], "size": [11, 1, 6], "uv": [102, 29]}
]
},
{
"name": "cannon_left",
"parent": "shell_cannon_left",
"pivot": [15, 41, 8.5],
"cubes": [
{"origin": [13, 39, -4], "size": [4, 4, 14], "uv": [113, 131]},
{"origin": [13.5, 39.5, -5], "size": [3, 3, 1], "uv": [8, 0]},
{"origin": [12.5, 38.5, -12], "size": [5, 5, 7], "uv": [39, 99]}
{"origin": [-13.5, 6, -5.5], "size": [27, 8, 11], "inflate": 0.02, "uv": [88, 61]},
{"origin": [-9, 38, -3], "size": [18, 2, 1], "uv": [138, 128]}
]
},
{
@@ -251,47 +87,175 @@
"parent": "head_ai",
"pivot": [0, 38, -6.25],
"cubes": [
{"origin": [-6.5, 38, -12.75], "size": [13, 12, 13], "uv": [0, 99]}
{"origin": [-6.5, 38, -12.75], "size": [13, 12, 13], "uv": [0, 99]},
{"origin": [2.5, 46, -12.78], "size": [1, 1, 0], "uv": [160, 36]},
{"origin": [-3.5, 46, -12.78], "size": [1, 1, 0], "uv": [160, 35], "mirror": true}
]
},
{
"name": "locator_item_face",
"parent": "head_angle",
"pivot": [0, 46, -12.75],
"locators": {
"item_face": [0, 46, -12.75]
}
},
{
"name": "locator_item_hat",
"parent": "head_angle",
"pivot": [0, 50, -6.25],
"locators": {
"item_hat": [0, 50, -6.25]
}
},
{
"name": "glasses",
"parent": "head_angle",
"pivot": [0, 46, -13.2],
"cubes": [
{"origin": [-7.5, 44, -13.2], "size": [15, 5, 0], "uv": [225, 250]}
]
},
{
"name": "brow",
"parent": "head_angle",
"pivot": [0, 48, -13]
},
{
"name": "brow_left",
"parent": "brow",
"pivot": [4, 47.5, -12.78],
"cubes": [
{"origin": [3.5, 47, -12.79], "size": [1, 1, 0], "uv": [158, 36]}
]
},
{
"name": "brow_right",
"parent": "brow",
"pivot": [-4, 47.5, -12.78],
"cubes": [
{"origin": [-4.5, 47, -12.79], "size": [1, 1, 0], "uv": [158, 35], "mirror": true}
]
},
{
"name": "locator_head",
"parent": "head_angle",
"pivot": [0, 50, -8.5],
"locators": {
"head": [0, 50, -8.5]
}
},
{
"name": "locator_face",
"parent": "head_angle",
"pivot": [0, 45, -17.25],
"locators": {
"face": [0, 45, -17.25]
}
},
{
"name": "locator_mouth",
"parent": "head_angle",
"pivot": [0, 41, -12.75],
"locators": {
"mouth": [0, 41, -12.75]
}
},
{
"name": "eyes",
"parent": "head_angle",
"pivot": [3.81, 45, -8.81]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [3.81, 45, -8.81],
"cubes": [
{"origin": [2.5, 45, -12.75], "size": [4, 2, 2], "inflate": 0.01, "uv": [136, 33]},
{"origin": [3, 45, -12.77], "size": [2, 2, 0], "uv": [152, 35]},
{"origin": [3.5, 46, -12.78], "size": [1, 1, 0], "uv": [156, 36]}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [4, 46, -12.5],
"locators": {
"eye1": [4, 46, -12.5]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [3.81, 45, -8.81],
"cubes": [
{"origin": [2.4, 45, -12.67], "size": [4, 2, 2], "inflate": 0.03, "uv": [36, 133]}
]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-3.81, 45, -8.81],
"cubes": [
{"origin": [-6.5, 45, -12.75], "size": [4, 2, 2], "inflate": 0.01, "uv": [168, 161]},
{"origin": [-5, 45, -12.77], "size": [2, 2, 0], "uv": [148, 35], "mirror": true},
{"origin": [-4.5, 46, -12.78], "size": [1, 1, 0], "uv": [156, 35], "mirror": true}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-4, 46, -12.5],
"locators": {
"eye2": [-4, 46, -12.5]
}
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-3.81, 45, -8.81],
"cubes": [
{"origin": [-6.4, 45, -12.67], "size": [4, 2, 2], "inflate": 0.02, "uv": [136, 29]}
]
},
{
"name": "muzzle",
"parent": "head_angle",
"pivot": [0, 40, -14.75],
"pivot": [0, 41, -12.75],
"cubes": [
{"origin": [-5.5, 41, -17.25], "size": [11, 4, 5], "inflate": 0.01, "uv": [157, 131]},
{"origin": [1.75, 40.75, -16.25], "size": [2, 2, 0], "inflate": 0.01, "pivot": [2.5, 41, -16.75], "rotation": [0, 0, 45], "uv": [12, 14]},
{"origin": [-3.75, 40.75, -16.25], "size": [2, 2, 0], "inflate": 0.01, "pivot": [-2.5, 41, -16.75], "rotation": [0, 0, -45], "uv": [0, 0]}
{"origin": [-5.5, 41, -17.25], "size": [11, 4, 5], "inflate": 0.01, "uv": [164, 61]},
{"origin": [1.75, 40.75, -15.75], "size": [2, 2, 0], "inflate": 0.01, "pivot": [2.5, 41, -16.25], "rotation": [0, 0, 45], "uv": [52, 99]},
{"origin": [-3.75, 40.75, -15.75], "size": [2, 2, 0], "inflate": 0.01, "pivot": [-2.5, 41, -16.25], "rotation": [0, 0, -45], "uv": [56, 99]}
]
},
{
"name": "locator_jaw_upper",
"parent": "muzzle",
"pivot": [0, 45, -17.25],
"locators": {
"jaw1": [0, 41, -16.25]
}
},
{
"name": "jaw",
"parent": "muzzle",
"pivot": [0, 41, -12.75],
"parent": "head_angle",
"pivot": [0, 41, -12.25],
"cubes": [
{"origin": [-5.5, 38, -14.75], "size": [11, 3, 2], "inflate": 0.01, "uv": [68, 127]},
{"origin": [-4.5, 38, -16.75], "size": [9, 3, 2], "uv": [73, 37]},
{"origin": [2, 40.75, -16.25], "size": [1, 1, 0], "pivot": [2.75, 41, -16.25], "rotation": [0, 0, -45], "uv": [4, 1]},
{"origin": [3.25, 40.25, -16], "size": [1, 1, 0], "pivot": [3.5, 41, -15.75], "rotation": [30.68206, -27.03402, -52.54628], "uv": [4, 0]},
{"origin": [-4.25, 40.25, -16], "size": [1, 1, 0], "pivot": [-3.5, 41, -15.75], "rotation": [30.68206, 27.03402, 52.54628], "uv": [0, 2]},
{"origin": [-3, 40.75, -16.25], "size": [1, 1, 0], "pivot": [-2.75, 41, -16.25], "rotation": [0, 0, 45], "uv": [2, 2]}
{"origin": [-5.5, 38, -14.25], "size": [11, 3, 2], "inflate": 0.01, "uv": [168, 151]},
{"origin": [-5.5, 38, -16.25], "size": [11, 3, 2], "uv": [168, 156]},
{"origin": [2, 40.75, -15.75], "size": [1, 1, 0], "pivot": [2.75, 41, -15.75], "rotation": [0, 0, -45], "uv": [84, 71]},
{"origin": [3.25, 40.25, -15.5], "size": [1, 1, 0], "pivot": [3.5, 41, -15.25], "rotation": [30.68206, -27.03402, -52.54628], "uv": [86, 71]},
{"origin": [-4.25, 40.25, -15.5], "size": [1, 1, 0], "pivot": [-3.5, 41, -15.25], "rotation": [30.68206, 27.03402, 52.54628], "uv": [62, 99]},
{"origin": [-3, 40.75, -15.75], "size": [1, 1, 0], "pivot": [-2.75, 41, -15.75], "rotation": [0, 0, 45], "uv": [60, 99]}
]
},
{
"name": "eyelid_left",
"parent": "head_angle",
"pivot": [3.81, 45, -8.81],
"cubes": [
{"origin": [2.4, 45, -12.65], "size": [4, 2, 2], "inflate": 0.01, "uv": [0, 99]}
]
},
{
"name": "eyelid_right",
"parent": "head_angle",
"pivot": [-3.81, 45, -8.81],
"cubes": [
{"origin": [-6.4, 45, -12.65], "size": [4, 2, 2], "inflate": 0.01, "uv": [86, 11]}
]
"name": "locator_jaw_lower",
"parent": "jaw",
"pivot": [0, 41, -15.25],
"locators": {
"jaw2": [0, 41, -15.25]
}
},
{
"name": "ears",
@@ -304,7 +268,7 @@
"pivot": [6.5, 49.25, -5.75],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [2.25, 48.75, -7], "size": [5, 4, 0], "pivot": [3, 16, -4.25], "rotation": [0, -57.5, 0], "uv": [85, 42]}
{"origin": [2.25, 48.75, -7], "size": [5, 4, 0], "pivot": [3, 16, -4.25], "rotation": [0, -57.5, 0], "uv": [144, 13]}
]
},
{
@@ -313,21 +277,276 @@
"pivot": [-6.5, 49.25, -5.75],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-7.25, 48.75, -7], "size": [5, 4, 0], "pivot": [-3, 16, -4.25], "rotation": [0, 57.5, 0], "uv": [0, 42]}
{"origin": [-7.25, 48.75, -7], "size": [5, 4, 0], "pivot": [-3, 16, -4.25], "rotation": [0, 57.5, 0], "uv": [28, 161]}
]
},
{
"name": "tail_rotate",
"name": "shell",
"parent": "torso",
"pivot": [-4, 21, 10],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-17.5, 16, 1.5], "size": [35, 21, 16], "inflate": 0.01, "uv": [0, 0]},
{"origin": [-14.5, 8.03038, 1.6527], "size": [29, 8, 16], "inflate": 0.01, "uv": [84, 37]},
{"origin": [-9.5, 37, 3.5], "size": [19, 8, 14], "inflate": 0.01, "uv": [88, 80]}
]
},
{
"name": "locator_seat_water2",
"parent": "shell",
"pivot": [0, 27, 18],
"locators": {
"seat_water_1": [0, 27, 18]
}
},
{
"name": "locator_seat_water",
"parent": "shell",
"pivot": [0, 45, 12],
"locators": {
"seat_1": [0, 45, 12]
}
},
{
"name": "shell_lip",
"parent": "shell",
"pivot": [-4, 21, 10],
"cubes": [
{"origin": [-9.5, 42, 0.5], "size": [19, 4, 5], "uv": [0, 124]},
{"origin": [-19.5, 14, 0.5], "size": [39, 22, 5], "uv": [0, 72]},
{"origin": [6.5, 6.03038, 0.4027], "size": [10, 8, 5], "uv": [38, 152]},
{"origin": [-16.5, 6.03038, 0.4027], "size": [10, 8, 5], "uv": [154, 22]},
{"origin": [-10.5, 6.03038, 5.1527], "size": [21, 4, 5], "uv": [102, 20]},
{"origin": [-7.5, 42, 5.5], "size": [15, 4, 2], "uv": [164, 138]}
]
},
{
"name": "shell_lip_fold_left",
"parent": "shell_lip",
"pivot": [9.5, 46, 10],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [9.5, 42, 0.5], "size": [14, 4, 5], "inflate": 0.01, "uv": [0, 152]},
{"origin": [12.5, 42, -2.5], "size": [11, 4, 3], "inflate": 0.01, "uv": [148, 166]}
]
},
{
"name": "arm_hole_left",
"parent": "shell_lip_fold_left",
"pivot": [16, 46, -2.5],
"rotation": [45, 0, 0],
"cubes": [
{"origin": [12.5, 42, -13.5], "size": [11, 4, 11], "uv": [94, 102]}
]
},
{
"name": "arm_rotate_left",
"parent": "arm_hole_left",
"pivot": [18.5, 46, -8]
},
{
"name": "arm_left",
"parent": "arm_rotate_left",
"pivot": [18.5, 46, -4.5],
"cubes": [
{"origin": [14.5, 44, -12], "size": [8, 8, 8], "uv": [72, 149]}
]
},
{
"name": "elbow_left",
"parent": "arm_left",
"pivot": [18.5, 51, -8],
"cubes": [
{"origin": [15, 50, -11.5], "size": [7, 7, 7], "uv": [154, 80]}
]
},
{
"name": "hand_left",
"parent": "elbow_left",
"pivot": [18.5, 56, -8],
"cubes": [
{"origin": [15.5, 55, -11], "size": [6, 5, 6], "uv": [76, 165]}
]
},
{
"name": "locator_hand_secondary",
"parent": "hand_left",
"pivot": [18.5, 60, -8],
"locators": {
"hand_secondary": [18.5, 59, -8]
}
},
{
"name": "fingers_left",
"parent": "hand_left",
"pivot": [18.5, 60, -7],
"cubes": [
{"origin": [17.25, 59.5, -8], "size": [0, 3, 2], "pivot": [17, 59.5, -7], "rotation": [0, -27.5, 0], "uv": [84, 61]},
{"origin": [19.75, 59.5, -8], "size": [0, 3, 2], "pivot": [19.75, 59.5, -7], "rotation": [0, 42.5, 0], "uv": [84, 66]},
{"origin": [6.5, 59.5, 15.25], "size": [0, 3, 2], "pivot": [-19.5, 59.5, -9], "rotation": [0, 45, 0], "uv": [90, 122]}
]
},
{
"name": "shell_lip_fold_right",
"parent": "shell_lip",
"pivot": [-9.5, 46, 10],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-23.5, 42, -2.5], "size": [11, 4, 3], "inflate": 0.01, "uv": [168, 144]},
{"origin": [-23.5, 42, 0.5], "size": [14, 4, 5], "inflate": 0.01, "uv": [154, 13]}
]
},
{
"name": "arm_hole_right",
"parent": "shell_lip_fold_right",
"pivot": [-16, 46, -2.5],
"rotation": [45, 0, 0],
"cubes": [
{"origin": [-23.5, 42, -13.5], "size": [11, 4, 11], "uv": [94, 117]}
]
},
{
"name": "arm_rotate_right",
"parent": "arm_hole_right",
"pivot": [-18.5, 46, -8]
},
{
"name": "arm_right",
"parent": "arm_rotate_right",
"pivot": [-18.5, 46, -4.5],
"cubes": [
{"origin": [-22.5, 44, -12], "size": [8, 8, 8], "uv": [104, 150]}
]
},
{
"name": "elbow_right",
"parent": "arm_right",
"pivot": [-18.5, 51, -8],
"cubes": [
{"origin": [-22, 50, -11.5], "size": [7, 7, 7], "uv": [0, 161]}
]
},
{
"name": "hand_right",
"parent": "elbow_right",
"pivot": [-18.5, 56, -8],
"cubes": [
{"origin": [-21.5, 55, -11], "size": [6, 5, 6], "uv": [100, 166]}
]
},
{
"name": "locator_item",
"parent": "hand_right",
"pivot": [-18.5, 60, -8],
"locators": {
"item": [-18.5, 60, -8]
}
},
{
"name": "locator_hand_primary",
"parent": "hand_right",
"pivot": [-18.5, 59, -8],
"locators": {
"hand_primary": [-18.5, 59, -8],
"physical": [-18.5, 59, -8]
}
},
{
"name": "fingers_right",
"parent": "hand_right",
"pivot": [-18.5, 60, -7],
"cubes": [
{"origin": [-17.25, 59.5, -8], "size": [0, 3, 2], "pivot": [-17, 59.5, -7], "rotation": [0, 27.5, 0], "uv": [48, 124]},
{"origin": [-19.75, 59.5, -8], "size": [0, 3, 2], "pivot": [-19.75, 59.5, -7], "rotation": [0, -42.5, 0], "uv": [90, 127]},
{"origin": [-6.5, 59.5, 15.25], "size": [0, 3, 2], "pivot": [19.5, 59.5, -9], "rotation": [0, -45, 0], "uv": [48, 129]}
]
},
{
"name": "shell_fold_right",
"parent": "shell",
"pivot": [-9.5, 45, 17.5],
"rotation": [0, 0, -45]
},
{
"name": "shell_cannon_right",
"parent": "shell_fold_right",
"pivot": [-9.5, 36, 17.5],
"cubes": [
{"origin": [-20.5, 36, 9.5], "size": [11, 9, 8], "uv": [52, 122]},
{"origin": [-20.5, 36, 3.5], "size": [11, 1, 6], "inflate": 0.01, "uv": [102, 29]},
{"origin": [-20.5, 36, 3.5], "size": [1, 8, 6], "uv": [148, 173]},
{"origin": [-10.5, 36, 3.5], "size": [1, 8, 6], "uv": [162, 173]},
{"origin": [-20.5, 44, 3.5], "size": [11, 1, 6], "uv": [154, 94]}
]
},
{
"name": "cannon_right",
"parent": "shell_cannon_right",
"pivot": [-15, 41, 8.5],
"cubes": [
{"origin": [-17, 39, -4], "size": [4, 4, 14], "uv": [128, 132]},
{"origin": [-16.5, 39.5, -5], "size": [3, 3, 1], "uv": [0, 175]},
{"origin": [-17.5, 38.5, -12], "size": [5, 5, 7], "uv": [28, 165]}
]
},
{
"name": "locator_cannon_right",
"parent": "cannon_right",
"pivot": [-15, 41, -12],
"locators": {
"cannon1": [-15, 41, -12],
"special1": [-15, 41, -12]
}
},
{
"name": "shell_fold_left",
"parent": "shell",
"pivot": [9.5, 45, 17.5],
"rotation": [0, 0, 45]
},
{
"name": "shell_cannon_left",
"parent": "shell_fold_left",
"pivot": [9.5, 36, 17.5],
"cubes": [
{"origin": [9.5, 36, 9.5], "size": [11, 9, 8], "uv": [90, 132]},
{"origin": [9.5, 36, 3.5], "size": [11, 1, 6], "inflate": 0.01, "uv": [164, 70]},
{"origin": [19.5, 36, 3.5], "size": [1, 8, 6], "uv": [174, 35]},
{"origin": [9.5, 36, 3.5], "size": [1, 8, 6], "uv": [174, 101]},
{"origin": [9.5, 44, 3.5], "size": [11, 1, 6], "uv": [164, 131]}
]
},
{
"name": "cannon_left",
"parent": "shell_cannon_left",
"pivot": [15, 41, 8.5],
"cubes": [
{"origin": [13, 39, -4], "size": [4, 4, 14], "uv": [0, 133]},
{"origin": [13.5, 39.5, -5], "size": [3, 3, 1], "uv": [8, 175]},
{"origin": [12.5, 38.5, -12], "size": [5, 5, 7], "uv": [52, 165]}
]
},
{
"name": "locator_cannon_left",
"parent": "cannon_left",
"pivot": [15, 41, -12],
"locators": {
"cannon2": [15, 41, -12],
"special2": [15, 41, -12]
}
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 9, 1.5]
},
{
"name": "tail_base",
"parent": "tail_rotate",
"parent": "tail",
"pivot": [0, 9, 1.5],
"rotation": [40, 0, 0],
"cubes": [
{"origin": [-4, 2, -0.5], "size": [8, 8, 8], "uv": [144, 0]}
{"origin": [-4, 2, -0.5], "size": [8, 8, 8], "uv": [136, 150]}
]
},
{
@@ -335,23 +554,43 @@
"parent": "tail_base",
"pivot": [0, 2, -0.5],
"cubes": [
{"origin": [-3, -3, -0.5], "size": [6, 5, 6], "uv": [86, 0]}
{"origin": [-3, -3, -0.5], "size": [6, 5, 6], "uv": [124, 166]}
]
},
{
"name": "locator_tail",
"parent": "tail_bend",
"pivot": [0, 0, 2.5],
"rotation": [-90, 0, -180],
"locators": {
"tail": [0, 0, 2.5]
}
},
{
"name": "tail_end",
"parent": "tail_bend",
"pivot": [0, -3, -0.5],
"cubes": [
{"origin": [0, -8, -0.5], "size": [0, 5, 5], "uv": [0, 32]}
{"origin": [0, -8, -0.5], "size": [0, 5, 5], "uv": [174, 115]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail_end",
"pivot": [0, -8, 4.5],
"locators": {
"tail_tip": {
"offset": [0, -8, 4.5],
"rotation": [-90, 0, -180]
}
}
},
{
"name": "leg_right",
"parent": "body2",
"pivot": [-13, 11, -5],
"cubes": [
{"origin": [-18, 6, -11], "size": [10, 9, 11], "uv": [52, 107]}
{"origin": [-18, 6, -11], "size": [10, 9, 11], "uv": [102, 0]}
]
},
{
@@ -359,7 +598,7 @@
"parent": "leg_right",
"pivot": [-13, 6, -10],
"cubes": [
{"origin": [-17, 3, -10], "size": [8, 3, 10], "uv": [0, 141]}
{"origin": [-17, 3, -10], "size": [8, 3, 10], "uv": [138, 102]}
]
},
{
@@ -367,9 +606,18 @@
"parent": "knee_right",
"pivot": [-13, 3, -10],
"cubes": [
{"origin": [-17, 0, -10], "size": [8, 3, 10], "inflate": 0.01, "uv": [140, 56]}
{"origin": [-17, 0, -10], "size": [8, 3, 10], "inflate": 0.01, "uv": [138, 115]}
]
},
{
"name": "locator_foot_primary",
"parent": "foot_right",
"pivot": [-13, 1.5, -5],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-13, 1.5, -5]
}
},
{
"name": "right_toes",
"parent": "foot_right",
@@ -381,7 +629,7 @@
"pivot": [-17, 0, -10],
"rotation": [0, 27.5, 0],
"cubes": [
{"origin": [-17, 0, -13], "size": [0, 2, 3], "uv": [0, 43]}
{"origin": [-17, 0, -13], "size": [0, 2, 3], "uv": [84, 144]}
]
},
{
@@ -390,7 +638,7 @@
"pivot": [-9, 0, -10],
"rotation": [0, -27.5, 0],
"cubes": [
{"origin": [-9, 0, -13], "size": [0, 2, 3], "uv": [6, 11]}
{"origin": [-9, 0, -13], "size": [0, 2, 3], "uv": [148, 29]}
]
},
{
@@ -398,7 +646,7 @@
"parent": "right_toes",
"pivot": [-13, 0, -10],
"cubes": [
{"origin": [-13, 0, -16], "size": [0, 3, 6], "uv": [73, 39]}
{"origin": [-13, 0, -16], "size": [0, 3, 6], "uv": [72, 139]}
]
},
{
@@ -406,7 +654,7 @@
"parent": "foot_right",
"pivot": [-13, 0, 0],
"cubes": [
{"origin": [-13, 0, 0], "size": [0, 2, 3], "uv": [84, 53]}
{"origin": [-13, 0, 0], "size": [0, 2, 3], "uv": [84, 139]}
]
},
{
@@ -414,7 +662,7 @@
"parent": "body2",
"pivot": [13, 11, -5],
"cubes": [
{"origin": [8, 6, -11], "size": [10, 9, 11], "uv": [102, 0]}
{"origin": [8, 6, -11], "size": [10, 9, 11], "uv": [52, 102]}
]
},
{
@@ -422,7 +670,7 @@
"parent": "leg_left",
"pivot": [13, 6, -10],
"cubes": [
{"origin": [9, 3, -10], "size": [8, 3, 10], "uv": [138, 107]}
{"origin": [9, 3, -10], "size": [8, 3, 10], "uv": [36, 139]}
]
},
{
@@ -430,9 +678,18 @@
"parent": "knee_left",
"pivot": [13, 3, -10],
"cubes": [
{"origin": [9, 0, -10], "size": [8, 3, 10], "inflate": 0.01, "uv": [66, 137]}
{"origin": [9, 0, -10], "size": [8, 3, 10], "inflate": 0.01, "uv": [144, 0]}
]
},
{
"name": "locator_foot_secondary",
"parent": "foot_left",
"pivot": [13, 1.5, -5],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [13, 1.5, -5]
}
},
{
"name": "left_toes",
"parent": "foot_left",
@@ -444,7 +701,7 @@
"pivot": [17, 0, -10],
"rotation": [0, -27.5, 0],
"cubes": [
{"origin": [17, 0, -13], "size": [0, 2, 3], "uv": [0, 11]}
{"origin": [17, 0, -13], "size": [0, 2, 3], "uv": [16, 175]}
]
},
{
@@ -453,7 +710,7 @@
"pivot": [9, 0, -10],
"rotation": [0, 27.5, 0],
"cubes": [
{"origin": [9, 0, -13], "size": [0, 2, 3], "uv": [8, 1]}
{"origin": [9, 0, -13], "size": [0, 2, 3], "uv": [22, 175]}
]
},
{
@@ -461,7 +718,7 @@
"parent": "left_toes",
"pivot": [13, 0, -10],
"cubes": [
{"origin": [13, 0, -16], "size": [0, 3, 6], "uv": [73, 36]}
{"origin": [13, 0, -16], "size": [0, 3, 6], "uv": [174, 49]}
]
},
{
@@ -469,7 +726,7 @@
"parent": "foot_left",
"pivot": [13, 0, 0],
"cubes": [
{"origin": [13, 0, 0], "size": [0, 2, 3], "uv": [0, 0]}
{"origin": [13, 0, 0], "size": [0, 2, 3], "uv": [76, 176]}
]
}
]
@@ -15,11 +15,43 @@
"name": "pidgeot",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "pidgeot",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "pidgeot",
"pivot": [0, 25.25, -1.75],
"locators": {
"top": [0, 25.25, -1.75]
}
},
{
"name": "body",
"parent": "pidgeot",
"pivot": [0, 7, -2]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 12.75, -12.25],
"locators": {
"target": [0, 12.75, -12.25]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 11, -3],
"locators": {
"middle": [0, 11, -3]
}
},
{
"name": "torso",
"parent": "body",
@@ -30,6 +62,14 @@
{"origin": [-3, 6.5, 2], "size": [6, 6, 5], "uv": [26, 18]}
]
},
{
"name": "locator_seat1",
"parent": "torso",
"pivot": [0, 13.5, 0.5],
"locators": {
"seat_1": [0, 13.5, 0.5]
}
},
{
"name": "neck",
"parent": "torso",
@@ -109,6 +149,57 @@
{"origin": [-2.5, 45.48791, -8.94092], "size": [5, 6, 0], "uv": [41, 0]}
]
},
{
"name": "locator_beak",
"parent": "beak",
"pivot": [0, 16.925, -11.25],
"locators": {
"beak": [0, 16.925, -11.25],
"jaw1": [0, 16.925, -11.25],
"physical": [0, 16.925, -11.25]
}
},
{
"name": "locator_mouth",
"parent": "head",
"pivot": [0, 16.1, -9.3],
"locators": {
"mouth": [0, 16.1, -9.3],
"special": [0, 16.1, -9.3]
}
},
{
"name": "locator_head",
"parent": "head",
"pivot": [0, 21.25, -6.75],
"locators": {
"head": [0, 21.25, -6.75]
}
},
{
"name": "locator_item_hat",
"parent": "head",
"pivot": [0, 23.25, -5.75],
"locators": {
"item_hat": [0, 23.25, -5.75]
}
},
{
"name": "locator_item_face",
"parent": "head",
"pivot": [0, 18.25, -9.25],
"locators": {
"item_face": [0, 18.25, -9.25]
}
},
{
"name": "locator_face",
"parent": "head",
"pivot": [0, 18, -9.5],
"locators": {
"face": [0, 18, -9.5]
}
},
{
"name": "eye_left",
"parent": "head",
@@ -126,6 +217,14 @@
{"origin": [2.01, 17.75, -9.265], "size": [1, 2, 1], "inflate": 0.01, "uv": [12, 4]}
]
},
{
"name": "locator_eye_left",
"parent": "pupil_left",
"pivot": [2.55, 18.525, -9.275],
"locators": {
"eye2": [2.55, 18.525, -9.275]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
@@ -151,6 +250,14 @@
{"origin": [-3.01, 17.75, -9.265], "size": [1, 2, 1], "inflate": 0.01, "uv": [16, 4], "mirror": true}
]
},
{
"name": "locator_eye_right",
"parent": "pupil_right",
"pivot": [-2.55, 18.525, -9.275],
"locators": {
"eye1": [-2.55, 18.525, -9.275]
}
},
{
"name": "eyelid_right",
"parent": "eye_right",
@@ -168,6 +275,28 @@
{"origin": [-1.5, 15.5, -10.75], "size": [3, 1, 2], "uv": [10, 15]}
]
},
{
"name": "locator_jaw_lower",
"parent": "jaw",
"pivot": [0, 16.5, -10.75],
"locators": {
"jaw2": {
"offset": [0, 16.5, -10.75],
"rotation": [-90, 0, 0]
}
}
},
{
"name": "locator_item",
"parent": "jaw",
"pivot": [0, 16.5, -10.75],
"locators": {
"item": {
"offset": [0, 16.5, -10.75],
"rotation": [-90, 0, 0]
}
}
},
{
"name": "wing_closed_left",
"parent": "torso",
@@ -234,6 +363,18 @@
{"origin": [9.5, 12.6, 0.25], "size": [10, 0, 6], "uv": [-6, 100]}
]
},
{
"name": "locator_wing_left",
"parent": "wing_open_left2",
"pivot": [18.95, 12.5, -7.3],
"rotation": [0, -90, 0],
"locators": {
"wing2": {
"offset": [18.95, 12.5, -7.3],
"rotation": [0, -90, 0]
}
}
},
{
"name": "wing_open_left3",
"parent": "wing_open_left2",
@@ -268,6 +409,18 @@
{"origin": [-19.5, 12.6, 0.25], "size": [10, 0, 6], "uv": [15, 100], "mirror": true}
]
},
{
"name": "locator_wing_right",
"parent": "wing_open_right2",
"pivot": [-18.95, 12.5, -7.3],
"rotation": [0, 90, 0],
"locators": {
"wing1": {
"offset": [-18.95, 12.5, -7.3],
"rotation": [0, 90, 0]
}
}
},
{
"name": "wing_open_right3",
"parent": "wing_open_right2",
@@ -326,8 +479,31 @@
]
},
{
"name": "leg_right",
"name": "locator_tail",
"parent": "tail",
"pivot": [0, 9.6, 13],
"rotation": [180, 0, -180],
"locators": {
"tail": [0, 9.6, 13]
}
},
{
"name": "locator_tail_tip",
"parent": "tail",
"pivot": [0, 9.6, 17],
"rotation": [180, 0, -180],
"locators": {
"tail_tip": [0, 9.6, 17]
}
},
{
"name": "legs",
"parent": "body",
"pivot": [-2.25, 5, -0.25]
},
{
"name": "leg_right",
"parent": "legs",
"pivot": [-2.25, 5, -0.25],
"rotation": [5, 0, 0],
"cubes": [
@@ -352,6 +528,15 @@
{"origin": [-3.25, -0.07635, -1.98481], "size": [2, 1, 3], "uv": [8, 18]}
]
},
{
"name": "locator_foot_primary",
"parent": "foot_right",
"pivot": [-2.25, 0.5, -0.25],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-2.25, 0.5, -0.25]
}
},
{
"name": "toe_back_right",
"parent": "foot_right",
@@ -420,7 +605,7 @@
},
{
"name": "leg_left",
"parent": "body",
"parent": "legs",
"pivot": [2.25, 5, -1.25],
"rotation": [5, 0, 0],
"cubes": [
@@ -445,6 +630,15 @@
{"origin": [1.25, -0.16351, -1.98861], "size": [2, 1, 3], "uv": [0, 19]}
]
},
{
"name": "locator_foot_secondary",
"parent": "foot_left",
"pivot": [2.25, 0.5, -0.25],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [2.25, 0.5, -0.25]
}
},
{
"name": "toe_back_left",
"parent": "foot_left",
@@ -4,9 +4,9 @@
{
"description": {
"identifier": "geometry.eevee_female",
"texture_width": 64,
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 3,
"visible_bounds_width": 4,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
@@ -15,223 +15,728 @@
"name": "eevee",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "eevee",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "eevee",
"pivot": [0, 18, 0],
"locators": {
"top": [0, 18, 0]
}
},
{
"name": "body",
"parent": "eevee",
"pivot": [0, 7.75, 0]
"pivot": [0, 6.5, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 7.5, -11],
"locators": {
"target": [0, 7.5, -11]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 9, 0],
"locators": {
"middle": [0, 9, 0]
}
},
{
"name": "waist",
"parent": "body",
"pivot": [0, 6.5, 3]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 7.75, 0],
"parent": "waist",
"pivot": [0, 6.5, 3],
"cubes": [
{"origin": [-3.5, 4.75, -6], "size": [7, 6, 12], "uv": [0, 0]},
{"origin": [-5, 5.5, -8.75], "size": [10, 6, 9], "pivot": [0.5, 8.5, -4.25], "rotation": [30, 0, 0], "uv": [26, 49]}
{"origin": [-3.5, 4.5, 1], "size": [7, 5, 4], "inflate": 0.25, "uv": [0, 14]}
]
},
{
"name": "torso2",
"parent": "torso",
"pivot": [0, 6.75, 1.25],
"cubes": [
{"origin": [-3, 4.25, -1.5], "size": [6, 5, 3], "uv": [0, 32]}
]
},
{
"name": "torso3",
"parent": "torso2",
"pivot": [0, 6.75, -1.25],
"cubes": [
{"origin": [-3, 4.25, -5], "size": [6, 5, 4], "inflate": 0.01, "uv": [0, 23]}
]
},
{
"name": "neck",
"parent": "torso3",
"pivot": [0, 6.7, -2.75],
"rotation": [25, 0, 0],
"cubes": [
{"origin": [-2.5, 6.2, -4.9], "size": [5, 5, 4], "inflate": -0.01, "uv": [28, 0]}
]
},
{
"name": "neckfur",
"parent": "neck",
"pivot": [0, 10.2, -2.15],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-4, 7.45, -5.65], "size": [8, 3, 7], "uv": [72, 0]}
]
},
{
"name": "neckfur_front",
"parent": "neckfur",
"pivot": [0, 10.45, -5.65],
"rotation": [-42.5, 0, 0],
"cubes": [
{"origin": [-4, 7.45, -5.65], "size": [8, 3, 3], "uv": [80, 10]}
]
},
{
"name": "neckfur_front2",
"parent": "neckfur_front",
"pivot": [0, 7.45, -4.65],
"rotation": [-25, 0, 0],
"cubes": [
{"origin": [-2.5, 7.45, -4.65], "size": [5, 0, 3], "uv": [49, 59]}
]
},
{
"name": "neckfur_back",
"parent": "neckfur",
"pivot": [0, 10.45, 1.35],
"rotation": [-32.5, 0, 0],
"cubes": [
{"origin": [-3, 8.35, 1.45], "size": [6, 2, 2], "inflate": 0.1, "uv": [63, 0]}
]
},
{
"name": "neckfur_back2",
"parent": "neckfur_back",
"pivot": [1, 9.8, 3.5],
"cubes": [
{"origin": [-1.5, 9.8, 3.5], "size": [3, 0, 2], "uv": [62, 55]}
]
},
{
"name": "fluff_left",
"parent": "neckfur",
"pivot": [4, 10.45, -0.65],
"rotation": [0, 0, -35],
"cubes": [
{"origin": [2, 7.45, -5.65], "size": [2, 3, 7], "inflate": 0.01, "uv": [69, 10]}
]
},
{
"name": "fluff_left2",
"parent": "fluff_left",
"pivot": [3.75, 7.45, -2.4],
"rotation": [0, 0, 50],
"cubes": [
{"origin": [3.75, 4.45, -4.15], "size": [0, 3, 4], "uv": [64, 55]}
]
},
{
"name": "fluff_right",
"parent": "neckfur",
"pivot": [-4, 10.45, -0.65],
"rotation": [0, 0, 35],
"cubes": [
{"origin": [-4, 7.45, -5.65], "size": [2, 3, 7], "inflate": 0.01, "uv": [58, 4]}
]
},
{
"name": "fluff_right2",
"parent": "fluff_right",
"pivot": [-3.75, 7.45, -2.4],
"rotation": [0, 0, -50],
"cubes": [
{"origin": [-3.75, 4.45, -4.15], "size": [0, 3, 4], "uv": [74, 55]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 10.25, -5],
"parent": "neck",
"pivot": [0, 9.75, -2.3],
"rotation": [-15, 0, 0]
},
{
"name": "head_ai",
"parent": "head",
"pivot": [0, 9.75, -2.3]
},
{
"name": "head_angle",
"parent": "head_ai",
"pivot": [0, 9.75, -2.3],
"rotation": [-10, 0, 0],
"cubes": [
{"origin": [-4, 8.75, -9.25], "size": [8, 8, 7], "uv": [31, 11]},
{"origin": [-3, 9.5, -10], "size": [6, 2, 1], "uv": [36, 1]},
{"origin": [-3, 16.5, -6.25], "size": [6, 2, 0], "pivot": [0, 17.5, -6], "rotation": [-15, 0, 0], "uv": [52, 7]},
{"origin": [-0.5, 10.51, -10.01], "size": [1, 1, 0], "uv": [52, 5], "mirror": true}
{"origin": [-3.5, 9.5, -6.5], "size": [7, 7, 7], "inflate": 0.16, "uv": [0, 0]}
]
},
{
"name": "item_hat",
"parent": "head_angle",
"pivot": [0, 16.65, -3],
"locators": {
"item_hat": [0, 16.65, -3]
}
},
{
"name": "locator_head",
"parent": "head_angle",
"pivot": [0, 16.65, -5.1],
"locators": {
"head": [0, 16.65, -5.1],
"physical": [0, 9.65, -7.1]
}
},
{
"name": "locator_mouth",
"parent": "head_angle",
"pivot": [0, 9.65, -7.1],
"locators": {
"mouth": [0, 9.65, -7.1],
"special": [0, 9.65, -7.1]
}
},
{
"name": "locator_item_face",
"parent": "head_angle",
"pivot": [0, 12.45, -6.75],
"locators": {
"item_face": [0, 12.45, -6.75]
}
},
{
"name": "locator_face",
"parent": "head_angle",
"pivot": [0, 12.45, -6.75],
"locators": {
"face": [0, 12.45, -6.75]
}
},
{
"name": "muzzle",
"parent": "head_angle",
"pivot": [0, 9, -7.05],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-3.5, 9.25, -6.8], "size": [7, 2, 2], "inflate": 0.15, "uv": [42, 0]}
]
},
{
"name": "locator_item",
"parent": "muzzle",
"pivot": [0, 9.65, -7],
"rotation": [90, 0, 0],
"locators": {
"item": [0, 9.65, -7]
}
},
{
"name": "mouth",
"parent": "head",
"pivot": [0, 0.05, -0.75]
"parent": "muzzle",
"pivot": [0, 10.4, -6.95]
},
{
"name": "mouth_closed",
"name": "mouth_open_wide",
"parent": "mouth",
"pivot": [0, 10.01, -10.01],
"pivot": [0, 10.15, -6.86],
"cubes": [
{"origin": [-1, 9.51, -10.01], "size": [2, 1, 0], "uv": [60, 5], "mirror": true}
{"origin": [-1.5, 9.65, -6.86], "size": [3, 1, 0], "uv": [21, 32]}
]
},
{
"name": "mouth_open",
"parent": "mouth",
"pivot": [0, 10.01, -9.91],
"name": "mouth_open_wide_tongue",
"parent": "mouth_open_wide",
"pivot": [0, 9.65, -6.87],
"cubes": [
{"origin": [-1, 9.51, -9.91], "size": [2, 1, 0], "uv": [55, 5], "mirror": true}
{"origin": [-1.5, 9.15, -6.87], "size": [3, 1, 0], "uv": [21, 33], "mirror": true}
]
},
{
"name": "mouth_open_thin",
"parent": "mouth",
"pivot": [0, 10.15, -6.86],
"cubes": [
{"origin": [-1, 9.65, -6.86], "size": [2, 1, 0], "uv": [28, 32]}
]
},
{
"name": "mouth_open_thin_tongue",
"parent": "mouth_open_thin",
"pivot": [0, 9.65, -6.87],
"cubes": [
{"origin": [-1, 9.15, -6.87], "size": [2, 1, 0], "uv": [28, 33]}
]
},
{
"name": "mouth_open_happy",
"parent": "mouth",
"pivot": [0, 10.15, -6.86],
"cubes": [
{"origin": [-1.5, 9.65, -6.86], "size": [3, 1, 0], "uv": [21, 35]}
]
},
{
"name": "mouth_open_happy_tongue",
"parent": "mouth_open_happy",
"pivot": [0, 9.65, -6.87],
"cubes": [
{"origin": [-1, 9.15, -6.87], "size": [2, 1, 0], "uv": [21, 36]}
]
},
{
"name": "locator_jaw_upper",
"parent": "mouth",
"pivot": [0, 10.25, -7],
"locators": {
"jaw1": [0, 10.25, -7]
}
},
{
"name": "locator_jaw_lower",
"parent": "mouth",
"pivot": [0, 8.75, -7],
"locators": {
"jaw2": [0, 8.75, -7]
}
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 13, -9.3]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.5, 13, -9.26],
"cubes": [
{"origin": [-3.5, 11.5, -9.26], "size": [2, 3, 0], "uv": [60, 0]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.5, 13, -8.66],
"cubes": [
{"origin": [-3.5, 11.5, -9.16], "size": [2, 3, 1], "inflate": 0.01, "uv": [1, 43]}
]
"parent": "head_angle",
"pivot": [0, 13.1, -6.65]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [2.5, 13, -9.26],
"pivot": [2.4, 12.1, -6.65]
},
{
"name": "eye_left_emote",
"parent": "eye_left",
"pivot": [2.4, 11.6, -6.67],
"cubes": [
{"origin": [1.5, 11.5, -9.26], "size": [2, 3, 0], "uv": [60, 0], "mirror": true}
{"origin": [1.4, 11.1, -6.67], "size": [2, 2, 0], "uv": [28, 20]}
]
},
{
"name": "eye_left_emote2",
"parent": "eye_left",
"pivot": [2.4, 13.1, -6.67],
"cubes": [
{"origin": [2.4, 13.1, -6.67], "size": [1, 1, 0], "uv": [28, 19]}
]
},
{
"name": "eyeshine_left",
"parent": "eye_left",
"pivot": [1.9, 13.6, -6.67],
"cubes": [
{"origin": [1.4, 13.1, -6.67], "size": [1, 1, 0], "inflate": 0.005, "uv": [30, 19]}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [2.4, 12.45, -6.7],
"locators": {
"eye2": [2.4, 12.45, -6.7]
}
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.4, 12.1, -6.65]
},
{
"name": "eye_right_emote",
"parent": "eye_right",
"pivot": [-2.4, 11.6, -6.67],
"cubes": [
{"origin": [-3.4, 11.1, -6.67], "size": [2, 2, 0], "uv": [23, 20]}
]
},
{
"name": "eye_right_emote2",
"parent": "eye_right",
"pivot": [-2.4, 13.1, -6.67],
"cubes": [
{"origin": [-3.4, 13.1, -6.67], "size": [1, 1, 0], "uv": [23, 19]}
]
},
{
"name": "eyeshine_right",
"parent": "eye_right",
"pivot": [-1.9, 13.6, -6.67],
"cubes": [
{"origin": [-2.4, 13.1, -6.67], "size": [1, 1, 0], "inflate": 0.005, "uv": [25, 19]}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-2.4, 12.45, -6.7],
"locators": {
"eye1": [-2.4, 12.45, -6.7]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.5, 13, -8.66],
"parent": "eyes",
"pivot": [2.4, 12.6, -6.07],
"cubes": [
{"origin": [1.5, 11.5, -9.16], "size": [2, 3, 1], "inflate": 0.01, "uv": [1, 43], "mirror": true}
{"origin": [1.4, 11.1, -6.57], "size": [2, 3, 1], "inflate": 0.01, "uv": [27, 27]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3.25, 16.75, -5.5],
"rotation": [-10, 15, -32.5],
"name": "eyelid_hurt_left",
"parent": "eyes",
"pivot": [2.4, 13.1, -6.07],
"cubes": [
{"origin": [-5.75, 15.75, -5.5], "size": [4, 8, 0], "uv": [0, 18], "mirror": true}
{"origin": [1.4, 11.6, -6.57], "size": [2, 3, 0], "uv": [28, 23]}
]
},
{
"name": "eyelid_right",
"parent": "eyes",
"pivot": [-2.4, 12.6, -6.07],
"cubes": [
{"origin": [-3.4, 11.1, -6.57], "size": [2, 3, 1], "inflate": 0.01, "uv": [21, 27]}
]
},
{
"name": "eyelid_hurt_right",
"parent": "eyes",
"pivot": [-2.4, 13.1, -6.07],
"cubes": [
{"origin": [-3.4, 11.6, -6.57], "size": [2, 3, 0], "uv": [23, 23]}
]
},
{
"name": "hair",
"parent": "head_angle",
"pivot": [0.25, 16.5, -4.35]
},
{
"name": "hair_left",
"parent": "hair",
"pivot": [0.75, 16.65, -4.35],
"rotation": [5, -10, 0],
"cubes": [
{"origin": [0.25, 16.15, -4.55], "size": [2, 2, 0], "uv": [27, 54]}
]
},
{
"name": "hair_right",
"parent": "hair",
"pivot": [-0.2, 16.65, -4.35],
"rotation": [5, 5, -20],
"cubes": [
{"origin": [-2, 15.75, -4.35], "size": [3, 3, 0], "uv": [19, 53]}
]
},
{
"name": "ears",
"parent": "head_angle",
"pivot": [-3, 15.2, -2.85]
},
{
"name": "ear_right",
"parent": "ears",
"pivot": [-3, 15.2, -2.85],
"rotation": [0, 0, 30],
"cubes": [
{"origin": [-8, 13.2, -2.85], "size": [5, 4, 0], "uv": [104, 2]}
]
},
{
"name": "ear_scruff_right",
"parent": "ear_right",
"pivot": [-3, 14.7, -2.85],
"rotation": [0, -12.5, -12.5],
"cubes": [
{"origin": [-5, 14.2, -2.85], "size": [2, 2, 0], "uv": [33, 54]}
]
},
{
"name": "ear2_right",
"parent": "ear_right",
"pivot": [-8, 15.2, -2.85],
"cubes": [
{"origin": [-13, 13.2, -2.85], "size": [5, 4, 0], "uv": [104, 8]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3.25, 16.75, -5.5],
"rotation": [-10, -15, 32.5],
"parent": "ears",
"pivot": [3, 15.2, -2.85],
"rotation": [0, 0, -30],
"cubes": [
{"origin": [1.75, 15.75, -5.5], "size": [4, 8, 0], "uv": [0, 18]}
{"origin": [3, 13.2, -2.85], "size": [5, 4, 0], "uv": [116, 2]}
]
},
{
"name": "tail",
"name": "ear_scruff_left",
"parent": "ear_left",
"pivot": [3, 14.7, -2.85],
"rotation": [0, 12.5, 12.5],
"cubes": [
{"origin": [3, 14.2, -2.85], "size": [2, 2, 0], "uv": [39, 54]}
]
},
{
"name": "ear2_left",
"parent": "ear_left",
"pivot": [8, 15.2, -2.85],
"cubes": [
{"origin": [8, 13.2, -2.85], "size": [5, 4, 0], "uv": [116, 8]}
]
},
{
"name": "tail1",
"parent": "torso",
"pivot": [0, 9.25, 6],
"rotation": [45, 0, 0],
"pivot": [0, 8.75, 5],
"cubes": [
{"origin": [-4, 6.25, 5], "size": [8, 7, 10], "uv": [26, 26]}
{"origin": [-2.5, 6.3, 4.5], "size": [5, 5, 4], "uv": [84, 55]}
]
},
{
"name": "leg_front_right",
"name": "tail2",
"parent": "tail1",
"pivot": [0, 8.8, 7],
"cubes": [
{"origin": [-3.5, 5.3, 6.5], "size": [7, 7, 6], "uv": [102, 51]}
]
},
{
"name": "locator_tail",
"parent": "tail2",
"pivot": [0, 8.8, 9.5],
"rotation": [-180, 0, 180],
"locators": {
"tail": [0, 8.8, 9.5]
}
},
{
"name": "tail3",
"parent": "tail2",
"pivot": [0, 8.8, 12],
"cubes": [
{"origin": [-2.5, 6.3, 10.5], "size": [5, 5, 5], "uv": [108, 41]}
]
},
{
"name": "tail4",
"parent": "tail3",
"pivot": [0, 8.8, 15.5],
"cubes": [
{"origin": [0, 7.3, 13.5], "size": [0, 3, 5], "uv": [52, 49]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail4",
"pivot": [0, 8.8, 18.5],
"rotation": [-180, 0, 180],
"locators": {
"tail_tip": [0, 8.8, 18.5]
}
},
{
"name": "ftorso2",
"parent": "waist",
"pivot": [0, 6.75, 1.25]
},
{
"name": "ftorso3",
"parent": "ftorso2",
"pivot": [0, 6.75, -1.25]
},
{
"name": "front_legs",
"parent": "ftorso3",
"pivot": [0, 6.25, -3.8]
},
{
"name": "front_leg_left",
"parent": "front_legs",
"pivot": [2.1, 6.25, -3.8],
"cubes": [
{"origin": [1.1, 3.75, -4.8], "size": [2, 4, 2], "inflate": 0.25, "uv": [28, 58]}
]
},
{
"name": "elbow_left",
"parent": "front_leg_left",
"pivot": [2.1, 3.75, -2.8],
"cubes": [
{"origin": [1.1, 0.75, -4.8], "size": [2, 3, 2], "inflate": 0.01, "uv": [8, 40]}
]
},
{
"name": "frontpaw_left",
"parent": "elbow_left",
"pivot": [2.1, 0.75, -4.05],
"cubes": [
{"origin": [1.1, 0.1, -5.3], "size": [2, 1, 2], "inflate": 0.1, "uv": [42, 57]},
{"origin": [1.6, 0.1, -4.8], "size": [1, 0, 1], "inflate": 0.11, "uv": [0, 4]}
]
},
{
"name": "locator_foot_secondary1",
"parent": "frontpaw_left",
"pivot": [2.1, 0.5, -4.3],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [2.1, 0.5, -4.3]
}
},
{
"name": "front_leg_right",
"parent": "front_legs",
"pivot": [-2.1, 6.25, -3.8],
"cubes": [
{"origin": [-3.1, 3.75, -4.8], "size": [2, 4, 2], "inflate": 0.25, "uv": [20, 58]}
]
},
{
"name": "elbow_right",
"parent": "front_leg_right",
"pivot": [-2.1, 3.75, -2.8],
"cubes": [
{"origin": [-3.1, 0.75, -4.8], "size": [2, 3, 2], "inflate": 0.01, "uv": [0, 40]}
]
},
{
"name": "frontpaw_right",
"parent": "elbow_right",
"pivot": [-2.1, 0.75, -4.05],
"cubes": [
{"origin": [-3.1, 0.1, -5.3], "size": [2, 1, 2], "inflate": 0.1, "uv": [36, 58]},
{"origin": [-2.6, 0.1, -4.8], "size": [1, 0, 1], "inflate": 0.11, "uv": [2, 5]}
]
},
{
"name": "locator_foot_primary",
"parent": "frontpaw_right",
"pivot": [-2.1, 0.5, -4.3],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-2.1, 0.5, -4.3]
}
},
{
"name": "back_legs",
"parent": "body",
"pivot": [-2.5, 7, -3.75],
"rotation": [2.5, 0, 0],
"pivot": [0, 7.2, 3.2]
},
{
"name": "back_leg_left",
"parent": "back_legs",
"pivot": [2.75, 7.2, 3.2],
"cubes": [
{"origin": [-4, 3.5, -5.25], "size": [3, 5, 3], "inflate": 0.01, "uv": [0, 56], "mirror": true}
{"origin": [1.75, 3.3, 1.7], "size": [2, 5, 3], "inflate": 0.25, "uv": [10, 56]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-2.5, 3.5, -2.25],
"rotation": [-22.5, 0, 0],
"name": "knee_left",
"parent": "back_leg_left",
"pivot": [2.75, 3.05, 2.7],
"rotation": [37.5, 0, 0],
"cubes": [
{"origin": [-4, 0.5, -5.25], "size": [3, 3, 3], "uv": [0, 50], "mirror": true}
{"origin": [1.75, 1.05, 2.7], "size": [2, 2, 2], "uv": [8, 50]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-2.5, 1, -3.75],
"rotation": [20, 0, 0],
"name": "ankle_left",
"parent": "knee_left",
"pivot": [2.75, 1.05, 4.7],
"rotation": [-65, 0, 0],
"cubes": [
{"origin": [-4, -0.75, -5.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [12, 59], "mirror": true}
{"origin": [1.75, -1.95, 2.7], "size": [2, 3, 2], "inflate": 0.01, "uv": [8, 45]}
]
},
{
"name": "leg_front_left",
"parent": "body",
"pivot": [2.5, 7, -3.75],
"rotation": [2.5, 0, 0],
"name": "backpaw_left",
"parent": "ankle_left",
"pivot": [2.75, -1.75, 3.55],
"rotation": [27.5, 0, 0],
"cubes": [
{"origin": [1, 3.5, -5.25], "size": [3, 5, 3], "inflate": 0.01, "uv": [0, 56]}
{"origin": [1.75, -2.4, 2.15], "size": [2, 1, 2], "inflate": 0.1, "uv": [42, 60]},
{"origin": [2.25, -2.4, 2.7], "size": [1, 0, 1], "inflate": 0.11, "uv": [2, 4]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [2.5, 3.5, -2.25],
"rotation": [-22.5, 0, 0],
"name": "locator_foot_secondary3",
"parent": "backpaw_left",
"pivot": [2.75, -2, 3.15],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary3": [2.75, -2, 3.15]
}
},
{
"name": "back_leg_right",
"parent": "back_legs",
"pivot": [-2.75, 7.2, 3.2],
"cubes": [
{"origin": [1, 0.5, -5.25], "size": [3, 3, 3], "uv": [0, 50]}
{"origin": [-3.75, 3.3, 1.7], "size": [2, 5, 3], "inflate": 0.25, "uv": [0, 56]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [2.5, 1, -3.75],
"rotation": [20, 0, 0],
"name": "knee_right",
"parent": "back_leg_right",
"pivot": [-2.75, 3.05, 2.7],
"rotation": [37.5, 0, 0],
"cubes": [
{"origin": [1, -0.75, -5.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [12, 59]}
{"origin": [-3.75, 1.05, 2.7], "size": [2, 2, 2], "uv": [0, 50], "mirror": true}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-2.5, 7.75, 3.5],
"rotation": [10, 0, 0],
"name": "ankle_right",
"parent": "knee_right",
"pivot": [-2.75, 1.05, 4.7],
"rotation": [-65, 0, 0],
"cubes": [
{"origin": [-4, 4.25, 1.5], "size": [3, 5, 4], "inflate": 0.01, "uv": [26, 0], "mirror": true}
{"origin": [-3.75, -1.95, 2.7], "size": [2, 3, 2], "inflate": 0.01, "uv": [0, 45]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-2.5, 4.25, 5],
"rotation": [-22.5, 0, 0],
"name": "backpaw_right",
"parent": "ankle_right",
"pivot": [-2.75, -1.75, 3.55],
"rotation": [27.5, 0, 0],
"cubes": [
{"origin": [-4, 0.5, 3], "size": [3, 4, 3], "uv": [0, 0], "mirror": true}
{"origin": [-3.75, -2.4, 2.15], "size": [2, 1, 2], "inflate": 0.1, "uv": [36, 61]},
{"origin": [-3.25, -2.4, 2.7], "size": [1, 0, 1], "inflate": 0.11, "uv": [0, 5]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-2.5, 1, 4.5],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [-4, -0.5, 2.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [0, 7], "mirror": true}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [2.5, 7.75, 3.5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1, 4.25, 1.5], "size": [3, 5, 4], "inflate": 0.01, "uv": [26, 0]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [2.5, 4.25, 5],
"rotation": [-22.5, 0, 0],
"cubes": [
{"origin": [1, 0.5, 3], "size": [3, 4, 3], "uv": [0, 0]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [2.5, 1, 4.5],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [1, -0.5, 2.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [0, 7]}
]
"name": "locator_foot_secondary2",
"parent": "backpaw_right",
"pivot": [-2.75, -2, 3.15],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary2": [-2.75, -2, 3.15]
}
}
]
}
@@ -4,9 +4,9 @@
{
"description": {
"identifier": "geometry.eevee_male",
"texture_width": 64,
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 3,
"visible_bounds_width": 4,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
@@ -15,223 +15,728 @@
"name": "eevee",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "eevee",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "eevee",
"pivot": [0, 18, 0],
"locators": {
"top": [0, 18, 0]
}
},
{
"name": "body",
"parent": "eevee",
"pivot": [0, 7.75, 0]
"pivot": [0, 6.5, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 7.5, -11],
"locators": {
"target": [0, 7.5, -11]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 9, 0],
"locators": {
"middle": [0, 9, 0]
}
},
{
"name": "waist",
"parent": "body",
"pivot": [0, 6.5, 3]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 7.75, 0],
"parent": "waist",
"pivot": [0, 6.5, 3],
"cubes": [
{"origin": [-3.5, 4.75, -6], "size": [7, 6, 12], "uv": [0, 0]},
{"origin": [-5, 5.5, -8.75], "size": [10, 6, 9], "pivot": [0.5, 8.5, -4.25], "rotation": [30, 0, 0], "uv": [26, 49]}
{"origin": [-3.5, 4.5, 1], "size": [7, 5, 4], "inflate": 0.25, "uv": [0, 14]}
]
},
{
"name": "torso2",
"parent": "torso",
"pivot": [0, 6.75, 1.25],
"cubes": [
{"origin": [-3, 4.25, -1.5], "size": [6, 5, 3], "uv": [0, 32]}
]
},
{
"name": "torso3",
"parent": "torso2",
"pivot": [0, 6.75, -1.25],
"cubes": [
{"origin": [-3, 4.25, -5], "size": [6, 5, 4], "inflate": 0.01, "uv": [0, 23]}
]
},
{
"name": "neck",
"parent": "torso3",
"pivot": [0, 6.7, -2.75],
"rotation": [25, 0, 0],
"cubes": [
{"origin": [-2.5, 6.2, -4.9], "size": [5, 5, 4], "inflate": -0.01, "uv": [28, 0]}
]
},
{
"name": "neckfur",
"parent": "neck",
"pivot": [0, 10.2, -2.15],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-4, 7.45, -5.65], "size": [8, 3, 7], "uv": [72, 0]}
]
},
{
"name": "neckfur_front",
"parent": "neckfur",
"pivot": [0, 10.45, -5.65],
"rotation": [-42.5, 0, 0],
"cubes": [
{"origin": [-4, 7.45, -5.65], "size": [8, 3, 3], "uv": [80, 10]}
]
},
{
"name": "neckfur_front2",
"parent": "neckfur_front",
"pivot": [0, 7.45, -4.65],
"rotation": [-25, 0, 0],
"cubes": [
{"origin": [-2.5, 7.45, -4.65], "size": [5, 0, 3], "uv": [49, 59]}
]
},
{
"name": "neckfur_back",
"parent": "neckfur",
"pivot": [0, 10.45, 1.35],
"rotation": [-32.5, 0, 0],
"cubes": [
{"origin": [-3, 8.35, 1.45], "size": [6, 2, 2], "inflate": 0.1, "uv": [63, 0]}
]
},
{
"name": "neckfur_back2",
"parent": "neckfur_back",
"pivot": [1, 9.8, 3.5],
"cubes": [
{"origin": [-1.5, 9.8, 3.5], "size": [3, 0, 2], "uv": [62, 55]}
]
},
{
"name": "fluff_left",
"parent": "neckfur",
"pivot": [4, 10.45, -0.65],
"rotation": [0, 0, -35],
"cubes": [
{"origin": [2, 7.45, -5.65], "size": [2, 3, 7], "inflate": 0.01, "uv": [69, 10]}
]
},
{
"name": "fluff_left2",
"parent": "fluff_left",
"pivot": [3.75, 7.45, -2.4],
"rotation": [0, 0, 50],
"cubes": [
{"origin": [3.75, 4.45, -4.15], "size": [0, 3, 4], "uv": [64, 55]}
]
},
{
"name": "fluff_right",
"parent": "neckfur",
"pivot": [-4, 10.45, -0.65],
"rotation": [0, 0, 35],
"cubes": [
{"origin": [-4, 7.45, -5.65], "size": [2, 3, 7], "inflate": 0.01, "uv": [58, 4]}
]
},
{
"name": "fluff_right2",
"parent": "fluff_right",
"pivot": [-3.75, 7.45, -2.4],
"rotation": [0, 0, -50],
"cubes": [
{"origin": [-3.75, 4.45, -4.15], "size": [0, 3, 4], "uv": [74, 55]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 10.25, -5],
"parent": "neck",
"pivot": [0, 9.75, -2.3],
"rotation": [-15, 0, 0]
},
{
"name": "head_ai",
"parent": "head",
"pivot": [0, 9.75, -2.3]
},
{
"name": "head_angle",
"parent": "head_ai",
"pivot": [0, 9.75, -2.3],
"rotation": [-10, 0, 0],
"cubes": [
{"origin": [-4, 8.75, -9.25], "size": [8, 8, 7], "uv": [31, 11]},
{"origin": [-3, 9.5, -10], "size": [6, 2, 1], "uv": [36, 1]},
{"origin": [-3, 16.5, -6.25], "size": [6, 2, 0], "pivot": [0, 17.5, -6], "rotation": [-15, 0, 0], "uv": [52, 7]},
{"origin": [-0.5, 10.51, -10.01], "size": [1, 1, 0], "uv": [52, 5], "mirror": true}
{"origin": [-3.5, 9.5, -6.5], "size": [7, 7, 7], "inflate": 0.16, "uv": [0, 0]}
]
},
{
"name": "item_hat",
"parent": "head_angle",
"pivot": [0, 16.65, -3],
"locators": {
"item_hat": [0, 16.65, -3]
}
},
{
"name": "locator_head",
"parent": "head_angle",
"pivot": [0, 16.65, -5.1],
"locators": {
"head": [0, 16.65, -5.1],
"physical": [0, 9.65, -7.1]
}
},
{
"name": "locator_mouth",
"parent": "head_angle",
"pivot": [0, 9.65, -7.1],
"locators": {
"mouth": [0, 9.65, -7.1],
"special": [0, 9.65, -7.1]
}
},
{
"name": "locator_item_face",
"parent": "head_angle",
"pivot": [0, 12.45, -6.75],
"locators": {
"item_face": [0, 12.45, -6.75]
}
},
{
"name": "locator_face",
"parent": "head_angle",
"pivot": [0, 12.45, -6.75],
"locators": {
"face": [0, 12.45, -6.75]
}
},
{
"name": "muzzle",
"parent": "head_angle",
"pivot": [0, 9, -7.05],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-3.5, 9.25, -6.8], "size": [7, 2, 2], "inflate": 0.15, "uv": [42, 0]}
]
},
{
"name": "locator_item",
"parent": "muzzle",
"pivot": [0, 9.65, -7],
"rotation": [90, 0, 0],
"locators": {
"item": [0, 9.65, -7]
}
},
{
"name": "mouth",
"parent": "head",
"pivot": [0, 0.05, -0.75]
"parent": "muzzle",
"pivot": [0, 10.4, -6.95]
},
{
"name": "mouth_closed",
"name": "mouth_open_wide",
"parent": "mouth",
"pivot": [0, 10.01, -10.01],
"pivot": [0, 10.15, -6.86],
"cubes": [
{"origin": [-1, 9.51, -10.01], "size": [2, 1, 0], "uv": [60, 5], "mirror": true}
{"origin": [-1.5, 9.65, -6.86], "size": [3, 1, 0], "uv": [21, 32]}
]
},
{
"name": "mouth_open",
"parent": "mouth",
"pivot": [0, 10.01, -9.91],
"name": "mouth_open_wide_tongue",
"parent": "mouth_open_wide",
"pivot": [0, 9.65, -6.87],
"cubes": [
{"origin": [-1, 9.51, -9.91], "size": [2, 1, 0], "uv": [55, 5], "mirror": true}
{"origin": [-1.5, 9.15, -6.87], "size": [3, 1, 0], "uv": [21, 33], "mirror": true}
]
},
{
"name": "mouth_open_thin",
"parent": "mouth",
"pivot": [0, 10.15, -6.86],
"cubes": [
{"origin": [-1, 9.65, -6.86], "size": [2, 1, 0], "uv": [28, 32]}
]
},
{
"name": "mouth_open_thin_tongue",
"parent": "mouth_open_thin",
"pivot": [0, 9.65, -6.87],
"cubes": [
{"origin": [-1, 9.15, -6.87], "size": [2, 1, 0], "uv": [28, 33]}
]
},
{
"name": "mouth_open_happy",
"parent": "mouth",
"pivot": [0, 10.15, -6.86],
"cubes": [
{"origin": [-1.5, 9.65, -6.86], "size": [3, 1, 0], "uv": [21, 35]}
]
},
{
"name": "mouth_open_happy_tongue",
"parent": "mouth_open_happy",
"pivot": [0, 9.65, -6.87],
"cubes": [
{"origin": [-1, 9.15, -6.87], "size": [2, 1, 0], "uv": [21, 36]}
]
},
{
"name": "locator_jaw_upper",
"parent": "mouth",
"pivot": [0, 10.25, -7],
"locators": {
"jaw1": [0, 10.25, -7]
}
},
{
"name": "locator_jaw_lower",
"parent": "mouth",
"pivot": [0, 8.75, -7],
"locators": {
"jaw2": [0, 8.75, -7]
}
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 13, -9.3]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.5, 13, -9.26],
"cubes": [
{"origin": [-3.5, 11.5, -9.26], "size": [2, 3, 0], "uv": [55, 0]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.5, 13, -8.66],
"cubes": [
{"origin": [-3.5, 11.5, -9.16], "size": [2, 3, 1], "inflate": 0.01, "uv": [1, 43]}
]
"parent": "head_angle",
"pivot": [0, 13.1, -6.65]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [2.5, 13, -9.26],
"pivot": [2.4, 12.1, -6.65]
},
{
"name": "eye_left_emote",
"parent": "eye_left",
"pivot": [2.4, 11.6, -6.67],
"cubes": [
{"origin": [1.5, 11.5, -9.26], "size": [2, 3, 0], "uv": [55, 0], "mirror": true}
{"origin": [1.4, 11.1, -6.67], "size": [2, 2, 0], "uv": [28, 16]}
]
},
{
"name": "eye_left_emote2",
"parent": "eye_left",
"pivot": [2.4, 13.1, -6.67],
"cubes": [
{"origin": [2.4, 13.1, -6.67], "size": [1, 1, 0], "uv": [28, 15]}
]
},
{
"name": "eyeshine_left",
"parent": "eye_left",
"pivot": [1.9, 13.6, -6.67],
"cubes": [
{"origin": [1.4, 13.1, -6.67], "size": [1, 1, 0], "inflate": 0.005, "uv": [30, 15]}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [2.4, 12.45, -6.7],
"locators": {
"eye2": [2.4, 12.45, -6.7]
}
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.4, 12.1, -6.65]
},
{
"name": "eye_right_emote",
"parent": "eye_right",
"pivot": [-2.4, 11.6, -6.67],
"cubes": [
{"origin": [-3.4, 11.1, -6.67], "size": [2, 2, 0], "uv": [23, 16]}
]
},
{
"name": "eye_right_emote2",
"parent": "eye_right",
"pivot": [-2.4, 13.1, -6.67],
"cubes": [
{"origin": [-3.4, 13.1, -6.67], "size": [1, 1, 0], "uv": [23, 15]}
]
},
{
"name": "eyeshine_right",
"parent": "eye_right",
"pivot": [-1.9, 13.6, -6.67],
"cubes": [
{"origin": [-2.4, 13.1, -6.67], "size": [1, 1, 0], "inflate": 0.005, "uv": [25, 15]}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-2.4, 12.45, -6.7],
"locators": {
"eye1": [-2.4, 12.45, -6.7]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.5, 13, -8.66],
"parent": "eyes",
"pivot": [2.4, 12.6, -6.07],
"cubes": [
{"origin": [1.5, 11.5, -9.16], "size": [2, 3, 1], "inflate": 0.01, "uv": [1, 43], "mirror": true}
{"origin": [1.4, 11.1, -6.57], "size": [2, 3, 1], "inflate": 0.01, "uv": [27, 27]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3.25, 16.75, -5.5],
"rotation": [-10, 15, -32.5],
"name": "eyelid_hurt_left",
"parent": "eyes",
"pivot": [2.4, 13.1, -6.07],
"cubes": [
{"origin": [-5.75, 15.75, -5.5], "size": [4, 8, 0], "uv": [0, 18], "mirror": true}
{"origin": [1.4, 11.6, -6.57], "size": [2, 3, 0], "uv": [28, 23]}
]
},
{
"name": "eyelid_right",
"parent": "eyes",
"pivot": [-2.4, 12.6, -6.07],
"cubes": [
{"origin": [-3.4, 11.1, -6.57], "size": [2, 3, 1], "inflate": 0.01, "uv": [21, 27]}
]
},
{
"name": "eyelid_hurt_right",
"parent": "eyes",
"pivot": [-2.4, 13.1, -6.07],
"cubes": [
{"origin": [-3.4, 11.6, -6.57], "size": [2, 3, 0], "uv": [23, 23]}
]
},
{
"name": "hair",
"parent": "head_angle",
"pivot": [0.25, 16.5, -4.35]
},
{
"name": "hair_left",
"parent": "hair",
"pivot": [0.75, 16.65, -4.35],
"rotation": [5, -10, 0],
"cubes": [
{"origin": [0.25, 16.15, -4.55], "size": [2, 2, 0], "uv": [27, 54]}
]
},
{
"name": "hair_right",
"parent": "hair",
"pivot": [-0.2, 16.65, -4.35],
"rotation": [5, 5, -20],
"cubes": [
{"origin": [-2, 15.75, -4.35], "size": [3, 3, 0], "uv": [19, 53]}
]
},
{
"name": "ears",
"parent": "head_angle",
"pivot": [-3, 15.2, -2.85]
},
{
"name": "ear_right",
"parent": "ears",
"pivot": [-3, 15.2, -2.85],
"rotation": [0, 0, 30],
"cubes": [
{"origin": [-8, 13.2, -2.85], "size": [5, 4, 0], "uv": [104, 2]}
]
},
{
"name": "ear_scruff_right",
"parent": "ear_right",
"pivot": [-3, 14.7, -2.85],
"rotation": [0, -12.5, -12.5],
"cubes": [
{"origin": [-5, 14.2, -2.85], "size": [2, 2, 0], "uv": [33, 54]}
]
},
{
"name": "ear2_right",
"parent": "ear_right",
"pivot": [-8, 15.2, -2.85],
"cubes": [
{"origin": [-13, 13.2, -2.85], "size": [5, 4, 0], "uv": [104, 8]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3.25, 16.75, -5.5],
"rotation": [-10, -15, 32.5],
"parent": "ears",
"pivot": [3, 15.2, -2.85],
"rotation": [0, 0, -30],
"cubes": [
{"origin": [1.75, 15.75, -5.5], "size": [4, 8, 0], "uv": [0, 18]}
{"origin": [3, 13.2, -2.85], "size": [5, 4, 0], "uv": [116, 2]}
]
},
{
"name": "tail",
"name": "ear_scruff_left",
"parent": "ear_left",
"pivot": [3, 14.7, -2.85],
"rotation": [0, 12.5, 12.5],
"cubes": [
{"origin": [3, 14.2, -2.85], "size": [2, 2, 0], "uv": [39, 54]}
]
},
{
"name": "ear2_left",
"parent": "ear_left",
"pivot": [8, 15.2, -2.85],
"cubes": [
{"origin": [8, 13.2, -2.85], "size": [5, 4, 0], "uv": [116, 8]}
]
},
{
"name": "tail1",
"parent": "torso",
"pivot": [0, 9.25, 6],
"rotation": [45, 0, 0],
"pivot": [0, 8.75, 5],
"cubes": [
{"origin": [-4, 6.25, 5], "size": [8, 7, 10], "uv": [0, 18]}
{"origin": [-2.5, 6.3, 4.5], "size": [5, 5, 4], "uv": [84, 55]}
]
},
{
"name": "leg_front_right",
"name": "tail2",
"parent": "tail1",
"pivot": [0, 8.8, 7],
"cubes": [
{"origin": [-3.5, 5.3, 6.5], "size": [7, 7, 6], "uv": [102, 51]}
]
},
{
"name": "locator_tail",
"parent": "tail2",
"pivot": [0, 8.8, 9.5],
"rotation": [-180, 0, 180],
"locators": {
"tail": [0, 8.8, 9.5]
}
},
{
"name": "tail3",
"parent": "tail2",
"pivot": [0, 8.8, 12],
"cubes": [
{"origin": [-2.5, 6.3, 10.5], "size": [5, 5, 5], "uv": [108, 31]}
]
},
{
"name": "tail4",
"parent": "tail3",
"pivot": [0, 8.8, 15.5],
"cubes": [
{"origin": [0, 7.3, 13.5], "size": [0, 3, 5], "uv": [52, 49]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail4",
"pivot": [0, 8.8, 18.5],
"rotation": [-180, 0, 180],
"locators": {
"tail_tip": [0, 8.8, 18.5]
}
},
{
"name": "ftorso2",
"parent": "waist",
"pivot": [0, 6.75, 1.25]
},
{
"name": "ftorso3",
"parent": "ftorso2",
"pivot": [0, 6.75, -1.25]
},
{
"name": "front_legs",
"parent": "ftorso3",
"pivot": [0, 6.25, -3.8]
},
{
"name": "front_leg_left",
"parent": "front_legs",
"pivot": [2.1, 6.25, -3.8],
"cubes": [
{"origin": [1.1, 3.75, -4.8], "size": [2, 4, 2], "inflate": 0.25, "uv": [28, 58]}
]
},
{
"name": "elbow_left",
"parent": "front_leg_left",
"pivot": [2.1, 3.75, -2.8],
"cubes": [
{"origin": [1.1, 0.75, -4.8], "size": [2, 3, 2], "inflate": 0.01, "uv": [8, 40]}
]
},
{
"name": "frontpaw_left",
"parent": "elbow_left",
"pivot": [2.1, 0.75, -4.05],
"cubes": [
{"origin": [1.1, 0.1, -5.3], "size": [2, 1, 2], "inflate": 0.1, "uv": [42, 57]},
{"origin": [1.6, 0.1, -4.8], "size": [1, 0, 1], "inflate": 0.11, "uv": [0, 4]}
]
},
{
"name": "locator_foot_secondary1",
"parent": "frontpaw_left",
"pivot": [2.1, 0.5, -4.3],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [2.1, 0.5, -4.3]
}
},
{
"name": "front_leg_right",
"parent": "front_legs",
"pivot": [-2.1, 6.25, -3.8],
"cubes": [
{"origin": [-3.1, 3.75, -4.8], "size": [2, 4, 2], "inflate": 0.25, "uv": [20, 58]}
]
},
{
"name": "elbow_right",
"parent": "front_leg_right",
"pivot": [-2.1, 3.75, -2.8],
"cubes": [
{"origin": [-3.1, 0.75, -4.8], "size": [2, 3, 2], "inflate": 0.01, "uv": [0, 40]}
]
},
{
"name": "frontpaw_right",
"parent": "elbow_right",
"pivot": [-2.1, 0.75, -4.05],
"cubes": [
{"origin": [-3.1, 0.1, -5.3], "size": [2, 1, 2], "inflate": 0.1, "uv": [36, 58]},
{"origin": [-2.6, 0.1, -4.8], "size": [1, 0, 1], "inflate": 0.11, "uv": [2, 5]}
]
},
{
"name": "locator_foot_primary",
"parent": "frontpaw_right",
"pivot": [-2.1, 0.5, -4.3],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-2.1, 0.5, -4.3]
}
},
{
"name": "back_legs",
"parent": "body",
"pivot": [-2.5, 7, -3.75],
"rotation": [2.5, 0, 0],
"pivot": [0, 7.2, 3.2]
},
{
"name": "back_leg_left",
"parent": "back_legs",
"pivot": [2.75, 7.2, 3.2],
"cubes": [
{"origin": [-4, 3.5, -5.25], "size": [3, 5, 3], "inflate": 0.01, "uv": [0, 56], "mirror": true}
{"origin": [1.75, 3.3, 1.7], "size": [2, 5, 3], "inflate": 0.25, "uv": [10, 56]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-2.5, 3.5, -2.25],
"rotation": [-22.5, 0, 0],
"name": "knee_left",
"parent": "back_leg_left",
"pivot": [2.75, 3.05, 2.7],
"rotation": [37.5, 0, 0],
"cubes": [
{"origin": [-4, 0.5, -5.25], "size": [3, 3, 3], "uv": [0, 50], "mirror": true}
{"origin": [1.75, 1.05, 2.7], "size": [2, 2, 2], "uv": [8, 50]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-2.5, 1, -3.75],
"rotation": [20, 0, 0],
"name": "ankle_left",
"parent": "knee_left",
"pivot": [2.75, 1.05, 4.7],
"rotation": [-65, 0, 0],
"cubes": [
{"origin": [-4, -0.75, -5.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [12, 59], "mirror": true}
{"origin": [1.75, -1.95, 2.7], "size": [2, 3, 2], "inflate": 0.01, "uv": [8, 45]}
]
},
{
"name": "leg_front_left",
"parent": "body",
"pivot": [2.5, 7, -3.75],
"rotation": [2.5, 0, 0],
"name": "backpaw_left",
"parent": "ankle_left",
"pivot": [2.75, -1.75, 3.55],
"rotation": [27.5, 0, 0],
"cubes": [
{"origin": [1, 3.5, -5.25], "size": [3, 5, 3], "inflate": 0.01, "uv": [0, 56]}
{"origin": [1.75, -2.4, 2.15], "size": [2, 1, 2], "inflate": 0.1, "uv": [42, 60]},
{"origin": [2.25, -2.4, 2.7], "size": [1, 0, 1], "inflate": 0.11, "uv": [2, 4]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [2.5, 3.5, -2.25],
"rotation": [-22.5, 0, 0],
"name": "locator_foot_secondary3",
"parent": "backpaw_left",
"pivot": [2.75, -2, 3.15],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary3": [2.75, -2, 3.15]
}
},
{
"name": "back_leg_right",
"parent": "back_legs",
"pivot": [-2.75, 7.2, 3.2],
"cubes": [
{"origin": [1, 0.5, -5.25], "size": [3, 3, 3], "uv": [0, 50]}
{"origin": [-3.75, 3.3, 1.7], "size": [2, 5, 3], "inflate": 0.25, "uv": [0, 56]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [2.5, 1, -3.75],
"rotation": [20, 0, 0],
"name": "knee_right",
"parent": "back_leg_right",
"pivot": [-2.75, 3.05, 2.7],
"rotation": [37.5, 0, 0],
"cubes": [
{"origin": [1, -0.75, -5.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [12, 59]}
{"origin": [-3.75, 1.05, 2.7], "size": [2, 2, 2], "uv": [0, 50], "mirror": true}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-2.5, 7.75, 3.5],
"rotation": [10, 0, 0],
"name": "ankle_right",
"parent": "knee_right",
"pivot": [-2.75, 1.05, 4.7],
"rotation": [-65, 0, 0],
"cubes": [
{"origin": [-4, 4.25, 1.5], "size": [3, 5, 4], "inflate": 0.01, "uv": [26, 0], "mirror": true}
{"origin": [-3.75, -1.95, 2.7], "size": [2, 3, 2], "inflate": 0.01, "uv": [0, 45]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-2.5, 4.25, 5],
"rotation": [-22.5, 0, 0],
"name": "backpaw_right",
"parent": "ankle_right",
"pivot": [-2.75, -1.75, 3.55],
"rotation": [27.5, 0, 0],
"cubes": [
{"origin": [-4, 0.5, 3], "size": [3, 4, 3], "uv": [0, 0], "mirror": true}
{"origin": [-3.75, -2.4, 2.15], "size": [2, 1, 2], "inflate": 0.1, "uv": [36, 61]},
{"origin": [-3.25, -2.4, 2.7], "size": [1, 0, 1], "inflate": 0.11, "uv": [0, 5]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-2.5, 1, 4.5],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [-4, -0.5, 2.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [0, 7], "mirror": true}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [2.5, 7.75, 3.5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1, 4.25, 1.5], "size": [3, 5, 4], "inflate": 0.01, "uv": [26, 0]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [2.5, 4.25, 5],
"rotation": [-22.5, 0, 0],
"cubes": [
{"origin": [1, 0.5, 3], "size": [3, 4, 3], "uv": [0, 0]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [2.5, 1, 4.5],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [1, -0.5, 2.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [0, 7]}
]
"name": "locator_foot_secondary2",
"parent": "backpaw_right",
"pivot": [-2.75, -2, 3.15],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary2": [-2.75, -2, 3.15]
}
}
]
}
@@ -4,9 +4,9 @@
{
"description": {
"identifier": "geometry.vaporeon",
"texture_width": 64,
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 6,
"visible_bounds_width": 7,
"visible_bounds_height": 3.5,
"visible_bounds_offset": [0, 1.25, 0]
},
@@ -15,246 +15,754 @@
"name": "vaporeon",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "vaporeon",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "vaporeon",
"pivot": [0, 22.4, 0],
"locators": {
"top": [0, 22.4, 0]
}
},
{
"name": "body",
"parent": "vaporeon",
"pivot": [0, 9.75, 0]
"pivot": [0, 12.15, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 9.4, -15],
"locators": {
"target": [0, 9.4, -15]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 12.4, 0],
"locators": {
"middle": [0, 12.4, 0]
}
},
{
"name": "waist",
"parent": "body",
"pivot": [0, 12.15, 5.75]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 9.75, 0],
"parent": "waist",
"pivot": [0, 12.15, 5.75],
"cubes": [
{"origin": [-3.5, 6.74997, -7], "size": [7, 6, 7], "uv": [0, 7]},
{"origin": [0, 12.74997, -6.98093], "size": [0, 2, 7], "uv": [0, 13]}
{"origin": [-3.5, 8.8, 2.5], "size": [7, 7, 6], "inflate": 0.01, "uv": [0, 14]},
{"origin": [0, 15.3, 2.5], "size": [0, 2, 6], "uv": [60, 45]}
]
},
{
"name": "torso2",
"parent": "torso",
"pivot": [0, 12.05, 2.75],
"cubes": [
{"origin": [-3, 9.3, -1.5], "size": [6, 6, 5], "uv": [0, 39]},
{"origin": [-0.5, 13.3, -1.5], "size": [1, 2, 5], "inflate": 0.01, "uv": [77, 56]},
{"origin": [0, 14.8, -1.5], "size": [0, 2, 5], "inflate": -0.01, "uv": [58, 38]}
]
},
{
"name": "torso3",
"parent": "torso2",
"pivot": [0, 12.3, -1],
"cubes": [
{"origin": [-3, 9.31, -6.5], "size": [6, 6, 6], "inflate": 0.01, "uv": [0, 27]},
{"origin": [0, 14.81, -4.5], "size": [0, 2, 4], "uv": [44, 35]},
{"origin": [-0.5, 13.31, -4.5], "size": [1, 2, 4], "inflate": 0.02, "uv": [86, 46]}
]
},
{
"name": "neck",
"parent": "torso3",
"pivot": [0, 11.8, -5.5],
"rotation": [47, 0, 0],
"cubes": [
{"origin": [-2.5, 10.8, -7.4], "size": [5, 6, 5], "uv": [28, 0]}
]
},
{
"name": "frill_main",
"parent": "neck",
"pivot": [0, 14.05, -4.5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [-3.5, 14.05, -8], "size": [7, 0, 7], "uv": [62, 8]}
]
},
{
"name": "frill_left",
"parent": "frill_main",
"pivot": [3.5, 14.05, -4.5],
"cubes": [
{"origin": [3.5, 14.05, -8], "size": [5, 0, 7], "uv": [77, 8]}
]
},
{
"name": "frill1_left",
"parent": "frill_left",
"pivot": [3.5, 14.05, -1],
"cubes": [
{"origin": [3.5, 14.05, -1], "size": [4, 0, 4], "uv": [80, 3]}
]
},
{
"name": "frill2_left",
"parent": "frill_left",
"pivot": [3.5, 14.05, -8],
"cubes": [
{"origin": [3.5, 14.05, -12], "size": [4, 0, 4], "uv": [80, 16]}
]
},
{
"name": "frill_right",
"parent": "frill_main",
"pivot": [-3.5, 14.05, -4.5],
"cubes": [
{"origin": [-8.5, 14.05, -8], "size": [5, 0, 7], "uv": [51, 8]}
]
},
{
"name": "frill1_right",
"parent": "frill_right",
"pivot": [-3.5, 14.05, -1],
"cubes": [
{"origin": [-7.5, 14.05, -1], "size": [4, 0, 4], "uv": [56, 3]}
]
},
{
"name": "frill2_right",
"parent": "frill_right",
"pivot": [-3.5, 14.05, -8],
"cubes": [
{"origin": [-7.5, 14.05, -12], "size": [4, 0, 4], "uv": [56, 16]}
]
},
{
"name": "frill_top",
"parent": "frill_main",
"pivot": [0, 14.05, -1],
"cubes": [
{"origin": [-3.5, 14.05, -1], "size": [7, 0, 5], "uv": [64, 2]}
]
},
{
"name": "frill_bottom",
"parent": "frill_main",
"pivot": [0, 14.05, -8],
"cubes": [
{"origin": [-3.5, 14.05, -13], "size": [7, 0, 5], "uv": [64, 16]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 11.49997, -6.48093],
"parent": "neck",
"pivot": [0, 14.45, -6.15]
},
{
"name": "head_ai",
"parent": "head",
"pivot": [0, 14.45, -6.15]
},
{
"name": "head_angle",
"parent": "head_ai",
"pivot": [0, 14.45, -6.15],
"rotation": [-47.5, 0, 0],
"cubes": [
{"origin": [-3.5, 9.99997, -12.5], "size": [7, 7, 7], "inflate": 0.01, "uv": [21, 20]},
{"origin": [-2.5, 9.99997, -13.5], "size": [5, 3, 1], "uv": [42, 22]},
{"origin": [-0.5, 11.74997, -13.51], "size": [1, 1, 0], "uv": [9, 2]},
{"origin": [0, 16.99997, -12.48093], "size": [0, 8, 6], "uv": [12, 41]},
{"origin": [-7, 6.47932, -6.52502], "size": [14, 13, 0], "pivot": [0, 12.97932, -6.52502], "rotation": [-15, 0, 0], "uv": [0, 34]}
{"origin": [-3.5, 13.9, -11], "size": [7, 7, 7], "uv": [0, 0]}
]
},
{
"name": "locator_face",
"parent": "head_angle",
"pivot": [0, 16.9, -11],
"locators": {
"face": [0, 16.9, -11]
}
},
{
"name": "locator_item_face",
"parent": "head_angle",
"pivot": [0, 16.9, -11],
"locators": {
"item_face": [0, 16.9, -11]
}
},
{
"name": "locator_mouth",
"parent": "head_angle",
"pivot": [0, 14.1, -11.6],
"locators": {
"mouth": [0, 14.1, -11.6],
"physical": [0, 14.1, -11.6],
"special": [0, 14.1, -11.6]
}
},
{
"name": "locator_head",
"parent": "head_angle",
"pivot": [0, 20.9, -10],
"locators": {
"head": [0, 20.9, -10]
}
},
{
"name": "item_hat",
"parent": "head_angle",
"pivot": [0, 20.9, -7.5],
"locators": {
"item_hat": [0, 20.9, -7.5]
}
},
{
"name": "muzzle",
"parent": "head_angle",
"pivot": [0, 13.8, -11.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-2, 13.8, -11.5], "size": [4, 2, 2], "uv": [43, 0]},
{"origin": [-0.5, 14.8, -11.5], "size": [1, 1, 1], "inflate": 0.01, "uv": [28, 1]}
]
},
{
"name": "locator_item",
"parent": "muzzle",
"pivot": [0, 14.2, -11.5],
"locators": {
"item": [0, 14.2, -11.5]
}
},
{
"name": "mouth",
"parent": "head",
"pivot": [0, 0, 0],
"parent": "muzzle",
"pivot": [0, 15.05, -11.5]
},
{
"name": "mouth_open_wide",
"parent": "mouth",
"pivot": [0, 14.8, -11.4],
"cubes": [
{"origin": [-1, 10.5, -13.41], "size": [2, 1, 0], "uv": [8, 0]}
{"origin": [-1.5, 14.3, -11.42], "size": [3, 1, 0], "uv": [47, 16]}
]
},
{
"name": "mouth_open_wide_tongue",
"parent": "mouth_open_wide",
"pivot": [0, 14.3, -11.4],
"cubes": [
{"origin": [-1.5, 13.8, -11.43], "size": [3, 1, 0], "uv": [47, 17], "mirror": true}
]
},
{
"name": "mouth_open_thin",
"parent": "mouth",
"pivot": [0, 14.8, -11.4],
"cubes": [
{"origin": [-1, 14.3, -11.42], "size": [2, 1, 0], "uv": [42, 16]}
]
},
{
"name": "mouth_open_thin_tongue",
"parent": "mouth_open_thin",
"pivot": [0, 14.3, -11.4],
"cubes": [
{"origin": [-1, 13.8, -11.43], "size": [2, 1, 0], "uv": [42, 17]}
]
},
{
"name": "mouth_open_happy",
"parent": "mouth",
"pivot": [0, 15.15, -11.4],
"cubes": [
{"origin": [-1.5, 14.3, -11.42], "size": [3, 1, 0], "uv": [48, 22]}
]
},
{
"name": "mouth_open_happy_tongue",
"parent": "mouth_open_happy",
"pivot": [0, 14.4, -11.4],
"cubes": [
{"origin": [-1, 13.9, -11.43], "size": [2, 1, 0], "uv": [48, 23]}
]
},
{
"name": "locator_jaw_upper",
"parent": "mouth",
"pivot": [0, 14.8, -11.5],
"locators": {
"jaw1": [0, 14.8, -11.5]
}
},
{
"name": "locator_jaw_lower",
"parent": "mouth",
"pivot": [0, 13.4, -11.5],
"locators": {
"jaw2": [0, 13.4, -11.5]
}
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 14.12178, -12.48093]
"parent": "head_angle",
"pivot": [-1, 16.65, -10.5]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.515, 14.25, -12.015],
"pivot": [-3.5, 16.9, -11]
},
{
"name": "eye_bottom_right",
"parent": "eye_right",
"pivot": [-3.5, 16.9, -11],
"cubes": [
{"origin": [-3.515, 13.25, -12.515], "size": [2, 2, 1], "uv": [0, 0], "mirror": true}
{"origin": [-3.5, 15.9, -11], "size": [1, 1, 1], "inflate": 0.01, "uv": [30, 19]}
]
},
{
"name": "eyelid_right",
"name": "eye_top_right",
"parent": "eye_right",
"pivot": [-2.415, 14.25, -11.915],
"pivot": [-3.5, 16.9, -11],
"cubes": [
{"origin": [-3.415, 13.25, -12.415], "size": [2, 2, 1], "inflate": 0.01, "uv": [15, 31]}
{"origin": [-3.5, 16.9, -11], "size": [1, 1, 2], "inflate": 0.015, "uv": [29, 21]},
{"origin": [-3.25, 16.9, -11], "size": [1, 1, 1], "inflate": 0.015, "uv": [33, 21]}
]
},
{
"name": "eye_emote_right",
"parent": "eye_right",
"pivot": [-2.5, 16.9, -11],
"cubes": [
{"origin": [-2.5, 15.89, -11.01], "size": [1, 1, 0], "uv": [43, 22], "mirror": true},
{"origin": [-2.25, 15.89, -11.01], "size": [1, 1, 0], "uv": [43, 23], "mirror": true}
]
},
{
"name": "eye_emote_right2",
"parent": "eye_right",
"pivot": [-2.25, 16.89, -10.91],
"cubes": [
{"origin": [-2.25, 16.89, -10.91], "size": [1, 1, 0], "uv": [43, 21], "mirror": true}
]
},
{
"name": "eyeshine_right",
"parent": "eye_right",
"pivot": [-2, 17.15, -10.5],
"cubes": [
{"origin": [-2.5, 16.65, -11.02], "size": [1, 1, 0], "uv": [41, 19]}
]
},
{
"name": "locator_eye_right",
"parent": "eyeshine_right",
"pivot": [-2, 17.15, -11],
"locators": {
"eye1": [-2, 17.15, -11]
}
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [2.515, 14.25, -12.015],
"pivot": [3.5, 16.9, -11]
},
{
"name": "eye_bottom_left",
"parent": "eye_left",
"pivot": [3.5, 16.9, -11],
"cubes": [
{"origin": [1.515, 13.25, -12.515], "size": [2, 2, 1], "uv": [0, 0]}
{"origin": [2.5, 15.9, -11], "size": [1, 1, 1], "inflate": 0.01, "uv": [36, 19]}
]
},
{
"name": "eye_top_left",
"parent": "eye_left",
"pivot": [3.5, 16.9, -11],
"cubes": [
{"origin": [2.5, 16.9, -11], "size": [1, 1, 2], "inflate": 0.015, "uv": [35, 21]},
{"origin": [2.25, 16.9, -11], "size": [1, 1, 1], "inflate": 0.015, "uv": [39, 21]}
]
},
{
"name": "eye_emote_left",
"parent": "eye_left",
"pivot": [2.5, 16.9, -11],
"cubes": [
{"origin": [1.5, 15.89, -11.01], "size": [1, 1, 0], "uv": [45, 22]},
{"origin": [1.25, 15.89, -11.01], "size": [1, 1, 0], "uv": [45, 23]}
]
},
{
"name": "eye_emote_left2",
"parent": "eye_left",
"pivot": [2.25, 16.89, -10.91],
"cubes": [
{"origin": [1.25, 16.89, -10.91], "size": [1, 1, 0], "uv": [45, 21]}
]
},
{
"name": "eyeshine_left",
"parent": "eye_left",
"pivot": [2, 17.15, -10.5],
"cubes": [
{"origin": [1.5, 16.65, -11.02], "size": [1, 1, 0], "uv": [44, 19]}
]
},
{
"name": "locator_eye_left",
"parent": "eyeshine_left",
"pivot": [2, 17.15, -11],
"locators": {
"eye2": [2, 17.15, -11]
}
},
{
"name": "eyelid_right",
"parent": "eyes",
"pivot": [-1.8, 16.9, -9.8],
"cubes": [
{"origin": [-3.4, 15.9, -10.9], "size": [2, 2, 1], "inflate": 0.01, "uv": [29, 15]}
]
},
{
"name": "eyelid_hurt_right",
"parent": "eyes",
"pivot": [-1.8, 17, -9.8],
"cubes": [
{"origin": [-2.9, 15.9, -10.9], "size": [2, 2, 0], "inflate": 0.01, "uv": [37, 13]},
{"origin": [-3.4, 15.9, -10.9], "size": [1, 2, 1], "inflate": 0.01, "uv": [29, 12]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.415, 14.25, -11.915],
"parent": "eyes",
"pivot": [1.8, 16.9, -9.8],
"cubes": [
{"origin": [1.415, 13.25, -12.415], "size": [2, 2, 1], "inflate": 0.01, "uv": [15, 31], "mirror": true}
{"origin": [1.4, 15.9, -10.9], "size": [2, 2, 1], "inflate": 0.01, "uv": [35, 15]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3.5, 13.99997, -9.48093],
"rotation": [0, 12.5, 0],
"name": "eyelid_hurt_left",
"parent": "eyes",
"pivot": [1.8, 17, -9.8],
"cubes": [
{"origin": [-12.5, 10.99997, -9.48093], "size": [9, 8, 0], "uv": [0, 22]}
{"origin": [0.9, 15.9, -10.9], "size": [2, 2, 0], "inflate": 0.01, "uv": [41, 13]},
{"origin": [2.4, 15.9, -10.9], "size": [1, 2, 1], "inflate": 0.01, "uv": [33, 12]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3.5, 13.99997, -9.48093],
"rotation": [0, -12.5, 0],
"parent": "head_angle",
"pivot": [3.5, 19.9, -8],
"cubes": [
{"origin": [3.5, 10.99997, -9.48093], "size": [9, 8, 0], "uv": [0, 22], "mirror": true}
{"origin": [3, 16.9, -8], "size": [7, 7, 0], "uv": [112, 2]}
]
},
{
"name": "hips",
"parent": "torso",
"pivot": [0, 9.74997, 0.01907],
"name": "ear_right",
"parent": "head_angle",
"pivot": [-3.5, 19.9, -8],
"cubes": [
{"origin": [-3.5, 6.74997, 0], "size": [7, 6, 7], "uv": [36, 51]},
{"origin": [0, 12.74997, 0.01907], "size": [0, 2, 7], "uv": [14, 13]}
{"origin": [-10, 16.9, -8], "size": [7, 7, 0], "uv": [96, 2]}
]
},
{
"name": "leg_back_right",
"parent": "hips",
"pivot": [-2.5, 8.99997, 4.75],
"rotation": [5, 0, 0],
"name": "fin",
"parent": "head_angle",
"pivot": [0, 19.9, -10.5],
"cubes": [
{"origin": [-4, 4.49997, 2.75], "size": [3, 6, 4], "inflate": 0.01, "uv": [0, 54], "mirror": true}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-2.5, 4.49997, 6.25],
"rotation": [-12.5, 0, 0],
"cubes": [
{"origin": [-4, 0.74997, 4.25], "size": [3, 4, 3], "uv": [14, 57], "mirror": true}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-2.5, 1.24997, 5.75],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [-4, -0.25003, 4], "size": [3, 2, 3], "inflate": 0.01, "uv": [52, 36], "mirror": true}
]
},
{
"name": "leg_back_left",
"parent": "hips",
"pivot": [2.5, 8.99997, 4.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1, 4.49997, 2.75], "size": [3, 6, 4], "inflate": 0.01, "uv": [0, 54]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [2.5, 4.49997, 6.25],
"rotation": [-12.5, 0, 0],
"cubes": [
{"origin": [1, 0.74997, 4.25], "size": [3, 4, 3], "uv": [14, 57]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [2.5, 1.24997, 5.75],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [1, -0.25003, 4], "size": [3, 2, 3], "inflate": 0.01, "uv": [52, 36]}
{"origin": [0, 19.9, -10.5], "size": [0, 10, 5], "uv": [115, 6]}
]
},
{
"name": "tail",
"parent": "hips",
"pivot": [0.07143, 9.67854, 6.98336],
"parent": "torso",
"pivot": [0, 14.05, 7.75],
"cubes": [
{"origin": [-2.5, 6.74997, 7], "size": [5, 6, 8], "uv": [28, 34]},
{"origin": [0, 12.74997, 7.01907], "size": [0, 2, 8], "uv": [0, 22]}
{"origin": [-2, 10.55, 7.5], "size": [4, 5, 3], "uv": [90, 56]},
{"origin": [0, 15.05, 7.5], "size": [0, 2, 3], "inflate": -0.01, "uv": [54, 36]},
{"origin": [-0.5, 13.55, 7.5], "size": [1, 2, 3], "inflate": 0.01, "uv": [74, 47]}
]
},
{
"name": "tail2",
"parent": "tail",
"pivot": [0, 8.99997, 15.01907],
"pivot": [0, 13.3, 9.5],
"cubes": [
{"origin": [-1.5, 7.74997, 14], "size": [3, 4, 8], "uv": [42, 2]},
{"origin": [0, 11.74997, 15.01907], "size": [0, 2, 7], "uv": [0, 25]}
{"origin": [-2.5, 9.8, 9.5], "size": [5, 6, 7], "uv": [104, 51]},
{"origin": [0, 15.3, 9.5], "size": [0, 2, 7], "uv": [44, 44]}
]
},
{
"name": "tail3",
"parent": "tail2",
"pivot": [0, 8.74997, 22.01907],
"pivot": [0, 12.3, 16.5],
"cubes": [
{"origin": [-1, 8.74997, 21], "size": [2, 2, 7], "uv": [46, 27]},
{"origin": [0, 10.74997, 22.01907], "size": [0, 2, 6], "uv": [51, 9]}
{"origin": [-2, 10.3, 15.5], "size": [4, 5, 7], "uv": [106, 39]},
{"origin": [-0.5, 13.3, 15.5], "size": [1, 2, 7], "inflate": 0.01, "uv": [76, 46]},
{"origin": [0, 14.8, 15.5], "size": [0, 2, 7], "uv": [44, 40]}
]
},
{
"name": "tailfin",
"name": "locator_tail",
"parent": "tail3",
"pivot": [0, 8.74997, 27.51907],
"pivot": [0, 12.8, 21],
"rotation": [-180, 0, 180],
"locators": {
"tail": [0, 12.8, 21]
}
},
{
"name": "tail4",
"parent": "tail3",
"pivot": [0, 12.3, 22.5],
"cubes": [
{"origin": [-5.5, 9.74997, 27.01907], "size": [11, 0, 10], "uv": [18, 0]}
{"origin": [-1.5, 11.8, 21.5], "size": [3, 3, 6], "uv": [93, 47]},
{"origin": [0, 14.3, 21.5], "size": [0, 2, 6], "uv": [60, 41]}
]
},
{
"name": "leg_front_right",
"name": "tail5",
"parent": "tail4",
"pivot": [0, 12.3, 27.5],
"cubes": [
{"origin": [-1.5, 12.3, 26.5], "size": [3, 2, 6], "inflate": 0.01, "uv": [95, 38]},
{"origin": [0, 13.8, 26.5], "size": [0, 2, 6], "uv": [44, 37]}
]
},
{
"name": "tail6",
"parent": "tail5",
"pivot": [0, 13.3, 32],
"cubes": [
{"origin": [-1.5, 13.3, 32], "size": [3, 0, 4], "inflate": -0.01, "uv": [118, 53]},
{"origin": [0, 13.3, 32], "size": [0, 1, 2], "uv": [123, 42]}
]
},
{
"name": "tailfin_right",
"parent": "tail6",
"pivot": [-0.5, 13.3, 33],
"cubes": [
{"origin": [-6.5, 13.3, 32], "size": [6, 0, 8], "uv": [92, 28]}
]
},
{
"name": "locator_tail_tip1",
"parent": "tailfin_right",
"pivot": [-6.5, 13.3, 40],
"rotation": [-180, 0, 180],
"locators": {
"tail_tip1": [-6.5, 13.3, 40]
}
},
{
"name": "tailfin_left",
"parent": "tail6",
"pivot": [0.5, 13.3, 33],
"cubes": [
{"origin": [0.5, 13.3, 32], "size": [6, 0, 8], "uv": [106, 28], "mirror": true}
]
},
{
"name": "locator_tail_tip2",
"parent": "tailfin_left",
"pivot": [6.5, 13.3, 40],
"rotation": [-180, 0, -180],
"locators": {
"tail_tip2": [6.5, 13.3, 40]
}
},
{
"name": "ftorso2",
"parent": "waist",
"pivot": [0, 12.05, 2.75]
},
{
"name": "ftorso3",
"parent": "ftorso2",
"pivot": [0, 12.3, -1]
},
{
"name": "frontlegs",
"parent": "ftorso3",
"pivot": [0, 11.2, -4.25]
},
{
"name": "frontleg_left",
"parent": "frontlegs",
"pivot": [2.5, 11.2, -4.25],
"cubes": [
{"origin": [1, 7.05, -5.75], "size": [3, 6, 3], "inflate": 0.02, "uv": [48, 55]}
]
},
{
"name": "elbow_left",
"parent": "frontleg_left",
"pivot": [2.5, 7.05, -2.75],
"cubes": [
{"origin": [1.5, 1.05, -4.75], "size": [2, 6, 2], "uv": [32, 27]}
]
},
{
"name": "frontpaw_left",
"parent": "elbow_left",
"pivot": [2.5, 1.05, -4],
"cubes": [
{"origin": [1.5, 0.3, -5.5], "size": [2, 1, 2], "inflate": 0.25, "uv": [66, 57]}
]
},
{
"name": "locator_foot_secondary1",
"parent": "frontpaw_left",
"pivot": [2.5, 0.8, -4.5],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary1": [2.5, 0.8, -4.5]
}
},
{
"name": "frontleg_right",
"parent": "frontlegs",
"pivot": [-2.5, 11.2, -4.25],
"cubes": [
{"origin": [-4, 7.05, -5.75], "size": [3, 6, 3], "inflate": 0.02, "uv": [36, 55]}
]
},
{
"name": "elbow_right",
"parent": "frontleg_right",
"pivot": [-2.5, 7.05, -2.75],
"cubes": [
{"origin": [-3.5, 1.05, -4.75], "size": [2, 6, 2], "uv": [24, 27]}
]
},
{
"name": "frontpaw_right",
"parent": "elbow_right",
"pivot": [-2.5, 1.05, -4],
"cubes": [
{"origin": [-3.5, 0.3, -5.5], "size": [2, 1, 2], "inflate": 0.25, "uv": [60, 58]}
]
},
{
"name": "locator_foot_primary",
"parent": "frontpaw_right",
"pivot": [-2.5, 0.8, -4.5],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-2.5, 0.8, -4.5]
}
},
{
"name": "back_legs",
"parent": "body",
"pivot": [-2.5, 9, -4.5],
"rotation": [7.5, 0, 0],
"pivot": [0, 12.15, 5.75]
},
{
"name": "back_leg_left",
"parent": "back_legs",
"pivot": [2.75, 12.15, 5.75],
"cubes": [
{"origin": [-4, 4.5, -6], "size": [3, 6, 3], "inflate": 0.01, "uv": [30, 11], "mirror": true}
{"origin": [0.75, 7.55, 3.25], "size": [4, 7, 5], "inflate": 0.01, "uv": [18, 52]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-2.5, 4.5, -3],
"rotation": [-22.5, 0, 0],
"name": "knee_left",
"parent": "back_leg_left",
"pivot": [3, 7.55, 3.25],
"rotation": [45, 0, 0],
"cubes": [
{"origin": [-4, 0.5, -6], "size": [3, 4, 3], "uv": [42, 14], "mirror": true}
{"origin": [1.75, 3.3, 3.5], "size": [2, 4, 3], "inflate": 0.1, "uv": [32, 43]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-2.5, 1, -4.5],
"rotation": [15, 0, 0],
"name": "ankle_left",
"parent": "knee_left",
"pivot": [2.75, 3.2, 6.35],
"rotation": [-57.5, 0, 0],
"cubes": [
{"origin": [-4, -0.75, -6.25], "size": [3, 2, 3], "inflate": 0.01, "uv": [52, 36], "mirror": true}
{"origin": [1.75, -2.8, 4.35], "size": [2, 6, 2], "uv": [32, 35]},
{"origin": [2.25, -1.3, 6.36], "size": [1, 2, 0], "uv": [48, 35]}
]
},
{
"name": "leg_front_left",
"parent": "body",
"pivot": [2.5, 9, -4.5],
"rotation": [7.5, 0, 0],
"name": "foot_left",
"parent": "ankle_left",
"pivot": [2.75, -3.05, 5.35],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [1, 4.5, -6], "size": [3, 6, 3], "inflate": 0.01, "uv": [30, 11]}
{"origin": [1.75, -3.55, 3.85], "size": [2, 1, 2], "inflate": 0.25, "uv": [66, 60]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [2.5, 4.5, -3],
"rotation": [-22.5, 0, 0],
"name": "locator_foot_secondary3",
"parent": "foot_left",
"pivot": [2.5, -3.1, 4.85],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary3": [2.5, -3.1, 4.85]
}
},
{
"name": "back_leg_right",
"parent": "back_legs",
"pivot": [-2.75, 12.15, 5.75],
"cubes": [
{"origin": [1, 0.5, -6], "size": [3, 4, 3], "uv": [42, 14]}
{"origin": [-4.75, 7.55, 3.25], "size": [4, 7, 5], "inflate": 0.01, "uv": [0, 52]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [2.5, 1, -4.5],
"rotation": [15, 0, 0],
"name": "knee_right",
"parent": "back_leg_right",
"pivot": [-3, 7.55, 3.25],
"rotation": [45, 0, 0],
"cubes": [
{"origin": [1, -0.75, -6.25], "size": [3, 2, 3], "inflate": 0.01, "uv": [52, 36]}
{"origin": [-3.75, 3.3, 3.5], "size": [2, 4, 3], "inflate": 0.1, "uv": [22, 43]}
]
},
{
"name": "ankle_right",
"parent": "knee_right",
"pivot": [-2.75, 3.2, 6.35],
"rotation": [-57.5, 0, 0],
"cubes": [
{"origin": [-3.75, -2.8, 4.35], "size": [2, 6, 2], "uv": [24, 35]},
{"origin": [-3.25, -1.3, 6.36], "size": [1, 2, 0], "uv": [44, 35]}
]
},
{
"name": "foot_right",
"parent": "ankle_right",
"pivot": [-2.75, -3.05, 5.35],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [-3.75, -3.55, 3.85], "size": [2, 1, 2], "inflate": 0.25, "uv": [60, 61]}
]
},
{
"name": "locator_foot_secondary2",
"parent": "foot_right",
"pivot": [-2.5, -3.1, 4.85],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary2": [-2.5, -3.1, 4.85]
}
}
]
}
@@ -4,232 +4,777 @@
{
"description": {
"identifier": "geometry.jolteon",
"texture_width": 64,
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
"visible_bounds_height": 3.5,
"visible_bounds_offset": [0, 1.25, 0]
},
"bones": [
{
"name": "jolteon",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "jolteon",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "jolteon",
"pivot": [0, 22.1, 0],
"locators": {
"top": [0, 22.1, 0]
}
},
{
"name": "body",
"parent": "jolteon",
"pivot": [0, 9.75, 0]
"pivot": [0, 12.85, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 9.1, -15],
"locators": {
"target": [0, 9.1, -15]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 13.1, 0],
"locators": {
"middle": [0, 13.1, 0]
}
},
{
"name": "waist",
"parent": "body",
"pivot": [0, 12.85, 5.75]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 9.75, 0],
"parent": "waist",
"pivot": [0, 12.85, 5.75],
"cubes": [
{"origin": [-3.5, 6.75, -7], "size": [7, 6, 14], "uv": [0, 0]}
{"origin": [-3.5, 9.5, 2.5], "size": [7, 7, 6], "inflate": 0.01, "uv": [0, 14]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 16.5, 7],
"rotation": [40, 0, 0],
"cubes": [
{"origin": [-3.5, 16.5, 7], "size": [7, 0, 8], "uv": [104, 39]}
]
},
{
"name": "locator_tail",
"parent": "tail",
"pivot": [0, 16.5, 10],
"rotation": [-180, 0, 180],
"locators": {
"tail": [0, 16.5, 10]
}
},
{
"name": "locator_tail_tip",
"parent": "tail",
"pivot": [0, 16.5, 15],
"rotation": [-180, 0, 180],
"locators": {
"tail_tip": [0, 16.5, 15]
}
},
{
"name": "tail2",
"parent": "torso",
"pivot": [0, 15.5, 8.5],
"rotation": [32.5, 0, 0],
"cubes": [
{"origin": [-3.5, 15.5, 8.5], "size": [7, 0, 5], "uv": [107, 32]},
{"origin": [3.5, 13.5, 6.5], "size": [0, 2, 4], "uv": [118, 24]},
{"origin": [-3.5, 13.5, 6.5], "size": [0, 2, 4], "uv": [118, 20]}
]
},
{
"name": "tail_left",
"parent": "torso",
"pivot": [3.5, 15.25, 7],
"rotation": [0, 35, 0],
"cubes": [
{"origin": [3.5, 13.25, 7], "size": [0, 6, 7], "uv": [112, 49]}
]
},
{
"name": "tail_right",
"parent": "torso",
"pivot": [-3.5, 15.25, 7],
"rotation": [0, -35, 0],
"cubes": [
{"origin": [-3.5, 13.25, 7], "size": [0, 6, 7], "uv": [96, 49]}
]
},
{
"name": "torso2",
"parent": "torso",
"pivot": [0, 12.75, 2.75],
"cubes": [
{"origin": [-3, 10, -1.5], "size": [6, 6, 5], "uv": [0, 40]}
]
},
{
"name": "torso3",
"parent": "torso2",
"pivot": [0, 13, -1],
"cubes": [
{"origin": [-3, 9.51, -6.5], "size": [6, 7, 6], "inflate": 0.01, "uv": [0, 27]}
]
},
{
"name": "neck",
"parent": "torso3",
"pivot": [0, 12.5, -5.5],
"rotation": [47, 0, 0],
"cubes": [
{"origin": [-2.5, 11.5, -7.4], "size": [5, 6, 5], "uv": [28, 0]}
]
},
{
"name": "frill_main",
"parent": "neck",
"pivot": [0, 15.75, -5.5],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [-3.5, 12.75, -9], "size": [7, 3, 7], "inflate": 0.01, "uv": [56, 0]}
]
},
{
"name": "frill_left",
"parent": "frill_main",
"pivot": [3.5, 15.75, -5.5],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [3.5, 15.75, -9], "size": [7, 0, 7], "uv": [85, 47]}
]
},
{
"name": "frill1_left",
"parent": "frill_left",
"pivot": [3.5, 15.75, -2],
"rotation": [-35, 0, 0],
"cubes": [
{"origin": [3.5, 15.75, -2], "size": [6, 0, 6], "uv": [72, 39]}
]
},
{
"name": "frill2_left",
"parent": "frill_left",
"pivot": [3.5, 15.75, -9],
"rotation": [30, 0, 0],
"cubes": [
{"origin": [3.5, 15.75, -13], "size": [6, 0, 4], "uv": [74, 33]}
]
},
{
"name": "frill_right",
"parent": "frill_main",
"pivot": [-3.5, 15.75, -5.5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-10.5, 15.75, -9], "size": [7, 0, 7], "uv": [69, 47]}
]
},
{
"name": "frill1_right",
"parent": "frill_right",
"pivot": [-3.5, 15.75, -2],
"rotation": [-35, 0, 0],
"cubes": [
{"origin": [-9.5, 15.75, -2], "size": [6, 0, 6], "uv": [58, 39]}
]
},
{
"name": "frill2_right",
"parent": "frill_right",
"pivot": [-3.5, 15.75, -9],
"rotation": [30, 0, 0],
"cubes": [
{"origin": [-9.5, 15.75, -13], "size": [6, 0, 4], "uv": [60, 33]}
]
},
{
"name": "frill_top",
"parent": "frill_main",
"pivot": [0, 15.75, -2],
"rotation": [-42.5, 0, 0],
"cubes": [
{"origin": [-4.5, 15.75, -2], "size": [9, 0, 11], "uv": [81, 34]},
{"origin": [-2, 13.75, -2], "size": [4, 2, 6], "inflate": -0.01, "uv": [60, 10]}
]
},
{
"name": "frill_bottom",
"parent": "frill_main",
"pivot": [0, 15.75, -9],
"rotation": [37.5, 0, 0],
"cubes": [
{"origin": [-3.5, 15.75, -16], "size": [7, 0, 7], "uv": [73, 56]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 11.75, -6.5],
"parent": "neck",
"pivot": [0, 15.15, -6.15]
},
{
"name": "head_ai",
"parent": "head",
"pivot": [0, 15.15, -6.15]
},
{
"name": "head_angle",
"parent": "head_ai",
"pivot": [0, 15.15, -6.15],
"rotation": [-47.5, 0, 0],
"cubes": [
{"origin": [-3.5, 10.75, -11], "size": [7, 6, 6], "inflate": 0.01, "uv": [19, 21]},
{"origin": [-3, 17.5, -8.75], "size": [6, 0, 5], "pivot": [0, 17.25, -6.25], "rotation": [20, 0, 0], "uv": [0, 27]},
{"origin": [-2, 11.75, -13], "size": [4, 2, 2], "uv": [50, 32]},
{"origin": [-0.5, 12.75, -13.01], "size": [1, 1, 0], "uv": [12, 62]}
{"origin": [-3.5, 14.6, -11], "size": [7, 7, 7], "uv": [0, 0]},
{"origin": [-2, 14.6, -11.01], "size": [4, 1, 0], "uv": [49, 5]}
]
},
{
"name": "item_hat",
"parent": "head_angle",
"pivot": [0, 21.6, -7.5],
"locators": {
"item_hat": [0, 21.6, -7.5]
}
},
{
"name": "locator_head",
"parent": "head_angle",
"pivot": [0, 21.6, -9.5],
"locators": {
"head": [0, 21.6, -9.5]
}
},
{
"name": "locator_mouth",
"parent": "head_angle",
"pivot": [0, 15.1, -11],
"locators": {
"mouth": [0, 15.1, -11],
"physical": [0, 13.8, -11.6],
"special": [0, 13.8, -11.6]
}
},
{
"name": "locator_item_face",
"parent": "head_angle",
"pivot": [0, 18.1, -11],
"locators": {
"item_face": [0, 18.1, -11]
}
},
{
"name": "locator_face",
"parent": "head_angle",
"pivot": [0, 18.1, -11],
"locators": {
"face": [0, 18.1, -11]
}
},
{
"name": "jaw",
"parent": "head",
"pivot": [0, 11.75, -11.05],
"parent": "head_angle",
"pivot": [0, 15.6, -10.5],
"cubes": [
{"origin": [-1.5, 10.75, -12.9], "size": [3, 1, 2], "uv": [51, 37]}
{"origin": [-2, 14.6, -12.25], "size": [4, 1, 2], "inflate": 0.01, "uv": [21, 0]}
]
},
{
"name": "locator_jaw_lower",
"parent": "jaw",
"pivot": [0, 15.6, -12.1],
"locators": {
"jaw2": [0, 15.6, -12.1]
}
},
{
"name": "locator_item",
"parent": "jaw",
"pivot": [0, 15.6, -12.25],
"locators": {
"item": [0, 15.6, -12.25]
}
},
{
"name": "muzzle",
"parent": "head_angle",
"pivot": [0, 15.1, -10.5],
"cubes": [
{"origin": [-2.5, 15.1, -12.5], "size": [5, 2, 2], "uv": [43, 0]},
{"origin": [-0.5, 16.1, -12.5], "size": [1, 1, 1], "inflate": 0.01, "uv": [22, 4]}
]
},
{
"name": "locator_jaw_upper",
"parent": "muzzle",
"pivot": [0, 15.1, -12.25],
"locators": {
"jaw1": [0, 15.1, -12.25]
}
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 14, -9]
"parent": "head_angle",
"pivot": [-1, 19.35, -10.5]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-3.015, 14.25, -9.515],
"pivot": [-3.5, 18.1, -11]
},
{
"name": "eye_bottom_right",
"parent": "eye_right",
"pivot": [-3.5, 18.1, -11],
"cubes": [
{"origin": [-3.515, 13.25, -11.015], "size": [1, 2, 3], "uv": [10, 56], "mirror": true}
{"origin": [-3.5, 17.1, -11], "size": [1, 1, 1], "inflate": 0.01, "uv": [30, 19]}
]
},
{
"name": "eyelid_right",
"name": "eye_top_right",
"parent": "eye_right",
"pivot": [-2.915, 14.25, -9.415],
"pivot": [-3.5, 18.1, -11],
"cubes": [
{"origin": [-3.415, 13.25, -10.915], "size": [1, 2, 3], "inflate": 0.01, "uv": [0, 56]}
{"origin": [-3.5, 18.1, -11], "size": [1, 1, 2], "inflate": 0.015, "uv": [29, 21]},
{"origin": [-3.25, 18.1, -11], "size": [1, 1, 1], "inflate": 0.015, "uv": [33, 21]}
]
},
{
"name": "eye_emote_right",
"parent": "eye_right",
"pivot": [-2.5, 18.1, -11],
"cubes": [
{"origin": [-2.5, 17.09, -11.01], "size": [1, 1, 0], "uv": [43, 22], "mirror": true},
{"origin": [-2.25, 17.09, -11.01], "size": [1, 1, 0], "uv": [43, 23], "mirror": true}
]
},
{
"name": "eye_emote_right2",
"parent": "eye_right",
"pivot": [-2.25, 18.09, -10.91],
"cubes": [
{"origin": [-2.25, 18.09, -10.91], "size": [1, 1, 0], "uv": [43, 21], "mirror": true}
]
},
{
"name": "eye_emote_right3",
"parent": "eye_right",
"pivot": [-3.5, 18.6, -10.01],
"cubes": [
{"origin": [-3.51, 17.6, -11], "size": [0, 2, 2], "uv": [42, 14]}
]
},
{
"name": "eyeshine_right",
"parent": "eye_right",
"pivot": [-2, 18.35, -10.5],
"cubes": [
{"origin": [-2.5, 17.85, -11.02], "size": [1, 1, 0], "uv": [41, 19]}
]
},
{
"name": "locator_eye_right",
"parent": "eyeshine_right",
"pivot": [-2, 18.35, -11],
"locators": {
"eye1": [-2, 18.35, -11]
}
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [3.015, 14.25, -9.515],
"pivot": [3.5, 18.1, -11]
},
{
"name": "eye_bottom_left",
"parent": "eye_left",
"pivot": [3.5, 18.1, -11],
"cubes": [
{"origin": [2.515, 13.25, -11.015], "size": [1, 2, 3], "uv": [10, 56]}
{"origin": [2.5, 17.1, -11], "size": [1, 1, 1], "inflate": 0.01, "uv": [36, 19]}
]
},
{
"name": "eye_top_left",
"parent": "eye_left",
"pivot": [3.5, 18.1, -11],
"cubes": [
{"origin": [2.5, 18.1, -11], "size": [1, 1, 2], "inflate": 0.015, "uv": [35, 21]},
{"origin": [2.25, 18.1, -11], "size": [1, 1, 1], "inflate": 0.015, "uv": [39, 21]}
]
},
{
"name": "eye_emote_left",
"parent": "eye_left",
"pivot": [2.5, 18.1, -11],
"cubes": [
{"origin": [1.5, 17.09, -11.01], "size": [1, 1, 0], "uv": [45, 22]},
{"origin": [1.25, 17.09, -11.01], "size": [1, 1, 0], "uv": [45, 23]}
]
},
{
"name": "eye_emote_left2",
"parent": "eye_left",
"pivot": [2.25, 18.09, -10.91],
"cubes": [
{"origin": [1.25, 18.09, -10.91], "size": [1, 1, 0], "uv": [45, 21]}
]
},
{
"name": "eye_emote_left3",
"parent": "eye_left",
"pivot": [3.5, 18.6, -10.01],
"cubes": [
{"origin": [3.51, 17.6, -11], "size": [0, 2, 2], "uv": [47, 14]}
]
},
{
"name": "eyeshine_left",
"parent": "eye_left",
"pivot": [2, 18.35, -10.5],
"cubes": [
{"origin": [1.5, 17.85, -11.02], "size": [1, 1, 0], "uv": [44, 19]}
]
},
{
"name": "locator_eye_left",
"parent": "eyeshine_left",
"pivot": [2, 18.35, -11],
"locators": {
"eye2": [2, 18.35, -11]
}
},
{
"name": "eyelid_right",
"parent": "eyes",
"pivot": [-1.8, 18.1, -9.8],
"cubes": [
{"origin": [-3.4, 17.1, -10.9], "size": [2, 2, 1], "inflate": 0.01, "uv": [29, 15]}
]
},
{
"name": "eyelid_hurt_right",
"parent": "eyes",
"pivot": [-1.8, 18.2, -9.8],
"cubes": [
{"origin": [-2.9, 17.1, -10.9], "size": [2, 2, 0], "inflate": 0.01, "uv": [37, 13]},
{"origin": [-3.4, 17.1, -10.9], "size": [1, 2, 1], "inflate": 0.01, "uv": [29, 12]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.915, 14.25, -9.415],
"parent": "eyes",
"pivot": [1.8, 18.1, -9.8],
"cubes": [
{"origin": [2.415, 13.25, -10.915], "size": [1, 2, 3], "inflate": 0.01, "uv": [0, 56], "mirror": true}
{"origin": [1.4, 17.1, -10.9], "size": [2, 2, 1], "inflate": 0.01, "uv": [35, 15]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3, 15.5, -7.5],
"rotation": [-55, -10, -7.5],
"name": "eyelid_hurt_left",
"parent": "eyes",
"pivot": [1.8, 18.2, -9.8],
"cubes": [
{"origin": [-3, 15.5, -10], "size": [0, 10, 5], "uv": [40, 28]}
{"origin": [0.9, 17.1, -10.9], "size": [2, 2, 0], "inflate": 0.01, "uv": [41, 13]},
{"origin": [2.4, 17.1, -10.9], "size": [1, 2, 1], "inflate": 0.01, "uv": [33, 12]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3, 15.5, -7.5],
"rotation": [-55, 10, 7.5],
"parent": "head_angle",
"pivot": [2.75, 20.55, -7.35],
"rotation": [0, 0, -47.5],
"cubes": [
{"origin": [3, 15.5, -10], "size": [0, 10, 5], "uv": [40, 28], "mirror": true}
{"origin": [2.75, 18.05, -7.35], "size": [5, 5, 0], "uv": [116, 10]}
]
},
{
"name": "ruff",
"parent": "torso",
"pivot": [0, 10.42959, -4.15284],
"name": "ear_scruff_left",
"parent": "ear_left",
"pivot": [2.75, 19.8, -7.35],
"rotation": [0, 12.5, 12.5],
"cubes": [
{"origin": [-4, 5.5, -7.5], "size": [8, 6, 0], "pivot": [0, 9.25, -7.5], "rotation": [5, 0, 0], "uv": [14, 47]},
{"origin": [-4.5, 13.25, -5.5], "size": [9, 0, 7], "pivot": [0, 13.25, -3], "rotation": [12.5, 0, 0], "uv": [0, 20]},
{"origin": [-5.25, 6.25, -7.5], "size": [0, 7, 8], "pivot": [-4.92101, 9.75, -2.78015], "rotation": [0, -17.5, 0], "uv": [0, 25]},
{"origin": [5.25, 6.25, -7.5], "size": [0, 7, 8], "pivot": [4.92101, 9.75, -2.78015], "rotation": [0, 17.5, 0], "uv": [19, 25]}
{"origin": [2.75, 19.3, -7.35], "size": [2, 2, 0], "uv": [44, 42]}
]
},
{
"name": "spikes",
"parent": "torso",
"pivot": [0, 12.75, 1],
"name": "ear2_right",
"parent": "ear_left",
"pivot": [7.75, 20.55, -7.35],
"cubes": [
{"origin": [-5, 13.5, 1], "size": [10, 0, 10], "pivot": [-0.5, 13.325, 4.25], "rotation": [12.5, 0, 0], "uv": [18, 0]},
{"origin": [-5.25, 6.575, 0.75], "size": [0, 7, 10], "pivot": [-4.65, 10.575, 6.25], "rotation": [0, -17.5, 0], "uv": [20, 30]},
{"origin": [5.25, 6.575, 0.75], "size": [0, 7, 10], "pivot": [4.65, 10.575, 6.25], "rotation": [0, 17.5, 0], "uv": [0, 30]}
{"origin": [7.75, 17.05, -7.35], "size": [9, 6, 0], "uv": [108, 2]}
]
},
{
"name": "leg_front_right",
"name": "ear_right",
"parent": "head_angle",
"pivot": [-2.75, 20.55, -7.35],
"rotation": [0, 0, 47.5],
"cubes": [
{"origin": [-7.75, 18.05, -7.35], "size": [5, 5, 0], "uv": [104, 10]}
]
},
{
"name": "ear_scruff_right",
"parent": "ear_right",
"pivot": [-2.75, 19.8, -7.35],
"rotation": [0, -12.5, -12.5],
"cubes": [
{"origin": [-4.75, 19.3, -7.35], "size": [2, 2, 0], "uv": [50, 42]}
]
},
{
"name": "ear2_left",
"parent": "ear_right",
"pivot": [-7.75, 20.55, -7.35],
"cubes": [
{"origin": [-16.75, 17.05, -7.35], "size": [9, 6, 0], "uv": [88, 2]}
]
},
{
"name": "hair",
"parent": "head_angle",
"pivot": [0, 21.6, -8],
"cubes": [
{"origin": [-3.5, 21.6, -6], "size": [7, 0, 3], "pivot": [0, 21.6, -6], "rotation": [35, 0, 0], "uv": [41, 50]},
{"origin": [-3.5, 21.6, -8], "size": [7, 0, 4], "pivot": [0, 21.6, -8], "rotation": [32.5, 0, 0], "uv": [56, 50]},
{"origin": [-3.5, 21.6, -4], "size": [7, 0, 2], "pivot": [0, 21.6, -4], "rotation": [32.5, 0, 0], "uv": [42, 46]},
{"origin": [3.5, 14.1, -8], "size": [0, 7, 4], "pivot": [3.5, 17.6, -7], "rotation": [-17.5, 32.5, -9.5], "uv": [84, 20]},
{"origin": [3.5, 14.6, -6], "size": [0, 6, 3], "pivot": [3.5, 17.6, -6], "rotation": [-17.5, 27.5, -8], "uv": [102, 23]},
{"origin": [-3.5, 14.6, -6], "size": [0, 6, 3], "pivot": [-3.5, 17.6, -6], "rotation": [-17.5, -27.5, 8], "uv": [94, 23]},
{"origin": [-3.5, 14.1, -8], "size": [0, 7, 4], "pivot": [-3.5, 17.6, -7], "rotation": [-17.5, -32.5, 9.5], "uv": [74, 20]}
]
},
{
"name": "ftorso2",
"parent": "waist",
"pivot": [0, 12.75, 2.75]
},
{
"name": "ftorso3",
"parent": "ftorso2",
"pivot": [0, 13, -1]
},
{
"name": "front_legs",
"parent": "ftorso3",
"pivot": [0, 11.9, -4.25]
},
{
"name": "front_leg_left",
"parent": "front_legs",
"pivot": [3, 11.9, -4.25],
"cubes": [
{"origin": [2, 7.75, -5.75], "size": [2, 6, 3], "inflate": 0.25, "uv": [46, 55]}
]
},
{
"name": "elbow_left",
"parent": "front_leg_left",
"pivot": [3, 7.75, -2.75],
"cubes": [
{"origin": [2, 0.85, -4.75], "size": [2, 7, 2], "inflate": 0.1, "uv": [32, 25]}
]
},
{
"name": "frontpaw_left",
"parent": "elbow_left",
"pivot": [3, 1, -4],
"cubes": [
{"origin": [2, 0.25, -5.5], "size": [2, 1, 2], "inflate": 0.25, "uv": [62, 57]},
{"origin": [2.5, 0.1, -4.75], "size": [1, 1, 1], "inflate": 0.11, "uv": [75, 59]}
]
},
{
"name": "locator_foot_secondary1",
"parent": "frontpaw_left",
"pivot": [3, 0.7, -4.5],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary1": [3, 0.7, -4.5]
}
},
{
"name": "front_leg_right",
"parent": "front_legs",
"pivot": [-3, 11.9, -4.25],
"cubes": [
{"origin": [-4, 7.75, -5.75], "size": [2, 6, 3], "inflate": 0.25, "uv": [36, 55]}
]
},
{
"name": "elbow_right",
"parent": "front_leg_right",
"pivot": [-3, 7.75, -2.75],
"cubes": [
{"origin": [-4, 0.85, -4.75], "size": [2, 7, 2], "inflate": 0.1, "uv": [24, 25]}
]
},
{
"name": "frontpaw_right",
"parent": "elbow_right",
"pivot": [-3, 1, -4],
"cubes": [
{"origin": [-4, 0.25, -5.5], "size": [2, 1, 2], "inflate": 0.25, "uv": [56, 58]},
{"origin": [-3.5, 0.1, -4.75], "size": [1, 1, 1], "inflate": 0.11, "uv": [71, 59]}
]
},
{
"name": "locator_foot_primary",
"parent": "frontpaw_right",
"pivot": [-3, 0.7, -4.5],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-3, 0.7, -4.5]
}
},
{
"name": "back_legs",
"parent": "body",
"pivot": [-2.5, 9, -4.5],
"rotation": [7.5, 0, 0],
"pivot": [0, 12.85, 5.75]
},
{
"name": "backleg_left",
"parent": "back_legs",
"pivot": [3.25, 12.85, 5.75],
"cubes": [
{"origin": [-4, 4.5, -6], "size": [3, 6, 3], "inflate": 0.01, "uv": [42, 10], "mirror": true}
{"origin": [1.25, 8.25, 3.25], "size": [4, 7, 5], "inflate": 0.01, "uv": [18, 52]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-2.5, 4.5, -3],
"rotation": [-22.5, 0, 0],
"name": "legfluff_left",
"parent": "backleg_left",
"pivot": [5.25, 9.75, 3.25],
"rotation": [0, 17.5, 0],
"cubes": [
{"origin": [-4, 0.5, -6], "size": [3, 4, 3], "uv": [42, 19], "mirror": true}
{"origin": [5.25, 8.75, 3.25], "size": [0, 2, 3], "uv": [110, 25]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-2.5, 1, -4.5],
"rotation": [15, 0, 0],
"name": "legfluff_left2",
"parent": "backleg_left",
"pivot": [5.25, 12.1, 6.25],
"rotation": [0, 20, 0],
"cubes": [
{"origin": [-4, -0.75, -6.25], "size": [3, 2, 3], "inflate": 0.01, "uv": [26, 59], "mirror": true}
{"origin": [5.25, 9.6, 6.25], "size": [0, 5, 4], "uv": [118, 45]}
]
},
{
"name": "leg_front_left",
"parent": "body",
"pivot": [2.5, 9, -4.5],
"rotation": [7.5, 0, 0],
"name": "knee_left",
"parent": "backleg_left",
"pivot": [3.5, 8.25, 3.25],
"rotation": [55, 0, 0],
"cubes": [
{"origin": [1, 4.5, -6], "size": [3, 6, 3], "inflate": 0.01, "uv": [42, 10]}
{"origin": [2.25, 3, 3.5], "size": [2, 5, 3], "inflate": 0.1, "uv": [32, 43]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [2.5, 4.5, -3],
"rotation": [-22.5, 0, 0],
"name": "ankle_left",
"parent": "knee_left",
"pivot": [3.25, 2.9, 6.35],
"rotation": [-65, 0, 0],
"cubes": [
{"origin": [1, 0.5, -6], "size": [3, 4, 3], "uv": [42, 19]}
{"origin": [2.25, -4.1, 4.35], "size": [2, 7, 2], "uv": [32, 34]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [2.5, 1, -4.5],
"rotation": [15, 0, 0],
"name": "foot_left",
"parent": "ankle_left",
"pivot": [3.25, -4.35, 5.35],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1, -0.75, -6.25], "size": [3, 2, 3], "inflate": 0.01, "uv": [26, 59]}
{"origin": [2.25, -4.85, 3.85], "size": [2, 1, 2], "inflate": 0.25, "uv": [62, 60]},
{"origin": [2.75, -5, 4.6], "size": [1, 1, 1], "inflate": 0.11, "uv": [75, 61]}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-2.5, 9, 4.75],
"rotation": [5, 0, 0],
"name": "locator_foot_secondary3",
"parent": "foot_left",
"pivot": [3.25, -4.4, 4.85],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary3": [3.25, -4.4, 4.85]
}
},
{
"name": "backleg_right",
"parent": "back_legs",
"pivot": [-3.25, 12.85, 5.75],
"cubes": [
{"origin": [-4, 4.5, 2.75], "size": [3, 6, 4], "inflate": 0.01, "uv": [50, 54], "mirror": true}
{"origin": [-5.25, 8.25, 3.25], "size": [4, 7, 5], "inflate": 0.01, "uv": [0, 52]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-2.5, 4.25, 6.25],
"rotation": [-12.5, 0, 0],
"name": "legfluff_right",
"parent": "backleg_right",
"pivot": [-5.25, 9.75, 3.25],
"rotation": [0, -17.5, 0],
"cubes": [
{"origin": [-4, 0.75, 4.25], "size": [3, 4, 3], "uv": [48, 0], "mirror": true}
{"origin": [-5.25, 8.75, 3.25], "size": [0, 2, 3], "uv": [110, 21]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-2.5, 1.25, 5.75],
"rotation": [7.5, 0, 0],
"name": "legfluff_right2",
"parent": "backleg_right",
"pivot": [-5.25, 12.1, 6.25],
"rotation": [0, -20, 0],
"cubes": [
{"origin": [-4, -0.25, 4], "size": [3, 2, 3], "inflate": 0.01, "uv": [38, 59], "mirror": true}
{"origin": [-5.25, 9.6, 6.25], "size": [0, 5, 4], "uv": [108, 45]}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [2.5, 9, 4.75],
"rotation": [5, 0, 0],
"name": "knee_right",
"parent": "backleg_right",
"pivot": [-3.5, 8.25, 3.25],
"rotation": [55, 0, 0],
"cubes": [
{"origin": [1, 4.5, 2.75], "size": [3, 6, 4], "inflate": 0.01, "uv": [50, 54]}
{"origin": [-4.25, 3, 3.5], "size": [2, 5, 3], "inflate": 0.1, "uv": [22, 43]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [2.5, 4.25, 6.25],
"rotation": [-12.5, 0, 0],
"name": "ankle_right",
"parent": "knee_right",
"pivot": [-3.25, 2.9, 6.35],
"rotation": [-65, 0, 0],
"cubes": [
{"origin": [1, 0.75, 4.25], "size": [3, 4, 3], "uv": [48, 0]}
{"origin": [-4.25, -4.1, 4.35], "size": [2, 7, 2], "uv": [24, 34]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [2.5, 1.25, 5.75],
"rotation": [7.5, 0, 0],
"name": "foot_right",
"parent": "ankle_right",
"pivot": [-3.25, -4.35, 5.35],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1, -0.25, 4], "size": [3, 2, 3], "inflate": 0.01, "uv": [38, 59]}
{"origin": [-4.25, -4.85, 3.85], "size": [2, 1, 2], "inflate": 0.25, "uv": [56, 61]},
{"origin": [-3.75, -5, 4.6], "size": [1, 1, 1], "inflate": 0.11, "uv": [71, 61]}
]
},
{
"name": "locator_foot_secondary2",
"parent": "foot_right",
"pivot": [-3.25, -4.4, 4.85],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary2": [-3.25, -4.4, 4.85]
}
}
]
}

Some files were not shown because too many files have changed in this diff Show More