Compare commits

..
Author SHA1 Message Date
apion 5363c17919 Test #8 2024-11-02 22:24:26 -04:00
apion daa331a30d Test #7 2024-11-02 22:21:21 -04:00
apion 9e3edd4f1c Test #6 2024-11-02 22:19:50 -04:00
apion 1ef069b08e Test #5 2024-11-02 22:18:45 -04:00
apion b558d04a58 Test #4 2024-11-02 22:17:50 -04:00
apion 96142387c5 Test #3 2024-11-02 22:15:37 -04:00
apion ccde9f79aa Test #2 2024-11-02 22:11:52 -04:00
apion b50762195e Added CI job for merging main into lang-updates when en_US is changed 2024-11-02 22:10:20 -04:00
apion a36b832826 Update translations (again!) 2024-11-02 21:48:08 -04:00
Hiroku 055583de1d Merge branch 'RevisedBattleSendouts' into 'main'
Revised pokemon sendouts to allow for smaller pokemon to be sendout closer to their opponents.

See merge request cable-mc/cobblemon!1246
2024-11-03 01:33:55 +00:00
JazzMcNade 63f2c49606 Merge branch 'main' into RevisedBattleSendouts 2024-11-02 20:20:49 -05:00
JazzMcNade ff879f488e Revised pokemon sendouts to allow for smaller pokemon to be sendout closer to their opponents.
This should reduce the number of instances in which a pokemon will be thrown behind the player
2024-11-02 20:14:37 -05:00
Apion 0942553bb7 Merge branch 'lang-updates' into 'main'
Update translations

See merge request cable-mc/cobblemon!1245
2024-11-03 00:55:23 +00:00
Apion ac7d2f6075 Update translations 2024-11-03 00:55:23 +00:00
Hiroku 1d460555af Merge branch 'implement_pokemon' into 'main'
Fix underwater anim conditions

Closes #1137

See merge request cable-mc/cobblemon!1243
2024-11-02 23:24:37 +00:00
Carmendar 904dcb61b0 Fix underwater anim conditions 2024-11-02 23:24:36 +00:00
Hiroku b038841242 Merge branch 'feature/small-fixes' into 'main'
fix pokedex crashing on custom mons and evos randomizing gender

Closes #1138 and #1135

See merge request cable-mc/cobblemon!1242
2024-11-02 23:10:24 +00:00
Polymeta 7efa155b51 fix pokedex crashing on custom mons and evos randomizing gender 2024-11-02 23:10:24 +00:00
Hiroku 07cef9c683 Merge branch '1.6-mongodb' into 'main'
MongoDB implementation for dex, player data and store.

See merge request cable-mc/cobblemon!1239
2024-11-02 23:06:08 +00:00
Hiroku 85b836ee28 Merge branch 'implement_pokemon' into 'main'
Implement a bunch of pokemon

Closes #1137

See merge request cable-mc/cobblemon!1234
2024-11-02 22:57:58 +00:00
Apion 74222fe727 Implement a bunch of pokemon 2024-11-02 22:57:58 +00:00
Apion a30dacb4be Merge branch 'move-effects' into 'main'
Added particles and sounds for moves.

See merge request cable-mc/cobblemon!1240
2024-11-02 21:14:20 +00:00
Tyzillion 66473d9b47 Added particles and sounds for moves. 2024-11-02 21:14:20 +00:00
navneetset 0764a932e1 Removed old mongo player data adapter. 2024-11-02 21:40:27 +01:00
navneetset d568644155 Added dex manager adapter to JSON and MongoDB codec 2024-11-02 10:05:24 +01:00
Hiroku 34a8badd6f Merge branch 'molang-function-fix' into 'main'
Better molang function adding

See merge request cable-mc/cobblemon!1235
2024-11-02 04:38:12 +00:00
navneetset 54cb857224 MongoDB implementation for 1.6 2024-11-02 00:14:40 +01:00
251 changed files with 71509 additions and 7980 deletions

No files matched your search

