forked from mirrors/cobblemon
Compare commits
62
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d11ef0411a | ||
|
|
c41b0cdca2 | ||
|
|
88f743ee48 | ||
|
|
15b9afacf8 | ||
|
|
babcf7430b | ||
|
|
3439ca2011 | ||
|
|
6539f3dea1 | ||
|
|
fcde1eb171 | ||
|
|
a30a5644df | ||
|
|
a5672a38b9 | ||
|
|
3b14ea319b | ||
|
|
a090c90831 | ||
|
|
5dcc9ba46d | ||
|
|
f8e4ea70df | ||
|
|
5dc1c749f3 | ||
|
|
3accfa29b7 | ||
|
|
1af1569f63 | ||
|
|
dbd2f5d340 | ||
|
|
86bf413f00 | ||
|
|
f13e7d03a1 | ||
|
|
4a025ac65e | ||
|
|
8a0c98c9ab | ||
|
|
36c5fe2419 | ||
|
|
0c79d102cf | ||
|
|
b14b25ae19 | ||
|
|
bd8f644b9a | ||
|
|
7c84cdb05d | ||
|
|
125975e25f | ||
|
|
baf766298a | ||
|
|
83580e7e8b | ||
|
|
90335ccb2d | ||
|
|
9679929694 | ||
|
|
fd6fb5db47 | ||
|
|
a80ada8590 | ||
|
|
5af96e75eb | ||
|
|
023a01befd | ||
|
|
cc2022ed59 | ||
|
|
298fdf45d5 | ||
|
|
1dab5b8c7c | ||
|
|
a2fef9f1be | ||
|
|
3d4df2c098 | ||
|
|
7557cab03d | ||
|
|
f1018b1da9 | ||
|
|
5af4e3bddb | ||
|
|
1f519cae50 | ||
|
|
91864b13d0 | ||
|
|
adc8e9921a | ||
|
|
5e5473acae | ||
|
|
3509944f1a | ||
|
|
8a5489f805 | ||
|
|
3b7d56ff45 | ||
|
|
50c567d264 | ||
|
|
d4964e41d3 | ||
|
|
41b1c169c3 | ||
|
|
49e2001004 | ||
|
|
66393f9293 | ||
|
|
7b3b6146a1 | ||
|
|
e1452244c2 | ||
|
|
5358414a0c | ||
|
|
d691373919 | ||
|
|
038f13e6fa | ||
|
|
dd288a3b0c |
@@ -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,11 +121,13 @@
|
||||
- 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.
|
||||
- Fixed an issue with newer versions of Fabric API where underground Pokémon were spawning in The End.
|
||||
- Fixed spawning not working well when you're at high points surrounded by lower altitude spawning areas, such as flying.
|
||||
- Fixed swapping held items with wild Pokémon under certain circumstances causing duplicate items
|
||||
|
||||
### Developer
|
||||
- A finished battle now has winners and losers set inside of `PokemonBattle` instead of them always being empty.
|
||||
@@ -65,6 +145,7 @@
|
||||
- Updated NPCEntity beam positioning to properly account for the baseScale property.
|
||||
- Updated NPCEntity pokeball throw positioning to properly account for the baseScale property.
|
||||
- Fixed `[Pokemon].copyFrom` error causing forms, IVs, and EVs to not be applied properly when using `[Pokemon].loadFromJSON` or `[Pokemon].loadFromNBT`
|
||||
- Added new item class, `WearableItem`. Instances of this class should have a corresponding 3D model. These models render when the items display context is `HEAD`.
|
||||
|
||||
### MoLang & Datapacks
|
||||
- The following usages for item predicates can now use item conditions like advancements do, you can learn about them in the [Minecraft wiki](https://minecraft.wiki/w/Advancement_definition#minecraft:filled_bucket)
|
||||
@@ -78,6 +159,8 @@
|
||||
- Added Molang functions for rendering items `render_item(item_id, locator_name)` and `clear_items()`.
|
||||
- Fixed location spawn filter components causing crashes
|
||||
- Added `pokemon` as an available Molang function for the `battleActor` functions.
|
||||
- Fixed `heldItem` property inside spawn files not working and causing crashes
|
||||
- Fixed `spawn_bedrock_particles` MoLang causing crashes when used in a server environment
|
||||
|
||||
## [1.6.1 (January 26th, 2025)](#1-6-1)
|
||||
|
||||
|
||||
@@ -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,27 @@
|
||||
|
||||
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.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.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 +40,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 +53,13 @@ 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;
|
||||
@Unique private float returnTimer = 0;
|
||||
@Unique private float rollAngleStart = 0;
|
||||
@Unique Minecraft minecraft = Minecraft.getInstance();
|
||||
@@ -96,7 +104,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();
|
||||
|
||||
@@ -109,14 +117,6 @@ public abstract class CameraMixin {
|
||||
|
||||
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()),
|
||||
@@ -125,13 +125,54 @@ public abstract class CameraMixin {
|
||||
);
|
||||
|
||||
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()) {
|
||||
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()));
|
||||
|
||||
float currEyeHeight = Mth.lerp(instance.getPartialTickTime(), eyeHeightOld, eyeHeight);
|
||||
Matrix3f orientation = controller.isActive() && controller.getOrientation() != null ? controller.getOrientation() : new Matrix3f();
|
||||
Vec3 rotatedEyeHeight = new Vec3(orientation.transform(new Vector3f(0f, currEyeHeight - (entity.getBbHeight() / 2), 0f)));
|
||||
|
||||
Vec3 position = locatorOffset.add(entityPos).add(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 +193,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.cobblemon.mod.common.Cobblemon;
|
||||
import com.cobblemon.mod.common.ModAPI;
|
||||
import com.cobblemon.mod.common.item.PokeBallItem;
|
||||
import com.cobblemon.mod.common.item.PokedexItem;
|
||||
import com.cobblemon.mod.common.item.WearableItem;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import net.minecraft.client.multiplayer.ClientLevel;
|
||||
import net.minecraft.client.renderer.ItemModelShaper;
|
||||
@@ -54,17 +55,18 @@ public abstract class ItemRendererMixin {
|
||||
)
|
||||
private void cobblemon$overrideItemModel(ItemStack stack, ItemDisplayContext renderMode, boolean leftHanded, PoseStack matrices, MultiBufferSource multiBufferSource, int light, int overlay, BakedModel model, CallbackInfo ci) {
|
||||
boolean shouldBe2d = renderMode == ItemDisplayContext.GUI || renderMode == ItemDisplayContext.FIXED;
|
||||
ResourceLocation resourceLocation = null;
|
||||
if (shouldBe2d) {
|
||||
ResourceLocation resourceLocation = null;
|
||||
if (stack.getItem() instanceof PokeBallItem pokeBallItem) resourceLocation = pokeBallItem.getPokeBall().getModel2d();
|
||||
else if (stack.getItem() instanceof PokedexItem pokedexItem) resourceLocation = pokedexItem.getType().getItemSpritePath();
|
||||
}
|
||||
if (renderMode != ItemDisplayContext.HEAD && stack.getItem() instanceof WearableItem wearableItem) resourceLocation = wearableItem.getModel2d();
|
||||
|
||||
if (resourceLocation != null) {
|
||||
BakedModel replacementModel = this.itemModelShaper.getModelManager().getModel(new ModelResourceLocation(resourceLocation, "inventory"));
|
||||
if (!cobblemon$isSameModel(model, replacementModel)) {
|
||||
ci.cancel();
|
||||
render(stack, renderMode, leftHanded, matrices, multiBufferSource, light, overlay, replacementModel);
|
||||
}
|
||||
if (resourceLocation != null) {
|
||||
BakedModel replacementModel = this.itemModelShaper.getModelManager().getModel(new ModelResourceLocation(resourceLocation, "inventory"));
|
||||
if (!cobblemon$isSameModel(model, replacementModel)) {
|
||||
ci.cancel();
|
||||
render(stack, renderMode, leftHanded, matrices, multiBufferSource, light, overlay, replacementModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,6 +80,7 @@ public abstract class ItemRendererMixin {
|
||||
boolean canOpenScreen = entity != null && ((entity.getOffhandItem() == stack && !(entity.getMainHandItem().getItem() instanceof PokedexItem)) || entity.getMainHandItem() == stack);
|
||||
resourceLocation = pokedexItem.getType().getItemModelPath(isScanModel ? "scanning" : (canOpenScreen ? null : "off"));
|
||||
}
|
||||
else if (stack.getItem() instanceof WearableItem wearableItem) resourceLocation = wearableItem.getModel3d();
|
||||
|
||||
if (resourceLocation != null) {
|
||||
BakedModel model = this.itemModelShaper.getModelManager().getModel(new ModelResourceLocation(resourceLocation, MODEL_PATH));
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -281,7 +281,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
// Evolution items
|
||||
@JvmField val LINK_CABLE = create("link_cable", LinkCableItem())
|
||||
@JvmField val DRAGON_SCALE = noSettingsItem("dragon_scale")
|
||||
@JvmField val KINGS_ROCK = noSettingsItem("kings_rock")
|
||||
@JvmField val METAL_COAT = noSettingsItem("metal_coat")
|
||||
@JvmField val UPGRADE = noSettingsItem("upgrade")
|
||||
@JvmField val DUBIOUS_DISC = noSettingsItem("dubious_disc")
|
||||
@@ -660,6 +659,19 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val WATER_STONE = noSettingsItem("water_stone")
|
||||
|
||||
val wearables = mutableListOf<WearableItem>()
|
||||
//Wearable items (these items should have a corresponding 3D model)
|
||||
@JvmField val BLACK_GLASSES = wearableItem("black_glasses")
|
||||
@JvmField val CHOICE_BAND = wearableItem("choice_band")
|
||||
@JvmField val CHOICE_SPECS = wearableItem("choice_specs")
|
||||
@JvmField val EXP_SHARE = wearableItem("exp_share")
|
||||
@JvmField val FOCUS_BAND = wearableItem("focus_band")
|
||||
@JvmField val KINGS_ROCK = wearableItem("kings_rock")
|
||||
@JvmField val MUSCLE_BAND = wearableItem("muscle_band")
|
||||
@JvmField val ROCKY_HELMET = wearableItem("rocky_helmet")
|
||||
@JvmField val SAFETY_GOGGLES = wearableItem("safety_goggles")
|
||||
@JvmField val WISE_GLASSES = wearableItem("wise_glasses")
|
||||
|
||||
// Held Items
|
||||
@JvmField
|
||||
val ABILITY_SHIELD = heldItem("ability_shield")
|
||||
@@ -676,8 +688,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val BLACK_BELT = heldItem("black_belt")
|
||||
@JvmField
|
||||
val BLACK_GLASSES = heldItem("black_glasses")
|
||||
@JvmField
|
||||
val BLACK_SLUDGE = heldItem("black_sludge")
|
||||
@JvmField
|
||||
val BLUNDER_POLICY = heldItem("blunder_policy")
|
||||
@@ -686,12 +696,8 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val CHARCOAL = heldItem("charcoal_stick", remappedName = "charcoal")
|
||||
@JvmField
|
||||
val CHOICE_BAND = heldItem("choice_band")
|
||||
@JvmField
|
||||
val CHOICE_SCARF = heldItem("choice_scarf")
|
||||
@JvmField
|
||||
val CHOICE_SPECS = heldItem("choice_specs")
|
||||
@JvmField
|
||||
val CLEANSE_TAG = heldItem("cleanse_tag")
|
||||
// @JvmField
|
||||
// val CLEAR_AMULET = heldItem("clear_amulet")
|
||||
@@ -712,8 +718,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val EVIOLITE = heldItem("eviolite")
|
||||
@JvmField
|
||||
val EXP_SHARE = heldItem("exp_share")
|
||||
@JvmField
|
||||
val EXPERT_BELT = heldItem("expert_belt")
|
||||
@JvmField
|
||||
val FAIRY_FEATHER = heldItem("fairy_feather")
|
||||
@@ -722,8 +726,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val FLOAT_STONE = heldItem("float_stone")
|
||||
@JvmField
|
||||
val FOCUS_BAND = heldItem("focus_band")
|
||||
@JvmField
|
||||
val FOCUS_SASH = heldItem("focus_sash")
|
||||
@JvmField
|
||||
val GRASSY_SEED = heldItem("grassy_seed")
|
||||
@@ -758,8 +760,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val MIRACLE_SEED = heldItem("miracle_seed")
|
||||
@JvmField
|
||||
val MUSCLE_BAND = heldItem("muscle_band")
|
||||
@JvmField
|
||||
val MYSTIC_WATER = heldItem("mystic_water")
|
||||
@JvmField
|
||||
val NEVER_MELT_ICE = heldItem("never_melt_ice")
|
||||
@@ -790,12 +790,8 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val RING_TARGET = heldItem("ring_target")
|
||||
@JvmField
|
||||
val ROCKY_HELMET = heldItem("rocky_helmet")
|
||||
@JvmField
|
||||
val ROOM_SERVICE = heldItem("room_service")
|
||||
@JvmField
|
||||
val SAFETY_GOGGLES = heldItem("safety_goggles")
|
||||
@JvmField
|
||||
val SCOPE_LENS = heldItem("scope_lens")
|
||||
@JvmField
|
||||
val SHARP_BEAK = heldItem("sharp_beak")
|
||||
@@ -832,8 +828,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField
|
||||
val WIDE_LENS = heldItem("wide_lens")
|
||||
@JvmField
|
||||
val WISE_GLASSES = heldItem("wise_glasses")
|
||||
@JvmField
|
||||
val ZOOM_LENS = heldItem("zoom_lens")
|
||||
@JvmField
|
||||
val MENTAL_HERB = compostableHeldItem("mental_herb", null, 1F)
|
||||
@@ -1263,6 +1257,16 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
return item
|
||||
}
|
||||
|
||||
private fun wearableItem(name: String, heldItemRemappedName: String? = null): CobblemonItem = create(
|
||||
name,
|
||||
WearableItem(name).also {
|
||||
wearables.add(it)
|
||||
if (heldItemRemappedName != null) {
|
||||
CobblemonHeldItemManager.registerRemap(it, heldItemRemappedName)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
private fun heldItem(name: String, remappedName: String? = null): CobblemonItem = create(
|
||||
name,
|
||||
CobblemonItem(Item.Properties()).also {
|
||||
|
||||
@@ -21,4 +21,5 @@ interface PokemonSideDelegate : EntitySideDelegate<PokemonEntity> {
|
||||
fun updatePostDeath() {}
|
||||
fun handleStatus(status: Byte) {}
|
||||
fun spawnShinyParticle(player: Player) {}
|
||||
fun positionRider(passenger: Entity, positionUpdater: MoveFunction)
|
||||
}
|
||||
@@ -42,8 +42,6 @@ import com.cobblemon.mod.common.api.text.text
|
||||
import com.cobblemon.mod.common.battles.BattleRegistry
|
||||
import com.cobblemon.mod.common.battles.actor.PlayerBattleActor
|
||||
import com.cobblemon.mod.common.battles.actor.PokemonBattleActor
|
||||
import com.cobblemon.mod.common.client.particle.BedrockParticleOptionsRepository
|
||||
import com.cobblemon.mod.common.client.particle.ParticleStorm
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.WaveFunctions
|
||||
import com.cobblemon.mod.common.entity.PosableEntity
|
||||
import com.cobblemon.mod.common.entity.npc.NPCBattleActor
|
||||
@@ -63,7 +61,6 @@ import com.cobblemon.mod.common.pokemon.evolution.variants.LevelUpEvolution
|
||||
import com.cobblemon.mod.common.pokemon.evolution.variants.TradeEvolution
|
||||
import com.cobblemon.mod.common.util.*
|
||||
import com.mojang.datafixers.util.Either
|
||||
import net.minecraft.client.multiplayer.ClientLevel
|
||||
import net.minecraft.commands.arguments.EntityAnchorArgument
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Holder
|
||||
@@ -289,16 +286,11 @@ object MoLangFunctions {
|
||||
} as? ServerPlayer
|
||||
val pos = Vec3(x, y, z)
|
||||
|
||||
if (world !is ClientLevel) {
|
||||
val packet = SpawnSnowstormParticlePacket(particle, pos)
|
||||
if (player != null) {
|
||||
packet.sendToPlayer(player)
|
||||
} else {
|
||||
packet.sendToPlayersAround(x, y, z, 64.0, world.dimension())
|
||||
}
|
||||
val packet = SpawnSnowstormParticlePacket(particle, pos)
|
||||
if (player != null) {
|
||||
packet.sendToPlayer(player)
|
||||
} else {
|
||||
val effect = BedrockParticleOptionsRepository.getEffect(particle) ?: return@put DoubleValue.ZERO
|
||||
ParticleStorm.createAtPosition(world, effect, pos).spawn()
|
||||
packet.sendToPlayersAround(x, y, z, 64.0, world.dimension())
|
||||
}
|
||||
}
|
||||
map.put("get_entities_around") { params ->
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+32
-43
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
+25
-32
@@ -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
|
||||
|
||||
+2
-3
@@ -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))
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+28
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -98,13 +98,13 @@ class CobblemonConfigIntVariable(
|
||||
override fun getConfigValueAsString(): String = (config.getter.call(parent.parent.clonedConfig) as Int?).toString()
|
||||
|
||||
init {
|
||||
editBox.setFilter { value -> value.toIntOrNull() != null || value.isBlank() }
|
||||
editBox.setFilter { value -> value.toIntOrNull() != null || value.isBlank() || value == "-" }
|
||||
editBox.setResponder { value ->
|
||||
if (value.isBlank()) {
|
||||
return@setResponder
|
||||
}
|
||||
|
||||
val intValue = value.toInt()
|
||||
val intValue = value.toIntOrNull() ?: return@setResponder
|
||||
setConfigValue(intValue, false)
|
||||
|
||||
if (intConstraintAnnotation != null) {
|
||||
@@ -129,7 +129,7 @@ class CobblemonConfigFloatVariable(
|
||||
override fun getConfigValueAsString(): String = (config.getter.call(parent.parent.clonedConfig) as Float?).toString()
|
||||
|
||||
init {
|
||||
editBox.setFilter { value -> value.toFloatOrNull() != null || value.isBlank() }
|
||||
editBox.setFilter { value -> value.toFloatOrNull() != null || value.isBlank() || value == "." || value == "-" }
|
||||
editBox.setResponder { value ->
|
||||
if (value.toFloatOrNull() != null) {
|
||||
setConfigValue(value.toFloat(), false)
|
||||
@@ -145,7 +145,7 @@ class CobblemonConfigDoubleVariable(
|
||||
override fun getConfigValueAsString(): String = (config.getter.call(parent.parent.clonedConfig) as Double?).toString()
|
||||
|
||||
init {
|
||||
editBox.setFilter { value -> value.toDoubleOrNull() != null || value.isBlank() }
|
||||
editBox.setFilter { value -> value.toDoubleOrNull() != null || value.isBlank() || value == "." || value == "-" }
|
||||
editBox.setResponder { value ->
|
||||
if (value.toDoubleOrNull() != null) {
|
||||
setConfigValue(value.toDouble(), false)
|
||||
|
||||
@@ -125,6 +125,7 @@ class Summary private constructor(party: Collection<Pokemon?>, private val edita
|
||||
private lateinit var markingsWidget: MarkingsWidget
|
||||
private val summaryTabs = mutableListOf<SummaryTab>()
|
||||
private var showCosmeticItem = false
|
||||
private lateinit var heldItemVisibilityButton: SummaryButton
|
||||
private var mainScreenIndex = INFO
|
||||
var sideScreenIndex = PARTY
|
||||
private val party = ArrayList(party)
|
||||
@@ -181,7 +182,7 @@ class Summary private constructor(party: Collection<Pokemon?>, private val edita
|
||||
)
|
||||
|
||||
//Item Visibility Button
|
||||
val HeldItemVisibilityButton = SummaryButton(
|
||||
heldItemVisibilityButton = SummaryButton(
|
||||
buttonX = x + 3F,
|
||||
buttonY = y + 104F,
|
||||
buttonWidth = 32,
|
||||
@@ -191,7 +192,7 @@ class Summary private constructor(party: Collection<Pokemon?>, private val edita
|
||||
activeResource = itemHiddenResource,
|
||||
clickAction = {
|
||||
selectedPokemon.heldItemVisible = !selectedPokemon.heldItemVisible
|
||||
(it as SummaryButton).buttonActive = !selectedPokemon.heldItemVisible
|
||||
heldItemVisibilityButton.buttonActive = !selectedPokemon.heldItemVisible
|
||||
modelWidget.heldItem = if (selectedPokemon.heldItemVisible) selectedPokemon.heldItem else null
|
||||
// Send item visibility update to server
|
||||
sendToServer(SetItemHiddenPacket(selectedPokemon.uuid, selectedPokemon.heldItemVisible))
|
||||
@@ -199,8 +200,8 @@ class Summary private constructor(party: Collection<Pokemon?>, private val edita
|
||||
renderRequirement = { !selectedPokemon.heldItemNoCopy().isEmpty && !showCosmeticItem },
|
||||
clickRequirement = { !selectedPokemon.heldItemNoCopy().isEmpty && !showCosmeticItem }
|
||||
)
|
||||
|
||||
addRenderableWidget(HeldItemVisibilityButton)
|
||||
heldItemVisibilityButton.buttonActive = !selectedPokemon.heldItemVisible
|
||||
addRenderableWidget(heldItemVisibilityButton)
|
||||
|
||||
// Held/Cosmetic Item Button
|
||||
addRenderableWidget(
|
||||
@@ -331,6 +332,7 @@ class Summary private constructor(party: Collection<Pokemon?>, private val edita
|
||||
if (::modelWidget.isInitialized) {
|
||||
modelWidget.pokemon = selectedPokemon.asRenderablePokemon()
|
||||
modelWidget.heldItem = if (selectedPokemon.heldItemVisible) selectedPokemon.heldItem else null
|
||||
heldItemVisibilityButton.buttonActive = !selectedPokemon.heldItemVisible
|
||||
}
|
||||
|
||||
if (::nicknameEntryWidget.isInitialized) nicknameEntryWidget.setSelectedPokemon(selectedPokemon)
|
||||
|
||||
+3
-3
@@ -18,7 +18,6 @@ import com.cobblemon.mod.common.util.math.fromEulerXYZDegrees
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import org.joml.Quaternionf
|
||||
import org.joml.Vector3f
|
||||
|
||||
@@ -114,12 +113,13 @@ class ModelWidget(
|
||||
)
|
||||
|
||||
heldItemRenderer.renderOnModel(
|
||||
state.currentModel!!,
|
||||
heldItem?: ItemStack.EMPTY,
|
||||
state.currentModel!!,
|
||||
state,
|
||||
matrices,
|
||||
context.bufferSource(),
|
||||
Vec3(0.0,-90.0,-90.0)
|
||||
light = 0xF000F0,
|
||||
true
|
||||
)
|
||||
|
||||
matrices.popPose()
|
||||
|
||||
+14
-7
@@ -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)
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+67
-106
@@ -11,9 +11,12 @@ package com.cobblemon.mod.common.client.render.item
|
||||
import com.cobblemon.mod.common.api.tags.CobblemonItemTags
|
||||
import com.cobblemon.mod.common.api.tags.CobblemonItemTags.WEARABLE_FACE_ITEMS
|
||||
import com.cobblemon.mod.common.api.tags.CobblemonItemTags.WEARABLE_HAT_ITEMS
|
||||
import com.cobblemon.mod.common.client.render.MatrixWrapper
|
||||
import com.cobblemon.mod.common.client.entity.NPCClientDelegate
|
||||
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
|
||||
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.PosableState
|
||||
import com.mojang.blaze3d.systems.RenderSystem
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import com.mojang.math.Axis
|
||||
import net.minecraft.client.Minecraft
|
||||
@@ -24,7 +27,7 @@ import net.minecraft.client.renderer.texture.OverlayTexture
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.ItemDisplayContext
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import org.joml.Vector3f
|
||||
|
||||
class HeldItemRenderer {
|
||||
private val itemRenderer: ItemRenderer = Minecraft.getInstance().itemRenderer
|
||||
@@ -34,133 +37,91 @@ class HeldItemRenderer {
|
||||
const val ITEM_FACE = "item_face"
|
||||
const val ITEM_HAT = "item_hat"
|
||||
const val ITEM = "item"
|
||||
}
|
||||
|
||||
fun render(
|
||||
entity: LivingEntity?,
|
||||
model: PosableModel,
|
||||
item: ItemStack,
|
||||
locators: Map<String, MatrixWrapper>,
|
||||
poseStack: PoseStack,
|
||||
buffer: MultiBufferSource,
|
||||
light: Int,
|
||||
seed: Int,
|
||||
rotation: Vec3
|
||||
) {
|
||||
if (item.isEmpty) return
|
||||
displayContext = ItemDisplayContext.FIXED
|
||||
|
||||
poseStack.pushPose()
|
||||
when {
|
||||
//item_face locator
|
||||
(locators.containsKey(ITEM_FACE) && item.`is`(WEARABLE_FACE_ITEMS)) -> {
|
||||
displayContext = model.getLocatorDisplayContext(ITEM_FACE) ?: ItemDisplayContext.HEAD
|
||||
poseStack.mulPose(locators[ITEM_FACE]!!.matrix)
|
||||
poseStack.translate(0f, 0f, .28f)
|
||||
poseStack.scale(0.7f, 0.7f, 0.7f)
|
||||
}
|
||||
//item_hat locator
|
||||
(locators.containsKey(ITEM_HAT) && item.`is`(WEARABLE_HAT_ITEMS)) -> {
|
||||
displayContext = model.getLocatorDisplayContext(ITEM_HAT) ?: ItemDisplayContext.HEAD
|
||||
poseStack.mulPose(locators[ITEM_HAT]!!.matrix)
|
||||
poseStack.translate(0f, -0.26f, 0f)
|
||||
poseStack.scale(.68f, .68f, .68f)
|
||||
}
|
||||
//item locator
|
||||
(locators.containsKey(ITEM)) -> {
|
||||
displayContext = model.getLocatorDisplayContext(ITEM) ?: ItemDisplayContext.FIXED
|
||||
poseStack.mulPose(locators[ITEM]!!.matrix)
|
||||
applyContextTransformation(poseStack, rotation)
|
||||
}
|
||||
// Don't render any item
|
||||
else -> {
|
||||
poseStack.popPose()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
itemRenderer.renderStatic(entity, item, displayContext, (displayContext==ItemDisplayContext.THIRD_PERSON_LEFT_HAND), poseStack, buffer, null, light, OverlayTexture.NO_OVERLAY, seed)
|
||||
poseStack.popPose()
|
||||
}
|
||||
|
||||
private fun renderAnimationItem(
|
||||
model: PosableModel,
|
||||
state: PosableState,
|
||||
locators: Map<String, MatrixWrapper>,
|
||||
poseStack: PoseStack,
|
||||
buffer: MultiBufferSource,
|
||||
light: Int,
|
||||
entity: LivingEntity?,
|
||||
rotation: Vec3
|
||||
) {
|
||||
state.itemRenderingLocations.forEach { (locatorName, item) ->
|
||||
poseStack.pushPose()
|
||||
if (locators.containsKey(locatorName)) {
|
||||
displayContext = model.getLocatorDisplayContext(locatorName)?: ItemDisplayContext.FIXED
|
||||
poseStack.mulPose(locators[locatorName]!!.matrix)
|
||||
applyContextTransformation(poseStack, rotation)
|
||||
}
|
||||
itemRenderer.renderStatic(entity, item, displayContext, (displayContext==ItemDisplayContext.THIRD_PERSON_LEFT_HAND), poseStack, buffer, null, light, OverlayTexture.NO_OVERLAY, 0)
|
||||
poseStack.popPose()
|
||||
private fun PoseStack.setOriginAndScale(x:Float,y:Float,z:Float,scale:Float=1f) {
|
||||
this.translate(x*.0625*scale, y*.0625*scale, z*.0625*scale)
|
||||
this.scale(scale, scale, scale)
|
||||
}
|
||||
}
|
||||
|
||||
fun renderOnModel(
|
||||
model: PosableModel,
|
||||
item: ItemStack,
|
||||
model: PosableModel,
|
||||
state: PosableState,
|
||||
poseStack: PoseStack,
|
||||
buffer: MultiBufferSource,
|
||||
rotation: Vec3 = Vec3(0.0,0.0,0.0),
|
||||
light: Int = LightTexture.pack(11, 7),
|
||||
frontLight: Boolean = false,
|
||||
entity: LivingEntity? = null
|
||||
) {
|
||||
val locators: Map<String, MatrixWrapper> = state.locatorStates
|
||||
if (state.itemRenderingLocations.isNotEmpty()) {
|
||||
renderAnimationItem(model, state, locators, poseStack, buffer, light, null, rotation)
|
||||
}
|
||||
else if (!item.`is`(CobblemonItemTags.HIDDEN_ITEMS)) {
|
||||
render(null, model, item, locators, poseStack, buffer, light, 0, rotation)
|
||||
}
|
||||
if (!item.`is`(CobblemonItemTags.HIDDEN_ITEMS)) renderAtLocator(item, model, state, entity, poseStack, buffer, light, 0, frontLight)
|
||||
state.animationItems.forEach { (targetLocator, item) -> renderAtLocator(item, model, state, entity, poseStack, buffer, light, 0, frontLight, targetLocator) }
|
||||
}
|
||||
|
||||
fun renderOnEntity(
|
||||
entity: LivingEntity,
|
||||
private fun renderAtLocator(
|
||||
item: ItemStack,
|
||||
model: PosableModel,
|
||||
state: PosableState,
|
||||
entity: LivingEntity?,
|
||||
poseStack: PoseStack,
|
||||
buffer: MultiBufferSource,
|
||||
light: Int,
|
||||
rotation: Vec3 = Vec3(0.0,0.0,0.0)
|
||||
seed: Int,
|
||||
frontLight: Boolean = false,
|
||||
targetLocator: String =
|
||||
if (item.`is`(WEARABLE_FACE_ITEMS) && state.locatorStates.containsKey(ITEM_FACE)) ITEM_FACE
|
||||
else if (item.`is`(WEARABLE_HAT_ITEMS) && state.locatorStates.containsKey(ITEM_HAT)) ITEM_HAT
|
||||
else ITEM
|
||||
) {
|
||||
val locators: Map<String, MatrixWrapper> = state.locatorStates
|
||||
if (state.itemRenderingLocations.isNotEmpty()) {
|
||||
renderAnimationItem(model, state, locators, poseStack, buffer, light, entity, rotation)
|
||||
}
|
||||
else {
|
||||
render(entity, model, item, locators, poseStack, buffer, light, 0, rotation)
|
||||
}
|
||||
}
|
||||
if (item.isEmpty) return
|
||||
|
||||
private fun applyContextTransformation(poseStack: PoseStack, rotation: Vec3) {
|
||||
when (displayContext) {
|
||||
ItemDisplayContext.FIXED -> {
|
||||
poseStack.mulPose(Axis.XP.rotationDegrees(90.0f))
|
||||
poseStack.scale(.5f, .5f, .5f )
|
||||
poseStack.translate(0f, 0.01666f, 0f)
|
||||
if (state.locatorStates.containsKey(targetLocator)) {
|
||||
poseStack.pushPose()
|
||||
RenderSystem.applyModelViewMatrix()
|
||||
|
||||
displayContext = model.getLocatorDisplayContext(targetLocator)?:
|
||||
if ((item.`is`(WEARABLE_FACE_ITEMS) && targetLocator==ITEM_FACE) || (item.`is`(WEARABLE_HAT_ITEMS) && targetLocator== ITEM_HAT)) ItemDisplayContext.HEAD
|
||||
else ItemDisplayContext.FIXED
|
||||
|
||||
poseStack.mulPose(state.locatorStates[targetLocator]!!.matrix)
|
||||
when (displayContext) {
|
||||
ItemDisplayContext.FIXED -> {
|
||||
poseStack.setOriginAndScale(0f,.5f,0f, .5f)
|
||||
poseStack.mulPose(Axis.XP.rotationDegrees(90.0f))
|
||||
}
|
||||
ItemDisplayContext.THIRD_PERSON_RIGHT_HAND, ItemDisplayContext.THIRD_PERSON_LEFT_HAND -> {
|
||||
//For Minecraft player models
|
||||
if (state is NPCClientDelegate) {
|
||||
poseStack.mulPose(Axis.XP.rotationDegrees(-90.0F))
|
||||
}
|
||||
//for T-Posing Models
|
||||
else if (state is PokemonClientDelegate || state is FloatingState) {
|
||||
poseStack.mulPose(Axis.YP.rotationDegrees(-90.0F))
|
||||
poseStack.mulPose(Axis.ZP.rotationDegrees(90.0F))
|
||||
}
|
||||
poseStack.translate(0.025f * if (displayContext==ItemDisplayContext.THIRD_PERSON_LEFT_HAND) 1 else -1 , 0.0f, 0.0f)
|
||||
}
|
||||
ItemDisplayContext.HEAD -> {
|
||||
if (state is NPCClientDelegate) {
|
||||
if (item.`is`(WEARABLE_FACE_ITEMS)) poseStack.setOriginAndScale(0f,-2f,7.25f, 0.62f)
|
||||
else if (item.`is`(WEARABLE_HAT_ITEMS)) poseStack.setOriginAndScale(0f,-10.25f,0f, 0.62f)
|
||||
}
|
||||
else {
|
||||
if (item.`is`(WEARABLE_FACE_ITEMS)) poseStack.setOriginAndScale(0f,1f,(7.25f)-.5f, 0.62f)
|
||||
else if (item.`is`(WEARABLE_HAT_ITEMS)) poseStack.setOriginAndScale(0f,(-7.25f)+.5f,0f, 0.62f)
|
||||
}
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
ItemDisplayContext.THIRD_PERSON_RIGHT_HAND, ItemDisplayContext.THIRD_PERSON_LEFT_HAND -> {
|
||||
poseStack.mulPose(Axis.XP.rotationDegrees((rotation.x).toFloat()))
|
||||
poseStack.mulPose(Axis.YP.rotationDegrees((rotation.y).toFloat()))
|
||||
poseStack.mulPose(Axis.ZP.rotationDegrees((rotation.z).toFloat()))
|
||||
poseStack.translate(0.025f * if (displayContext==ItemDisplayContext.THIRD_PERSON_LEFT_HAND) 1 else -1 , 0.0f, 0.0f)
|
||||
|
||||
//Render front lighting for UI Models
|
||||
if (frontLight) {
|
||||
RenderSystem.setShaderLights(Vector3f(0F,0F,1F), Vector3f(0F,0F,1F))
|
||||
}
|
||||
ItemDisplayContext.HEAD -> {
|
||||
poseStack.mulPose(Axis.XP.rotationDegrees(90.0f))
|
||||
poseStack.scale(.6f, .6f, .6f)
|
||||
poseStack.translate(0f, -0.6f, 0f)
|
||||
}
|
||||
else -> {}
|
||||
|
||||
itemRenderer.renderStatic(entity, item, displayContext, (displayContext==ItemDisplayContext.THIRD_PERSON_LEFT_HAND), poseStack, buffer, null, light, OverlayTexture.NO_OVERLAY, seed)
|
||||
|
||||
poseStack.popPose()
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-3
@@ -37,7 +37,6 @@ import net.minecraft.nbt.Tag
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.entity.player.Player
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class PokemonOnShoulderRenderer<T : Player>(renderLayerParent: RenderLayerParent<T, PlayerModel<T>>) : RenderLayer<T, PlayerModel<T>>(renderLayerParent) {
|
||||
|
||||
@@ -162,12 +161,12 @@ class PokemonOnShoulderRenderer<T : Player>(renderLayerParent: RenderLayerParent
|
||||
}
|
||||
|
||||
heldItemRenderer.renderOnModel(
|
||||
model,
|
||||
shoulderData.shownItem,
|
||||
model,
|
||||
state,
|
||||
matrixStack,
|
||||
buffer,
|
||||
Vec3(0.0,-90.0,-90.0)
|
||||
packedLight
|
||||
)
|
||||
|
||||
model.setDefault()
|
||||
|
||||
+8
-1
@@ -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 {
|
||||
|
||||
+4
-5
@@ -40,7 +40,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
|
||||
@@ -49,9 +48,7 @@ import com.mojang.blaze3d.vertex.PoseStack
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer
|
||||
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 +56,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 +92,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 +531,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() }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+5
-7
@@ -46,7 +46,6 @@ import net.minecraft.sounds.SoundSource
|
||||
import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import org.joml.Matrix4f
|
||||
import java.util.*
|
||||
import java.util.concurrent.ConcurrentLinkedQueue
|
||||
|
||||
@@ -128,9 +127,8 @@ abstract class PosableState : Schedulable {
|
||||
/** This gets called 500 million times so use a mutable value for runtime */
|
||||
private val reusableAnimTime = DoubleValue(0.0)
|
||||
|
||||
val itemRenderingLocations = mutableMapOf<String, ItemStack>()
|
||||
// var itemRenderingLocation = ""
|
||||
// var animationItem : ItemStack? = null
|
||||
/** A list of items to be rendered on a PosableModel during an animation */
|
||||
val animationItems = mutableMapOf<String, ItemStack>()
|
||||
|
||||
/** All of the MoLang functions that can be applied to something with this state. */
|
||||
val functions = QueryStruct(hashMapOf())
|
||||
@@ -167,13 +165,13 @@ abstract class PosableState : Schedulable {
|
||||
val renderLocation = if (params.contains(1)) params.getString(1) else "item"
|
||||
|
||||
if (!item.isEmpty && locatorStates.containsKey(renderLocation)) {
|
||||
itemRenderingLocations.put(renderLocation, item)
|
||||
animationItems.put(renderLocation, item)
|
||||
} else {
|
||||
if (itemRenderingLocations.containsKey(renderLocation)) itemRenderingLocations.remove(renderLocation)
|
||||
if (animationItems.containsKey(renderLocation)) animationItems.remove(renderLocation)
|
||||
return@addFunction Unit
|
||||
}
|
||||
}
|
||||
.addFunction("clear_items") { itemRenderingLocations.clear() }
|
||||
.addFunction("clear_items") { animationItems.clear() }
|
||||
.addFunction("play_animation") { params ->
|
||||
val animationParameter = params.get<MoValue>(0)
|
||||
val animation = if (animationParameter is ObjectValue<*>) {
|
||||
|
||||
-98
@@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
}
|
||||
}
|
||||
-62
@@ -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
|
||||
}
|
||||
-62
@@ -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
|
||||
}
|
||||
-129
@@ -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")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-84
@@ -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
|
||||
}
|
||||
-65
@@ -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
|
||||
}
|
||||
-65
@@ -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
|
||||
}
|
||||
-62
@@ -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
|
||||
}
|
||||
-66
@@ -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)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-65
@@ -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
|
||||
}
|
||||
-106
@@ -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
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-65
@@ -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
|
||||
}
|
||||
-62
@@ -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
|
||||
}
|
||||
-65
@@ -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
|
||||
}
|
||||
+2
-2
@@ -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() {
|
||||
|
||||
-14
@@ -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)
|
||||
|
||||
@@ -20,7 +20,6 @@ import net.minecraft.client.renderer.MultiBufferSource
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider.Context
|
||||
import net.minecraft.client.renderer.entity.LivingEntityRenderer
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import kotlin.math.min
|
||||
|
||||
class NPCRenderer(context: Context) : LivingEntityRenderer<NPCEntity, PosableEntityModel<NPCEntity>>(context, PosableNPCModel(), 0.5f) {
|
||||
@@ -60,17 +59,17 @@ class NPCRenderer(context: Context) : LivingEntityRenderer<NPCEntity, PosableEnt
|
||||
model.blue = 1F
|
||||
model.resetLayerContext()
|
||||
|
||||
if (entity.deathTime < 1){
|
||||
if (entity.deathTime < 1) {
|
||||
//Render Held Item
|
||||
heldItemRenderer.renderOnEntity(
|
||||
entity,
|
||||
heldItemRenderer.renderOnModel(
|
||||
entity.mainHandItem,
|
||||
model,
|
||||
clientDelegate,
|
||||
poseMatrix,
|
||||
buffer,
|
||||
packedLight,
|
||||
Vec3(-90.0,0.0,0.0)
|
||||
false,
|
||||
entity
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-12
@@ -14,15 +14,12 @@ import com.cobblemon.mod.common.api.riding.Rideable
|
||||
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.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 +44,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(
|
||||
|
||||
+4
-4
@@ -159,15 +159,15 @@ class PokemonRenderer(
|
||||
// Minecraft.getInstance().bufferBuilders.entityVertexConsumers.draw()
|
||||
|
||||
//Render Held Item
|
||||
heldItemRenderer.renderOnEntity(
|
||||
entity,
|
||||
heldItemRenderer.renderOnModel(
|
||||
entity.shownItem,
|
||||
model.posableModel,
|
||||
modelNow,
|
||||
clientDelegate,
|
||||
poseMatrix,
|
||||
buffer,
|
||||
packedLight,
|
||||
Vec3(0.0,-90.0,90.0)
|
||||
false,
|
||||
entity
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
+75
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+49
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
+29
-5
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* 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.item
|
||||
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.entity.EquipmentSlot
|
||||
import net.minecraft.world.item.Equipable
|
||||
|
||||
class WearableItem(val name: String): CobblemonItem(Properties()), Equipable {
|
||||
companion object {
|
||||
const val MODEL_PATH = "item/wearable"
|
||||
}
|
||||
|
||||
fun getModel3d(): ResourceLocation = cobblemonResource("${MODEL_PATH}/${this.name}")
|
||||
fun getModel2d(): ResourceLocation = cobblemonResource(this.name)
|
||||
|
||||
override fun getEquipmentSlot(): EquipmentSlot { return EquipmentSlot.HEAD }
|
||||
}
|
||||
@@ -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
|
||||
|
||||
+9
-1
@@ -20,6 +20,7 @@ import com.cobblemon.mod.common.util.battleLang
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.item.Items
|
||||
import java.util.function.Function
|
||||
|
||||
/**
|
||||
@@ -130,7 +131,14 @@ object CobblemonHeldItemManager : BaseCobblemonHeldItemManager() {
|
||||
}
|
||||
// if items aren't consumed, then we don't want to give them to wild pokemon (dupe)
|
||||
if (this.giveItemEffect.contains(effectId) && (pokemon.actor is PlayerBattleActor || consumeHeldItems)) {
|
||||
this.give(pokemon, itemID)
|
||||
// extra check for item swapping abuse
|
||||
// checks if the pokemon whose item is being taken away (wild pokemon) has its held item tampered with in any way
|
||||
// this assumes its always moves causing the swaps
|
||||
// I still think this is a bit brittle and can cause false positives, but for now this should do the trick I hope
|
||||
var fromBattlePokemon = battle.majorBattleActions[pokemon.uuid]?.battlePokemon(2, battle)
|
||||
if(showdownIdOf(fromBattlePokemon?.originalPokemon?.heldItem?.item ?: Items.AIR) == itemID) {
|
||||
this.give(pokemon, itemID)
|
||||
}
|
||||
}
|
||||
// allow players to steal wild held items
|
||||
if (this.takeItemEffect.contains(effectId) && (pokemon.actor !is PlayerBattleActor || consumeHeldItems)) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+8
-1
@@ -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) }
|
||||
}
|
||||
}
|
||||
+2
-3
@@ -16,6 +16,7 @@ import com.google.gson.JsonObject
|
||||
import com.mojang.serialization.JsonOps
|
||||
import net.minecraft.core.component.DataComponentMap
|
||||
import java.lang.reflect.Type
|
||||
import kotlin.jvm.optionals.getOrNull
|
||||
|
||||
/**
|
||||
* A JSON deserializer for [PossibleHeldItem].
|
||||
@@ -32,9 +33,7 @@ object PossibleHeldItemAdapter : JsonDeserializer<PossibleHeldItem> {
|
||||
)
|
||||
} else {
|
||||
json as JsonObject
|
||||
val componentMap = JsonOps.INSTANCE.withDecoder(DataComponentMap.CODEC).apply(json.get("nbt")).getOrThrow {
|
||||
return@getOrThrow IllegalStateException("Cant serialize components for held item")
|
||||
}.first
|
||||
val componentMap = JsonOps.INSTANCE.withDecoder(DataComponentMap.CODEC).apply(json.get("nbt")).result().getOrNull()?.first
|
||||
val item = json.get("item").asString
|
||||
val percentage = json.get("percentage")?.asDouble ?: 100.0
|
||||
return PossibleHeldItem(
|
||||
|
||||
-8
@@ -2741,14 +2741,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.pidgeot.cry": {
|
||||
"animation_length": 1.33333,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.pidgeot.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -888,7 +888,7 @@
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"effect": "pokemon.ponyta_galar.cry"
|
||||
"effect": "pokemon.ponyta_galarian.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+1
-1
@@ -1867,7 +1867,7 @@
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.1667": {
|
||||
"effect": "pokemon.rapidash_galar.cry"
|
||||
"effect": "pokemon.rapidash_galarian.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+139
-477
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+177
-827
File diff suppressed because it is too large
Load Diff
+85
-666
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+207
-684
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+158
-447
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+196
-369
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+178
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
+2247
-107
File diff suppressed because it is too large
Load Diff
+191
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+192
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+4276
-334
File diff suppressed because it is too large
Load Diff
+113
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+114
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+290
-240
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+224
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+86
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+6794
-1698
File diff suppressed because it is too large
Load Diff
+106
-511
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+130
-482
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2627
-5
File diff suppressed because it is too large
Load Diff
+287
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+213
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+233
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1363
File diff suppressed because it is too large
Load Diff
+189
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+144
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+183
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+230
-439
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+594
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+251
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+521
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+510
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+165
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+218
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+68
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+143
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+483
@@ -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]}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user