+29 -1
View File
@@ -1,9 +1,10 @@
image: amazoncorretto:21
image: amazoncorretto:21-alpine
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
stages:
- merge
- build
- deploy
@@ -64,3 +65,30 @@ deploy:
- ./*.jar
# - neoforge/build/libs/*+*.jar
# - fabric/build/libs/*+*.jar
merge_on_lang_change:
stage: merge
script:
# Check for changes in the specified file or directory
- |
apk add git
if git diff --name-only "$CI_COMMIT_BEFORE_SHA" "$CI_COMMIT_SHA" | grep -q "common/src/main/resources/assets/cobblemon/lang/en_us.json"; then
echo "US locale changed! Updating lang branch..."
# Configure Git user for the merge commit
git config --global user.email "noreply@weblate.org"
git config --global user.name "Weblate"
git remote set-url origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/cable-mc/cobblemon.git
# Fetch the target branch and merge main into it
git fetch origin lang-updates
git checkout lang-updates
git merge origin/ci-test
# Push the merged branch back to the repository
git push origin lang-updates:lang-updates-test
else
echo "No need to update lang"
fi
only:
- ci-test
+14 -2
View File
@@ -30,12 +30,12 @@
- New config setting `displayEntityNameLabel` and `displayEntityLabelsWhenCrouchingOnly` to control what and when is displayed for the pokemon label
- `/freezepokemon` command to pause a Pokémon's animation at a specific point in time.
- Added `no_ai` and `freeze_frame` options to the `/spawnpokemon` command.
- Added shiny Pokémon particles with sound effects.
- Added animation for trading.
- Added shiny Pokémon effects.
- Added effects for the burn status effect.
- Added effects for the moves: Psychic, Water Sport, and Mud Sport.
- Added a new universal locator called "top".
- Added shiny Pokémon particles with sound effects.
- Added animation for trading.
### Pokémon Added
#### Gen 1
@@ -208,6 +208,7 @@
- Buneary
- Combee
- Pachirisu
- Tepig
- Pidove
- Petilil, Hisui Bias Petilil
- Zorua, Hisui Bias Zorua
@@ -215,9 +216,11 @@
- Fletchling
- Skrelp
- Klefki
- Litten
- Fomantis
- Morelull
- Dreepy
- Sprigatito
- Shroodle
- Tatsugiri
- Glimmet
@@ -230,20 +233,29 @@
- Furret
- Swinub, Piloswine, Mamoswine
- Skarmory
- Tyrogue
- Spinda
- Torkoal
- Nincada, Ninjask
- Lunatone
- Solrock
- Buneary, Lopunny
- Magnezone
- Alomomola
- Tepig, Pignite, Emboar
- Flabebe, Floette, Florges
- Litten, Torracat, Incineroar
- Fomantis, Lurantis
- Dreepy, Drakloak
- Kleavor
- Scorbunny
- Gimmighoul [Roaming]
### Model updates for the following Pokémon
- Bulbasaur, Ivysaur, Venusaur
- Charmander, Charmeleon, Charizard
- Kakuna, Beedrill
- Lapras
- Porygon, Porygon2, Porygon-Z
- Igglybuff, Jigglypuff, Wigglytuff
- Poliwhirl, Poliwrath
@@ -43,6 +43,7 @@ import com.cobblemon.mod.common.api.spawning.prospecting.SpawningProspector
import com.cobblemon.mod.common.api.starter.StarterHandler
import com.cobblemon.mod.common.api.storage.PokemonStoreManager
import com.cobblemon.mod.common.api.storage.adapter.conversions.ReforgedConversion
import com.cobblemon.mod.common.api.storage.adapter.database.MongoDBStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatfile.FileStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatfile.JSONStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatfile.NBTStoreAdapter
@@ -52,8 +53,7 @@ import com.cobblemon.mod.common.api.storage.pc.PCStore
import com.cobblemon.mod.common.api.storage.pc.link.PCLinkManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.api.storage.player.adapter.DexDataNbtBackend
import com.cobblemon.mod.common.api.storage.player.adapter.PlayerDataJsonBackend
import com.cobblemon.mod.common.api.storage.player.adapter.*
import com.cobblemon.mod.common.api.storage.player.factory.CachedPlayerDataStoreFactory
import com.cobblemon.mod.common.api.tags.CobblemonEntityTypeTags
import com.cobblemon.mod.common.api.tags.CobblemonItemTags
@@ -106,7 +106,10 @@ import com.cobblemon.mod.common.util.*
import com.cobblemon.mod.common.world.feature.CobblemonPlacedFeatures
import com.cobblemon.mod.common.world.feature.ore.CobblemonOrePlacedFeatures
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
import com.mongodb.ConnectionString
import com.mongodb.MongoClientSettings
import com.mongodb.client.MongoClient
import com.mongodb.client.MongoClients
import java.io.File
import java.io.FileReader
import java.io.FileWriter
@@ -322,9 +325,7 @@ object Cobblemon {
}
}
/*
"mongodb" -> {
/*
try {
Class.forName("com.mongodb.client.MongoClient")
@@ -332,18 +333,22 @@ object Cobblemon {
.applyConnectionString(ConnectionString(config.mongoDBConnectionString))
.build()
mongoClient = MongoClients.create(mongoClientSettings)
val mongoFactory = MongoPlayerDataStoreFactory(mongoClient, config.mongoDBDatabaseName)
playerData.setFactory(mongoFactory, PlayerInstancedDataStoreType.GENERAL)
val generalMongoFactory = CachedPlayerDataStoreFactory(PlayerDataMongoBackend(mongoClient, config.mongoDBDatabaseName, "PlayerDataCollection"))
generalMongoFactory.setup(server)
val pokedexMongoFactory = CachedPlayerDataStoreFactory(DexDataMongoBackend(mongoClient, config.mongoDBDatabaseName, "PokeDexCollection"))
pokedexMongoFactory.setup(server)
playerDataManager.setFactory(generalMongoFactory, PlayerInstancedDataStoreTypes.GENERAL)
playerDataManager.setFactory(pokedexMongoFactory, PlayerInstancedDataStoreTypes.POKEDEX)
MongoDBStoreAdapter(mongoClient, config.mongoDBDatabaseName)
} catch (e: ClassNotFoundException) {
LOGGER.error("MongoDB driver not found.")
throw e
}
*/
}
*/
else -> throw IllegalArgumentException("Unsupported storageFormat: ${config.storageFormat}")
}
@@ -277,7 +277,6 @@ object CobblemonNetwork {
list.add(PacketRegisterInfo(BattleChallengeExpiredPacket.ID, BattleChallengeExpiredPacket::decode, BattleChallengeExpiredHandler))
list.add(PacketRegisterInfo(BattleReplacePokemonPacket.ID, BattleReplacePokemonPacket::decode, BattleReplacePokemonHandler))
list.add(PacketRegisterInfo(BattleTransformPokemonPacket.ID, BattleTransformPokemonPacket::decode, BattleTransformPokemonHandler))
list.add(PacketRegisterInfo(BattleAppendTargetedEntityPacket.ID, BattleAppendTargetedEntityPacket::decode, BattleSetTargetedEntityHandler))
// MultiBattleTeam Packets
list.add(PacketRegisterInfo(TeamRequestNotificationPacket.ID, TeamRequestNotificationPacket::decode, TeamRequestNotificationHandler))
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.api.pokedex.PokedexManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreType
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.util.adapters.CodecBackedAdapter
import com.cobblemon.mod.common.util.adapters.IdentifierAdapter
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
@@ -27,7 +28,7 @@ class DexDataJsonBackend: JsonBackedPlayerDataStoreBackend<PokedexManager>("poke
override val gson = GsonBuilder()
.setPrettyPrinting()
.disableHtmlEscaping()
.registerTypeAdapter(ResourceLocation::class.java, IdentifierAdapter)
.registerTypeAdapter(PokedexManager::class.java, CodecBackedAdapter(PokedexManager.CODEC))
.create()
override val classToken = TypeToken.get(PokedexManager::class.java)
override val defaultData = defaultDataFunc
@@ -0,0 +1,44 @@
/*
* 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.api.storage.player.adapter
import com.cobblemon.mod.common.api.pokedex.PokedexManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.util.adapters.CodecBackedAdapter
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
import com.mongodb.client.MongoClient
import java.util.UUID
/**
* A [PlayerDataStoreBackend] for [PokedexManager]
*
* @author Pebbles
* @since October 26, 2024
*/
class DexDataMongoBackend(mongoClient: MongoClient, databaseName: String, collectionName: String) :
MongoBackedPlayerDataStoreBackend<PokedexManager>(mongoClient, databaseName, collectionName, PlayerInstancedDataStoreTypes.POKEDEX) {
override val gson = GsonBuilder()
.registerTypeAdapter(PokedexManager::class.java, CodecBackedAdapter(PokedexManager.CODEC))
.create()
override val classToken = TypeToken.get(PokedexManager::class.java)
override val defaultData = defaultDataFunc
override fun initialize(store: PokedexManager) {
store.initialize()
}
companion object {
val defaultDataFunc = { uuid: UUID ->
PokedexManager(uuid, mutableMapOf())
}
}
}
@@ -0,0 +1,59 @@
/*
* 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.api.storage.player.adapter
import com.cobblemon.mod.common.api.storage.player.InstancedPlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreType
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.mongodb.client.MongoClient
import com.mongodb.client.model.ReplaceOptions
import org.bson.Document
import java.io.BufferedReader
import java.io.FileReader
import java.io.PrintWriter
import java.util.UUID
import kotlin.reflect.KMutableProperty
import kotlin.reflect.full.memberProperties
abstract class MongoBackedPlayerDataStoreBackend<T : InstancedPlayerData>(
mongoClient: MongoClient, databaseName: String, collectionName: String, type: PlayerInstancedDataStoreType
) : MongoBasedPlayerDataStoreBackend<T>(mongoClient, type, databaseName, collectionName) {
abstract val gson: Gson
//The class GSON needs to deserialize to
abstract val classToken: TypeToken<T>
override fun save(playerData: T) {
collection.replaceOne(
Document("uuid", playerData.uuid.toString()),
Document.parse(gson.toJson(playerData)),
ReplaceOptions().upsert(true)
)
}
override fun load(uuid: UUID): T {
val filter = Document("uuid", uuid.toString())
val document = collection.find(filter).first()
return if (document != null) {
val jsonStr = document.toJson()
gson.fromJson(jsonStr, classToken).also {
val newProps = it::class.memberProperties.filterIsInstance<KMutableProperty<*>>()
.filter { member -> member.getter.call(it) == null }
if (newProps.isNotEmpty()) {
val defaultData = defaultData(uuid)
newProps.forEach { member -> member.setter.call(it, member.getter.call(defaultData)) }
}
}
} else {
defaultData(uuid).also(::save)
}
}
}
@@ -0,0 +1,36 @@
/*
* 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.api.storage.player.adapter
import com.cobblemon.mod.common.api.storage.player.InstancedPlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreType
import com.mongodb.client.MongoClient
import net.minecraft.server.MinecraftServer
import java.util.UUID
/**
* A [PlayerDataStoreBackend] that stores the [InstancedPlayerData] in a file.
*
* @author Pebbles
* @since October 27, 2024
*/
abstract class MongoBasedPlayerDataStoreBackend<T : InstancedPlayerData>(
val mongoClient: MongoClient, val type: PlayerInstancedDataStoreType, databaseName: String, collectionName: String
) : PlayerDataStoreBackend<T>(type) {
abstract val defaultData: (UUID) -> (T)
val collection by lazy {
mongoClient.getDatabase(databaseName).getCollection(collectionName)
}
override fun setup(server: MinecraftServer) {
// Ping the database to ensure it's connected
mongoClient.listDatabaseNames().first()
}
}
@@ -1,67 +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.api.storage.player.adapter
import com.cobblemon.mod.common.api.storage.player.PlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerDataExtension
import com.cobblemon.mod.common.util.adapters.IdentifierAdapter
import com.google.gson.GsonBuilder
import com.mongodb.client.MongoClient
import com.mongodb.client.model.ReplaceOptions
import net.minecraft.resources.ResourceLocation
import org.bson.Document
import java.util.UUID
import kotlin.reflect.KMutableProperty
import kotlin.reflect.full.memberProperties
class MongoPlayerDataAdapter(
mongoClient: MongoClient,
databaseName: String
) : PlayerDataStoreAdapter {
companion object {
val gson = GsonBuilder()
.disableHtmlEscaping()
.registerTypeAdapter(PlayerDataExtension::class.java, PlayerDataExtensionAdapter)
.registerTypeAdapter(ResourceLocation::class.java, IdentifierAdapter)
.create()
}
private val collection = mongoClient.getDatabase(databaseName).getCollection("PlayerDataCollection")
override fun load(uuid: UUID): PlayerData {
val filter = Document("uuid", uuid.toString())
val document = collection.find(filter).first()
return if (document != null) {
val jsonStr = document.toJson()
gson.fromJson(jsonStr, PlayerData::class.java).also {
val newProps = it::class.memberProperties.filterIsInstance<KMutableProperty<*>>().filter { member -> member.getter.call(it) == null }
if (newProps.isNotEmpty()) {
val defaultData = PlayerData.defaultData(uuid)
newProps.forEach { member -> member.setter.call(it, member.getter.call(defaultData)) }
}
}
} else {
PlayerData.defaultData(uuid).also(::save)
}
}
override fun save(playerData: PlayerData) {
val jsonStr = gson.toJson(playerData)
val document = Document.parse(jsonStr)
document.put("uuid", playerData.uuid.toString())
val filter = Document("uuid", playerData.uuid.toString())
collection.replaceOne(filter, document, ReplaceOptions().upsert(true))
}
}
*/
@@ -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.api.storage.player.adapter
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.storage.player.GeneralPlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerDataExtension
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.util.adapters.IdentifierAdapter
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
import com.mongodb.client.MongoClient
import net.minecraft.resources.ResourceLocation
import java.util.UUID
/**
* A [PlayerDataStoreBackend] for [GeneralPlayerData]
*
* @author Apion
* @since February 21, 2024
*/
class PlayerDataMongoBackend(mongoClient: MongoClient, databaseName: String, collectionName: String): MongoBackedPlayerDataStoreBackend<GeneralPlayerData>(
mongoClient, databaseName, collectionName, PlayerInstancedDataStoreTypes.GENERAL
){
override val defaultData = { forPlayer: UUID -> GeneralPlayerData(
uuid = forPlayer,
starterPrompted = false,
starterLocked = !Cobblemon.starterConfig.allowStarterOnJoin,
starterSelected = false,
starterUUID = null,
keyItems = mutableSetOf(),
extraData = mutableMapOf(),
battleTheme = CobblemonSounds.PVP_BATTLE.location
)}
override val gson = GsonBuilder()
.registerTypeAdapter(PlayerDataExtension::class.java, PlayerDataExtensionAdapter)
.registerTypeAdapter(ResourceLocation::class.java, IdentifierAdapter)
.create()
override val classToken = TypeToken.get(GeneralPlayerData::class.java)
}
@@ -35,6 +35,12 @@ interface Targetable {
}
}
fun getOppositeOpponent() : Targetable {
val digit = getDigit()
val sideSize = getFormat().battleType.pokemonPerSide
return getAllActivePokemon().first { pokemon -> !pokemon.isAllied(this) && (sideSize - pokemon.getDigit() + 1) - digit == 0 }
}
fun getAdjacentAllies() = getAdjacent().filter { it.isAllied(this) }
fun getAdjacentOpponents() = getAdjacent().filterNot { it.isAllied(this) }
@@ -148,59 +148,74 @@ object ShowdownInterpreter {
*/
fun getSendoutPosition(battle: PokemonBattle, activePokemon: ActiveBattlePokemon, battleActor: BattleActor): Vec3? {
val pnx = activePokemon.getPNX()
val entityPosList = battleActor.getSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
var entityPos = if (entityPosList.size == 1)
entityPosList[0]
else if (entityPosList.size > 1)
entityPosList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / entityPosList.size)) }
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 opposingEntityList = battleActor.getSide().getOppositeSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val opposingEntityPos = if (opposingEntityList.size == 1)
opposingEntityList[0]
else if (opposingEntityList.size > 1)
opposingEntityList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / opposingEntityList.size)) }
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 baseOffset = entityPos?.let { opposingEntityPos?.subtract(it) }
if (baseOffset != null) {
val minDistance = if (battle.isPvW) 8.0 else 5.0
val length = baseOffset.length()
if (length < minDistance) {
val temp = baseOffset.scale(minDistance / length) ?: baseOffset
entityPos = entityPos?.subtract(temp.subtract(baseOffset))
baseOffset = temp
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
}
}
var vector = Vec3(baseOffset.x, 0.0, baseOffset.z).normalize()
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
entityPos = entityPos?.add(baseOffset.scale(if (battle.isPvW) 0.4 else 0.3))
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
if (hitbox.height * scale > 1.1) {
entityPos = entityPos?.add(vector.scale(-1.5 - hitbox.width * scale / 2))
}
activePokemon.getAdjacentOpponents()
result = result?.add(vector.scale(-0.3 - hitbox.width * scale ))
}
} else if (battle.format.battleType.pokemonPerSide == 2) { // Doubles
} 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
entityPos = entityPos?.add(baseOffset.scale(0.33))?.add(offsetB.scale(2.5))
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()) {
entityPos = when (pnx[2]) {
'a' -> entityPos?.add(baseOffset.scale(0.15))?.add(vector.scale(-3.5))
'b' -> entityPos?.add(baseOffset.scale(0.3))
'c' -> entityPos?.add(baseOffset.scale(0.15))?.add(vector.scale(3.5))
else -> entityPos
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 entityPos
return result
}
@@ -9,16 +9,11 @@
package com.cobblemon.mod.common.battles.interpreter.instructions
import com.bedrockk.molang.runtime.MoLangRuntime
import com.bedrockk.molang.runtime.struct.QueryStruct
import com.bedrockk.molang.runtime.value.DoubleValue
import com.bedrockk.molang.runtime.value.StringValue
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.api.battles.interpreter.Effect
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addEntityFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addPokemonEntityFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addPokemonFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addStandardFunctions
import com.cobblemon.mod.common.api.moves.Moves
import com.cobblemon.mod.common.api.moves.animations.ActionEffectContext
@@ -31,14 +26,9 @@ import com.cobblemon.mod.common.battles.dispatch.InstructionSet
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
import com.cobblemon.mod.common.battles.dispatch.UntilDispatch
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.net.messages.client.battle.BattleAppendTargetedEntityPacket
import com.cobblemon.mod.common.pokemon.evolution.progress.UseMoveEvolutionProgress
import com.cobblemon.mod.common.util.battleLang
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.ai.targeting.TargetingConditions
import net.minecraft.world.phys.AABB
import java.util.concurrent.CompletableFuture
/**
@@ -107,13 +97,6 @@ class MoveInstruction(
val runtime = MoLangRuntime().also {
battle.addQueryFunctions(it.environment.query).addStandardFunctions()
}
userPokemon.effectedPokemon.entity?.let {
val queryStruct = QueryStruct(hashMapOf())
queryStruct.addEntityFunctions(it)
queryStruct.addPokemonEntityFunctions(it)
queryStruct.addPokemonFunctions(it.pokemon)
runtime.environment.variable.setDirectly("user", queryStruct)
}
actionEffect ?: return@dispatch GO
val context = ActionEffectContext(
@@ -147,17 +130,6 @@ class MoveInstruction(
runtime.environment.query.addFunction("move") { move.struct }
runtime.environment.query.addFunction("instruction_id") { StringValue(cobblemonResource("move").toString()) }
if (userPokemon.entity != null && targetPokemon?.entity != null) {
//Not the most elegant solution, maybe we should just make the targeted entity a piece of SyncedData
val serverLevel = userPokemon.entity!!.level() as? ServerLevel
serverLevel?.getNearbyPlayers(
TargetingConditions.forNonCombat(),
userPokemon.entity!!,
AABB.ofSize(userPokemon.entity!!.position(), 128.0, 128.0, 128.0)
)?.mapNotNull { it as? ServerPlayer }?.forEach { it.sendPacket(BattleAppendTargetedEntityPacket(userPokemon.entity!!.id, targetPokemon.entity!!.id)) }
battle.sendUpdate(BattleAppendTargetedEntityPacket(userPokemon.entity!!.id, targetPokemon.entity!!.id))
}
this.future = actionEffect.run(context)
holds = context.holds // Reference so future things can check on this action effect's holds
future.thenApply { holds.clear() }
@@ -14,7 +14,6 @@ import com.bedrockk.molang.runtime.value.StringValue
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.entity.PokemonSideDelegate
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addEntityFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addFunctions
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.scheduling.ScheduledTask
@@ -46,6 +45,8 @@ import net.minecraft.world.InteractionHand
import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.phys.Vec3
import java.util.UUID
import java.util.concurrent.ConcurrentHashMap
class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
companion object {
@@ -93,8 +94,6 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
private var scaleAnimTask: ScheduledTask? = null
private var cryAnimation: ActiveAnimation? = null
var targetedEntityId: Int? = null
override fun onSyncedDataUpdated(data: EntityDataAccessor<*>) {
super.onSyncedDataUpdated(data)
if (this::currentEntity.isInitialized) {
@@ -340,7 +339,6 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
struct.addFunctions(functions.functions)
struct.addFunctions(ClientMoLangFunctions.clientFunctions)
runtime.environment.query = struct
addEnemyFunctions(struct)
}
override fun initialize(entity: PokemonEntity) {
@@ -348,7 +348,10 @@ class PokedexGUI private constructor(
if (entries.isNotEmpty()) {
if (init && initSpecies != null) {
val entry = entries.first { it.speciesId == initSpecies }
var entry = entries.firstOrNull { it.speciesId == initSpecies }
if (entry == null) {
entry = entries.first()
}
setSelectedEntry(entry)
scrollScreen.scrollAmount = (entries.indexOf(entry).toDouble() / entries.size.toDouble()) * scrollScreen.maxScroll
} else {
@@ -1,18 +0,0 @@
package com.cobblemon.mod.common.client.net.battle
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.net.messages.client.battle.BattleAppendTargetedEntityPacket
import net.minecraft.client.Minecraft
object BattleSetTargetedEntityHandler : ClientNetworkPacketHandler<BattleAppendTargetedEntityPacket> {
override fun handle(packet: BattleAppendTargetedEntityPacket, client: Minecraft) {
val sourceEntity = Minecraft.getInstance().level?.getEntity(packet.sourceEntityId)
val sourcePokemon = sourceEntity as? PokemonEntity
if (sourcePokemon != null) {
(sourcePokemon.delegate as PokemonClientDelegate).targetedEntityId = packet.targetedEntityId
}
}
}
@@ -16,10 +16,12 @@ 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.PosableState
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormEntityParticlePacket
import com.cobblemon.mod.common.pokemon.Pokemon
import net.minecraft.client.Minecraft
import net.minecraft.world.entity.Entity
import kotlin.math.pow
import kotlin.text.get
object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSnowstormEntityParticlePacket> {
override fun handle(packet: SpawnSnowstormEntityParticlePacket, client: Minecraft) {
@@ -33,55 +35,6 @@ object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSno
val particleRuntime = MoLangRuntime().setup().setupClient()
particleRuntime.environment.query.addFunction("entity") { state.runtime.environment.query }
particleRuntime.environment.query.addFunction("point_on_curve") {
//All this just finds a curve that goes through the given points + 0, 0
//And calcs where we are on it at t
val t = it.getDouble(0)
val x1 = it.getDouble(1)
val y1 = it.getDouble(2)
val x2 = it.getDouble(3)
val y2 = it.getDouble(4)
val a0 = 0.0
val a1 = x1.pow(2)
val a2 = x2.pow(2)
val b0 = 0.0
val b1 = x1
val b2 = x2
val c0 = 1.0
val c1 = 1.0
val c2 = 1.0
val d0 = 0.0
val d1 = y1
val d2 = y2
val matrix = arrayOf(
arrayOf(a2, b2, c2, d2),
arrayOf(a1, b1, c1, d1),
arrayOf(a0, b0, c0, d0)
)
for (i in 0 until 3) {
var pivot = matrix[i][i]
if (pivot != 0.0) {
for (j in 0 until 4) {
matrix[i][j] /= pivot
}
}
// Make other elements in the current column 0
for (k in 0 until 3) {
if (k != i) {
val factor = matrix[k][i]
for (j in 0 until 4) {
matrix[k][j] -= factor * matrix[i][j]
}
}
}
}
return@addFunction matrix[0][3] * t.pow(2) + matrix[1][3] * t + matrix[2][3]
}
val storm = ParticleStorm(
effect = effect,
@@ -15,7 +15,6 @@ import com.cobblemon.mod.common.api.snowstorm.BedrockParticleOptions
import com.cobblemon.mod.common.api.snowstorm.ParticleEmitterAction
import com.cobblemon.mod.common.client.render.MatrixWrapper
import com.cobblemon.mod.common.client.render.SnowstormParticle
import com.cobblemon.mod.common.entity.AttackingEntity
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.particle.SnowstormParticleOptions
@@ -63,9 +62,6 @@ class ParticleStorm(
}
if (entity is PosableEntity) {
runtime.environment.query.addFunction("entity") { entity.struct }
if (entity is AttackingEntity) {
addAttackingFunctions()
}
} else if (entity is Player) {
runtime.environment.query.addFunction("entity") { entity.asMoLangValue() }
}
@@ -80,33 +76,6 @@ class ParticleStorm(
Minecraft.getInstance().particleEngine.add(this)
}
fun addAttackingFunctions(attackingEntity: AttackingEntity) {
attackingEntity as Entity
runtime.environment.query.addFunction("target_deltax") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
matrixWrapper.transformWorldToParticle(attackingEntity.position()).x - matrixWrapper.transformWorldToParticle(targetedEntity.position()).x
}
runtime.environment.query.addFunction("target_deltay") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
matrixWrapper.transformWorldToParticle(attackingEntity.position()).y - matrixWrapper.transformWorldToParticle(targetedEntity.position()).y
}
runtime.environment.query.addFunction("target_deltaz") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
matrixWrapper.transformWorldToParticle(attackingEntity.position()).z - matrixWrapper.transformWorldToParticle(targetedEntity.position()).z
}
runtime.environment.query.addFunction("target_distance") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 2.0
targetedEntity.position().distanceTo(attackingEntity.position())
}
}
private fun getEntityById(entityId: Int?): Entity? {
if (entityId != null) {
Minecraft.getInstance().level?.getEntity(entityId)
}
return null
}
fun getX() = x
fun getY() = y
fun getZ() = z
@@ -33,5 +33,4 @@ class MatrixWrapper {
fun getOrigin() = position.add(matrix.getOrigin())
fun transformPosition(position: Vec3) = this.position.add(matrix.transformPosition(position))
fun transformWorldToParticle(position: Vec3) = Matrix4f(matrix).invertAffine().transformPosition(position.subtract(this.position))
}
@@ -1,119 +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.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 com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isInWater
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LaprasModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("lapras")
override val head = getPart("head_ai")
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.14F
override var portraitTranslation = Vec3(-0.66, 1.91, 0.0)
override var profileScale = 0.48F
override var profileTranslation = Vec3(-0.01, 0.99, 0.0)
lateinit var landIdle: CobblemonPose
lateinit var landMove: CobblemonPose
lateinit var surfaceIdle: CobblemonPose
lateinit var surfaceMove: CobblemonPose
lateinit var underwaterIdle: CobblemonPose
lateinit var underwaterMove: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("lapras", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("lapras", "blink") }
landIdle = registerPose(
poseName = "land_idle",
poseTypes = UI_POSES + PoseType.STAND,
condition = { !it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "ground_idle")
)
)
landMove = registerPose(
poseName = "land_move",
poseTypes = setOf(PoseType.WALK),
condition = { !it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "ground_idle"),
QuadrupedWalkAnimation(this, 2.5F, 0.25F )
)
)
surfaceIdle = registerPose(
poseName = "surface_idle",
poseTypes = setOf(PoseType.STAND),
condition = { it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_idle")
)
)
surfaceMove = registerPose(
poseName = "surface_move",
poseTypes = setOf(PoseType.WALK),
condition = { it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_swim")
)
)
underwaterIdle = registerPose(
poseName = "underwater_idle",
poseTypes = setOf(PoseType.FLOAT),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_idle")
)
)
underwaterMove = registerPose(
poseName = "underwater_move",
poseTypes = setOf(PoseType.SWIM),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_swim")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(landIdle, landMove)) bedrockStateful("lapras", "faint") else null
}
@@ -1,63 +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.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
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.Pose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class SmeargleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("smeargle")
override val head = getPart("head")
/* No arm swinging because it's holding its tail */
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.29F
override var portraitTranslation = Vec3(-0.03, 0.96, 0.0)
override var profileScale = 0.67F
override var profileTranslation = Vec3(0.05, 0.8, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("smeargle", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("smeargle", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smeargle", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smeargle", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
)
)
}
}
@@ -1,112 +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.PosableState
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.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.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TyrogueModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("tyrogue")
override val head = getPart("head")
override var portraitScale = 2.56F
override var portraitTranslation = Vec3(-0.24, 0.1, 0.0)
override var profileScale = 0.73F
override var profileTranslation = Vec3(-0.03, 0.7, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
lateinit var battleidle: Pose
val shoulderOffset = 3
// override val cryAnimation = CryProvider { bedrockStateful("tyrogue", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("tyrogue", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("tyrogue", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "shoulder_left")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "shoulder_right")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, sleep)) bedrockStateful("tyrogue", "faint") else null
}
@@ -1,67 +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.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
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class MagnezoneModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("magnezone")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(-0.35, -0.28, 0.0)
override var profileScale = 0.6F
override var profileTranslation = Vec3(-0.1, 0.6, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("magnezone", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("magnezone", "blink") }
// sleep = registerPose(
// poseType = PoseType.SLEEP,
// animations = arrayOf(bedrock("magnezone", "sleep"))
// )
registerPose(
poseName = "hover",
poseTypes = PoseType.ALL_POSES - PoseType.FLY - PoseType.SLEEP - PoseType.SWIM,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("magnezone", "ground_idle")
)
)
registerPose(
poseName = "fly",
poseTypes = setOf(PoseType.FLY, PoseType.SWIM),
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("magnezone", "ground_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("magnezone", "faint") else null
}
@@ -10,6 +10,7 @@ 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
@@ -30,6 +31,8 @@ class MunchlaxModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("munchlax", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("munchlax", "blink") }
standing = registerPose(
@@ -1,118 +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.gen5
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
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.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.cosineFunction
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 HydreigonModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("hydreigon")
override val head = getPart("neck")
override var portraitScale = 1.57F
override var portraitTranslation = Vec3(-1.04, 1.93, 0.0)
override var profileScale = 0.58F
override var profileTranslation = Vec3(-0.06, 1.2, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("hydreigon", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("hydreigon", "blink") }
val wingFrame1 = object : BiWingedFrame {
override val rootPart = this@HydreigonModel.rootPart
override val leftWing = getPart("wing_top_left")
override val rightWing = getPart("wing_top_right")
}
val wingFrame2 = object : BiWingedFrame {
override val rootPart = this@HydreigonModel.rootPart
override val leftWing = getPart("wing_middle_left")
override val rightWing = getPart("wing_middle_right")
}
val wingFrame3 = object : BiWingedFrame {
override val rootPart = this@HydreigonModel.rootPart
override val leftWing = getPart("wing_bottom_left")
override val rightWing = getPart("wing_bottom_right")
}
standing = registerPose (
poseName = "standing",
quirks = arrayOf(blink),
transformTicks = 10,
poseTypes = PoseType.UI_POSES + PoseType.STATIONARY_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("hydreigon", "air_idle"),
wingFrame1.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 1.5F, amplitude = 0.8F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame2.wingFlap(
flapFunction = cosineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.65F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame3.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.5F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
)
)
)
walk = registerPose(
poseName = "walk",
quirks = arrayOf(blink),
transformTicks = 10,
poseTypes = PoseType.MOVING_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("hydreigon", "air_fly"),
wingFrame1.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.5F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame2.wingFlap(
flapFunction = cosineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.65F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame3.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 1.5F, amplitude = 0.8F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
)
//bedrock("hydreigon", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("hydreigon", "faint") else null
}
@@ -1,85 +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.createTransformation
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 net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FlabebeModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("flabebe")
override val head = getPart("head")
override var portraitScale = 2.26F
override var portraitTranslation = Vec3(0.0, -0.14, 0.0)
override var profileScale = 0.81F
override var profileTranslation = Vec3(0.0, 0.63, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var shoulderLeft: CobblemonPose
lateinit var shoulderRight: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("flabebe", "cry") }
val shoulderOffset = 10.5
override fun registerPoses() {
val blink = quirk { bedrockStateful("flabebe", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle"),
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(shoulderOffset, -2, 0)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(-shoulderOffset, -2, 0)
)
)
}
}
@@ -1,57 +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.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FloetteModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("floette")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.11, -0.11, 0.0)
override var profileScale = 0.73F
override var profileTranslation = Vec3(0.0, 0.68, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("floette", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("floette", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(maxYaw = 10F),
bedrock("floette", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(maxYaw = 10F),
bedrock("floette", "ground_idle"),
)
)
}
}
@@ -1,57 +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.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FlorgesModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("florges")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.28, 2.31, 0.0)
override var profileScale = 0.54F
override var profileTranslation = Vec3(0.0, 1.04, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("florges", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("florges", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("florges", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("florges", "ground_idle"),
)
)
}
}
@@ -1,104 +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.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
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
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class BrionneModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("brionne")
override val head = getPart("head")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(-0.4, -0.3, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.7, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var float: Pose
lateinit var swim: Pose
lateinit var battleidle: Pose
// lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("brionne", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("brionne", "blink") }
// sleep = registerPose(
// poseType = PoseType.SLEEP,
// animations = arrayOf(bedrock("brionne", "sleep"))
// )
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, swim, float)) bedrockStateful("brionne", "faint") else null
}
@@ -1,73 +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.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
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 net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FomantisModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("fomantis")
override val head = getPart("head")
override val leftArm = getPart("left_front_arm")
override val rightArm = getPart("right_front_arm")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.22, -1.6, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(0.0, 0.67, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("fomantis", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("fomantis", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("fomantis", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("fomantis", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
//bedrock("fomantis", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("fomantis", "faint") else null
}
@@ -1,73 +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.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
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.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LurantisModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("lurantis")
override val head = getPart("head")
override val leftArm = getPart("left_arm")
override val rightArm = getPart("right_arm")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override var portraitScale = 2.57F
override var portraitTranslation = Vec3(-0.18, 0.35, 0.0)
override var profileScale = 0.71F
override var profileTranslation = Vec3(0.0, 0.69, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("lurantis", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("lurantis", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lurantis", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lurantis", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
//bedrock("lurantis", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("lurantis", "faint") else null
}
@@ -1,134 +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.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
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.pokemon.CryProvider
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.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PopplioModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("popplio")
override val head = getPart("head")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.25, -1.5, 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
lateinit var battleidle: Pose
lateinit var sleep: Pose
lateinit var float: Pose
lateinit var swim: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
val shoulderOffset = 1
override val cryAnimation = CryProvider { bedrockStateful("popplio", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("popplio", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("popplio", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "shoulder_left")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "shoulder_right")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, sleep, battleidle, swim, float)) bedrockStateful("popplio", "faint") else null
}
@@ -1,106 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
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
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isBattling
import com.cobblemon.mod.common.util.isInWater
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PrimarinaModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("primarina")
override val head = getPart("head")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.7, 0.6, 0.0)
override var profileScale = 0.55F
override var profileTranslation = Vec3(0.0, 0.8, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var float: Pose
lateinit var swim: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("primarina", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("primarina", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("primarina", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling && !it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, sleep)) bedrockStateful("primarina", "faint") else null
}
@@ -1,116 +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.gen9
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
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.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.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class GimmighoulRoamingModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("gimmighoul_roaming")
override val head = getPart("head")
override var portraitScale = 2.5F
override var portraitTranslation = Vec3(0.0, -1.3, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.76, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleIdle: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var shoulderLeft: CobblemonPose
lateinit var shoulderRight: CobblemonPose
val shoulderOffset = 1
override val cryAnimation = CryProvider { bedrockStateful("gimmighoul_roaming", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("gimmighoul_roaming", "blink") }
val quirk = quirk(secondsBetweenOccurrences = 30F to 120F) { bedrockStateful("gimmighoul_roaming", "idle_quirk") }
val sleepQuirk = quirk (secondsBetweenOccurrences = 30F to 60F) { bedrockStateful("gimmighoul_roaming", "sleep_quirk") }
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
quirks = arrayOf(sleepQuirk),
animations = arrayOf(bedrock("gimmighoul_roaming", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
condition = { !it.isBattling },
quirks = arrayOf(blink,quirk),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_walk")
)
)
battleIdle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("gimmighoul_roaming", "faint")
}
@@ -1,86 +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.gen9
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
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class SprigatitoModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("sprigatito")
override val head = getPart("head")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(-0.35, -0.7, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.53, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("sprigatito", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("sprigatito", "blink") }
val earTwitchRight = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("sprigatito", "quirk_ear-twitch-left") }
val earTwitchLeft = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("sprigatito", "quirk_ear-twitch-right") }
sleep = registerPose(
poseType = PoseType.SLEEP,
quirks = arrayOf(earTwitchRight, earTwitchLeft),
animations = arrayOf(bedrock("sprigatito", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink, earTwitchRight, earTwitchLeft),
animations = arrayOf(
singleBoneLook(),
bedrock("sprigatito", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink, earTwitchRight, earTwitchLeft),
animations = arrayOf(
singleBoneLook(),
bedrock("sprigatito", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink, earTwitchRight, earTwitchLeft),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("sprigatito", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("sprigatito", "faint") else null
}
@@ -69,7 +69,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("bellossom", ::BellossomModel)
inbuilt("voltorb", ::VoltorbModel)
inbuilt("electrode", ::ElectrodeModel)
inbuilt("lapras", ::LaprasModel)
inbuilt("ekans", ::EkansModel)
inbuilt("machop", ::MachopModel)
inbuilt("machoke", ::MachokeModel)
@@ -167,14 +166,12 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("elekid", ::ElekidModel)
inbuilt("pichu", ::PichuModel)
inbuilt("smoochum", ::SmoochumModel)
inbuilt("tyrogue", ::TyrogueModel)
inbuilt("hitmontop", ::HitmontopModel)
inbuilt("electivire", ::ElectivireModel)
inbuilt("glaceon", ::GlaceonModel)
inbuilt("happiny", ::HappinyModel)
inbuilt("leafeon", ::LeafeonModel)
inbuilt("lickilicky", ::LickilickyModel)
inbuilt("magnezone", ::MagnezoneModel)
inbuilt("mimejr", ::MimejrModel)
inbuilt("scizor", ::ScizorModel)
inbuilt("tangrowth", ::TangrowthModel)
@@ -285,9 +282,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("chimchar", :: ChimcharModel)
inbuilt("monferno", :: MonfernoModel)
inbuilt("infernape", :: InfernapeModel)
inbuilt("popplio", :: PopplioModel)
inbuilt("brionne", :: BrionneModel)
inbuilt("primarina", ::PrimarinaModel)
inbuilt("seedot", ::SeedotModel)
inbuilt("nuzleaf", ::NuzleafModel)
inbuilt("shiftry", ::ShiftryModel)
@@ -349,7 +343,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("gliscor", ::GliscorModel)
inbuilt("poochyena", ::PoochyenaModel)
inbuilt("mightyena", ::MightyenaModel)
inbuilt("sprigatito", ::SprigatitoModel)
inbuilt("floragato", ::FloragatoModel)
inbuilt("meowscarada", ::MeowscaradaModel)
inbuilt("shroomish", ::ShroomishModel)
@@ -511,7 +504,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("litwick", ::LitwickModel)
inbuilt("lampent", ::LampentModel)
inbuilt("chandelure", ::ChandelureModel)
inbuilt("gimmighoulroaming", ::GimmighoulRoamingModel)
inbuilt("gimmighoulchest", ::GimmighoulChestModel)
inbuilt("gholdengo", ::GholdengoModel)
inbuilt("drifloon", ::DrifloonModel)
@@ -581,11 +573,8 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("beartic", ::BearticModel)
inbuilt("deino", ::DeinoModel)
inbuilt("zweilous", ::ZweilousModel)
inbuilt("hydreigon", ::HydreigonModel)
inbuilt("larvesta", ::LarvestaModel)
inbuilt("volcarona", ::VolcaronaModel)
inbuilt("fomantis", ::FomantisModel)
inbuilt("lurantis", ::LurantisModel)
inbuilt("dreepy", ::DreepyModel)
inbuilt("drakloak", ::DrakloakModel)
inbuilt("dragapult", ::DragapultModel)
@@ -596,9 +585,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("alomomola", ::AlomomolaModel)
inbuilt("ferroseed", ::FerroseedModel)
inbuilt("ferrothorn", ::FerrothornModel)
inbuilt("flabebe", ::FlabebeModel)
inbuilt("floette", ::FloetteModel)
inbuilt("florges", ::FlorgesModel)
inbuilt("carbink", ::CarbinkModel)
inbuilt("goomy", ::GoomyModel)
inbuilt("goomy_hisui_bias", ::GoomyHisuiBiasModel)
@@ -631,7 +617,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("rowlet_hisui_bias", ::RowletHisuiBiasModel)
inbuilt("dartrix_hisui_bias", ::DartrixHisuiBiasModel)
inbuilt("decidueye_hisuian", ::DecidueyeHisuianModel)
inbuilt("smeargle", ::SmeargleModel)
}
override fun conditionParser(json: JsonObject): List<(PosableState) -> Boolean> {
@@ -1,5 +0,0 @@
package com.cobblemon.mod.common.entity
interface AttackingEntity {
fun getAttackingEntityId(): Int?
}
@@ -34,7 +34,7 @@ class NPCBattleActor(
) : AIBattleActor(
gameId = npc.uuid,
pokemonList = party.toBattleTeam(),
battleAI = RandomBattleAI()
battleAI = StrongBattleAI(skill)
), EntityBackedBattleActor<NPCEntity> {
override val entity = npc
override val type = ActorType.NPC
@@ -45,7 +45,6 @@ import com.cobblemon.mod.common.battles.BattleBuilder
import com.cobblemon.mod.common.battles.BattleRegistry
import com.cobblemon.mod.common.block.entity.PokemonPastureBlockEntity
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.entity.AttackingEntity
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.generic.GenericBedrockEntity
@@ -132,7 +131,7 @@ open class PokemonEntity(
world: Level,
pokemon: Pokemon = Pokemon().apply { isClient = world.isClientSide },
type: EntityType<out PokemonEntity> = CobblemonEntities.POKEMON,
) : ShoulderRidingEntity(type, world), PosableEntity, Shearable, Schedulable, ScannableEntity, AttackingEntity {
) : ShoulderRidingEntity(type, world), PosableEntity, Shearable, Schedulable, ScannableEntity {
companion object {
@JvmStatic val SPECIES = SynchedEntityData.defineId(PokemonEntity::class.java, EntityDataSerializers.STRING)
@JvmStatic val NICKNAME = SynchedEntityData.defineId(PokemonEntity::class.java, EntityDataSerializers.COMPONENT)
@@ -1430,13 +1429,4 @@ open class PokemonEntity(
override fun resolveEntityScan(): LivingEntity {
return this
}
override fun getAttackingEntityId(): Int? {
if (pokemon.isClient) {
return (delegate as PokemonClientDelegate).targetedEntityId
}
else {
TODO("Currently there is nothing that needs to know this on the server")
}
}
}
@@ -1,19 +0,0 @@
package com.cobblemon.mod.common.net.messages.client.battle
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.network.RegistryFriendlyByteBuf
class BattleAppendTargetedEntityPacket(val sourceEntityId: Int, val targetedEntityId: Int) : NetworkPacket<BattleAppendTargetedEntityPacket> {
override val id = ID
override fun encode(buffer: RegistryFriendlyByteBuf) {
buffer.writeVarInt(sourceEntityId)
buffer.writeVarInt(targetedEntityId)
}
companion object {
val ID = cobblemonResource("battle_append_targeted")
fun decode(buffer: RegistryFriendlyByteBuf) = BattleAppendTargetedEntityPacket(buffer.readVarInt(), buffer.readVarInt())
}
}
@@ -120,9 +120,17 @@ class Species : ClientDataSynchronizer<Species>, ShowdownIdentifiable {
} else if (it.maleRatio == 1F) {
setOf(Gender.MALE)
} else {
setOf(Gender.FEMALE)
setOf(Gender.FEMALE, Gender.MALE)
}
}.toSet()
}.toSet() + (if (maleRatio == -1F) {
setOf(Gender.GENDERLESS)
} else if (maleRatio == 0F) {
setOf(Gender.FEMALE)
} else if (maleRatio == 1F) {
setOf(Gender.MALE)
} else {
setOf(Gender.FEMALE, Gender.MALE)
})
/**
* Contains the evolutions of this species.
@@ -2,7 +2,7 @@
"format_version": "1.8.0",
"animations": {
"animation.quickattack.actor": {
"animation_length": 1.75,
"animation_length": 2.5833,
"bones": {
"root_part": {
"position": {
@@ -16,7 +16,7 @@
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [0, 0, -30],
"post": [0, 0, -35],
"lerp_mode": "catmullrom"
},
"1.375": {
@@ -40,11 +40,16 @@
"1.0833": [1, 1, 1],
"1.125": {"pre": [1, 1, 1], "post": [0, 0, 0]},
"1.1667": {"pre": [0, 0, 0], "post": [1, 1, 1]},
"1.2083": {"pre": [1, 1, 1], "post": [0, 0, 0]},
"1.2083": {"pre": [1, 1, 1.8], "post": [0, 0, 0]},
"1.6667": {"pre": [0, 0, 0], "post": [1, 1, 1]}
}
}
},
"sound_effects": {
"0.75": {
"effect": "move.quickattack.actor"
}
},
"particle_effects": {
"0.75": {
"effect": "cobblemon:quickattack_dust"
@@ -46,6 +46,11 @@
"effect": "cobblemon:confused_bird6",
"type": "particle"
}
},
"event_sound": {
"sound_effect": {
"event_name": "status.nonvolatile.confused.actor"
}
}
},
"components": {
@@ -56,7 +61,7 @@
"active_time": 1.5
},
"minecraft:emitter_lifetime_events": {
"creation_event": ["event_bird2", "event_bird3", "event_bird4", "event_bird5", "event_bird6"]
"creation_event": ["event_bird2", "event_bird3", "event_bird4", "event_bird5", "event_bird6", "event_sound"]
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
@@ -1,58 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:sleep_bubbles",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/bubble"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 4,
"max_particles": 16
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.5
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-0.55,0.55)", "math.random(0.8,1)", "math.random(-0.55,0.55)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 4
},
"minecraft:particle_initial_speed": "1/3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 0.45, 0],
"linear_drag_coefficient": 0.85
},
"minecraft:particle_appearance_billboard": {
"size": ["math.clamp(v.particle_age*0.33/2, 0, 0.15)", "math.clamp(v.particle_age*0.33/2, 0, 0.15)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 16,
"texture_height": 48,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [0, 16],
"frames_per_second": 2,
"max_frame": 3,
"loop": true
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.5": "#CCFFFFFF",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -1,58 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:sleep_passive",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/sleep_passive"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 1.9,
"max_particles": 6
},
"minecraft:emitter_lifetime_looping": {
"active_time": 2.25
},
"minecraft:emitter_shape_point": {
"offset": [0, "q.entity_height*0.5", 0],
"direction": ["math.random(-2,-0.5)", 1, "math.random(-2,-0.5)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.25
},
"minecraft:particle_initial_speed": 0.5,
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 0.55, 0],
"linear_drag_coefficient": 0.5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.075+(v.particle_age*0.075)", "0.075+(v.particle_age*0.075)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 48,
"texture_height": 8,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [8, 0],
"frames_per_second": 5,
"max_frame": 6
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.61": "#ffffffff",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -1,57 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:sleep_zzz",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/sleep_zzz"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 2,
"max_particles": 9
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.5
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-0.25,0.25)", "math.random(0.8,1)", "math.random(-0.25,0.25)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 4
},
"minecraft:particle_initial_speed": "1/3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 0.45, 0],
"linear_drag_coefficient": 0.85
},
"minecraft:particle_appearance_billboard": {
"size": ["math.clamp(v.particle_age*0.33/2, 0, 0.25)", "math.clamp(v.particle_age*0.66/2, 0, 0.25)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 24,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 1,
"max_frame": 3
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.5": "#CCFFFFFF",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -16,14 +16,24 @@
"nodes": [0, 0.75, 0.94, 1, 1, 1, 1, 1, 0.93, 0.7, 0]
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "stat.debuff"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
"max_particles": 100
},
"minecraft:emitter_lifetime_looping": {
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.48,0.52)"
@@ -16,14 +16,24 @@
"nodes": [0, 0.75, 0.94, 1, 1, 1, 1, 1, 0.93, 0.7, 0]
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "stat.buff"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
"max_particles": 100
},
"minecraft:emitter_lifetime_looping": {
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.48,0.52)"
@@ -0,0 +1,54 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:heavy_collapse_lines",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/speedlines"
}
},
"curves": {
"variable.grow": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 15
},
"minecraft:emitter_lifetime_once": {
"active_time": 2
},
"minecraft:emitter_shape_disc": {
"radius": 1.5,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.2
},
"minecraft:particle_initial_speed": "math.random(0.5, 3)",
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": [0.2, "0.6 * variable.grow"],
"facing_camera_mode": "direction_y",
"uv": {
"texture_width": 16,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 48],
"size_UV": [16, 16],
"step_UV": [0, -16],
"frames_per_second": 5,
"max_frame": 3,
"stretch_to_lifetime": true
}
}
}
}
}
}
@@ -0,0 +1,57 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:heavy_collapse_smoke",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/smoke"
}
},
"curves": {
"variable.grow": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.5, 1]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 15
},
"minecraft:emitter_lifetime_once": {
"active_time": 2
},
"minecraft:emitter_shape_disc": {
"radius": 0.1,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(1,1.4)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random(0,360)"
},
"minecraft:particle_initial_speed": 10,
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.3 * variable.grow", "0.3 * variable.grow"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 16,
"texture_height": 96,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [0, 16],
"frames_per_second": 6,
"max_frame": 6
}
}
}
}
}
}
@@ -8,6 +8,13 @@
"texture": "textures/particles/psyring1"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "move.confusion.actor"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 8.5,
@@ -16,6 +23,9 @@
"minecraft:emitter_lifetime_looping": {
"active_time": 1.25
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {
"offset": ["math.random(-0.03,0.03)", "math.random(-0.03,0.03)", -0.3],
"direction": ["math.random(-1,1)", "math.random(-1,1)", -10]
@@ -8,6 +8,13 @@
"texture": "textures/particles/psyswirl"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "move.confusion.target"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 9,
@@ -16,6 +23,9 @@
"minecraft:emitter_lifetime_looping": {
"active_time": 0.6
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {
"offset": ["math.sin(v.emitter_age*1080)*0.03", "0.1+math.cos(v.emitter_age*1080)*0.03", -0.5],
"direction": [0, 0, -10]
@@ -8,6 +8,13 @@
"texture": "textures/particles/cotton"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "move.cottonguard.actor"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": "math.clamp(350 * math.clamp(q.entity_size,0.5,3), 10, 100)",
@@ -16,6 +23,9 @@
"minecraft:emitter_lifetime_once": {
"active_time": 2
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_sphere": {
"radius": "math.clamp(q.entity_scale,0.9,1) + (1.8 / math.clamp(q.entity_size,1,1.2))",
"surface_only": true,
@@ -10,20 +10,20 @@
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": "50*math.clamp(q.entity.entity_distance*0.3,1,2)",
"max_particles": 500
"spawn_rate": 50,
"max_particles": 25
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.45
},
"minecraft:emitter_shape_point": {
"offset": ["(math.random(-0.41,0.41)*2)*(0.2+(v.emitter_age*0.5))", "(math.random(-0.41,0.41)*2)*(0.2+(v.emitter_age*0.5))", "(q.entity.entity_distance*0.1)+math.random(-0.25,0.25)-v.emitter_age*(q.entity.entity_distance*2.25)"],
"offset": ["math.random(-0.41,0.41)*(v.emitter_age*3.5)", "math.random(-0.41,0.41)*(v.emitter_age*3.5)", "math.random(-0.35,0.35)-v.emitter_age*7"],
"direction": ["math.random(-0.45,0.45)*(v.emitter_age*3)", "math.random(-0.45,0.45)*(v.emitter_age*3)", "math.random(-2.05,-0.55)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(22,32)/100"
},
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*(q.entity.entity_distance/2.5)",
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*1.95",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 4, 0],
"linear_drag_coefficient": 3
@@ -10,14 +10,14 @@
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": "20*math.clamp(q.entity.entity_distance*0.2,1,2)",
"max_particles": 1000
"spawn_rate": 20,
"max_particles": 10
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.45
"active_time": 0.4
},
"minecraft:emitter_shape_point": {
"offset": ["math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.31,0.31)*(v.emitter_age*3)", "(q.entity.entity_distance*0.15)+math.random(-0.35,0.35)-v.emitter_age*(q.entity.entity_distance*2.25)"],
"offset": ["math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.35,0.35)-v.emitter_age*9"],
"direction": ["math.random(-0.25,0.25)*(v.emitter_age*2)", "math.random(-0.25,0.25)*(v.emitter_age*2)", "math.random(-2.05,-0.55)"]
},
"minecraft:particle_lifetime_expression": {
@@ -26,7 +26,7 @@
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*(q.entity.entity_distance/5)",
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*0.75",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 3, 0],
"linear_drag_coefficient": 2
@@ -2,7 +2,7 @@
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:ember_actor",
"identifier": "cobblemon:ember_froth",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/ember"
@@ -2,7 +2,7 @@
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:ember_target",
"identifier": "cobblemon:ember_impact",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/ember"
@@ -2,7 +2,7 @@
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:ember_targetlinger",
"identifier": "cobblemon:ember_impactlinger",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/ember"
@@ -16,14 +16,6 @@
"nodes": [0.2, 0.69, 0.26, 0.78, 0.26, 0.8, 0]
}
},
"events": {
"event_ambient": {
"sound_effect": {
"event_name": "q.sound"
},
"expression": "q.sound('particle.shiny_ambient',0.05,q.random(0.8,1.2))"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
@@ -16,13 +16,6 @@
"nodes": [1, 1, 1, 1, 1, 1, 0.5, 0]
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "cobblemon:move.watersport.actor"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 500,
@@ -345,8 +345,8 @@
"rotation": [0, 0, -45]
},
"tail": {
"rotation": ["-113+math.sin(q.anim_time*90*1-60)*3", -9, -20],
"position": [0, -1, -1.5]
"rotation": ["-110.125+math.sin(q.anim_time*90*1-60)*3", -3.73722, -2.61318],
"position": [-0.0336, -0.53986, -1.30727]
},
"tail2": {
"rotation": ["-0.5+math.sin(q.anim_time*90*1-150)*4", 48, 8]
@@ -405,7 +405,7 @@
]
},
"neck": {
"rotation": ["-4+math.sin(q.anim_time*90*4-140)*1", "math.sin(q.anim_time*90*2-90)", "math.cos(q.anim_time*90*2+30)*-3"]
"rotation": ["-4+math.sin(q.anim_time*90*4-140)*1", "math.sin(q.anim_time*90*2-90)*1", "math.cos(q.anim_time*90*2+30)*-3"]
},
"head": {
"rotation": [
@@ -1048,7 +1048,12 @@
"0.8333": [-10, 0, 0],
"1.1667": [0, 0, 0]
}
}
},
"sound_effects": {
"0.04": {
"effect": "pokemon.gyarados.cry"
}
},
}
},
"animation.gyarados.hawk_tuah": {
@@ -1184,7 +1184,8 @@
"post": [-299.46977, 66.96124, -26.23303],
"lerp_mode": "catmullrom"
},
"1.5833": [-275.63512, 68.99015, -14.01453]
"1.5833": [-275.63512, 68.99015, -14.01453],
"1.6667": [-275.64, 68.99, -14.01]
},
"position": {
"0.0": [0, 0, 0],
@@ -1759,30 +1760,54 @@
"mouth_closed": {
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [0, 0, 1]},
"0.25": {"pre": [0, 0, 1], "post": [0, 0, 0]},
"0.4167": {"pre": [0, 0, 0], "post": [0, 0, 1]},
"0.8333": {"pre": [0, 0, 1], "post": [0, 0, 0]}
"0.0833": {
"pre": [0, 0, 0],
"post": [0, 0, 1]
},
"0.25": {
"pre": [0, 0, 1],
"post": [0, 0, 0]
},
"0.4167": {
"pre": [0, 0, 0],
"post": [0, 0, 1]
},
"0.8333": {
"pre": [0, 0, 1],
"post": [0, 0, 0]
}
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.25": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.4167": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.8333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
"0.0833": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.25": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"0.4167": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.8333": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.tyrogue.cry"
"effect": "tyrogue_ambient"
}
}
},
"animation.tyrogue.blink": {
"animation_length": 0.16667,
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
@@ -1990,6 +2015,794 @@
"rotation": [30, 0, 0]
}
}
},
"animation.tyrogue.physical": {
"animation_length": 3,
"bones": {
"torso": {
"rotation": {
"0.0": [5.9139, 35.7328, 0.2853],
"0.0833": [-16.5861, 35.7328, -7.2147],
"0.25": [-21.59, 33.23, -14.71],
"0.4167": [-14.8, 33.23, -9.64],
"0.5417": [3.41, 33.23, 0.29],
"0.625": [1.95, 29.99, 0.17],
"0.7917": [0, 0, 0],
"1.0": [22.75, 0, 0],
"1.1667": {
"pre": [27.5, -27.5, -7.5],
"post": [27.5, -27.5, -7.5],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [15.92, -20.25, -8.25],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-22.5, 5.5, -17.5],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": [-32.09, 20.73, -18.49],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [-30, 20, -17.5],
"lerp_mode": "catmullrom"
},
"1.9583": {
"post": [-17.5, 20, -9.5],
"lerp_mode": "catmullrom"
},
"2.0833": {
"post": [0, 20, -2.5],
"lerp_mode": "catmullrom"
},
"2.2083": {
"post": [35, 20, -2.5],
"lerp_mode": "catmullrom"
},
"2.4583": {
"post": [12.5, 32.25, -2.5],
"lerp_mode": "catmullrom"
},
"2.625": {
"post": [7.8, 34.76, -1.11],
"lerp_mode": "catmullrom"
},
"2.75": {
"post": [10.9139, 35.7328, 0.2853],
"lerp_mode": "catmullrom"
},
"2.875": [6.91, 35.73, 0.29],
"2.9583": [5.91, 35.73, 0.29]
},
"position": {
"0.0": [0, -0.75, 0.25],
"1.1667": [0, -0.75, 0.25],
"1.2083": [0, -2.75, 0.25],
"1.2917": [0, 0, 0],
"1.875": [0, 0, 0],
"2.0833": [0, 1, 0],
"2.1667": {
"pre": [0, -1, 0],
"post": [0, -1, 0],
"lerp_mode": "catmullrom"
},
"2.2917": {
"post": [0, -2, 0],
"lerp_mode": "catmullrom"
},
"2.5833": {
"post": [0, 0.5, 0],
"lerp_mode": "catmullrom"
},
"2.75": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
},
"2.875": [0, -0.05, 0],
"3.0": [0, 0, 0]
},
"scale": {
"2.0": [1, 1, 1],
"2.0833": [0.9, 1.2, 0.9],
"2.1667": [1.1, 0.9, 1.1],
"2.25": [1, 1, 1]
}
},
"head": {
"rotation": {
"0.0": [-5.65274, -0.4703, 9.87528],
"0.0833": [36.85, -0.47, 4.88],
"0.3333": [4.35, -0.47, 9.88],
"0.4583": [-8.15, -0.47, 9.88],
"0.625": {
"pre": [-23.15, -0.47, 4.88],
"post": [-23.15, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-47.15, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [-21.65, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [6.85, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [6.85, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [0.35, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [-1.32, -8.05, 5.8],
"lerp_mode": "catmullrom"
},
"1.4583": [10.35, -12.72, 7.63],
"1.75": [15.35, -15.47, 9.88],
"1.9583": [7.85, -15.47, 9.88],
"2.0833": [-14.65, -15.47, 9.88],
"2.25": [2.85, -7.97, 9.88],
"2.5417": {
"pre": [-5.65274, -0.4703, 9.87528],
"post": [-5.65274, -0.4703, 9.87528],
"lerp_mode": "catmullrom"
},
"2.7083": {
"post": [-1.15, -0.47, 9.88],
"lerp_mode": "catmullrom"
},
"2.9167": [-5.65274, -0.4703, 9.87528],
"3.0": [-5.65, -0.47, 9.88]
}
},
"arm_left": {
"rotation": {
"0.0": [-19.36442, 18.8106, 15.0684],
"0.0833": [-19.36, -6.19, 55.07],
"0.2917": [-19.36, -6.19, -0.68],
"0.4167": [-16.11, -6.19, 12.32],
"0.5833": {
"pre": [10.64, -6.19, 18.82],
"post": [10.64, -6.19, 18.82],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [4.89, -0.94, 13.57],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-29.36, 41.31, -12.43],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [-74.36, 36.31, -29.93],
"lerp_mode": "catmullrom"
},
"0.9583": {
"post": [37.5, 0, 40],
"lerp_mode": "catmullrom"
},
"1.1667": [-4.09791, -49.48244, 56.12957],
"1.2083": {
"pre": [-55.00248, 38.28835, 27.36186],
"post": [-55.00248, 38.28835, 27.36186],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-119.91783, 53.71277, -12.17203],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-136.68852, 47.89655, -28.56183],
"lerp_mode": "catmullrom"
},
"1.7083": {
"post": [-134.98, 36.53, -29.7],
"lerp_mode": "catmullrom"
},
"1.9583": [-103.69, 22.9, -31.06],
"2.125": {
"pre": [-64.19, 22.9, -31.06],
"post": [-64.19, 22.9, -31.06],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, 0, 35.75],
"lerp_mode": "catmullrom"
},
"2.5": {
"post": [0, 0, 12.5],
"lerp_mode": "catmullrom"
},
"2.75": {
"post": [-19.36442, 18.8106, 24.8184],
"lerp_mode": "catmullrom"
},
"2.9167": [-19.36442, 18.8106, 15.0684],
"3.0": [-19.36, 18.81, 15.07]
},
"position": {
"0.0": [1, 0.25, 0],
"1.2083": [1, 0.25, 0],
"1.25": [1, -1.75, 0],
"1.375": [1.75, 0.75, -2],
"1.75": [1.5, 0.5, -1.75],
"2.0": [1, 0.25, 0]
},
"scale": {
"1.2083": [1, 1, 1],
"1.25": [1.1, 0.6, 2.1],
"1.3333": [1, 1, 1]
}
},
"arm_left2": {
"rotation": {
"0.0": [-3.80513, 47.3481, -3.9579],
"0.125": [-2.63905, 12.39857, 38.27576],
"0.375": [-15.20866, 14.6292, -41.18869],
"0.625": [0, 25, 27.5],
"0.8333": [-36.47, 33.6, 15.4],
"0.9583": [-2.35, 78.76, 8.14],
"1.1667": [-3.81, 47.35, -3.96],
"1.2083": [-3.81, -7.65, -3.96],
"1.25": [-3.81, 7.35, -3.96],
"1.2917": [-3.81, 64.85, -3.96],
"1.4583": [-3.81, 49.85, -3.96],
"1.625": [-3.81, 32.35, -3.96],
"2.0833": [-3.81, 4.85, -3.96],
"2.1667": [-3.81, 4.85, -26.46],
"2.25": [0, 27.5, 15],
"2.5": [0, 27.5, -12.5],
"2.7083": [-3.80513, 47.3481, -3.9579]
}
},
"hand_left": {
"rotation": [3.4786, 7.85247, 7.14539],
"scale": {
"0.0": [1, 1, 1],
"1.2083": [1, 1, 1],
"1.25": [1.3, 1, 1],
"1.2917": [1, 1, 1]
}
},
"finger_left": {
"rotation": [0, 0, 62.5]
},
"finger_left2": {
"rotation": [0, 0, 87.5]
},
"finger_left3": {
"rotation": [0, 5, 62.5]
},
"finger_left4": {
"rotation": [0, 0, 90]
},
"thumb_left": {
"rotation": [62.5, -22.5, 0]
},
"thumb_left2": {
"rotation": [85, 0, 0]
},
"arm_right": {
"rotation": {
"0.0": [-6.18433, 8.6995, -38.77726],
"0.0417": [14.82, -8.05, -38.78],
"0.1667": [23.82, -11.3, -38.78],
"0.375": [-11.18, -13.8, 33.72],
"0.5417": [-11.18, 6.24, -24.21],
"0.6667": [-11.18, 11.2, -38.78],
"0.7917": [-28.68, -33.8, 13.72],
"1.0": [0, 0, -67.5],
"1.2083": [0, 0, -67.5],
"1.3333": [0, 42.5, -22.5],
"1.6667": [0, 31.25, -22.5],
"1.9167": [0, 5, 10],
"2.125": {
"pre": [0, 42.5, 35],
"post": [0, 42.5, 35],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, -5, -47.5],
"lerp_mode": "catmullrom"
},
"2.5": {
"post": [0, -5, 0],
"lerp_mode": "catmullrom"
},
"2.75": [-6.18433, 14.1995, -41.52726],
"2.8333": [-6.18, 8.7, -38.78]
},
"position": [-1, 0.5, 0.25]
},
"arm_right2": {
"rotation": {
"0.0": [-26.00932, -74.4271, 26.44392],
"0.125": [0, -37.5, -55],
"0.4167": [0, -32.5, 30],
"0.625": [0, -32.5, -32.5],
"0.75": [0, -82.5, 0],
"1.2083": [0, -82.5, 0],
"1.3333": {
"pre": [0, -59, 0],
"post": [0, -59, 0],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [0, -37.7, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, -19, 0],
"lerp_mode": "catmullrom"
},
"1.75": [0, -12.5, 0],
"1.875": [0, -12.5, 0],
"2.0417": [-3.63, -14.89, 26.04],
"2.125": [-5.44536, -16.07844, 20.31224],
"2.2917": [-5.45, -16.08, -39.69],
"2.5417": [-5.45, -63.58, 17.81],
"2.75": [-26.00932, -74.4271, 26.44392]
}
},
"hand_right": {
"rotation": {
"0.0": [-1.2365, -11.28131, 3.66924],
"0.125": [-1.24, -11.28, -18.83],
"0.3333": [-1.24, -11.28, -46.33],
"0.5": [-1.24, -11.28, 23.67],
"0.7083": [-1.24, -33.78, -21.33],
"1.2083": [-1.24, -33.78, -21.33],
"1.3333": [-1.24, 3.97, 13.67],
"1.4583": [-1.24, 11.22, 21.17]
}
},
"finger_right": {
"rotation": [0, 0, -52.5]
},
"finger_right2": {
"rotation": [0, 0, -87.5]
},
"finger_right3": {
"rotation": [0, -7.5, -62.5]
},
"finger_right4": {
"rotation": [0, 0, -75]
},
"thumb_right": {
"rotation": [50, 22.5, 0]
},
"thumb_right2": {
"rotation": [70, 0, 0]
},
"leg_left": {
"rotation": {
"0.0": [-22.5, -17.5, 0],
"0.0417": [-17.5, -17.5, -20],
"0.0833": [-37.5, 0, 0],
"0.3333": [-67.5, 0, -27.5],
"0.5": [-60, 0, -27.5],
"0.5833": [-73.75, 0, -27.5],
"0.6667": [-62.5, 0, -27.5],
"0.7083": [-10, 0, -7.5],
"0.8333": [22.5, 0, -7.5],
"0.9583": [-52.5, 0, -7.5],
"1.0833": [-17.5, 0, -7.5],
"1.125": [-42.5, 0, -7.5],
"1.1667": [-50, 0, -7.5],
"1.2083": [0, 0, 0],
"1.3333": [-70, 0, 0],
"1.75": [-70, 0, 0],
"2.0417": [-22.5, 0, 0],
"2.125": [-55, 0, 0],
"2.2083": [-55, 0, 0],
"2.625": [-22.5, -17.5, 0],
"2.6667": [-27.5, -17.5, 0],
"2.8333": [-22.5, -17.5, 0]
},
"position": {
"0.0": [-0.5, -1.25, -1.75],
"0.5": [-0.5, -1.25, -1.75],
"0.6667": [0, -1, 0],
"1.0": [0, -1, 0],
"1.125": [0, 0.25, 0],
"1.1667": [0, 0.62, 0],
"1.2083": [0, -1, 0],
"1.2917": [0, -1, -1],
"1.5": [0, -0.5, -1.69],
"1.9583": [0, -0.5, -1.69],
"2.125": [0, -1.5, 0.25],
"2.625": [-0.5, -1.25, -1.75]
},
"scale": {
"1.2083": [1, 1, 1],
"1.25": [1, 1.4, 1],
"1.3333": [1, 1, 1]
}
},
"leg_right": {
"rotation": {
"0.0": [21.2486, 54.7128, 34.40719],
"0.0417": [13.75, 34.71, 49.41],
"0.0833": [-35, 35, -15],
"0.3333": [-10, 10, 5],
"0.4583": [-22.5, 30, 2.5],
"0.5833": [-32.5, 30, 2.5],
"0.6667": [-20, 30, 2.5],
"0.75": [0, 0, 12.5],
"0.9167": [-72.5, 0, 12.5],
"1.0833": [-72.5, 0, 12.5],
"1.1667": [-76.67, 0, 4.17],
"1.2083": [-30, 0, 0],
"1.25": [7.25, 0, 0],
"1.4167": [15, 0, 0],
"1.6667": [21, 0, 0],
"1.8333": [14.25, 0, 0],
"2.0": [-30, 0, 0],
"2.0833": [-30, 0, 0],
"2.125": [-17.5, 0, 0],
"2.1667": [-30, 0, 0],
"2.2083": [-31.11437, 15.44046, -3.36049],
"2.4583": [-53.61437, 40.44046, -3.36049],
"2.5417": [-13.96, 46.21, 13.57],
"2.5833": [21.2486, 54.7128, 34.40719],
"2.6667": [18.75, 54.71, 34.41],
"2.8333": [21.2486, 54.7128, 34.40719]
},
"position": {
"0.0": [0.25, -1.25, 1],
"0.4583": [0.25, -1.25, 1],
"0.5833": [0.25, -0.5, 1],
"0.75": [0, -1, 0],
"1.1667": [0, -1, 0],
"1.25": [0, -2.75, 0],
"1.875": [0, -2.75, 0],
"2.0833": [0, 0, 0],
"2.2917": [0.25, -1.25, 1]
},
"scale": {
"1.2083": [1, 1, 1],
"1.25": [1, 1.4, 1],
"1.3333": [1, 1, 1]
}
},
"neck": {
"rotation": {
"0.0": [14.78517, -32.75343, -8.18855],
"0.5833": [14.79, -32.75, -8.19],
"0.7917": [0, 0, 0],
"0.9167": [77.5, 0, 0],
"1.0": [73, 0, 0],
"1.125": [40, 0, 0],
"1.25": [17.5, 0, 0],
"1.5417": [7.5, 0, 0],
"1.7917": [5, 0, 0],
"2.2083": [17.5, 0, 0],
"2.3333": [27.5, -5.5, 3.25],
"2.5417": [17.14, -26.38, -7.34],
"2.75": [14.78517, -32.75343, -8.18855]
}
},
"leg_left3": {
"rotation": {
"0.0": [52.5193, -2.30959, -0.9572],
"0.0417": [80.02, -2.31, -0.96],
"0.0833": [-4.98, -2.31, -0.96],
"0.3333": [92.52, -2.31, -0.96],
"0.5": [45.02, -2.31, -0.96],
"0.5833": [63.77, -2.31, -0.96],
"0.6667": [62.52, -2.31, -0.96],
"0.7083": [15.02, -2.31, -0.96],
"0.8333": [40.02, -2.31, -0.96],
"0.9583": [80.02, -2.31, -0.96],
"1.1667": [75.02, -2.31, -0.96],
"1.2083": [0, 0, 0],
"1.3333": [85, 0, 0],
"1.75": [85, 0, 0],
"1.9583": [40, 0, 0],
"2.0833": [60, 0, 0],
"2.125": [80, 0, 0],
"2.2083": [2.5, 0, 0],
"2.625": [52.5193, -2.30959, -0.9572],
"2.6667": [65.02, -2.31, -0.96],
"2.8333": [52.5193, -2.30959, -0.9572]
},
"position": {
"0.0": [0, 0, 0],
"1.1667": [0, 0, 0],
"1.3333": [0, 0, 1.25],
"1.75": [0, 0, 1.25],
"1.9583": [0, 0, 0]
}
},
"foot_left": {
"rotation": {
"0.0": [-25, 0, 0],
"0.0417": [-40, 0, 0],
"0.0833": [72.5, 0, 0],
"0.2917": [68.75, 0, 0],
"0.5": [12.5, 0, 25],
"0.5833": [1.25, 0, 25],
"0.6667": [-20, 0, 25],
"0.7083": [30, 0, 0],
"0.8333": [55, 0, 0],
"1.0": [-27.5, 0, 0],
"1.0833": [-23.75, 0, 0],
"1.1667": [-35, 0, 0],
"1.2083": [-2.5, 0, 0],
"1.25": [52.5, 0, 0],
"1.7917": [52.5, 0, 0],
"2.0833": [27.5, 0, 0],
"2.125": [-17.5, 0, 0],
"2.2083": [80, 0, 0],
"2.625": [-25, 0, 0],
"2.6667": [-32.5, 0, 0]
},
"position": [0, 0, 0]
},
"leg_right3": {
"rotation": {
"0.0": [47.2578, 4.81281, -5.7589],
"0.0417": [79.76, 4.81, -5.76],
"0.0833": [0, 0, 0],
"0.3333": [47.5, 0, 0],
"0.4583": [60, 0, 0],
"0.5833": [67.5, 0, 0],
"0.6667": [57.5, 0, 0],
"0.75": [17.5, 0, 0],
"0.875": [65, 0, 0],
"1.0833": [65, 0, 0],
"1.1667": [95, 0, 0],
"1.2083": [50, 0, 0],
"1.25": [15, 0, 0],
"1.8333": [25, 0, 0],
"2.0833": [77.5, 0, 0],
"2.125": [62.5, 0, 0],
"2.1667": [47.5, 0, 0],
"2.2083": [5, 0, 0],
"2.3333": [46.25, 0, 0],
"2.4583": [50, 0, 0],
"2.5833": [47.2578, 4.81281, -5.7589],
"2.6667": [67.26, 4.81, -5.76],
"2.8333": [47.2578, 4.81281, -5.7589]
},
"position": {
"1.1667": [0, 0, 0],
"1.25": [0, -0.5, 0]
}
},
"foot_right": {
"rotation": {
"0.0": [-26, -6.2127, -10.86815],
"0.0417": [-38.5, 11.29, -35.87],
"0.0833": [47.5, 0, 0],
"0.3333": [17.5, 0, 0],
"0.4583": [-42.5, 0, 0],
"0.5833": [-45, 0, 0],
"0.6667": [-35, 0, -7.5],
"0.7083": [55, 0, -7.5],
"0.75": [60, 0, -7.5],
"1.0833": [0, 0, -7.5],
"1.1667": [-27.5, 0, -7.5],
"1.2083": [-27.5, 0, 0],
"1.25": [-10, 0, 0],
"1.2917": [64.53, 0, 0],
"1.9167": [62.5, 0, 0],
"2.0833": [2.5, 0, 0],
"2.125": [-35, 0, 0],
"2.1667": [-12.5, 0, 0],
"2.2083": [47.5, 0, 0],
"2.4583": [20, 0, 0],
"2.5833": [-26, -6.2127, -10.86815],
"2.6667": [-46, -6.21, -10.87],
"2.8333": [-26, -6.2127, -10.86815]
},
"position": [0, 0, 0]
},
"body": {
"rotation": {
"0.0": [0, 0, 0],
"0.0833": [-14.25, 0, 0],
"0.1667": {
"pre": [-20, 0, 0],
"post": [-20, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5833": [9, 0, 0],
"0.7083": [25.5, 0, 0],
"0.8333": {
"pre": [87, 0, 0],
"post": [87, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [245.48, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [349.11, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [369.65, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [367.595, 0, 0],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": [353.72, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [348.125, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [344.35, 0, 0],
"lerp_mode": "catmullrom"
},
"1.7083": {
"post": [342.5, 0, 0],
"lerp_mode": "catmullrom"
},
"2.125": [352.25, 0, 0],
"2.2917": [360, 0, 0],
"2.3333": {"pre": [360, 0, 0], "post": [0, 0, 0]}
},
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, -1.45, -1.33],
"0.125": [0, 4.65, 9.27],
"0.2083": {
"pre": [0, 6, 17.18],
"post": [0, 6, 17.18],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [0, 4.15, 21.82],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 24.25],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, -1.3, 25.65],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [0, -2, 25.25],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [0, -1.25, 22.03],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 4.75, 14.08],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [0, 3.76, 2.46],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0.25, -2.59],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0, -7.75, -8.85],
"lerp_mode": "catmullrom"
},
"1.0833": {
"post": [0, -3, -13],
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": [0, -3.25, -15.75],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 5.07, -19.03],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [0, 11.25, -19.25],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [0, 16, -17.65],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [0, 20, -15.25],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 21, -13.5],
"lerp_mode": "catmullrom"
},
"1.875": {
"post": [0, 19.75, -12.25],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 14.75, -12.25],
"lerp_mode": "catmullrom"
},
"2.125": {
"post": [0, -1.5, -12],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, 5.95, -5.4],
"lerp_mode": "catmullrom"
},
"2.375": {
"post": [0, 7.83, -2.25],
"lerp_mode": "catmullrom"
},
"2.5": {
"post": [0, 6.32, -0.73],
"lerp_mode": "catmullrom"
},
"2.5833": [0, 0.05, 0.05],
"2.6667": [0, -0.72, 0.03],
"2.8333": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.75": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.9583": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"2.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.75": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.9583": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"2.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"mouth_closed": {
"position": {
"0.0": [0, 0, 0],
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.9583": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.9583": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
}
}
}
}
@@ -33,6 +33,14 @@
}
}
}
},
"animation.trapinch.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.trapinch.cry"
}
}
}
}
}
@@ -66,7 +66,7 @@
"loop": true,
"bones": {
"arm_left": {
"rotation": [4.73109, "44.7383", 5.4642]
"rotation": [4.73109, 44.7383, 5.4642]
},
"arm_left2": {
"rotation": [14.26042, 43.07872, 13.16954]
@@ -78,11 +78,7 @@
"rotation": [-16.47474, 42.42028, -18.9149]
},
"body": {
"rotation": [
"Math.cos((query.anim_time + 0) * 90 * 6) * 3.0",
"Math.abs((query.anim_time + 0) * 90 * 12) * -0.5",
"Math.sin((query.anim_time + 0) * 90 * 6) * 3.6"
]
"rotation": ["Math.cos((query.anim_time + 0) * 90 * 6) * 3.0", "-math.mod(q.anim_time*2, 1)*360", "Math.sin((query.anim_time + 0) * 90 * 6) * 3.6"]
},
"arm_left3": {
"rotation": [4.30963, 29.7174, 8.64388]
@@ -96,7 +92,7 @@
"loop": true,
"bones": {
"arm_left": {
"rotation": [4.73109, "34.7383+math.abs(query)", 5.4642]
"rotation": [4.73109, 34.7383, 5.4642]
},
"arm_left2": {
"rotation": [14.26042, 33.0787, 13.16954]
@@ -108,11 +104,7 @@
"rotation": [-16.47474, 32.4203, -18.9149]
},
"body": {
"rotation": [
"Math.cos((query.anim_time + 0) * 90 * 3) * 3.0",
"Math.abs((query.anim_time + 0) * 90 * 6) * -0.5",
"Math.sin((query.anim_time + 0) * 90 * 3) * 3.6"
],
"rotation": ["Math.cos((query.anim_time + 0) * 90 * 3) * 3.0", "-math.mod(q.anim_time*1, 1)*360", "Math.sin((query.anim_time + 0) * 90 * 3) * 3.6"],
"position": [0, "0.25 + Math.cos((query.anim_time + 10.0) * 180) * 0.2", 0]
},
"arm_left3": {
@@ -20,13 +20,10 @@
"rotation": [-25.32307, -13.66763, -4.61603]
},
"hair": {
"rotation": [0, 0, 40]
},
"hair1": {
"rotation": [0.00122, -0.33931, 37.52313]
"rotation": [0, 0, 45]
},
"hair2": {
"rotation": [0.6574, 7.4713, 17.54292]
"rotation": [1.95155, 7.24305, 27.62353]
},
"hair3": {
"rotation": [8.61775, 34.05444, 17.64371]
@@ -120,16 +117,13 @@
"rotation": [-17.5, 0, 0]
},
"hair": {
"rotation": [0, 0, 45]
},
"hair1": {
"rotation": [0.01602, -0.33893, 35.02308]
"rotation": [0, 0, 47]
},
"hair2": {
"rotation": [0.6574, 7.4713, 17.54292]
"rotation": [0, 8.5, 38]
},
"hair3": {
"rotation": [8.61775, 34.05444, 17.64371]
"rotation": [9.69368, 25.60466, 13.24197]
},
"neck_fur_right2": {
"rotation": [0, 0, -30]
@@ -169,14 +163,6 @@
"0.25": {"pre": [0, 0, 0.17], "post": [0, 0, -1]},
"1.7917": {"pre": [0, 0, -1], "post": [0, 0, 0.17]}
}
},
"head_angle": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [-15, 0, 0],
"1.75": [-15, 0, 0],
"2.0": [0, 0, 0]
}
}
},
"sound_effects": {
@@ -186,6 +172,7 @@
}
},
"animation.absol.blink": {
"loop": true,
"animation_length": 0.1667,
"bones": {
"eyes_open": {
@@ -1,26 +1,44 @@
{
"format_version": "1.8.0",
"animations": {
"animation.lumineon.blink": {
"animation_length": 0.5,
"bones": {
"eyelid_right": {
"position": {
"0.0": [-1, 0, 0],
"0.125": {"pre": [-1, 0, 0], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [1, 0, 0],
"0.125": {"pre": [1, 0, 0], "post": [0, 0, 0]}
}
}
}
},
"animation.lumineon.water_idle": {
"loop": true,
"bones": {
"torso": {
"position": ["(math.cos(q.anim_time*90)*0.1)", "0.25+(math.cos(q.anim_time*45)*0.25)", 0]
"rotation": [0, "(math.cos(q.anim_time*90)*-2)", 0],
"position": ["(math.cos(q.anim_time*90-70)*-0.2)", "0.2+(math.cos(q.anim_time*90-30)*0.2)", "(math.cos(q.anim_time*90-90)*-0.3)"]
},
"torso_back": {
"rotation": [0, "(math.cos(q.anim_time*90)*7.5)", 0]
"rotation": [0, "(math.cos(q.anim_time*90)*4)", 0]
},
"tail": {
"rotation": ["(math.cos(q.anim_time*90)*-5)", 0, 0]
"rotation": ["(math.cos(q.anim_time*90)*-2)", "(math.cos(q.anim_time*90-90)*-3)", 0]
},
"tail2": {
"rotation": ["(math.cos(q.anim_time*180)*5)", 0, 0]
"rotation": ["(math.cos(q.anim_time*90-60)*-2)", "(math.cos(q.anim_time*90-150)*-3)", 0]
},
"flap_right": {
"rotation": ["15+(math.cos(q.anim_time*90)*5)", 0, 0]
"rotation": ["17.7936+(math.cos(q.anim_time*90)*-5)", 12.19908, "2.7472+(math.cos(q.anim_time*90-80)*-3)"]
},
"flap_left": {
"rotation": ["15+(math.cos(q.anim_time*90)*5)", 0, 0]
"rotation": ["12.6801+(math.cos(q.anim_time*90-10)*-5)", -12.39135, "-1.6575+(math.cos(q.anim_time*90-60)*-3)"]
},
"fin_right": {
"rotation": [0, "67.5+math.clamp(math.sin(q.anim_time*90)*5,-5,5)", 0]
@@ -29,23 +47,536 @@
"rotation": [0, "-67.5-math.clamp(math.sin(q.anim_time*90)*5,-5,5)", 0]
},
"fin_right2": {
"rotation": [0, "45+(math.sin(q.anim_time*90)*7.5)", 0]
"rotation": ["(math.sin(q.anim_time*90-80)*-8)", "45+(math.sin(q.anim_time*90-20)*7.5)", 0]
},
"fin_left2": {
"rotation": [0, "-45+(math.sin(q.anim_time*90)*-7.5)", 0]
"rotation": ["(math.sin(q.anim_time*90-100)*-8)", "-45+(math.sin(q.anim_time*90-40)*-7.5)", 0]
}
}
},
"animation.lumineon.water_swim": {
"loop": true,
"bones": {
"torso": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)-45)*-1.25", "math.sin(q.anim_time*90*2*(1/1.5)-90)*5", "math.sin(q.anim_time*90*2*(1/1.5)-35)*1.25"]
},
"fin_left3": {
"rotation": [0, -25, 0]
"torso_back": {
"rotation": [0, "math.sin(q.anim_time*90*2*(1/1.5)-150)*8", 0]
},
"fin_right3": {
"rotation": [0, 25, 0]
"tail": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)+25)*2", "math.sin(q.anim_time*90*2*(1/1.5)-210)*8", 0]
},
"tail2": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)-35)*2", "math.sin(q.anim_time*90*2*(1/1.5)-270)*8", 0]
},
"flap_right": {
"rotation": ["32.6639+math.sin(q.anim_time*90*4*(1/1.5)-80)*12", 16.2842, "11.0304+math.sin(q.anim_time*90*2*(1/1.5)-20)*10"]
},
"flap_left": {
"rotation": ["32.6639+math.sin(q.anim_time*90*4*(1/1.5)-100)*12", -16.2842, "-11.0304+math.sin(q.anim_time*90*2*(1/1.5)-10)*10"]
},
"fin_right": {
"rotation": ["9.9811+math.sin(q.anim_time*90*4*(1/1.5)-190)*5", "44.7824+math.sin(q.anim_time*90*4*(1/1.5)-100)*12", 7.05323]
},
"fin_left": {
"rotation": ["9.9811+math.sin(q.anim_time*90*4*(1/1.5)-190)*5", "-44.7824+math.sin(q.anim_time*90*4*(1/1.5)-100)*-12", -7.05323]
},
"fin_right2": {
"rotation": [
"-12.6636+math.sin(q.anim_time*90*4*(1/1.5)-180)*-8",
"29.94+math.sin(q.anim_time*90*4*(1/1.5)-90)*12",
"-0.5686+math.sin(q.anim_time*90*4*(1/1.5)-180)*1"
]
},
"fin_left2": {
"rotation": [
"-12.6636+math.sin(q.anim_time*90*4*(1/1.5)-180)*-8",
"-29.94+math.sin(q.anim_time*90*4*(1/1.5)-90)*-12",
"0.5686+math.sin(q.anim_time*90*4*(1/1.5)-180)*-1"
]
},
"body": {
"rotation": [0, 0, 0],
"position": ["math.sin(q.anim_time*90*2*(1/1.5))*1.3", "math.sin(q.anim_time*90*4*(1/1.5)+45)*-0.5", "math.sin(q.anim_time*90*4*(1/1.5)-90)*0.2"]
},
"tail3": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)-95)*2", "math.sin(q.anim_time*90*2*(1/1.5)-330)*8", 0]
}
}
},
"animation.lumineon.seafloor_idle": {
"loop": true,
"animation_length": 2,
"bones": {
"body": {
"rotation": ["-22.5+math.sin(q.anim_time*90*2)*1", 0, 0],
"position": [0, 1.875, 0]
},
"lip": {
"rotation": ["math.sin(q.anim_time*90*2-60)*3", 0, 0]
},
"torso_back": {
"rotation": ["12.5+math.sin(q.anim_time*90*2)*-3", 0, 0]
},
"tail": {
"rotation": [-22.5, 0, 0]
},
"tail2": {
"rotation": [15, 0, 0]
},
"tail3": {
"rotation": [10, 0, 0]
},
"flap_right": {
"rotation": ["-78.7512+math.sin(q.anim_time*90*2)*-1", "23.0673-math.sin(q.anim_time*90*2)*0.25", "-9.4585-math.sin(q.anim_time*90*2)*-0.05"]
},
"flap_left": {
"rotation": ["-78.7512+math.sin(q.anim_time*90*2)*-1", "-23.0673+math.sin(q.anim_time*90*2)*0.25", "9.4585+math.sin(q.anim_time*90*2)*-0.05"]
},
"fin_right": {
"rotation": {
"0.0": {
"post": [2.35048, 52.83865, 12.37047],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [2.35048, 52.83865, 11.3705],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [2.35048, 56.8387, 16.3705],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [2.35048, 52.83865, 12.37047],
"lerp_mode": "catmullrom"
}
}
},
"fin_left": {
"rotation": {
"0.0": {
"post": [2.35048, -52.83865, -12.37047],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [2.35048, -52.83865, -11.3705],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-1.47815, -56.85774, -11.79822],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [2.35048, -52.83865, -12.37047],
"lerp_mode": "catmullrom"
}
}
},
"fin_right2": {
"rotation": [10.51385, "24.8984+math.sin(q.anim_time*90*2-60)*-4", 2.3273]
},
"fin_left2": {
"rotation": [5, "-27.5+math.sin(q.anim_time*90*2-60)*4", 0]
},
"torso": {
"rotation": [19, 0, 0]
}
}
},
"animation.lumineon.seafloor_walk": {
"loop": true,
"animation_length": 1.5,
"bones": {
"body": {
"rotation": {
"0.0": {
"post": [-21.85, 2.2, 0],
"lerp_mode": "catmullrom"
},
"0.1875": {
"post": [-22.5, 1.3, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-20, -2.2, 0],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [-22.5, -2.2, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-20, 1.9, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-21.85, 2.2, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 2, 0],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [0, 2.5, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 2, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 2.5, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 2, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso_back": {
"rotation": ["2.5+math.sin(q.anim_time*90*8*(1/1.5)-200)*3", 0, 0]
},
"tail": {
"rotation": ["-10+math.sin(q.anim_time*90*8*(1/1.5)-260)*3", 0, 0]
},
"tail2": {
"rotation": ["2.5+math.sin(q.anim_time*90*8*(1/1.5)-320)*3", 0, 0]
},
"tail3": {
"rotation": ["5+math.sin(q.anim_time*90*8*(1/1.5)-380)*6", 0, 0]
},
"flap_right": {
"rotation": {
"0.0": {
"post": [-63.46725, 38.7556, -1.05484],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-73.12933, 13.5283, -0.67602],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-73.46599, 5.0578, -12.73513],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-67.58456, 24.83057, -9.18708],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-63.46725, 38.7556, -1.05484],
"lerp_mode": "catmullrom"
}
}
},
"flap_left": {
"rotation": {
"0.0": {
"post": [-73.46599, -5.0578, 12.73513],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-67.58456, -24.83057, 9.18708],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-63.46725, -38.7556, 1.05484],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-73.12933, -13.5283, 0.67602],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-73.46599, -5.0578, 12.73513],
"lerp_mode": "catmullrom"
}
}
},
"fin_right": {
"rotation": [2.35048, "52.8387+math.sin(q.anim_time*90*8*(1/1.5)-90)*3", "12.3705+math.sin(q.anim_time*90*8*(1/1.5)-190)*3"]
},
"fin_left": {
"rotation": [2.35048, "-52.8387+math.sin(q.anim_time*90*8*(1/1.5)-90)*-3", "-12.3705+math.sin(q.anim_time*90*8*(1/1.5)-190)*-3"]
},
"fin_right2": {
"rotation": [-10, "27.5+math.sin(q.anim_time*90*8*(1/1.5)-110)*3", "-(math.sin(q.anim_time*90*8*(1/1.5)-210)*-3)"]
},
"fin_left2": {
"rotation": [-10, "-27.5+math.sin(q.anim_time*90*8*(1/1.5)-110)*-3", "math.sin(q.anim_time*90*8*(1/1.5)-210)*-3"]
},
"torso": {
"rotation": [15, 0, 0]
}
}
},
"animation.lumineon.ground_idle": {
"loop": true,
"animation_length": 1,
"bones": {
"flap_right": {
"rotation": ["92.5+math.sin(q.anim_time*90*8-50)*-5", 0, 0]
},
"flap_left": {
"rotation": ["92.5+math.sin(q.anim_time*90*8-50)*-5", 0, 0]
},
"torso_back": {
"rotation": ["-10+math.sin(q.anim_time*90*8-30)*-2", 0, 0]
},
"tail": {
"rotation": ["8.06+math.sin(q.anim_time*90*8-90)*-2", 0, 0]
},
"tail2": {
"rotation": ["22.86+math.sin(q.anim_time*90*8-150)*-2", 0, 0]
},
"tail3": {
"rotation": ["11+math.sin(q.anim_time*90*8-210)*-8", 0, 0]
},
"fin_right": {
"rotation": [-7.74, "57.7+math.sin(q.anim_time*90*4-40)*-5", "1.89+math.sin(q.anim_time*90*8-30)*-2"]
},
"fin_left": {
"rotation": [-7.74, "-57.7+math.sin(q.anim_time*90*4-40)*-5", "-1.89+math.sin(q.anim_time*90*8-30)*2"]
},
"fin_right2": {
"rotation": [-10.86503, "24.9532+math.sin(q.anim_time*90*4-50)*-5", "-11.1834+math.sin(q.anim_time*90*8-50)*-3"]
},
"fin_left2": {
"rotation": [-10.86503, "-24.9532+math.sin(q.anim_time*90*4-50)*-5", "11.1834+math.sin(q.anim_time*90*8-50)*3"]
},
"body": {
"rotation": ["math.sin(q.anim_time*90*8-30)*-2", "math.sin(q.anim_time*90*4-50)*1.5", "math.sin(q.anim_time*90*4-50)*1"],
"position": [0, "math.sqrt(math.pow(math.sin(q.anim_time*90*4), 2))*0.7", 0]
}
}
},
"animation.lumineon.ground_walk": {
"loop": true,
"animation_length": 0.5417,
"bones": {
"flap_right": {
"rotation": {
"0.0": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [75, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [97.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"flap_left": {
"rotation": {
"0.0": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [75, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [97.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso_back": {
"rotation": {
"0.0": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"tail": {
"rotation": {
"0.0": {
"post": [-4.44, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-4.44, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"tail2": {
"rotation": ["7.86+math.sin(q.anim_time*90*4*(1/0.54)-60)*-10", 0, 0]
},
"tail3": {
"rotation": ["math.sin(q.anim_time*90*4*(1/0.54)-90)*-10", 0, 0]
},
"fin_right": {
"rotation": {
"0.0": {
"post": [-7.5, 57.5, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-14.63636, 55.13038, -17.56084],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [5.52853, 56.79177, 18.46626],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-7.5, 57.5, 0],
"lerp_mode": "catmullrom"
}
}
},
"fin_left": {
"rotation": {
"0.0": {
"post": [-7.5, -57.5, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-14.63636, -55.13038, 17.56084],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [5.52853, -56.79177, -18.46626],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-7.5, -57.5, 0],
"lerp_mode": "catmullrom"
}
}
},
"fin_right2": {
"rotation": {
"0.0": {
"post": [-6.24039, 26.06542, -4.43672],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-24.22809, 26.43772, -16.57841],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0.95196, 31.82595, -0.20334],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-6.24039, 26.06542, -4.43672],
"lerp_mode": "catmullrom"
}
}
},
"fin_left2": {
"rotation": {
"0.0": {
"post": [-6.24039, -26.06542, 4.43672],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-24.22809, -26.43772, 16.57841],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0.95196, -31.82595, 0.20334],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-6.24039, -26.06542, 4.43672],
"lerp_mode": "catmullrom"
}
}
},
"body": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [7.45, 0, 2],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, -2],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [0, 3, -1],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [0, 3, -1.025],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, -0.2],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
}
},
"animation.lumineon.cry": {
"animation_length": 1.2,
"animation_length": 2.5,
"sound_effects": {
"0.04": {
"0.0": {
"effect": "pokemon.lumineon.cry"
}
}
@@ -1,26 +1,340 @@
{
"format_version": "1.8.0",
"animations": {
"animation.magnezone.ground_idle": {
"animation.magnezone.air_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [5, 0, 0],
"position": [0, 1, 0]
"rotation": [0, "0 - Math.Sin(((q.anim_time + 0.1) * 180 * 0.5) * 1) * 5", "Math.Sin(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 1.5", "7+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 1.5", 0]
},
"magnet_back_rotation": {
"rotation": [-42.5, 0, 0]
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.5, 1)*360"],
"position": [-0.1105, -3.26306, -1.09075]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"antenna": {
"rotation": [0, 0, "Math.Cos(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"]
},
"magnet_left_rotation": {
"rotation": [0, 0, "150 - math.mod(q.anim_time*0.5, 1)*360"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 - math.mod(q.anim_time*0.5, 1)*360", 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.5, 1)*360"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + math.mod(q.anim_time*0.5, 1)*360", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
}
}
},
"animation.magnezone.air_fly": {
"loop": true,
"bones": {
"body": {
"rotation": [15, "0 - Math.Sin(((q.anim_time + 0.1) * 180 * 0.5) * 1) * 5", "Math.Sin(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 1.5", "7+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 1.5", 0]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.75, 1)*360"],
"position": [-0.1105, -3.26306, -1.09075]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"magnet_left_rotation": {
"rotation": [0, 0, "150 - math.mod(q.anim_time*0.75, 1)*360"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 - math.mod(q.anim_time*0.75, 1)*360", 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.75, 1)*360"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + math.mod(q.anim_time*0.75, 1)*360", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
},
"antenna": {
"rotation": [0, 0, "Math.Cos(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"]
}
}
},
"animation.magnezone.faint": {
"loop": true,
"animation_length": 3,
"bones": {
"body": {
"rotation": {
"0.0": [0, 0, 0],
"0.0833": [6, 0, -1],
"0.4167": [-7.5, 0, -5],
"0.5833": [-7.5, 0, -7.5],
"0.7083": [-3.75, 0, -10],
"0.9167": [0, 0, -7.5],
"1.125": [2.5, 0, 2.5],
"1.3333": [-5, 0, 5],
"1.5": [-10, 0, 2.5],
"1.75": [-10, 2.5, -5],
"2.0": [-10, 2.5, -7.5],
"2.0417": [-10, 2.5, -7.5],
"2.0833": [-10, 2.5, -7.5],
"2.125": [15, 2.5, 0],
"2.1667": [-7.5, 2.5, 0],
"2.2083": [0, 2.5, 0]
},
"position": {
"0.0": [0, 1, 0],
"0.0417": [0, 0, 0],
"0.0833": [0, 2, 0],
"0.125": [0, 2.33, 0],
"0.1667": [0, 1.17, 0],
"0.2083": [0, 2, 0],
"0.2917": [0, 2.5, 0],
"0.3333": [0, 1.75, 0],
"0.4167": [0, 3, 0],
"0.5833": [0, 6, 0],
"0.7083": [0, 7, 0],
"1.125": [0, 9, 0],
"1.1667": [0, 9, 0],
"1.2083": [0, 10, 0],
"1.9583": [0, 10, 0],
"2.0417": [0, 7, 0],
"2.0833": [0, 5, 0],
"2.125": [0, -3, -3],
"2.1667": [0, -4, -3]
}
},
"magnet_back_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"0.7083": [0, 0, 400],
"0.75": [0, 0, 420],
"0.7917": [0, 0, 395],
"1.2083": [0, 0, -215],
"1.5": [0, 0, -317.5],
"1.7083": [0, 0, -340],
"2.0": [0, 0, -350],
"2.125": [-5, 0, -357.5],
"2.1667": [37.5, 0, -357.5],
"2.2083": [27.5, 0, -360]
},
"position": [-0.1105, -3.26306, -1.09075]
},
"magnet_left": {
"rotation": [30, 0, 0],
"position": [0, 0, 0]
},
"magnet_right": {
"rotation": {
"0.0": [30, 0, 0],
"0.1667": [7.5, 0, 0],
"1.0": [30, 0, 0],
"2.0833": [30, 0, 0]
},
"position": {
"0.0": [0, 0, 0],
"2.0833": [0, 0, 0],
"2.125": [0, 0.96593, 0.25882]
}
},
"antenna": {
"rotation": {
"0.0": [0, 0, 0],
"0.0417": [-7.5, 0, 0],
"0.125": [10, 0, 0],
"0.2083": [0, 0, 0],
"2.0833": [0, 0, 0],
"2.125": [-27.5, 0, 0],
"2.1667": [32.5, 0, 0],
"2.2083": [-20, 0, 0],
"2.25": [17.5, 0, 0],
"2.2917": [-5, 0, 0],
"2.3333": [0, 0, 0]
}
},
"magnet_left_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"0.5": [0, 0, 295],
"0.6667": [0, 0, 315],
"0.75": [0, 0, 325],
"0.875": [0, 0, 325],
"0.9583": [0, 0, 315],
"1.0417": [0, 0, 270],
"1.3333": [0, 0, 142.5],
"1.375": [0, 0, 127.5],
"1.4167": [0, 0, 142.5],
"1.4583": [0, 0, 140],
"1.75": [0, 0, 167.5],
"2.0": [0, 0, 172.5],
"2.0417": [0, 0, 172.5],
"2.0833": [0, 0, 172.5],
"2.125": [40, 0, 187.5],
"2.1667": [10, 0, 180],
"2.2083": [27.5, 0, 180]
},
"position": {
"0.0": [0.31051, -2.99661, -0.96119],
"2.1667": [0.31, -2.13397, -0.46]
}
},
"nail_left_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"1.5": [0, 832.5, 0],
"1.5417": [0, 847.5, 0],
"1.5833": [0, 840, 0],
"1.625": [0, 860, 0],
"1.6667": [0, 852.5, 0]
},
"position": {
"0.0": [0, 0, 0],
"1.5833": [0, -3, 0]
}
},
"magnet_right_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"2.0": [0, 0, -175],
"2.0417": [0, 0, -175],
"2.0833": [0, 0, -175],
"2.125": [45, 5, -180],
"2.1667": [17.5, -5, -182.5],
"2.2083": [30, -5, -182.5]
},
"position": {
"0.0": [-0.53151, -2.99661, -0.96119],
"2.125": [-0.56683, -3.90222, -1.38969],
"2.1667": [-0.57, -3.46699, -1.14]
}
},
"nail_right_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"1.7917": [0, -840, 0]
},
"position": {
"0.0": [0, 0, 0],
"1.7917": [0, -3, 0]
}
},
"magnet_back": {
"rotation": {
"0.0": [-42.5, 0, 0],
"0.0833": [-10, 0, 0],
"1.25": [-30, 0, 0]
},
"position": {
"0.0": [0, -0.99619, -0.08716],
"0.1667": [0.0349, -0.00166, -0.04423]
}
},
"red_light": {
"position": {
"0.0": [0, 0, 0],
"0.4583": [0, 0, 0],
"0.5": [2, 0, 0],
"1.1667": [2, 0, 0],
"1.2083": [-2, 0, 0.015],
"2.0833": [-2, 0, 0.015],
"2.125": [0, -1.5, 0.015],
"2.1667": [0, -0.5, 0.015]
}
},
"pupil_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.5417": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.75": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.7917": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"2.0833": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.125": {"pre": [0, 0, 0], "post": [0, 0, 0.1]}
}
},
"pupil_closed_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.5417": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.75": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.7917": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"2.0833": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.125": {"pre": [0, 0, 0], "post": [0, 0, -0.1]}
}
},
"pupil_right": {
"position": {
"0.0": [0, 0, 0],
"0.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"0.5": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"0.5417": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"1.9583": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.0": {"pre": [0, 0, 0], "post": [0, 0, 0.1]}
}
},
"pupil_closed_right": {
"position": {
"0.0": [0, 0, 0],
"0.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.5": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.5417": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"1.9583": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.0": {"pre": [0, 0, 0], "post": [0, 0, -0.1]}
}
}
},
"particle_effects": {
"0.5": {
"effect": "metal_sparks",
"locator": "sparks1"
},
"0.75": {
"effect": "metal_sparks",
"locator": "sparks2"
},
"1.5": {
"effect": "metal_sparks",
"locator": "sparks3"
},
"2.125": [
{
"effect": "heavy_collapse_smoke",
"locator": "collapse"
},
{
"effect": "heavy_collapse_lines",
"locator": "collapse"
}
]
}
},
"animation.magnezone.blink": {
"animation_length": 0.20833,
"animation_length": 0.2083,
"bones": {
"pupil_left": {
"position": {
@@ -52,6 +366,110 @@
}
}
},
"animation.magnezone.sleep": {
"loop": true,
"bones": {
"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]
},
"body": {
"rotation": [
"-15+math.sin((q.anim_time - 0.2) * 90) * 3",
"math.sin((q.anim_time - 0.5) * 90) * 3",
"Math.Sin(((q.anim_time + 0.4) * 90 * 0.5) * 1) * 2"
],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 0", "1+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 0", 0]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_left_rotation": {
"rotation": [0, 0, "math.sin(q.anim_time * 90) * 20"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 - math.mod(q.anim_time*0.25, 1)*360", 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + math.mod(q.anim_time*0.25, 1)*360", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"]
}
}
},
"animation.magnezone.sleep2": {
"loop": true,
"bones": {
"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]
},
"body": {
"rotation": [
"-15+math.sin((q.anim_time - 0.2) * 90) * 3",
"math.sin((q.anim_time - 0.5) * 90) * 3",
"Math.Sin(((q.anim_time + 0.4) * 90 * 0.5) * 1) * 2"
],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 0", "1+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 0", 0]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_left_rotation": {
"rotation": [0, 0, "math.sin(q.anim_time * 90) * 20"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 + q.anim_time * - 90", 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + q.anim_time * 90", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"]
}
}
},
"animation.magnezone.cry": {
"animation_length": 1.2,
"sound_effects": {
@@ -5,7 +5,7 @@
"loop": true,
"bones": {
"body": {
"position": [0, -5, 0]
"position": [0, -5, -6]
},
"neck": {
"rotation": [37.5, 10, 0.00001]
@@ -120,14 +120,200 @@
},
"vine_right": {
"scale": 0
},
"vines": {
"scale": 0
}
}
},
"animation.serperior.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.serperior.cry"
"animation.serperior.ground_walk": {
"loop": true,
"bones": {
"body": {
"position": [0, -3, "-13+Math.cos((query.anim_time) * 90 * 2) * 1"]
},
"neck": {
"rotation": [17.5, 0, 0]
},
"neck2": {
"rotation": [-35, 0, 0]
},
"arm_left": {
"rotation": [24.51604, -45.05075, 57.20219]
},
"arm_left2": {
"rotation": [-0.21865, -4.99523, 12.50954]
},
"arm_left3": {
"rotation": [0, 0, 52.5]
},
"arm_right": {
"rotation": [24.51604, 45.05075, -57.20219]
},
"arm_right2": {
"rotation": [-0.21865, 4.99523, -12.50954]
},
"arm_right3": {
"rotation": [0, 0, -52.5]
},
"neck3": {
"rotation": [-2.5, 0, 0]
},
"neck_leaves": {
"rotation": [-7.5, 0, 0]
},
"neck4": {
"rotation": [20, 0, 0]
},
"head_angle": {
"rotation": [17.5, 0, 0]
},
"ear_left": {
"rotation": [-5, 0, 7.5]
},
"ear_left2": {
"rotation": [-7.5, 0, 0]
},
"ear_left3": {
"rotation": [-7.5, 0, 0]
},
"ear_right": {
"rotation": [-5, 0, -7.5]
},
"ear_right2": {
"rotation": [-7.5, 0, 0]
},
"ear_right3": {
"rotation": [-7.5, 0, 0]
},
"vines": {
"scale": 0
},
"segment1": {
"rotation": [70, 0, "math.sin(q.anim_time*90*4+50)*2"]
},
"segment2": {
"rotation": [20, 0, "math.sin(q.anim_time*90*4)*3"]
},
"segment3": {
"rotation": [-2.5, 0, "math.sin(q.anim_time*90*4-60)*4"]
},
"segment4": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-120)*6"]
},
"segment5": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-180)*10"]
},
"segment6": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-240)*10"]
},
"segment7": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-360)*8"]
},
"segment8": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-420)*5"]
},
"segment9": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-460)*5"]
}
}
},
"animation.serperior.sleep": {
"loop": true,
"bones": {
"body": {
"rotation": [90, 50, 0],
"position": [-4, 0, 9]
},
"neck": {
"rotation": [-7.5, 0, 30]
},
"neck2": {
"rotation": [5, 0, 47.5]
},
"arm_left": {
"rotation": [0, 10, 67.5]
},
"arm_left2": {
"rotation": [0, 0, -25]
},
"arm_right": {
"rotation": [-10, -25, -85]
},
"arm_right2": {
"rotation": [7.5, 0, 0]
},
"neck3": {
"rotation": [-11.57518, 4.75113, 22.01816]
},
"neck_leave_left": {
"rotation": [0, 0, 17.5]
},
"neck4": {
"rotation": [0, 0, 20]
},
"head_angle": {
"rotation": [-73.59513, -11.73845, 4.25916]
},
"eyelid_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_right": {
"position": [-0.1, 0, -0.1]
},
"ear_left": {
"rotation": [22.5, 0, 12.5]
},
"ear_left2": {
"rotation": [15, 0, 0]
},
"ear_left3": {
"rotation": [17.5, 0, 0]
},
"ear_right": {
"rotation": [0, 0, -20]
},
"ear_right2": {
"rotation": [-5, 0, 0]
},
"ear_right3": {
"rotation": [-10, 0, 0]
},
"vines": {
"scale": 0
},
"segment1": {
"rotation": [-12.5, 0, -15]
},
"segment2": {
"rotation": [2.30991, 0.95645, -52.48072]
},
"segment3": {
"rotation": [0, 10, -45]
},
"segment4": {
"rotation": [0, 0, -47.5]
},
"segment5": {
"rotation": [0, 0, -47.5]
},
"segment6": {
"rotation": [0, 0, -32.5]
},
"segment7": {
"rotation": [0, 0, -17.5]
},
"segment8": {
"rotation": [0, 0, -35]
},
"tail_leaf2": {
"rotation": [0, -12.5, 0]
},
"segment9": {
"rotation": [0, 0, -42.5]
},
"tail_leaf3": {
"rotation": [0, -10, 0]
}
}
},
@@ -211,7 +397,7 @@
}
}
},
"animation.serperior.recoil": {
"animation.serperior.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
@@ -244,6 +430,14 @@
"position": [0, 0, 2.5]
}
}
},
"animation.serperior.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.serperior.cry"
}
}
}
}
}
@@ -1,6 +1,67 @@
{
"format_version": "1.8.0",
"animations": {
"animation.liepard.ground_idle": {
"loop": true,
"bones": {
"mouth_closed_emote2": {
"position": [0, 0, -0.1]
},
"leg_front_left": {
"rotation": [-10, 0, 0],
"position": [0, -1, 0]
},
"leg_front_left2": {
"rotation": [-10, 0, 0]
},
"foot_front_left": {
"rotation": [20, 0, 0]
},
"leg_front_right": {
"rotation": [-10, 0, 0],
"position": [0, -1, 0]
},
"leg_front_right2": {
"rotation": [-10, 0, 0]
},
"foot_front_right": {
"rotation": [20, 0, 0]
},
"leg_back_left": {
"rotation": [10.04065, -7.35819, -1.95581]
},
"leg_back_left2": {
"rotation": [-4.95744, -0.0287, 0.6518]
},
"foot_back_left": {
"rotation": [-4.83501, -0.49682, 1.19453]
},
"leg_back_right": {
"rotation": [10.04065, 7.35819, 1.95581]
},
"leg_back_right2": {
"rotation": [-4.95744, 0.0287, -0.6518]
},
"foot_back_right": {
"rotation": [-4.83501, 0.49682, -1.19453]
},
"tail": {
"rotation": [22.5, 0, 0]
},
"tail2": {
"rotation": [50, 0, 0]
},
"tail3": {
"rotation": [80, 0, 0]
},
"tail5": {
"rotation": [-5, 0, 0]
},
"tail4": {
"rotation": [-102.5, 0, 0]
}
}
},
"animation.liepard.pose": {
"loop": true,
"bones": {
@@ -160,45 +221,231 @@
"mouth_closed": {
"position": {
"0.125": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"0.625": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"0.6667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.625": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0.1]
},
"0.6667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"mouth_open": {
"position": {
"0.125": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.625": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.6667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.625": {
"pre": [0, 0, -0.1],
"post": [0, 0, -0.1]
},
"0.6667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"mouth_open_emote": {
"rotation": {
"0.125": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.625": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0, 0, 0]}
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, 0]
},
"0.625": {
"pre": [0, 0, 0],
"post": [0, 0, 0]
},
"0.6667": {
"pre": [0, 0, 0],
"post": [0, 0, 0]
}
},
"position": {
"0.125": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, -0.1, 0]},
"0.625": {"pre": [0, -0.1, 0], "post": [0, -0.1, 0]},
"0.6667": {"pre": [0, -0.1, 0], "post": [0, 0, 0]}
"0.1667": {
"pre": [0, 0, 0],
"post": [0, -0.1, 0]
},
"0.625": {
"pre": [0, -0.1, 0],
"post": [0, -0.1, 0]
},
"0.6667": {
"pre": [0, -0.1, 0],
"post": [0, 0, 0]
}
}
},
"mouth_open_emote2": {
"position": {
"0.125": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.625": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.6667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.625": {
"pre": [0, 0, -0.1],
"post": [0, 0, -0.1]
},
"0.6667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.liepard.cry"
"effect": "pokemon.purrloin.cry"
}
}
},
"animation.liepard.mouth_open": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
}
}
},
"animation.liepard.smile": {
"loop": true,
"bones": {
"mouth_closed_emote2": {
"position": [0, 0, -0.1]
}
}
},
"animation.liepard.happy": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
},
"mouth_open_emote2": {
"position": [0, 0, -0.1]
},
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.liepard.sad": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0.3, 0]
},
"mouth_closed_emote": {
"position": [0, -0.5, 0]
},
"eye_emote_left": {
"position": [0, 0.5, 0],
"scale": [1, 2, 1]
},
"eye_emote_left2": {
"position": [0, -1, 0]
},
"eye_emote_right": {
"position": [0, 0.5, 0],
"scale": [1, 2, 1]
},
"eye_emote_right2": {
"position": [0, -1, 0]
}
}
},
"animation.liepard.shocked": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
},
"mouth_open_emote2": {
"position": [0, -0.5, -0.14]
},
"eye_emote_left": {
"position": [0.5, 0.5, 0],
"scale": [2, 2, 1]
},
"eye_emote_left2": {
"position": [0, -0.5, 0],
"scale": [1, 2, 1]
},
"iris_left": {
"position": [-0.25, 0, 0],
"scale": [0.5, 0.6, 1]
},
"pupil_left": {
"scale": [1, 0.7, 1]
},
"eye_emote_right": {
"position": [-0.5, 0.5, 0],
"scale": [2, 2, 1]
},
"eye_emote_right2": {
"position": [0, -0.5, 0],
"scale": [1, 2, 1]
},
"iris_right": {
"position": [0.25, 0, 0],
"scale": [0.5, 0.6, 1]
},
"pupil_right": {
"scale": [1, 0.7, 1]
}
}
},
"animation.liepard.hurt": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
},
"eye_emote_left": {
"position": [0, 0.5, 0],
"scale": [1, 2, 1]
},
"eye_emote_left2": {
"position": [0, -1, 0]
},
"eyelid_right": {
"position": [0, 0, -0.1]
}
}
}
@@ -6,10 +6,10 @@
"bones": {
"body": {
"rotation": [37.5, 0, 0],
"position": [0, 12, 2]
"position": [0, "12+0.6*Math.cos((query.anim_time) * 90 * 2) * 1", "2+0.3*Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"arm_left": {
"rotation": [-21.76583, -1.03023, 24.37258]
"rotation": [-21.76583, -1.03023, "24.3726+Math.cos((query.anim_time) * 90 * 2-40) * 1"]
},
"arm_left2": {
"rotation": [-7.2592, 84.87405, -22.21684]
@@ -33,7 +33,7 @@
"rotation": [-24.75386, 5.29571, 5.31847]
},
"arm_right": {
"rotation": [-14.50305, -13.03018, -18.48439]
"rotation": [-14.50305, -13.03018, "-18.4844-Math.cos((query.anim_time) * 90 * 2-40) * 1"]
},
"arm_right2": {
"rotation": [-13.03635, -71.92693, 16.3083]
@@ -41,9 +41,6 @@
"head_rotation": {
"rotation": [-12.5, 0, 0]
},
"jaw": {
"rotation": [20, 0, 0]
},
"lower_hand_left": {
"rotation": [0, 0, 10]
},
@@ -56,6 +53,33 @@
"leg_right2": {
"rotation": [5, 0, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"jaw": {
"rotation": [20, 0, 0]
},
"head_fur_top": {
"rotation": [5, 0, 0]
},
@@ -70,96 +94,6 @@
},
"head_fur_bottom": {
"rotation": [40, 0, 0]
},
"wing_top_left": {
"rotation": [0, 2.5, 0]
},
"wing_top_left2": {
"rotation": [0, 25, 0]
},
"wing_top_left3": {
"rotation": [0, 37.5, 0]
},
"wing_top_left4": {
"rotation": [0, 25, 0]
},
"wing_middle_left2": {
"rotation": [0, 20, 0]
},
"wing_middle_left3": {
"rotation": [0, 32.5, 0]
},
"wing_middle_left4": {
"rotation": [0, 20, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_top_right": {
"rotation": [0, -2.5, 0]
},
"wing_top_right2": {
"rotation": [0, -25, 0]
},
"wing_top_right3": {
"rotation": [0, -37.5, 0]
},
"wing_top_right4": {
"rotation": [0, -25, 0]
},
"wing_middle_right2": {
"rotation": [0, -20, 0]
},
"wing_middle_right3": {
"rotation": [0, -32.5, 0]
},
"wing_middle_right4": {
"rotation": [0, -20, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wing_bottom_left": {
"rotation": [0, -10, 0]
},
"wing_bottom_left2": {
"rotation": [0, 25, 0]
},
"wing_bottom_left3": {
"rotation": [0, 30, 0]
},
"wing_bottom_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bottom_right": {
"rotation": [0, 10, 0]
},
"wing_bottom_right2": {
"rotation": [0, -25, 0]
},
"wing_bottom_right3": {
"rotation": [0, -30, 0]
},
"wing_bottom_right4": {
"rotation": [0, -22.5, 0]
}
}
},
@@ -168,10 +102,10 @@
"bones": {
"body": {
"rotation": [57.5, 0, 0],
"position": [0, 10, 0]
"position": [0, "10+0.3*Math.cos((query.anim_time) * 90 * 4) * 1", "1*Math.cos((query.anim_time) * 90 * 2-40) * 1"]
},
"arm_left": {
"rotation": [-42.54899, 21.9027, 6.32905]
"rotation": [-42.54899, 21.9027, "6.329+Math.cos((query.anim_time) * 90 * 4-40) * 1"]
},
"arm_left2": {
"rotation": [-30.808, 78.8418, -30.94683]
@@ -195,7 +129,7 @@
"rotation": [-7.25386, 5.29571, 5.31847]
},
"arm_right": {
"rotation": [-42.54899, -21.9027, -6.32905]
"rotation": [-42.54899, -21.9027, "-6.329-Math.cos((query.anim_time) * 90 * 4-40) * 1"]
},
"arm_right2": {
"rotation": [-30.808, -78.8418, 30.94683]
@@ -203,9 +137,6 @@
"head_rotation": {
"rotation": [-7.5, 0, 0]
},
"jaw": {
"rotation": [17.5, 0, 0]
},
"lower_hand_left": {
"rotation": [0, 0, 20]
},
@@ -218,6 +149,45 @@
"leg_right2": {
"rotation": [5, 0, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wrist_left": {
"rotation": [0, 7.5, -10]
},
"wrist_right": {
"rotation": [0, -7.5, 10]
},
"neck": {
"rotation": [-15, 0, 0]
},
"tail5": {
"rotation": [12.5, 0, 0]
},
"jaw": {
"rotation": [17.5, 0, 0]
},
"head_fur_top": {
"rotation": [10, 0, 0]
},
@@ -233,105 +203,6 @@
"head_fur_bottom": {
"rotation": [40, 0, 0]
},
"wing_top_left": {
"rotation": [0, 2.5, 0]
},
"wing_top_left2": {
"rotation": [0, 25, 0]
},
"wing_top_left3": {
"rotation": [0, 37.5, 0]
},
"wing_top_left4": {
"rotation": [0, 25, 0]
},
"wing_middle_left2": {
"rotation": [0, 20, 0]
},
"wing_middle_left3": {
"rotation": [0, 32.5, 0]
},
"wing_middle_left4": {
"rotation": [0, 20, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_top_right": {
"rotation": [0, -2.5, 0]
},
"wing_top_right2": {
"rotation": [0, -25, 0]
},
"wing_top_right3": {
"rotation": [0, -37.5, 0]
},
"wing_top_right4": {
"rotation": [0, -25, 0]
},
"wing_middle_right2": {
"rotation": [0, -20, 0]
},
"wing_middle_right3": {
"rotation": [0, -32.5, 0]
},
"wing_middle_right4": {
"rotation": [0, -20, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wing_bottom_left": {
"rotation": [0, -10, 0]
},
"wing_bottom_left2": {
"rotation": [0, 25, 0]
},
"wing_bottom_left3": {
"rotation": [0, 30, 0]
},
"wing_bottom_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bottom_right": {
"rotation": [0, 10, 0]
},
"wing_bottom_right2": {
"rotation": [0, -25, 0]
},
"wing_bottom_right3": {
"rotation": [0, -30, 0]
},
"wing_bottom_right4": {
"rotation": [0, -22.5, 0]
},
"wrist_left": {
"rotation": [0, 7.5, -10]
},
"wrist_right": {
"rotation": [0, -7.5, 10]
},
"neck": {
"rotation": [-15, 0, 0]
},
"neck2": {
"rotation": [-12.5, 0, 0]
},
@@ -349,9 +220,299 @@
},
"head_fur_top_right": {
"rotation": [7.5, 0, 0]
}
}
},
"animation.hydreigon.sleep": {
"loop": true,
"bones": {
"body": {
"rotation": [37.5, 0, 0],
"position": [0, "12+0.4*Math.cos((query.anim_time) * 90 * 1) * 1", "2+0.2*Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"tail5": {
"rotation": [12.5, 0, 0]
"arm_left": {
"rotation": [45.73398, 49.61222, "47.6554-Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"arm_left2": {
"rotation": [-4.42112, 24.79844, -5.75209]
},
"tail": {
"rotation": [2.5, 0, 0]
},
"tail2": {
"rotation": [-20, 0, 0]
},
"tail3": {
"rotation": [-40, 0, 0]
},
"tail4": {
"rotation": [-22.5, 0, 0]
},
"leg_left": {
"rotation": [-24.75386, -5.29571, -5.31847]
},
"leg_right": {
"rotation": [-24.75386, 5.29571, 5.31847]
},
"arm_right": {
"rotation": [45.73398, -49.61222, "-47.6554-Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"arm_right2": {
"rotation": [-4.42112, -24.79844, 5.75209]
},
"head_rotation": {
"rotation": [-12.5, 0, 0]
},
"lower_hand_left": {
"rotation": [0, 0, 10]
},
"lower_hand_right": {
"rotation": [0, 0, -10]
},
"leg_left2": {
"rotation": [30, 0, 0]
},
"leg_right2": {
"rotation": [30, 0, 0]
},
"wing_top_left": {
"rotation": [0, 0, 0]
},
"wing_top_left2": {
"rotation": [0, 5, 0]
},
"wing_top_left3": {
"rotation": [0, 5, 0]
},
"wing_top_left4": {
"rotation": [0, 7.5, 0]
},
"wing_middle_left2": {
"rotation": [0, 5, 0]
},
"wing_middle_left3": {
"rotation": [0, 5, 0]
},
"wing_middle_left4": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_top_right": {
"rotation": [0, 0, 0]
},
"wing_top_right2": {
"rotation": [0, -5, 0]
},
"wing_top_right3": {
"rotation": [0, -5, 0]
},
"wing_top_right4": {
"rotation": [0, -7.5, 0]
},
"wing_middle_right2": {
"rotation": [0, -5, 0]
},
"wing_middle_right3": {
"rotation": [0, -5, 0]
},
"wing_middle_right4": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wing_bottom_left": {
"rotation": [0, 0, 0]
},
"wing_bottom_left2": {
"rotation": [0, 5, 0]
},
"wing_bottom_left3": {
"rotation": [0, 5, 0]
},
"wing_bottom_left4": {
"rotation": [0, 7.5, 0]
},
"wing_bottom_right": {
"rotation": [0, 0, 0]
},
"wing_bottom_right2": {
"rotation": [0, -5, 0]
},
"wing_bottom_right3": {
"rotation": [0, -5, 0]
},
"wing_bottom_right4": {
"rotation": [0, -7.5, 0]
},
"jaw": {
"rotation": [10, 0, 0]
},
"head_fur_top": {
"rotation": [22.5, 0, 0]
},
"head_fur_top2": {
"rotation": [7.5, 0, 0]
},
"head_fur_top_left2": {
"rotation": [7.5, 0, 0]
},
"head_fur_top_right2": {
"rotation": [7.5, 0, 0]
},
"head_fur_bottom": {
"rotation": [40, 0, 0]
},
"neck2": {
"rotation": [10, 0, 0]
},
"neck3": {
"rotation": [10, 0, 0]
},
"neck": {
"rotation": [5, 0, 0]
},
"head_fur_left": {
"rotation": [0, 12.5, 0]
},
"head_fur_top_left": {
"rotation": [22.5, 0, 0]
},
"head_fur_bottom_left": {
"rotation": [0, 15, 0]
},
"head_fur_right": {
"rotation": [0, -12.5, 0]
},
"head_fur_top_right": {
"rotation": [22.5, 0, 0]
},
"head_fur_bottom_right": {
"rotation": [0, -15, 0]
},
"eyelid_left": {
"position": [0.1, 0, 0]
},
"eyelid_right": {
"position": [-0.1, 0, 0]
},
"hand_left": {
"rotation": [0, 0, 20]
},
"hand_right": {
"rotation": [0, 0, -20]
},
"wing_middle_left": {
"rotation": [0, 0, 0]
},
"wing_middle_right": {
"rotation": [0, 0, 0]
},
"head_angle": {
"rotation": [7.5, 0, 0]
},
"pupil_left": {
"position": [-0.1, 0, 0]
},
"pupil_right": {
"position": [0.1, 0, 0]
}
}
},
"animation.hydreigon.wing_motion": {
"loop": true,
"bones": {
"wing_top_left": {
"rotation": [0, "-12.5+math.sin(q.anim_time*90*2)*20", 0]
},
"wing_top_left2": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-40)*7", 0]
},
"wing_top_left3": {
"rotation": [0, "30+math.sin(q.anim_time*90*2-80)*6", 0]
},
"wing_top_left4": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-120)*6", 0]
},
"wing_middle_left": {
"rotation": [0, "-12.5+math.sin(q.anim_time*90*2-80)*20", 0]
},
"wing_middle_left2": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-120)*7", 0]
},
"wing_middle_left3": {
"rotation": [0, "30+math.sin(q.anim_time*90*2-160)*6", 0]
},
"wing_middle_left4": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-200)*6", 0]
},
"wing_bottom_left": {
"rotation": [0, "-12.5+math.sin(q.anim_time*90*2-160)*20", 0]
},
"wing_bottom_left2": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-200)*7", 0]
},
"wing_bottom_left3": {
"rotation": [0, "30+math.sin(q.anim_time*90*2-240)*6", 0]
},
"wing_bottom_left4": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-280)*6", 0]
},
"wing_top_right": {
"rotation": [0, "12.5-math.sin(q.anim_time*90*2)*20", 0]
},
"wing_top_right2": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-40)*7", 0]
},
"wing_top_right3": {
"rotation": [0, "-30-math.sin(q.anim_time*90*2-80)*6", 0]
},
"wing_top_right4": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-120)*6", 0]
},
"wing_middle_right": {
"rotation": [0, "12.5-math.sin(q.anim_time*90*2-80)*20", 0]
},
"wing_middle_right2": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-120)*7", 0]
},
"wing_middle_right3": {
"rotation": [0, "-30-math.sin(q.anim_time*90*2-160)*6", 0]
},
"wing_middle_right4": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-200)*6", 0]
},
"wing_bottom_right": {
"rotation": [0, "12.5-math.sin(q.anim_time*90*2-160)*20", 0]
},
"wing_bottom_right2": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-200)*7", 0]
},
"wing_bottom_right3": {
"rotation": [0, "-30-math.sin(q.anim_time*90*2-240)*6", 0]
},
"wing_bottom_right4": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-280)*6", 0]
}
}
},
@@ -365,13 +526,6 @@
"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]
}
},
"pupil_left": {
"position": {
"0.0": [-0.1, 0, 0],
@@ -385,14 +539,113 @@
"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]
}
}
}
},
"animation.hydreigon.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.hydreigon.cry"
"animation.hydreigon.shock": {
"loop": true,
"bones": {
"head_fur_bottom": {
"rotation": [15, 0, 0]
},
"pupil_left": {
"scale": [1, 0.7, 0.7]
},
"pupil_right": {
"scale": [1, 0.7, 0.7]
},
"jaw": {
"rotation": [20, 0, 0]
}
}
},
"animation.hydreigon.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, 0]
},
"eye_angry_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, 0]
},
"eye_sad_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.unamused": {
"loop": true,
"bones": {
"eye_unamused_left": {
"position": [0.1, 0, 0]
},
"eye_unamused_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.happy": {
"loop": true,
"bones": {
"head_fur_bottom": {
"rotation": [15, 0, 0]
},
"jaw": {
"rotation": [20, 0, 0]
},
"eyelid_happy_left": {
"position": [0.1, 0, 0]
},
"eyelid_happy_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.blush": {
"loop": true,
"bones": {
"blush_left": {
"position": [0.1, 0, 0]
},
"blush_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0.1, 0, 0]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.worried": {
"loop": true,
"bones": {
"eyelid_worried_left": {
"position": [0.1, 0, 0]
},
"eyelid_worried_right": {
"position": [-0.1, 0, 0]
}
}
}
@@ -4,13 +4,9 @@
"animation.brionne.ground_idle": {
"loop": true,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 2, -6]
},
"body": {
"rotation": ["67.5-2*math.sin(q.anim_time*90*2)", 0, "1*math.sin(q.anim_time*90*2)"],
"position": [0, -6, 0]
"rotation": ["31.5-2*math.sin(q.anim_time*90*2)", 0, "1*math.sin(q.anim_time*90*2)"],
"position": [0, -6.6, -2.3]
},
"head": {
"rotation": ["-25+3*math.sin(q.anim_time*90*2-70)", "1*math.sin(q.anim_time*90*2-70)", "1*math.sin(q.anim_time*90*2-70)"],
@@ -40,7 +36,7 @@
"rotation": [0, 0, 0]
},
"tail": {
"rotation": ["12.5+2*math.sin(q.anim_time*90*2)", 0, "-10*math.sin(q.anim_time*90*1)"]
"rotation": ["22.5+2*math.sin(q.anim_time*90*2)", "10*math.sin(q.anim_time*90*1)", "-10*math.sin(q.anim_time*90*1)"]
},
"tail2": {
"rotation": [37.41159, 0.9339, "-0.0383-5*math.sin(q.anim_time*90*1)"]
@@ -49,24 +45,24 @@
"rotation": [-5, 0, "-10*math.sin(q.anim_time*90*1)"]
},
"arm_right": {
"rotation": ["40.4753-1*math.sin(q.anim_time*90*2-20)", "-62.9692-2*math.sin(q.anim_time*90*2)", -45.10039],
"rotation": ["54.4744-1*math.sin(q.anim_time*90*2-20)", "-62.619-2*math.sin(q.anim_time*90*2)", -60.57546],
"position": [0, 0.25, -0.5]
},
"arm_right2": {
"rotation": [0, 0, "-25-4*math.sin(q.anim_time*90*2)"]
},
"arm_right3": {
"rotation": [0, 0, "57.5-2*math.sin(q.anim_time*90*2)"]
"rotation": [0, 0, "65-2*math.sin(q.anim_time*90*2)"]
},
"arm_left": {
"rotation": ["40.4753-2*math.sin(q.anim_time*90*2)", "62.9692-2*math.sin(q.anim_time*90*2)", 45.10039],
"rotation": ["54.0636-2*math.sin(q.anim_time*90*2)", "62.6869-2*math.sin(q.anim_time*90*2)", 60.60008],
"position": [0, 0.25, -0.5]
},
"arm_left2": {
"rotation": [0, 0, 25]
},
"arm_left3": {
"rotation": [0, 0, "-55+2*math.sin(q.anim_time*90*2)"]
"rotation": [0, 0, "-62.5+2*math.sin(q.anim_time*90*2)"]
},
"ruff_right": {
"rotation": ["132.5-4*math.sin(q.anim_time*90*2-50)", 0, 120]
@@ -126,13 +122,9 @@
"loop": true,
"animation_length": 4,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 2, -6]
},
"body": {
"rotation": ["67.5+10*math.sin(q.anim_time*90*3-40)+2*math.sin(q.anim_time*90*6-20)", "1*math.sin(q.anim_time*90*5)", "1*math.sin(q.anim_time*90*3)"],
"position": [0, "-6-1*math.sin(q.anim_time*90*3)+0.3*math.sin(q.anim_time*90*4)", "2*math.sin(q.anim_time*90*3)"]
"rotation": ["32.5+10*math.sin(q.anim_time*90*3-40)+2*math.sin(q.anim_time*90*6-20)", "1*math.sin(q.anim_time*90*5)", "1*math.sin(q.anim_time*90*3)"],
"position": [0, "-6.45-1*math.sin(q.anim_time*90*3)+0.3*math.sin(q.anim_time*90*4)", "2*math.sin(q.anim_time*90*3)"]
},
"head": {
"rotation": ["-25-10*math.sin(q.anim_time*90*3-70)", "1*math.sin(q.anim_time*90*3-70)", "1*math.sin(q.anim_time*90*3-70)"],
@@ -163,17 +155,13 @@
"rotation": ["22.5+10*math.sin(q.anim_time*90*3)", 0, "-10*math.sin(q.anim_time*90*3)"]
},
"tail2": {
"rotation": ["37.4116-5*math.sin(q.anim_time*90*3-50)", 0.9339, "-0.0383-5*math.sin(q.anim_time*90*3)"]
"rotation": ["32.4116-5*math.sin(q.anim_time*90*3-50)", 0.9339, "-0.0383-5*math.sin(q.anim_time*90*3)"]
},
"tail3": {
"rotation": ["17.5+10*math.sin(q.anim_time*90*3-50)", "-2*math.sin(q.anim_time*90*3)", "-10*math.sin(q.anim_time*90*1)"]
},
"arm_right": {
"rotation": [
"15.5445+2*math.sin(q.anim_time*90*3)",
"-51.6588-40*math.sin(q.anim_time*90*3+60)",
"-19.6149+25*math.sin(q.anim_time*90*3+40)"
],
"rotation": ["15.5445+2*math.sin(q.anim_time*90*3)", "-51.6588-40*math.sin(q.anim_time*90*3+60)", "-19.6149+25*math.sin(q.anim_time*90*3+40)"],
"position": [0, "1+0.9*math.sin(q.anim_time*90*3+40)", -0.5]
},
"arm_right2": {
@@ -253,13 +241,9 @@
"loop": true,
"animation_length": 4,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 2, -6]
},
"body": {
"rotation": ["47.5+2*math.sin(q.anim_time*90*2+50)", 0, "2*math.sin(q.anim_time*90*1)"],
"position": [0, "-7.25-0.1*math.sin(q.anim_time*90*4)", "-1.75-0.3*math.sin(q.anim_time*90*2)"]
"rotation": ["8.5+2*math.sin(q.anim_time*90*2+50)", 0, "2*math.sin(q.anim_time*90*1)"],
"position": [0, "-6.25-0.1*math.sin(q.anim_time*90*4)", "-2.85-0.3*math.sin(q.anim_time*90*2)"]
},
"head": {
"rotation": ["-7.5+4*math.sin(q.anim_time*90*2)", "0-5*math.sin(q.anim_time*90*1-120)", "0+10*math.sin(q.anim_time*90*1-20)"],
@@ -290,7 +274,7 @@
"rotation": ["47.5+2*math.sin(q.anim_time*90*2)", 0, "-10*math.sin(q.anim_time*90*1)"]
},
"tail2": {
"rotation": [19.91159, 0.9339, "-0.0383-5*math.sin(q.anim_time*90*1)"],
"rotation": [19.91159, "5*math.sin(q.anim_time*90*1)", "-0.0383-5*math.sin(q.anim_time*90*1)"],
"position": [0, -0.5, 0.75]
},
"tail3": {
@@ -783,8 +767,8 @@
"animation_length": 4,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 3, -9]
"rotation": [-38, 0, 0],
"position": [0, 4.7, -5]
},
"body": {
"rotation": ["67.5+5*math.sin(q.anim_time*90*3-80)", "2*math.cos(q.anim_time*90*3-80)", 0],
@@ -905,7 +889,7 @@
"2.2917": [120, 0, -360]
},
"position": {
"0.0": [0, -6, 0],
"0.0": [0, -5, 0],
"0.375": {
"pre": [0, -4.21495, -2.86971],
"post": [0, -4.21495, -2.86971],
@@ -1278,7 +1262,7 @@
},
"arm_right": {
"rotation": {
"0.0": [40.81732, -62.9692, -45.10039],
"0.0": [52.43798, -55.65395, -58.57],
"0.2083": {
"pre": [-0.73524, -43.64642, -39.21896],
"post": [-0.73524, -43.64642, -39.21896],
@@ -1329,7 +1313,7 @@
},
"arm_left": {
"rotation": {
"0.0": [40.4753, 62.9692, 45.10039],
"0.0": [52.16998, 55.69027, 58.65333],
"0.5417": [-45.76649, 66.62741, 22.12736],
"1.0833": [30.83793, 6.79399, -18.87541],
"1.625": [-56.33212, -10.39883, -29.14854],
@@ -1448,6 +1432,18 @@
"1.8333": [0, -0.1, 0],
"2.0": [0, 0, 0]
}
},
"hand_left": {
"rotation": {
"0.0": [0, 0, -15],
"1.5833": [0, 0, 0]
}
},
"hand_right": {
"rotation": {
"0.0": [0, 0, 15],
"1.5833": [0, 0, 0]
}
}
}
}
@@ -18,6 +18,56 @@
}
}
},
"animation.mareanie.ground_walk": {
"loop": true,
"bones": {
"head": {
"rotation": [-7.5, 0, 0]
},
"hair_dread_front_angle": {
"rotation": [0, 0, -2.5]
},
"hair_dread_front2": {
"rotation": [0, 0, 2.5]
},
"hair_dread_back2": {
"rotation": [0, 0, -5]
},
"body": {
"position": [0, 0, "Math.cos((query.anim_time) * 90 * 2) * 0.6"]
},
"torso": {
"rotation": [2.5, 0, 0]
},
"neck": {
"rotation": [10, 0, 0]
},
"hair_dread_left_angle": {
"rotation": [0, -5, 0]
},
"hair_dread_right_angle": {
"rotation": [0, 5, 0]
},
"hair_dread_front_left2": {
"rotation": [0, 0, -2.5]
},
"hair_dread_front_left3": {
"rotation": [0, 0, -10]
},
"hair_dread_front_right2": {
"rotation": [0, 0, 2.5]
},
"hair_dread_front_right3": {
"rotation": [0, 0, 10]
},
"hair_dread_back_left2": {
"rotation": [0, 0, -5]
},
"hair_dread_back_right2": {
"rotation": [0, 0, 5]
}
}
},
"animation.mareanie.blink": {
"animation_length": 0.1667,
"bones": {
@@ -37,11 +87,72 @@
}
}
},
"animation.mareanie.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.mareanie.cry"
"animation.mareanie.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.5, 0],
"scale": [1, 0.7, 1]
},
"pupil_right": {
"position": [0, -0.5, 0],
"scale": [1, 0.7, 1]
},
"mouth_closed": {
"position": [0, 0, 1]
},
"mouth_open": {
"position": [0, 0, -1]
}
}
},
"animation.mareanie.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, -0.1]
},
"eye_angry_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.mareanie.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, -0.1]
},
"eye_sad_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.mareanie.happy": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 1]
},
"mouth_open": {
"position": [0, 0, -1]
},
"eyelid_happy_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_happy_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.mareanie.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, -0.1]
}
}
}
@@ -36,6 +36,217 @@
}
}
},
"animation.toxapex.ground_walk": {
"loop": true,
"bones": {
"leg_front_left1_rotation": {
"rotation": [-3.73063, -13.65324, 4.97001]
},
"leg_front_left1_2": {
"rotation": [-17.5, 0, 0]
},
"leg_front_left1_3": {
"rotation": [-10, 0, 0]
},
"leg_front_left1_4": {
"rotation": [-15, 0, 0]
},
"leg_front_left1_5": {
"rotation": [-12.5, 0, 0]
},
"leg_front_right1_rotation": {
"rotation": [0, 15, -0.00001]
},
"leg_front_right1_2": {
"rotation": [-25, 0, 0]
},
"leg_front_right1_3": {
"rotation": [-10, 0, 0]
},
"leg_front_right1_4": {
"rotation": [-15, 0, 0]
},
"leg_front_right1_5": {
"rotation": [-12.5, 0, 0]
},
"body": {
"position": [0, -1.25, "Math.cos((query.anim_time) * 90 * 1) * 0.8"]
},
"leg_front_left2_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_left2_2": {
"rotation": [-12.5, 0, 0]
},
"leg_front_left2_3": {
"rotation": [5, 0, 0]
},
"leg_front_left2_4": {
"rotation": [12.5, 0, 0]
},
"leg_front_left3_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_left3_2": {
"rotation": [-15, 0, 0]
},
"leg_front_left3_3": {
"rotation": [7.5, 0, 0]
},
"leg_front_left3_4": {
"rotation": [20, 0, 0]
},
"leg_back_left1_rotation": {
"rotation": [7.5, 0, 0]
},
"leg_back_left1_4": {
"rotation": [-2.5, 0, 0]
},
"leg_back_left1_5": {
"rotation": [-5, 0, 0]
},
"leg_back_left2_rotation": {
"rotation": [7.5, -5, 0]
},
"leg_back_left2_2": {
"rotation": [2.5, 0, 0]
},
"leg_back_left2_4": {
"rotation": [-10, 0, 0]
},
"leg_back_left2_5": {
"rotation": [0, 0, 0]
},
"leg_back_left3_rotation": {
"rotation": [0, -5, 0]
},
"leg_back_left3_2": {
"rotation": [15, 0, 0]
},
"leg_back_left3_3": {
"rotation": [-5, 0, 0]
},
"leg_back_left3_4": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right2_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right2_2": {
"rotation": [-12.5, 0, 0]
},
"leg_front_right2_3": {
"rotation": [5, 0, 0]
},
"leg_front_right2_4": {
"rotation": [12.5, 0, 0]
},
"leg_front_right3_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right3_2": {
"rotation": [-15, 0, 0]
},
"leg_front_right3_3": {
"rotation": [7.5, 0, 0]
},
"leg_front_right3_4": {
"rotation": [20, 0, 0]
},
"leg_back_right1_rotation": {
"rotation": [7.5, 0, 0]
},
"leg_back_right1_4": {
"rotation": [-2.5, 0, 0]
},
"leg_back_right1_5": {
"rotation": [-5, 0, 0]
},
"leg_back_right2_rotation": {
"rotation": [7.5, 5, 0]
},
"leg_back_right2_2": {
"rotation": [2.5, 0, 0]
},
"leg_back_right2_4": {
"rotation": [-10, 0, 0]
},
"leg_back_right2_5": {
"rotation": [0, 0, 0]
},
"leg_back_right3_rotation": {
"rotation": [0, 5, 0]
},
"leg_back_right3_2": {
"rotation": [15, 0, 0]
},
"leg_back_right3_3": {
"rotation": [-5, 0, 0]
},
"leg_back_right3_4": {
"rotation": [-7.5, 0, 0]
},
"head_connection": {
"rotation": [5, 0, 0]
},
"head": {
"rotation": [7.5, 0, 0]
}
}
},
"animation.toxapex.sleep": {
"loop": true,
"bones": {
"leg_front_left1_rotation": {
"rotation": [50, 0, 0]
},
"leg_front_left1_2": {
"rotation": [-15, 0, 0]
},
"fingers_front_left1": {
"rotation": [-90, 0, 0]
},
"leg_front_right1_rotation": {
"rotation": [50, 0, 0]
},
"leg_front_right1_2": {
"rotation": [-15, 0, 0]
},
"fingers_front_right1": {
"rotation": [-90, 0, 0]
},
"leg_front_right1_5_rotation": {
"rotation": [23, 0, 0]
},
"leg_front_left1_4_rotation": {
"rotation": [17.5, 0, 0]
},
"leg_front_left1_5_rotation": {
"rotation": [23, 0, 0]
},
"leg_front_right1_4_rotation": {
"rotation": [17.5, 0, 0]
},
"leg_front_right1_3_rotation": {
"rotation": [15, 0, 0]
},
"leg_front_left1_3_rotation": {
"rotation": [15, 0, 0]
},
"head_connection": {
"rotation": [7.5, 0, 0]
},
"head": {
"rotation": [19.71975, -3.40487, 9.40804]
},
"eyelid_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.toxapex.blink": {
"animation_length": 0.1667,
"bones": {
@@ -200,14 +411,6 @@
"rotation": [-20, 0, 0]
}
}
},
"animation.toxapex.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.toxapex.cry"
}
}
}
}
}
@@ -2,6 +2,79 @@
"format_version": "1.8.0",
"animations": {
"animation.fomantis.ground_idle": {
"loop": true,
"animation_length": 8,
"bones": {
"left_back_arm_flowering": {
"scale": 0
},
"right_back_arm_flowering": {
"scale": 0
},
"torso": {
"rotation": ["0+math.sin(q.anim_time*90*3+90)*0.5", "0+math.sin(q.anim_time*90*1.5+0)*5", "0+math.sin(q.anim_time*90*1.5+90)*2.5"],
"position": [0, "0+math.sin(q.anim_time*90*3+60)*0.05", 0]
},
"scarf": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5-60)*3", 0]
},
"left_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5-30)*3", 0, "0+math.sin(q.anim_time*90*1.5-30)*5"]
},
"right_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5+150)*3", 0, "0+math.sin(q.anim_time*90*1.5-30)*5"]
},
"right_back_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5-30)*2", 0, "0+math.sin(q.anim_time*90*1.5+150)*3"]
},
"left_back_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5+150)*2", 0, "0+math.sin(q.anim_time*90*1.5+150)*3"]
},
"tail": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5-35)*7.5", 0]
},
"head": {
"rotation": ["0+math.sin(q.anim_time*90*3+60)*0.5", "0+math.sin(q.anim_time*90*1.5+150)*3", "0+math.sin(q.anim_time*90*1.5+60)*1.5"]
},
"bang_right": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+0)*3", "0+math.sin(q.anim_time*90*1.5+30)*3"]
},
"bang_left": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+0)*3", "0+math.sin(q.anim_time*90*1.5+30)*3"]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*3+30)*0.5", 0, "0+math.sin(q.anim_time*90*1.5+30)*3"]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*3+0)*0.5", "0+math.sin(q.anim_time*90*1.5+0)*1.5", 0]
},
"hat": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*1.5+45)*0.3"]
},
"hat_petal_right": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+215)*4", 0]
},
"hat_petal_right2": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+25)*4", 0]
},
"hat_petal_left": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+205)*4", 0]
},
"hat_petal_left2": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+35)*4", 0]
},
"hat_petal_front": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+210)*5", 0]
},
"hat_petal_back": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+30)*5", 0]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*3+0)*1", 0, "0+math.sin(q.anim_time*90*1.5+0)*1.5"]
}
}
},
"animation.fomantis.ground_walk": {
"loop": true,
"bones": {
"left_back_arm_flowering": {
@@ -9,16 +82,283 @@
},
"right_back_arm_flowering": {
"scale": 0
},
"torso": {
"rotation": ["0+math.sin(q.anim_time*90*6-20)*2.5", "0+math.sin(q.anim_time*90*3+120)*8", "0+math.sin(q.anim_time*90*3-20)*2"],
"position": [0, "0+math.sin(q.anim_time*90*6-35)*0.2", 0]
},
"scarf": {
"rotation": ["0+math.sin(q.anim_time*90*6-75)*2", "0+math.sin(q.anim_time*90*3+65)*3", "0+math.sin(q.anim_time*90*3-75)*1"]
},
"head": {
"rotation": ["0+math.sin(q.anim_time*90*6-50)*2", "0+math.sin(q.anim_time*90*3-90)*5", "0+math.sin(q.anim_time*90*3-50)*1.5"]
},
"bang": {
"rotation": ["-1+math.sin(q.anim_time*90*6-65)*1", 0, 0]
},
"bang_right": {
"rotation": [0, "0+math.sin(q.anim_time*90*3-115)*3", "0+math.sin(q.anim_time*90*3-115)*3"]
},
"bang_left": {
"rotation": [0, "0+math.sin(q.anim_time*90*3-125)*3", "0+math.sin(q.anim_time*90*3-125)*3"]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*6-95)*2", 0, "0+math.sin(q.anim_time*90*3-90)*3"]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*6-125)*1", "0+math.sin(q.anim_time*90*3-120)*1.5", 0]
},
"hat": {
"rotation": ["0+math.sin(q.anim_time*90*6-65)*1", 0, 0]
},
"hat_petal_right": {
"rotation": ["0+math.sin(q.anim_time*90*6-85)*2", 0, "0+math.sin(q.anim_time*90*6+95)*2"]
},
"hat_petal_left": {
"rotation": ["0+math.sin(q.anim_time*90*6-75)*2", 0, "0+math.sin(q.anim_time*90*6-75)*2"]
},
"left_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*3+105)*1", "0+math.sin(q.anim_time*90*6-50)*2", "0+math.sin(q.anim_time*90*3+90)*5"]
},
"left_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-80)*2.5"]
},
"left_front_arm_end": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-110)*3"]
},
"right_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*3-75)*1", "0+math.sin(q.anim_time*90*6+130)*2", "0+math.sin(q.anim_time*90*3+90)*5"]
},
"right_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6+100)*2.5"]
},
"right_front_arm_end": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6+70)*3"]
},
"right_back_arm": {
"rotation": [0, "-1+math.sin(q.anim_time*90*6-50)*3", "0+math.sin(q.anim_time*90*3+90)*4"]
},
"right_back_arm_bend2": {
"rotation": [0, 0, "2.5+math.sin(q.anim_time*90*6-80)*2.5"]
},
"right_back_arm_end2": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-110)*2.5"]
},
"left_back_arm": {
"rotation": [0, "1+math.sin(q.anim_time*90*6+130)*3", "0+math.sin(q.anim_time*90*3+90)*4"]
},
"left_back_arm_bend2": {
"rotation": [0, 0, "-2.5+math.sin(q.anim_time*90*6+100)*2.5"]
},
"left_back_arm_end2": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6+70)*2.5"]
},
"tail": {
"rotation": ["0+math.sin(q.anim_time*90*6-50)*3", "0+math.sin(q.anim_time*90*3+90)*5", 0]
},
"right_leg": {
"rotation": ["0+math.clamp(math.sin(query.anim_time*90*3*1+180)*22.5,-20,0)+math.clamp(math.sin(query.anim_time*90*3*1+180)*22.5,0,20)", 0, 0],
"position": [0, "0+math.clamp(math.sin(query.anim_time*90*3*1+50)*0.75,-0.1,0.75)", "0+math.sin(q.anim_time*90*3-210)*0.9"]
},
"left_leg": {
"rotation": ["0+math.clamp(math.sin(query.anim_time*90*3*1+0)*22.5,-20,0)+math.clamp(math.sin(query.anim_time*90*3*1+0)*22.5,0,20)", 0, 0],
"position": [0, "0+math.clamp(math.sin(query.anim_time*90*3*1+230)*0.75,-0.1,0.75)", "0+math.sin(q.anim_time*90*3-30)*0.9"]
},
"hat_petal_front": {
"rotation": ["0+math.sin(q.anim_time*90*6-80)*3", 0, 0]
},
"hat_petal_back": {
"rotation": ["0+math.sin(q.anim_time*90*6-80)*3", 0, 0]
},
"hat_petal_right2": {
"rotation": ["0+math.sin(q.anim_time*90*6-75)*2", 0, "0+math.sin(q.anim_time*90*6+105)*2"]
},
"hat_petal_left2": {
"rotation": ["0+math.sin(q.anim_time*90*6-85)*2", 0, "0+math.sin(q.anim_time*90*6-85)*2"]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*6-100)*1.5", 0, "0+math.sin(q.anim_time*90*3-90)*2"]
}
}
},
"animation.fomantis.sleep": {
"loop": true,
"bones": {
"left_back_arm_flowering": {
"scale": 0
},
"right_back_arm_flowering": {
"scale": 0
},
"torso": {
"rotation": ["-7.5+math.sin(q.anim_time*90*1+30)*1", 0, "0+math.sin(q.anim_time*90*0.5+120)*0.5"],
"position": [0, -1.25, 0.5]
},
"scarf": {
"rotation": ["8.5+math.sin(q.anim_time*90*1-30)*1", 0, 0],
"position": [0, -0.65, 0]
},
"left_front_arm": {
"rotation": [28.3532, -0.8845, -1.7121],
"position": [0, -0.7, 0]
},
"left_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*1+210)*1"]
},
"left_front_arm_end": {
"rotation": [0, 0, "-47.5+math.sin(q.anim_time*90*1+180)*1"]
},
"right_front_arm": {
"rotation": [28.35323, 0.88453, 1.71214],
"position": [0, -0.7, 0]
},
"right_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*1+30)*1"]
},
"right_front_arm_end": {
"rotation": [0, 0, "47.5+math.sin(q.anim_time*90*1+0)*1"]
},
"right_back_arm_bend2": {
"rotation": [0, 0, "10+math.sin(q.anim_time*90*1+210)*1"]
},
"right_back_arm_end2": {
"rotation": [0, 0, "50+math.sin(q.anim_time*90*1+180)*1"]
},
"left_back_arm_bend2": {
"rotation": [0, 0, "-10+math.sin(q.anim_time*90*1+30)*1"]
},
"left_back_arm_end2": {
"rotation": [0, 0, "-50+math.sin(q.anim_time*90*1+0)*1"]
},
"head": {
"rotation": ["12.5+math.sin(q.anim_time*90*1+0)*1.5", 0, "0+math.sin(q.anim_time*90*0.5+90)*0.5"],
"position": [0, -0.5, 0]
},
"left_eye_closed": {
"position": [0, 0, -0.1]
},
"right_eye_closed": {
"position": [0, 0, -0.1]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*1+150)*1", 0, 0]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*1+120)*0.5", 0, 0]
},
"hat_petal_right": {
"rotation": ["0+math.sin(q.anim_time*90*1-35)*1.5", 0, 0]
},
"hat_petal_right2": {
"rotation": ["0+math.sin(q.anim_time*90*1-25)*1.5", 0, 0]
},
"hat_petal_left": {
"rotation": ["0+math.sin(q.anim_time*90*1-25)*1.5", 0, 0]
},
"hat_petal_left2": {
"rotation": ["0+math.sin(q.anim_time*90*1-35)*1.5", 0, 0]
},
"hat_petal_front": {
"rotation": ["0+math.sin(q.anim_time*90*1-30)*1.5", 0, 0]
},
"hat_petal_back": {
"rotation": ["0+math.sin(q.anim_time*90*1-30)*1.5", 0, 0]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*1-60)*2", 0, "0+math.sin(q.anim_time*90*0.5+60)*1"]
},
"right_leg": {
"rotation": [-95, 7.5, -0.5],
"position": [0, -0.5, -1.5]
},
"left_leg": {
"rotation": [-95, -7.5, 0.5],
"position": [0, -0.5, -1.5]
}
}
},
"animation.fomantis.wild_sleep": {
"loop": true,
"bones": {
"body": {
"position": [0, -2, 0],
"scale": 1
},
"scarf": {
"position": [0, -3, 0]
},
"left_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -3, 0]
},
"left_front_arm_bend": {
"rotation": [0, 0, -67.5]
},
"left_front_arm_end": {
"rotation": [0, 0, -15]
},
"right_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -3, 0]
},
"right_front_arm_bend": {
"rotation": [0, 0, 67.5]
},
"right_front_arm_end": {
"rotation": [0, 0, 15]
},
"right_back_arm": {
"scale": 0
},
"tail": {
"scale": 0
},
"left_back_arm": {
"scale": 0
},
"left_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -3, 0]
},
"left_back_arm_bend": {
"rotation": [0, 0, -67.5]
},
"left_back_arm_end": {
"rotation": [0, 0, -15]
},
"right_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -3, 0]
},
"right_back_arm_bend": {
"rotation": [0, 0, 67.5]
},
"right_back_arm_end": {
"rotation": [0, 0, 15]
},
"right_eye_closed": {
"position": [0, 0, -0.1]
},
"left_eye_closed": {
"position": [0, 0, -0.1]
},
"head": {
"rotation": ["0+math.sin(q.anim_time*90*1+0)*0.75", 0, "0+math.sin(q.anim_time*90*1+90)*0.5"],
"position": [0, "-3.01+math.sin(q.anim_time*90*1+30)*0.05", 0]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*1-30)*0.5", 0, "0+math.sin(q.anim_time*90*1+60)*0.5"]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*1-60)*0.25", "0+math.sin(q.anim_time*90*1+30)*0.25", 0]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*1-60)*1", 0, "0+math.sin(q.anim_time*90*1+30)*0.75"]
}
}
},
"animation.fomantis.cry": {
"animation_length": 1,
"sound_effects": {
"0.04": {
"effect": "pokemon.fomantis.cry"
}
},
"bones": {
"head": {
"rotation": {
@@ -28,10 +368,15 @@
"1.0": [0, 0, 0]
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.fomantis.cry"
}
}
},
"animation.fomantis.blink": {
"animation_length": 0.20833,
"animation_length": 0.2083,
"bones": {
"left_eye_closed": {
"position": {
@@ -53,14 +398,15 @@
"loop": true,
"bones": {
"body": {
"position": [0, -2, 0],
"scale": 1
},
"scarf": {
"position": [0, -5, 0]
"position": [0, -3, 0]
},
"left_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -5, 0]
"position": [0, -3, 0]
},
"left_front_arm_bend": {
"rotation": [0, 0, -67.5]
@@ -70,7 +416,7 @@
},
"right_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -5, 0]
"position": [0, -3, 0]
},
"right_front_arm_bend": {
"rotation": [0, 0, 67.5]
@@ -89,7 +435,7 @@
},
"left_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -5, 0]
"position": [0, -3, 0]
},
"left_back_arm_bend": {
"rotation": [0, 0, -67.5]
@@ -99,7 +445,7 @@
},
"right_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -5, 0]
"position": [0, -3, 0]
},
"right_back_arm_bend": {
"rotation": [0, 0, 67.5]
@@ -112,6 +458,9 @@
},
"left_eye_closed": {
"position": [0, 0, -0.1]
},
"head": {
"position": [0, -3.01, 0]
}
}
}
@@ -5,10 +5,10 @@
"loop": true,
"bones": {
"arm_left": {
"rotation": [0, 0, 5]
"rotation": [10, 0, 5]
},
"arm_right": {
"rotation": [0, 0, -5]
"rotation": [10, 0, -5]
},
"head": {
"rotation": [2.5, 0, 0]
@@ -16,11 +16,37 @@
"head2": {
"rotation": [-2.5, 0, 0]
},
"head3": {
"rotation": [2.5, 0, 0]
},
"shovel": {
"rotation": [4.26538, 0.0977, -1.4422]
}
}
},
"animation.sandygast.ground_walk": {
"loop": true,
"bones": {
"arm_left": {
"rotation": [7.5, 0, 5]
},
"arm_right": {
"rotation": [7.5, 0, -5]
},
"head": {
"rotation": [5, 0, 0]
},
"head2": {
"rotation": [0, 0, 0]
},
"head3": {
"rotation": [-2.5, 0, 0]
},
"shovel": {
"rotation": [4.26538, 0.0977, -1.4422]
},
"body": {
"position": [0, 0, "Math.cos((query.anim_time) * 90 * 2) * 0.8"]
}
}
},
@@ -85,7 +111,7 @@
}
}
},
"animation.sandygast.recoil": {
"animation.sandygast.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
@@ -106,6 +132,32 @@
"position": [0, -13.25, 0]
}
}
},
"animation.sandygast.render": {
"loop": true,
"bones": {
"sandygast": {
"rotation": [0, -17.5, 0]
},
"arm_left": {
"rotation": [-12.5, 0, 0]
},
"arm_left2": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [10, 0, -10]
},
"arm_right2": {
"rotation": [15, 0, 0]
},
"eye_right": {
"position": [-0.5, 0, 0]
},
"shovel": {
"rotation": [-5, 0, 0]
}
}
}
}
}
@@ -14,22 +14,22 @@
"rotation": [2.5, 0, 0]
},
"arm_left": {
"rotation": [12.5, 0, 7.5]
"rotation": [2.49762, -0.10901, 2.49762]
},
"arm_left2": {
"rotation": [0, 0, 2.5]
"rotation": [4.98107, -0.43523, 4.98107]
},
"arm_left3": {
"rotation": [5, 0, 0]
},
"finger_left_right": {
"rotation": [0, 0, -7.5]
"rotation": [7.49294, -0.32621, 2.47864]
},
"finger_left_front": {
"rotation": [10, 0, 0]
"rotation": [25, 0, 0]
},
"finger_left_back": {
"rotation": [-12.5, 0, 0]
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [12.5, 0, -7.5]
@@ -54,14 +54,78 @@
},
"shovel": {
"rotation": [3.54002, 3.53329, 0.10922]
}
}
},
"animation.palossand.ground_walk": {
"loop": true,
"bones": {
"torso2": {
"rotation": [2.5, 0, 0]
},
"finger_left_left": {
"rotation": [0, 0, 12.5]
"head": {
"rotation": [5, 0, 0]
},
"head2": {
"rotation": [2.5, 0, 0]
},
"arm_left": {
"rotation": [12.48146, -0.64975, 4.93851]
},
"arm_left2": {
"rotation": [4.98107, -0.43523, 4.98107]
},
"arm_left3": {
"rotation": [5, 0, 0]
},
"finger_left_right": {
"rotation": [7.49294, -0.32621, 2.47864]
},
"finger_left_front": {
"rotation": [25, 0, 0]
},
"finger_left_back": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [12.48146, 0.64975, -4.93851]
},
"arm_right2": {
"rotation": [0, 0, -2.5]
},
"arm_right3": {
"rotation": [5, 0, 0]
},
"finger_right_right": {
"rotation": [0, 0, -12.5]
},
"finger_right_left": {
"rotation": [0, 0, 7.5]
},
"finger_right_front": {
"rotation": [10, 0, 0]
},
"finger_right_back": {
"rotation": [-12.5, 0, 0]
},
"shovel": {
"rotation": [3.54002, 3.53329, 0.10922]
},
"body": {
"position": [0, 0, "Math.cos((query.anim_time) * 90 * 2) * 1"]
}
}
},
"animation.palossand.shovel_spin": {
"loop": true,
"bones": {
"shovel": {
"rotation": [0, "-q.anim_time*90*1.5 ", 0]
}
}
},
"animation.palossand.blink": {
"animation_length": 0.16667,
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
@@ -133,6 +197,79 @@
"position": [0, 0, -0.1]
}
}
},
"animation.palossand.hidden": {
"loop": true,
"bones": {
"arms": {
"position": [0, -22, 0]
},
"torso2": {
"position": [0, -2, 0]
},
"head": {
"position": [0, -25, 0]
}
}
},
"animation.palossand.render": {
"loop": true,
"bones": {
"torso2": {
"rotation": [2.5, 0, 0]
},
"head": {
"rotation": [0, 0, 2.5]
},
"head2": {
"rotation": [2.5, 0, 0]
},
"arm_left": {
"rotation": [17.34336, -2.3573, 9.65482]
},
"arm_left2": {
"rotation": [12.48107, -0.43523, 4.98107]
},
"arm_left3": {
"rotation": [5, 0, 0]
},
"finger_left_right": {
"rotation": [7.49294, -0.32621, 2.47864]
},
"finger_left_front": {
"rotation": [25, 0, 0]
},
"finger_left_back": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [12.5, 0, -7.5]
},
"arm_right2": {
"rotation": [15, 0, -2.5]
},
"arm_right3": {
"rotation": [10, 0, 0]
},
"finger_right_right": {
"rotation": [0, 0, -12.5]
},
"finger_right_left": {
"rotation": [0, 0, 7.5]
},
"finger_right_front": {
"rotation": [17.5, 0, 0]
},
"finger_right_back": {
"rotation": [-2.5, 0, 0]
},
"shovel": {
"rotation": [3.54002, 3.53329, 0.10922]
},
"palossand": {
"rotation": [0, 15, 0]
}
}
}
}
}
@@ -333,63 +333,63 @@
"body": {
"position": {
"0.0": {
"post": [-0.25, 2, 0],
"post": [-5.25, 2, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [0.3, 4, 0],
"post": ["0.3-5", 4, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [2.5, 12, 0],
"post": ["2.5-5", 12, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [5.5, 10.5, 0],
"post": [0.5, 10.5, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [8.61, 1.81, 0],
"post": [3.61, 1.81, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [10, -1, 0],
"post": [5, -1, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [10.3, 0.5, 0],
"post": [5.3, 0.5, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [10.25, 2, 0],
"post": [5.25, 2, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [9.7, 4, 0],
"post": [4.7, 4, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [7.5, 12, 0],
"post": [2.5, 12, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [3.5, 10.5, 0],
"post": ["3.5-5", 10.5, 0],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": [1.39, 1.81, 0],
"post": ["1.39-5", 1.81, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, -1, 0],
"post": [-5, -1, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [-0.3, 0.5, 0],
"post": ["-0.3-5", 0.5, 0],
"lerp_mode": "catmullrom"
},
"1.6667": {
"post": [-0.25, 2, 0],
"post": ["-0.25-5", 2, 0],
"lerp_mode": "catmullrom"
}
}
@@ -1575,7 +1575,8 @@
"post": [-2.64, 0, 12.68],
"lerp_mode": "catmullrom"
}
}
},
"position": [0, -0.5, 0]
}
}
},
@@ -2316,132 +2317,27 @@
},
"mouth_closed": {
"position": {
"0.25": [0, 0, 0],
"0.3333": [0, 0, 0.1],
"1.1667": [0, 0, 0.1],
"1.25": [0, 0, 0]
"0.1667": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.4167": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.5": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"0.25": [0, 0, -0.1],
"1.25": [0, 0, -0.1],
"1.5": [0, 0, 0]
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.25": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.5": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
},
"sound_effects": {
"0.04": {
"0.1667": {
"effect": "pokemon.scorbunny.cry"
}
}
},
"animation.scorbunny.pose": {
"loop": true,
"animation_length": 8,
"bones": {
"body": {
"rotation": [0, "0-query.anim_time*90*0.5", 0],
"position": [0, 3.1, 0]
},
"torso": {
"rotation": [2.18559, 9.76061, 25.18663]
},
"neck": {
"rotation": [0, -15, -12.5],
"position": [-0.25, 0, 0]
},
"head": {
"rotation": [-7.46533, -15.91701, -4.50555],
"position": [0, 0.25, 0]
},
"ear_right": {
"rotation": [-10.76, -1.35, -21.02]
},
"ear_right2": {
"rotation": [-20, 0, 0]
},
"ear_left": {
"rotation": [-7.61238, -29.73789, -19.31617]
},
"ear_left2": {
"rotation": [-25, 0, 0]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"arm_right": {
"rotation": [-29.67029, 20.23258, -6.37191],
"position": [0, -0.5, 0]
},
"arm_right2": {
"rotation": [0, -12.5, 0]
},
"leg_left": {
"rotation": [9.96271, -0.86717, 17.42442],
"position": [-0.25, -0.5, -0.65]
},
"leg_left2": {
"rotation": [15, 0, 0],
"position": [0, 0, 0]
},
"foot_left": {
"rotation": [33.51125, -16.29766, -3.02632],
"position": [0, -0.5, 0]
},
"arm_right3": {
"rotation": [0, 0, 0]
},
"toe_left": {
"rotation": [-45, 0, 0]
},
"tail": {
"rotation": [25, 27.5, 0],
"position": [0.65, 0.75, 0]
},
"arm_left": {
"rotation": [-19.42144, 2.67038, -30.42654],
"position": [0, 0, 0]
},
"arm_left2": {
"rotation": [0, 10, 0]
},
"arm_left3": {
"rotation": [0, 0, 0]
},
"mouth_closed_right": {
"position": [0, 0, 0.1]
},
"mouth_closed_left": {
"position": [0, 0, 0.1]
},
"leg_right": {
"rotation": [-118.80606, 18.62164, 10.7198],
"position": [-0.25, 1.5, -2.9]
},
"leg_right2": {
"rotation": [125, 0, 0],
"position": [0, 0, 1]
},
"foot_right": {
"rotation": [-55, 0, 0],
"position": [0, 0, -0.5]
},
"toe_right": {
"rotation": [-17.5, 0, 0]
},
"ear_right3": {
"rotation": [-20, 0, 0]
},
"ear_left3": {
"rotation": [-25, 0, 0]
}
}
},
"animation.scorbunny.shocked": {
"loop": true,
"bones": {
@@ -2584,419 +2480,6 @@
"position": [0, 0, 0]
}
}
},
"animation.scorbunny.open_mouth": {
"loop": true,
"bones": {
"neck": {
"rotation": [10, 0, 0]
},
"head": {
"rotation": [-15, 0, 0]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
}
}
},
"animation.scorbunny.walk_speed": {
"loop": true,
"bones": {
"body": {
"position": [0, 0, "-q.anim_time*40"]
}
}
},
"animation.scorbunny.ground_idle_UNUSED": {
"loop": true,
"animation_length": 1,
"bones": {
"body": {
"rotation": [5, 0, 0],
"position": {
"0.0": {
"post": [0, 0.59, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.15, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0.59, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, -0.15, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0, 0.59, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso": {
"rotation": ["4.9668-Math.cos((query.anim_time-0.13) * 90 * 8) *1.5", -9.9519, "0.6566+Math.cos((query.anim_time-0.35) * 90 * 4) *2.5"],
"position": [0, "Math.cos((query.anim_time-0.15) * 90 * 8) *0.07", 0]
},
"neck": {
"rotation": ["-10.0743+Math.cos((query.anim_time+0.4) * 90 * 8) * 2", 4.77692, -1.52578],
"position": [0.14772, "0.0069-Math.cos((query.anim_time-0.15) * 90 * 8) *0.05", -0.02514]
},
"head": {
"rotation": ["-5.2437+Math.cos((query.anim_time+0.3) * 90 * 8) * 1", 4.92846, "1.043-Math.cos((query.anim_time-0.55) * 90 * 4) *2"],
"position": [0, "-Math.cos((query.anim_time-0.15) * 90 * 8) *0.1", 0]
},
"leg_right": {
"rotation": {
"0.0": [-9.07, 10.9, 9.25],
"0.0417": [-10.37, 11.04, 9.33],
"0.2917": {
"pre": [7.1515, 9.20214, 8.25],
"post": [7.1515, 9.20214, 8.25],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-15.37, 11.04, 9.33],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [2.12863, 9.88405, 7.41673],
"lerp_mode": "catmullrom"
},
"1.0": [-9.07, 10.9, 9.25]
},
"position": {
"0.0": [-0.15, -0.52376, 0.01167],
"0.0417": [-0.15, -0.43414, 0.02039],
"0.1667": {
"pre": [-0.15, -0.34943, 0.03693],
"post": [-0.15, -0.34943, 0.03693],
"lerp_mode": "catmullrom"
},
"0.2917": {
"post": [-0.2, -0.59876, -0.01833],
"lerp_mode": "catmullrom"
},
"0.4167": [-0.15, -0.64829, 0.01078],
"0.5": [-0.15, -0.5549, 0.01782],
"0.5417": {
"pre": [-0.15, -0.45905, 0.01821],
"post": [-0.15, -0.45905, 0.01821],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [-0.15, -0.34943, 0.03693],
"lerp_mode": "catmullrom"
},
"0.7917": [-0.2, -0.62149, -0.04541],
"0.8333": [-0.2, -0.6949, -0.04218],
"0.9167": [-0.175, -0.67319, 0.0086],
"1.0": [-0.15, -0.52376, 0.01167]
}
},
"leg_right2": {
"rotation": {
"0.0": [48.71, 0, 0],
"0.0417": [49.81, 0, 0],
"0.2917": {
"pre": [35, 0, 0],
"post": [35, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [57.31, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [44.75072, -1.36937, 1.63647],
"lerp_mode": "catmullrom"
},
"1.0": [48.71, 0, 0]
}
},
"foot_right": {
"rotation": {
"0.0": [-26.08, -5.23, -9.71],
"0.0417": [-24.91, -5.38, -9.69],
"0.2917": {
"pre": [-40.69398, -3.4, -10],
"post": [-40.69398, -3.4, -10],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-24.91, -5.38, -9.69],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-43.10259, -3.83176, -10.38223],
"lerp_mode": "catmullrom"
},
"1.0": [-26.08, -5.23, -9.71]
},
"position": {
"0.0": [-0.21, -0.22, -0.02],
"0.0417": [-0.22, -0.23, -0.01],
"0.2917": {
"pre": [-0.11931, -0.08719, -0.10718],
"post": [-0.11931, -0.08719, -0.10718],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-0.22, -0.23, -0.01],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-0.11931, -0.08719, -0.10718],
"lerp_mode": "catmullrom"
},
"1.0": [-0.21, -0.22, -0.02]
}
},
"toe_right": {
"rotation": {
"0.0": [-15.74, 0, 0],
"0.0417": [-16.66, 0, 0],
"0.2917": {
"pre": [-4.25, 0, 0],
"post": [-4.25, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-19.16, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-6.68233, -0.07875, -0.57073],
"lerp_mode": "catmullrom"
},
"1.0": [-15.74, 0, 0]
}
},
"hair_right_top": {
"rotation": [-25, 0, "2.5-Math.cos((query.anim_time-0.37) * 90 * 8) * 3"]
},
"hair_left_top": {
"rotation": [-25, 0, "2.5+Math.cos((query.anim_time-0.39) * 90 * 8) * 3.5"]
},
"arm_right": {
"rotation": [-7.42617, 2.55406, "-34.2396+Math.cos((query.anim_time-0.2) * 90 * 8) * 3 - Math.cos((query.anim_time-0.3) * 90 * 4) * 1"],
"position": [0.10329, -0.14355, 0.22469]
},
"arm_right2": {
"rotation": [0, -17.5, "Math.cos((query.anim_time-0.3) * 90 * 8) * 5"],
"position": [0.03155, 0.03569, 0.01519]
},
"arm_left": {
"rotation": [0, 20, "37.5-Math.cos((query.anim_time-0.2) * 90 * 8) * 3 + Math.cos((query.anim_time-0.3) * 90 * 4) * 1"]
},
"arm_left2": {
"rotation": [0, 17.5, "-(Math.cos((query.anim_time-0.3) * 90 * 8) * 5)"],
"position": [-0.03155, 0.03569, 0.01519]
},
"tail": {
"rotation": ["-22.5+Math.cos((query.anim_time-0.68) * 90 * 8) * 7", 7.5, -5]
},
"leg_left": {
"rotation": {
"0.0": {
"post": [-0.37, -11.04, -9.33],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [17.1515, -9.20214, -8.25],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-0.37, -11.04, -9.33],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [17.1515, -9.20214, -8.25],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-0.37, -11.04, -9.33],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0.4, -0.21, 0.04],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0.4, -0.275, 0.01],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0.4, -0.21, 0.04],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0.4, -0.275, 0.01],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0.4, -0.21, 0.04],
"lerp_mode": "catmullrom"
}
}
},
"leg_left2": {
"rotation": {
"0.0": {
"post": [49.81, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [35, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [49.81, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [35, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [49.81, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"foot_left": {
"rotation": {
"0.0": {
"post": [-24.91, 5.38, 9.69],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-40.69398, 3.4, 10],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-24.91, 5.38, 9.69],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-40.69398, 3.4, 10],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-24.91, 5.38, 9.69],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0.21213, -0.22046, -0.07151],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0.12824, -0.15048, -0.09251],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0.21213, -0.22046, -0.07151],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0.12824, -0.15048, -0.09251],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0.21213, -0.22046, -0.07151],
"lerp_mode": "catmullrom"
}
}
},
"toe_left": {
"rotation": {
"0.0": {
"post": [-26.66, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-14.25, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-26.66, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-14.25, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-26.66, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"hair_left_bottom": {
"rotation": [0, 0, "2.5+Math.cos((query.anim_time-0.44) * 90 * 8) * 3"]
},
"arm_right3": {
"rotation": [0, 0, "-3+Math.cos((query.anim_time-0.4) * 90 * 8) * 3"]
},
"arm_left3": {
"rotation": [0, 0, "3-Math.cos((query.anim_time-0.4) * 90 * 8) * 3"]
},
"ear_right": {
"rotation": ["-2.4967-Math.cos((query.anim_time-0.43) * 90 * 8) * 1.5", 0.15066, "2.4955+Math.cos((query.anim_time-0.45) * 90 * 4) * 2"],
"position": [-0.25, 0, 0]
},
"ear_right2": {
"rotation": ["-12.5-Math.cos((query.anim_time-0.56) * 90 * 8) * 3", 0, "Math.cos((query.anim_time-0.60) * 90 * 4) * 4"],
"position": [0, -0.2, 0]
},
"ear_right3": {
"rotation": ["-20-Math.cos((query.anim_time-0.63) * 90 * 8) * 5", 0, "Math.cos((query.anim_time-0.72) * 90 * 4) * 3"],
"position": [0, -0.25, 0]
},
"ear_left": {
"rotation": ["-4.4812-Math.cos((query.anim_time-0.40) * 90 * 8) * 1.5", 0.79579, "4.9306+Math.cos((query.anim_time-0.40) * 90 * 4) * 1.5"],
"position": [-0.25, 0, 0]
},
"ear_left2": {
"rotation": ["-10-Math.cos((query.anim_time-0.52) * 90 * 8) * 3", 0, "Math.cos((query.anim_time-0.50) * 90 * 4) * 3.5"],
"position": [0, -0.2, 0]
},
"ear_left3": {
"rotation": ["-15-Math.cos((query.anim_time-0.60) * 90 * 8) * 5", 0, "Math.cos((query.anim_time-0.60) * 90 * 4) * 3"],
"position": [0, -0.25, 0]
},
"ear_left4": {
"rotation": [0, 0, "Math.cos((query.anim_time-0.40)*90 * 4) * 3"]
},
"hair_right_bottom": {
"rotation": [0, 0, "2.5-Math.cos((query.anim_time-0.43) * 90 * 8) * 2.5 "]
}
}
}
}
}
@@ -3,13 +3,69 @@
"animations": {
"animation.regieleki.ground_idle": {
"loop": true,
"animation_length": 1.5,
"bones": {
"body": {
"rotation": [0, 0, -7.5],
"position": [0, 1, 0]
"rotation": {
"0.0": {
"post": [0, 0, -7.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 7.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, -7.5],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
},
"0.9583": {
"post": [-1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
}
}
},
"head": {
"rotation": [0, 0, 2.5]
"rotation": {
"0.0": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
}
}
},
"tendril_front_left_rotation": {
"rotation": [0, 0, 5]
@@ -93,19 +149,58 @@
"rotation": [0, -5, 7.5]
},
"torso_ring3": {
"rotation": [0, 0, 2.5]
"rotation": {
"0.0": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
}
}
},
"torso_ring2": {
"rotation": [0, 0, 5]
"rotation": {
"0.0": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
}
}
},
"torso_ring": {
"rotation": [0, 0, 2.5]
"rotation": {
"0.0": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
}
}
},
"leg_left": {
"rotation": [0, 0, 17.5]
},
"leg_right": {
"rotation": [0, 0, -7.5]
"rotation": [0, 0, -17.5]
},
"shoulder_right": {
"rotation": [0, 0, 0]
@@ -210,19 +305,45 @@
"rotation": [0, 0, -10]
},
"arm_right3": {
"rotation": [0, 5, -2.5]
},
"arm_right2": {
"rotation": [0.29869, -0.32866, -2.4611]
"rotation": [0, -5, 2.5]
},
"arm_main_right": {
"rotation": [0, 0, -5]
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"arm_right6": {
"rotation": [0, 5, -7.5]
},
"arm_right7": {
"rotation": [0, 0, -5]
},
"arm_main_left": {
"rotation": {
"0.0": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
}
}
}
}
},
@@ -8,7 +8,7 @@
"rotation": [-7.5, 0, 0]
},
"torso": {
"rotation": [2.5, 0, 0]
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [-6.94294, -1.45883, -54.63571],
@@ -20,6 +20,32 @@
}
}
},
"animation.regidrago.ground_walk": {
"loop": true,
"bones": {
"body": {
"rotation": [2.5, 0, 0],
"position": [0, 1, "Math.cos((query.anim_time) * 90 * 2) * 1"]
},
"torso": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [-4.57926, 9.30005, -45.46198],
"position": [7, -1, 0]
},
"arm_left": {
"rotation": [-4.57926, -9.30005, 45.46198],
"position": [-8, -1, -1]
},
"leg_left": {
"rotation": [17.5, 0, 0]
},
"leg_right": {
"rotation": [17.5, 0, 0]
}
}
},
"animation.regidrago.blink": {
"animation_length": 0.1667,
"bones": {
@@ -22,7 +22,7 @@
},
"animation.sprigatito.ground_walk": {
"loop": true,
"animation_length": 0.66667,
"animation_length": 0.6667,
"bones": {
"neck": {
"rotation": ["12.5 - (math.sin((q.anim_time - 0.15) * 360 / (1/3)) * 1)", 0, 0]
@@ -1467,7 +1467,7 @@
},
"animation.sprigatito.faint(wip)": {
"loop": "hold_on_last_frame",
"animation_length": 2.91667,
"animation_length": 2.9167,
"bones": {
"body": {
"rotation": {
@@ -2296,6 +2296,198 @@
"position": [0, 0, "-q.anim_time*90*run"]
}
}
},
"animation.sprigatito.shoulder_right": {
"loop": true,
"bones": {
"body": {
"rotation": [0, 27.5, 0],
"position": [0, -5, 1]
},
"torso": {
"rotation": ["-10+math.sin(q.anim_time*90*2-90)*-0.5", 0, 0],
"position": [0, "math.sin(q.anim_time*90*2)*0.05", -0.5]
},
"neck": {
"rotation": ["27+math.sin(q.anim_time*90*2-180)*-1", -5, -14],
"position": [0, -0.25, -0.5]
},
"head": {
"rotation": ["-11+math.sin(q.anim_time*90*2-270)*-3", -12, "12+math.sin(q.anim_time*90*1-30)*3"],
"position": [-0.25, 0, 0]
},
"head_fur_right_main": {
"rotation": [0, "-(math.sin(q.anim_time*90*2-310)*-2)", "-(math.sin(q.anim_time*90*1-90)*4)"]
},
"head_fur_left_main": {
"rotation": [-15, "-75+math.sin(q.anim_time*90*2-310)*-2", "-(math.sin(q.anim_time*90*1-90)*4)"]
},
"ear_right": {
"rotation": ["math.sin(q.anim_time*90*2-290)*-5", 0, "7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"ear_left": {
"rotation": ["math.sin(q.anim_time*90*2-300)*-5", 0, "-7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"neck_fur_front": {
"rotation": ["-44+math.sin(q.anim_time*90*2-200)*-1", -9.57658, 11.59948],
"position": [0, 0, 0.3]
},
"tail": {
"rotation": ["19+math.sin(q.anim_time*90*1)*-4", "-24+math.sin(q.anim_time*90*1-80)*9", "-20+math.sin(q.anim_time*90*1-100)*13"],
"position": [-0.5, 0, 0]
},
"tail_fur2": {
"rotation": [0, "-(math.sin(q.anim_time*90*1-160)*12)", 0]
},
"leg_front_right_rot": {
"position": [0, 1.5, 0]
},
"leg_front_right": {
"rotation": ["-32+math.sin(q.anim_time*90*2)*1", -6, -10],
"position": [-0.25, 0, -0.5]
},
"leg_front_right2": {
"rotation": ["-26+math.sin(q.anim_time*90*2+50)*-1", -5, -14],
"position": [-0.2, 0, 0]
},
"leg_front_right3": {
"rotation": ["112.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, 0, -0.25]
},
"leg_front_left_rot": {
"position": [0, 1.5, 0]
},
"leg_front_left": {
"rotation": ["-36+math.sin(q.anim_time*90*2)*1", -8, -13],
"position": [0, 1.75, 0.25]
},
"leg_front_left2": {
"rotation": ["-10+math.sin(q.anim_time*90*2+50)*-1", 0, 17.5],
"position": [0.2, 0, 0]
},
"leg_front_left3": {
"rotation": ["117.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, -0.1, 0]
},
"leg_back_right": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", 19, -5],
"position": [-0.5, -0.5, 0]
},
"leg_back_right2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", 14.26008, 10.25103],
"position": [0, 2.5, 0.25]
},
"leg_back_right3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
},
"leg_back_left": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", -19, 5],
"position": [0.5, -0.5, 0]
},
"leg_back_left2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", -14, -10],
"position": [0, 2.5, 0.25]
},
"leg_back_left3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
}
}
},
"animation.sprigatito.shoulder_left": {
"loop": true,
"bones": {
"body": {
"rotation": [0, -27.5, 0],
"position": [0, -5, 1]
},
"torso": {
"rotation": ["-10+math.sin(q.anim_time*90*2-90)*-0.5", 0, 0],
"position": [0, "math.sin(q.anim_time*90*2)*0.05", -0.5]
},
"neck": {
"rotation": ["27+math.sin(q.anim_time*90*2-180)*-1", 5, 14],
"position": [0, -0.25, -0.5]
},
"head": {
"rotation": ["-11+math.sin(q.anim_time*90*2-270)*-3", 12, "-12+math.sin(q.anim_time*90*1-30)*3"],
"position": [0.25, 0, 0]
},
"head_fur_right_main": {
"rotation": [-15, "75+math.sin(q.anim_time*90*2-310)*-2", "math.sin(q.anim_time*90*1-90)*4"]
},
"head_fur_left_main": {
"rotation": [0, "math.sin(q.anim_time*90*2-310)*-2", "math.sin(q.anim_time*90*1-90)*4"]
},
"ear_right": {
"rotation": ["math.sin(q.anim_time*90*2-300)*-5", 0, "7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"ear_left": {
"rotation": ["math.sin(q.anim_time*90*2-290)*-5", 0, "-7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"neck_fur_front": {
"rotation": ["-44+math.sin(q.anim_time*90*2-200)*-1", 9.57658, -11.59948],
"position": [0, 0, 0.3]
},
"tail": {
"rotation": ["19+math.sin(q.anim_time*90*1)*-4", "24+math.sin(q.anim_time*90*1-80)*9", "20+math.sin(q.anim_time*90*1-100)*13"],
"position": [0.5, 0, 0]
},
"tail_fur2": {
"rotation": [0, "math.sin(q.anim_time*90*1-160)*12", 0]
},
"leg_front_right": {
"rotation": ["-36+math.sin(q.anim_time*90*2)*1", 8, 13],
"position": [0, 1.75, 0.25]
},
"leg_front_right2": {
"rotation": ["-10+math.sin(q.anim_time*90*2+50)*-1", 0, -17.5]
},
"leg_front_right3": {
"rotation": ["117.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, -0.1, 0]
},
"leg_front_left_rot": {
"position": [0, 1.5, 0]
},
"leg_front_left": {
"rotation": ["-32+math.sin(q.anim_time*90*2)*1", 6, 10],
"position": [0.25, 0, -0.5]
},
"leg_front_left2": {
"rotation": ["-26+math.sin(q.anim_time*90*2+50)*-1", 5, 14],
"position": [0.2, 0, 0]
},
"leg_front_left3": {
"rotation": ["112.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, 0, -0.25]
},
"leg_back_right": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", 19, -5],
"position": [-0.5, -0.5, 0]
},
"leg_back_right2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", 14, 10],
"position": [0, 2.5, 0.25]
},
"leg_back_right3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
},
"leg_back_left": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", -19, 5],
"position": [0.5, -0.5, 0]
},
"leg_back_left2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", -14.26008, -10.25103],
"position": [0, 2.5, 0.25]
},
"leg_back_left3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
}
}
}
}
}
Loaded 100 of 251 files, more files were not shown because too many files have changed in this diff. Show more